vet MCP:智能体装依赖前先查是不是恶意包
SafeDep 开源的依赖检查工具 vet 自带 MCP:AI 推荐 npm 或 PyPI 包时先查恶意包报告、已知漏洞、许可证和最新版本,防范包名幻觉抢注。
项目与安装文档
查看项目https://github.com/safedep/vet
编程智能体建议“装一下某某包”的时候,这个包可能根本不存在,也可能是有人照着模型常见的幻觉包名抢注的恶意包,这类攻击叫 slopsquatting。vet 是 SafeDep 开源的依赖安全工具,它内置的 MCP 服务器让智能体在安装前先查一遍:这个包有没有恶意报告、当前版本有哪些漏洞、许可证是什么、最新版本是多少。vet 截至 2026-10-06 约 1100 star。
能做什么
- 恶意包查询:
get_package_version_malware_report对照 SafeDep 持续更新的恶意包情报库,查询免费、不需要 API key。 - 漏洞与许可证:
get_package_version_vulnerabilities列出已知漏洞,get_package_version_license_info返回许可证信息。 - 识别幻觉包名:
get_package_latest_version和get_package_available_versions查版本,找不到最新版本往往说明包名有问题。 - 流行度:
get_package_version_popularity帮助判断一个包是否被广泛使用。 - SQL 查询扫描结果:
vet_query_execute_sql_query对 vet 的扫描结果做 SQL 查询。
适合谁
- 让 Claude Code、Cursor 自动安装依赖、担心被带进恶意包的开发者。
- 想在 AI 编码流程里加一道供应链检查的安全团队。
接入方式
用官方 Docker 镜像,在 Claude Code 项目的 .mcp.json 里添加:
{
"mcpServers": {
"vet-mcp": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"ghcr.io/safedep/vet:latest",
"server",
"mcp"
]
}
}
}
也可以 brew install vet 后直接用二进制运行:vet -l /tmp/vet-mcp.log server mcp --server-type stdio。日志不要输出到 stdout,否则会干扰 MCP 通信。
编辑点评
依赖安全这一块,vet 的切入点很准:它解决的是 AI 编码特有的风险,智能体推荐的包名可能是编出来的。文档还给了一份 Cursor 规则示例,要求智能体安装任何包之前先调用 vet 检查,这种“规则加工具”的组合比单靠工具可靠。局限也要说清楚:MCP 目前只支持 npm 和 PyPI 两个生态;恶意包检测依赖 SafeDep 云端情报库,查询会把包名发给 SafeDep;用 Docker 运行需要定期更新镜像。SafeDep 另有托管版 MCP,延迟更低。许可证为 Apache-2.0。