Dependency Fitness Mcp

io.github.TweedBeetle由 GitHub 帳號 TweedBeetle 發布v0.1.1更新於 Oct 24, 2026

npm dependency fitness: deprecated/yanked/superseded + verified safe migration target.

已驗證STDIO僅桌面開發者工具安全與監控

概覽

AI 產生的概覽

一個本機 MCP 伺服器,為編碼助理提供 npm 套件的交叉驗證健康度判定,包括是否已棄用以及應遷移到哪個套件。

可以做什麼
檢查單一 npm 套件(最新版或指定版本、範圍、dist-tag)的棄用、撤回、惡意標記與是否被取代,並給出信心分數與警告。依維護者的棄用聲明推斷並核實安全的遷移目標,無法確認後繼套件時拒絕猜測。批次稽核一組套件或 package.json 的內容,每次最多 50 個,回傳逐套件判定與彙總,可用於 CI 或合併前檢查。綜合 npm registry、deps.dev、OSV.dev 和 GitHub 的資訊,標記來源分歧,並找出看似活躍但儲存庫已封存的套件。
適用情境
當助理準備新增或升級 npm 相依套件、需要先確認該套件仍在維護且安全,或為已棄用的套件尋找替代品時使用。也適合在合併相依套件變更前做批次檢查。
執行需求
透過 npx 或全域安裝以 stdio 在本機執行,需要 Node 18 或更新版本。無需帳號或金鑰,但需要能存取 npm registry、deps.dev、OSV.dev 和 GitHub。選用環境變數 GITHUB_TOKEN 可提高 GitHub 速率上限,用於封存儲存庫檢查。
安裝前請注意
它會讀取公開的套件中繼資料,並把套件名稱傳送給第三方服務(npm、deps.dev、OSV.dev、GitHub)。判定結果僅供參考並帶信心分數;某個來源無法連線時只會降低信心分數而不會報錯,因此低信心分數的結果需謹慎看待。它只涵蓋 npm,選用的 GITHUB_TOKEN 屬於需保密的憑證。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Dependency Fitness Mcp,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

dependency-fitness-mcp — npm dependency fitness verdicts for coding agents

Is this npm package safe to depend on — and if not, what do I move to?

An MCP server that gives a coding agent a cross-validated fitness verdict for an npm package before it writes or upgrades a dependency:

jsonc
{  "deprecated": true,  "yanked": false,  "malicious": false,  "superseded_by": { "latest": "14.0.0", "majors_behind": 13, "breaking_boundary": true },  "safe_migration_target": {    "package": "uuid",    "version": "14.0.0",    "rationale": "Maintainer's deprecation notice recommends 'uuid' (verified present and not deprecated).",    "confidence": "high"  },  "confidence": "high",  "last_verified": "2026-06-05T18:10:31Z"}

It reconciles four free, sanctioned sources — the npm registry, Google's deps.dev, OSV.dev, and GitHub — into one confidence-scored answer, and infers a safe migration target when a package is deprecated or superseded.

Why this exists (and what it deliberately isn't)

"Is it deprecated?" is already free — deps.dev serves that flag, and several free MCP servers already answer "what's the latest version?". This tool does the part nobody serves as data:

  • Migration-target inference. When a package is deprecated, it parses the maintainer's own deprecation notice for a named successor, then verifies that successor actually exists and isn't itself deprecated before recommending it.
  • Cross-validation, not a guess. It reconciles deprecation across the npm registry and deps.dev, catches "deceptive deprecation" (registry says active but the GitHub repo is archived), and flags disagreement with a confidence level instead of inventing an answer.
  • It refuses to guess. If a package is deprecated but no successor can be established, it says exactly that (low confidence) rather than recommending a plausible-but-wrong replacement. A wrong "use X instead" ships broken code.
  • Anti-slopsquatting. A non-existent / hallucinated package name returns a clear "not found" verdict (with an OSV malicious-record check), so an agent won't silently install a hallucinated dependency.

This is intentionally a narrow tool: the deprecation / yank / supersede / migration middle, where the free incumbents sit on either side but leave the seam open.

Tools

check_package_fitness

Single-package verdict. Input: package (e.g. request, @babel/core), optional version (exact, semver range, or dist-tag — omit for latest). Output: the full Verdict (structured) plus a human-readable summary.

audit_dependencies

Batch verdict for a CI / pre-merge gate. Input: packages (e.g. ["[email protected]", "request"]) and/or the raw contents of a package.json. Output: a per-package verdict array plus a summary (how many deprecated / malicious / vulnerable / behind). Capped at 50 packages per call.

Install / connect

Requires Node ≥ 18. Run via npx (no install) or install globally.

Claude Code:

bash
claude mcp add dependency-fitness -- npx -y dependency-fitness-mcp

Claude Desktop / Cursor / any MCP client (mcp.json / claude_desktop_config.json):

jsonc
{  "mcpServers": {    "dependency-fitness": { "command": "npx", "args": ["-y", "dependency-fitness-mcp"] }  }}

Optional env: GITHUB_TOKEN raises the GitHub rate limit (used only for the archived-repo cross-check); everything else needs no key.

Run locally / develop

bash
npm installnpm run build        # tsc -> dist/npm test             # vitest (offline, deterministic synthesis tests)npm run smoke        # live: hits the real registries, prints verdictsnpm run dev          # run the server from source over stdio

How a verdict is built

        ┌─ npm registry ── per-version `deprecated` string, dist-tags, repo URL  (authoritative)query ──┼─ deps.dev ────── isDeprecated / deprecatedReason / advisoryKeys        (corroborator)        ├─ OSV.dev ─────── advisories + MAL-* malicious markers + "fixed in"      (corroborator)        └─ GitHub ──────── archived flag + last-push recency                       (deceptive-deprecation check)                    │                    ▼   cross-validate deprecation ─→ infer + verify migration target ─→ confidence + warnings ─→ Verdict

npm is the source of truth; the others corroborate. A corroborator being unreachable lowers confidence and adds a warning — it never fabricates a signal.

Status

v0.1 — thin, working, npm-only. This is a fast public validation of whether a narrow "agent-data endpoint via MCP directory" can find its users organically. Roadmap and the explicit kill criterion live in KILL_CRITERION.md. Next layers (documented, not yet built): PyPI, and de-facto-successor inference by mining what high-trust packages actually depend on now.

License

MIT © Christo Wilken / 9592 Solutions UG. Built in public.

來源:README.md,提交 b057e04

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v0.1.1最新Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分