Real-time dependency security for AI coding agents
DepShield intercepts every package your agent tries to install, verifies it exists, checks it against CVE databases, and blocks vulnerable or hallucinated dependencies — before they touch your codebase.
Works with Cursor · Claude Code · Windsurf · Antigravity · Cline · any MCP-compatible IDE
______________________________________________________________________
🤔 为什么
AI编码代理从过时的训练数据中提取包。他们安装了带有已知CVE的过时版本。他们产生了不存在的包裹名称的幻觉,为拼写错误攻击打开了大门。当存在更好的替代方案时,它们默认使用已弃用的库。
在“代理决定使用包”和“包在您的项目中”之间没有检查点 DepShield就是那个检查站。
______________________________________________________________________
⚡ 它的作用
通过模型上下文协议暴露的七种安全工具:
| 工具 | 它做什么 |
|---|---|
check_dependency | 预安装门——验证注册表上是否存在包,并且没有已知的CVE。您的代理在每次安装之前都会调用此功能。 |
audit_project | 扫描整个 package.json 或 requirements.txt 并返回完整的漏洞审计报告。 |
find_safe_version | 查找没有已知漏洞的包的最新版本。 |
get_advisory_detail | 深入了解特定的CVE/GHSA——完整描述、受影响的版本、修复信息、参考。 |
check_npm_health | 软件包健康报告卡:每周下载量、上次发布日期、维护者数量、许可证、弃用状态。得分0-100。 |
suggest_alternative | 当一个软件包易受攻击、弃用或废弃时,可以找到更好的软件包。 |
deep_scan | 扫描包的传递依赖树,查找漏洞、拼写错误和可疑模式。 |
加上a depshield://status 资源和a security_review 指导性完整项目审计的提示模板。
需要零个API密钥。 DepShield使用免费、开放的API: , OSV.dev (谷歌的开放漏洞数据库),以及 PyPI.
______________________________________________________________________
🚀 快速开始
选项1:npx(不安装)
添加到IDE的MCP配置中,就完成了。无需全局安装。
选项2:克隆和构建
git clone https://github.com/devanshkaria88/depshield-mcp.git
cd depshield-mcp
npm install
npm run build______________________________________________________________________
🔌 IDE设置
Cursor
添加 ~/.cursor/mcp.json (全球)或 .cursor/mcp.json (项目层面):
{
"mcpServers": {
"depshield": {
"command": "npx",
"args": ["-y", "depshield-mcp"]
}
}
}或者,如果您在本地克隆了仓库:
{
"mcpServers": {
"depshield": {
"command": "node",
"args": ["/absolute/path/to/depshield-mcp/dist/index.js"]
}
}
}(可选)复制 .cursor/rules/dep-shield.mdc 进入你的项目 .cursor/rules/ 目录。此规则强制Cursor代理调用 check_dependency 在安装每个软件包之前。
Claude Code
claude mcp add depshield -- npx depshield-mcp或者从克隆的仓库中:
claude mcp add depshield -- node /absolute/path/to/depshield-mcp/dist/index.jsWindsurf
添加到您的Windsurf MCP配置中:
{
"mcpServers": {
"depshield": {
"command": "npx",
"args": ["-y", "depshield-mcp"]
}
}
}Any MCP-compatible tool
DepShield使用stdio传输。任何支持MCP over stdio的工具都可以使用它:
npx depshield-mcp______________________________________________________________________
💡 使用示例
一旦连接,您的AI代理就可以访问所有七个工具。尝试以下提示:
安装前检查 *(使用.mdc规则自动执行)*
“添加用于深度克隆的lodash”
客服电话 check_dependency → 查找CVE→ 自动升级到安全版本
屏蔽产生幻觉的包裹
“安装react super-utils pro进行状态管理”
客服电话 check_dependency → 包不存在→ 阻止安装,建议替代方案
全面项目审计
“对此项目的依赖项运行安全审核”
客服电话 audit_project 上 package.json → 返回完整的漏洞报告
包装健康检查
“这个包裹保养得好吗?”
客服电话 check_npm_health → 返回健康评分(0-100)及明细
供应链深度扫描
“可传递漏洞的深度扫描express”
客服电话 deep_scan → 扫描依赖关系树,标记可疑模式
深潜咨询
“告诉我更多关于GHSA-jf85-cpcp-j695的信息”
客服电话 get_advisory_detail → 返回完整的CVE详细信息、补救信息
______________________________________________________________________
📖 工具参考
check_dependency — Pre-install gate
| 参数 | 类型 | 必填 | 默认 | 说明 | |
|---|---|---|---|---|---|
name | string | yes | -- | 包名称(例如。, lodash, express) | |
version | string | no | latest | 要检查的特定版本 | |
ecosystem | npm | pypi | 没有 | npm | 包装生态系统 |
退货: ✅ SAFE, ⚠️ VULNERABLE (具有修复版本), 🚫 BLOCKED (不存在),或 ⚠️ CANNOT VERIFY (无法访问注册表)。
audit_project — Full manifest audit
| 参数 | 类型 | 必填 | 默认 | 说明 |
|---|---|---|---|---|
filePath | string | yes | -- | 路径 package.json 或 requirements.txt |
includeDevDependencies | boolean | 否 | true | 在扫描中包含devDependencies |
退货: 完整的审计报告,包括汇总统计数据、每个依赖项的漏洞细分、严重性计数和风险判断。
find_safe_version — Safe version finder
| 参数 | 类型 | 必填 | 默认 | 说明 | |
|---|---|---|---|---|---|
name | string | 是 | -- | 包名称 | |
ecosystem | npm | pypi | 没有 | npm | 包装生态系统 |
退货: 最新的稳定版本,没有已知漏洞,并对所有检查的版本进行了比较。
get_advisory_detail — CVE/GHSA deep dive
| 参数 | 类型 | 必填 | 默认 | 说明 |
|---|---|---|---|---|
vulnId | string | yes | -- | 漏洞ID(例如。, GHSA-jf85-cpcp-j695, CVE-2021-23337) |
退货: 完整的咨询,包括摘要、严重程度、CVSS评分、受影响的版本、修复版本和参考链接。
check_npm_health — Package health scoring
| 参数 | 类型 | 必填 | 默认 | 说明 |
|---|---|---|---|---|
name | string | yes | -- | npm包名称 |
退货: 健康报告卡(0-100分)基于:发布最近度、每周下载量、许可证、存储库存在、弃用状态和维护者数量。
suggest_alternative — Alternative package finder
| 参数 | 类型 | 必填 | 默认 | 说明 |
|---|---|---|---|---|
name | string | yes | -- | 用于查找替代方案的包 |
reason | string | no | -- | 为什么需要替代方案 |
退货: 带有下载量、npm评分和发布日期的前3个替代包。
deep_scan — Transitive dependency scanner
| 参数 | 类型 | 必填 | 默认 | 说明 | |
|---|---|---|---|---|---|
name | string | yes | -- | 打包进行深度扫描 | |
version | string | no | latest | 要扫描的特定版本 | |
depth | 1 | 2 | 没有 | 1 | 1=直接存款,2=存款的存款 |
退货: 具有漏洞标志、可疑模式检测(新添加的deps、不存在的包、下载量低的候选拼写错误)和风险判断的依赖树。
______________________________________________________________________
🔒 光标规则(可选)
这 .cursor/rules/dep-shield.mdc 此存储库中包含的文件强制Cursor代理自动调用 check_dependency 在安装每个软件包之前。将其复制到您的项目中:
mkdir -p .cursor/rules
cp node_modules/depshield-mcp/.cursor/rules/dep-shield.mdc .cursor/rules/这将DepShield从代理工具转变为代理工具 _能_ 把代理人用在门上 _必须_ 通过。
______________________________________________________________________
🧪 测试
MCP检查员 (测试工具的交互式UI):
npm run inspect或者:
npx @modelcontextprotocol/inspector node dist/index.jsRaw 工作室 (快速验证):
printf '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"1.0.0"}}}\n{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"check_dependency","arguments":{"name":"lodash","version":"4.17.20"}}}\n' | node dist/index.js 2>/dev/null______________________________________________________________________
🌐 使用的API
所有免费,无需API密钥:
______________________________________________________________________
📁 项目结构
depshield-mcp/
├── src/
│ ├── index.ts # MCP server entry — tool/resource/prompt registration
│ ├── cache.ts # In-memory TTL cache (5 min)
│ ├── utils.ts # Severity parsing, version sorting, fetch helpers
│ ├── apis/
│ │ ├── npm-registry.ts # npm registry, search, downloads
│ │ ├── osv.ts # OSV.dev vulnerability queries
│ │ └── pypi-registry.ts # PyPI JSON API
│ └── tools/
│ ├── check-dependency.ts # Pre-install gate
│ ├── audit-project.ts # Full manifest audit
│ ├── find-safe-version.ts # Safe version finder
│ ├── get-advisory-detail.ts # CVE/GHSA deep dive
│ ├── check-npm-health.ts # Package health scoring
│ ├── suggest-alternative.ts # Alternative package finder
│ └── deep-scan.ts # Transitive dependency scanner
├── .cursor/rules/
│ └── dep-shield.mdc # Cursor agent rule (alwaysApply)
├── package.json
├── tsconfig.json
├── LICENSE
└── README.md______________________________________________________________________
📋 需求
- Node.js 22 或更高版本
- 与MCP兼容的AI编码工具
______________________________________________________________________
🤝 贡献
欢迎捐款。请先打开一个问题,讨论您想更改的内容。
需要帮助的领域:
- 额外的生态系统支持(Cargo、Go模块、Maven)
- 改进的CVSS矢量字符串解析
- 带有模拟API响应的集成测试
- GitHub操作CI管道
______________________________________________________________________
📄 许可证
麻省理工学院——见 许可证 了解详情。
______________________________________________________________________
Built by Devansh Karia
