内容
# DepHealth MCP
**AI 代理的依赖安全性和健康审计服务 — 无需账户,无需 API 密钥。**
DepHealth 是一个 [MCP](https://modelcontextprotocol.io) 服务器,允许任何 AI 代理(Claude Code、Claude Desktop、Cursor 等)立即回答两个问题:
- *"这些项目的依赖是否安全?"* → `audit_project`
- *"是否应该添加/升级到这个软件包?"* → `check_package`
漏洞数据来自 Google 的 [OSV.dev](https://osv.dev)(超过 73.8 万条安全建议,涵盖 40 多个生态系统);软件包健康信号(最新版本、许可证、发布频率、是否废弃)来自 [deps.dev](https://deps.dev)。两者都是免费的公共 API — **无需注册,无需密钥,无需配置**。
## 为什么选择 DepHealth 而不是 Snyk/Socket MCP?
| | DepHealth | Snyk MCP | Socket MCP |
|---|---|---|---|
| 需要账户 | **否** | 是 | 是(OAuth) |
| API 密钥/身份验证流程 | **无** | Snyk 身份验证 | 通过客户端登录 |
| 生态系统 | npm、PyPI、Go、crates.io | 许多 | 许多 |
| 输出精简 | **是 — 限制,结构化** | — | — |
| 开源 | **MIT** | 部分 | 部分 |
MCP 服务器以上下文膨胀而闻名(有些服务器会注入 5 万多个 tokens 的模式)。DepHealth 提供了 **2 个工具,1 个资源,1 个提示**,输出结构紧凑 — 每个软件包的安全建议限制为 5 个,按严重程度排序,并附上修复版本。
## 安装
需要 Python 3.11+ 和 [uv](https://docs.astral.sh/uv/)。
```bash
git clone https://github.com/hasarahman/dephealth-mcp
cd dephealth-mcp && uv sync
```
**Claude Code:**
```bash
claude mcp add --scope user dephealth -- uv run --project /path/to/dephealth-mcp dephealth-mcp
```
**Claude Desktop** (`claude_desktop_config.json`):
```json
{
"mcpServers": {
"dephealth": {
"command": "uv",
"args": ["run", "--project", "/path/to/dephealth-mcp", "dephealth-mcp"]
}
}
}
```
## 工具
### `audit_project(path)`
直接扫描 `path` 中的所有支持的清单文件 — `package.json`、`requirements.txt`、`pyproject.toml`、`go.mod`、`Cargo.toml` — 批量查询 OSV,并返回结构化的报告:
```
verdict: "1 of 2 checked dependencies have known vulnerabilities (worst severity: HIGH)."
vulnerable_packages:
- lodash 4.17.20 (npm) — 5 advisories
GHSA-35jh-r3h4-6jhm CVE-2021-23337 HIGH Command Injection fixed_in: 4.17.21
...
unpinned_skipped: ["flask"] # hygiene flag: deps with no resolvable version
```
范围限定符(`^4.17.20`、`>=2.0`)会在其下限进行审计,并标记 `version_is_range_floor: true`。
### `check_package(ecosystem, name, version?)`
"是否应该添加这个软件包?"的工具。省略 `version` 以检查最新版本。结合 OSV 安全建议和 deps.dev 健康信号,返回判决:
- **`avoid`** — 该版本存在关键/高严重程度漏洞
- **`caution`** — 较低严重程度的漏洞,2 年以上未发布新版本,或已废弃
- **`ok`** — 安全且有维护
```
check_package("npm", "left-pad")
→ verdict: caution
reasons: ["no release since 2018-04-09 (possibly unmaintained)",
"latest version is marked deprecated"]
```
## 资源和提示
- `dephealth://ecosystems` — 支持的生态系统及其清单文件
- `security_review(project_path)` — 有指导的提示:审计,验证升级目标是否安全,生成优先级修复列表
## 开发
```bash
uv run pytest # 进程内 MCP 客户端测试(调用实时免费 API)
uv run fastmcp dev src/dephealth_mcp/server.py # 交互式检查器
```
使用 [FastMCP](https://gofastmcp.com) 构建。MIT 许可证。