关于 dependency-fitness-mcp
dependency-fitness-mcp 是为编码 Agent 提供 npm 依赖健康状况判定的 MCP 服务端。它交叉核对多个数据源,检查弃用、撤回、恶意与过时风险,并在有依据时验证迁移目标。
主要功能
- 01判定依赖弃用与撤回状态
- 02交叉核对多个数据源
- 03推断并验证迁移目标
- 04批量审计 package.json 依赖
- 05标记恶意或不存在的包
适用场景
- 01编码前检查 npm 包是否适用
- 02升级依赖前评估迁移风险
- 03在 CI 或合并前批量审计依赖
MCP 相关
通过 MCP 暴露单包检查和批量依赖审计工具,向编码 Agent 返回结构化判定及可读摘要。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
2收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| package | string | 是 | npm 包名,例如 'request' 或 '@babel/core' |
| version | string | 否 | 确切版本、semver 范围或 dist-tag。不填写则检查当前的 'latest'。 |
详细介绍
dependency-fitness-mcp — 面向编码 Agent 的 npm 依赖项 适用性评估
这个 npm 包适合作为依赖项吗?如果不适合,我该换用什么?
一个 MCP 服务,可在编码 Agent 编写或升级依赖项之前,为 npm 包提供经交叉验证的适用性评估:
{
"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"
}
它整合了四个免费且获准使用的数据源——npm 注册表、Google 的 deps.dev、OSV.dev 和 GitHub——给出一个带置信度评分的答案,并在包已弃用或被取代时推断安全的迁移目标。
为什么要做这个工具(以及它有意不做什么)
“这个包已弃用吗?”已经可以免费查询——deps.dev 会提供该标记,也有一些免费的 MCP 服务可以回答“最新版本是什么?”。这个工具处理的是其他服务都不提供的数据:
- 推断迁移目标。 当某个包已弃用时,它会解析维护者自己的弃用通知,查找其中提到的后继包,随后验证该后继包确实存在且本身未被弃用,再进行推荐。
- 交叉验证,而非猜测。 它会综合 npm 注册表和 deps.dev 的弃用信息,发现“误导性弃用”(注册表显示仍在维护,但 GitHub 仓库已归档),并且在信息不一致时标明置信度,而不是捏造答案。
- 拒绝猜测。 如果某个包已弃用,但无法确认其后继包,它会明确说明这一点(置信度较低),而不是推荐一个看似合理却错误的替代品。错误地建议“改用 X”会导致代码无法正常运行。
- 防范恶意抢注包名。 对于不存在或凭空捏造的包名,工具会返回明确的“未找到”评估(并检查 OSV 恶意记录),避免 Agent 在不知情的情况下安装虚构的依赖项。
这是一个刻意保持精简的工具:专注于弃用、撤回、取代和迁移的中间环节。免费的现有工具分别覆盖了它的两侧,却留下了这个空缺。
工具
check_package_fitness
评估单个包。输入:package(例如 request、@babel/core),可选的
version(确切版本、semver 范围或 dist-tag;省略时使用 latest)。输出:完整的
Verdict(结构化数据)和易读的摘要。
audit_dependencies
为 CI / 合并前检查提供批量评估。输入:packages(例如
["[email protected]", "request"]),和/或 package.json 的原始内容。输出:
逐包评估数组及摘要(已弃用 / 恶意 / 存在漏洞 / 落后的包数量)。每次调用最多处理 50 个包。
安装 / 连接
需要 Node ≥ 18。可通过 npx 运行(无需安装),也可全局安装。
Claude Code:
claude mcp add dependency-fitness -- npx -y dependency-fitness-mcp
Claude Desktop / Cursor / 任意 MCP 客户端(mcp.json / claude_desktop_config.json):
{
"mcpServers": {
"dependency-fitness": { "command": "npx", "args": ["-y", "dependency-fitness-mcp"] }
}
}
可选环境变量:GITHUB_TOKEN 可提高 GitHub 速率限制(仅用于交叉检查仓库是否已归档);其他功能均无需密钥。
本地运行 / 开发
npm install
npm run build # tsc -> dist/
npm test # vitest (offline, deterministic synthesis tests)
npm run smoke # live: hits the real registries, prints verdicts
npm run dev # run the server from source over stdio
如何生成评估结果
┌─ 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 是权威数据源;其他数据源用于佐证。如果某个佐证数据源无法访问,confidence 会降低并添加一条 warning——工具绝不会捏造信号。
状态
v0.1 — 轻量、可用,仅支持 npm。这是一次快速的公开验证,旨在确认“通过 MCP 目录提供 Agent 数据端点”这一细分方向能否自然获得用户。
路线图和明确的终止标准见
KILL_CRITERION.md。后续计划(已有文档,尚未实现):支持 PyPI,并通过挖掘高信任度包当前实际依赖的对象,推断事实上的后继包。
许可证
MIT © Christo Wilken / 9592 Solutions UG。公开开发。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。