依赖安全检查工具

DepShield是一款实时依赖安全检查工具,用于拦截和验证AI编码代理尝试安装的软件包,确保其安全性和存在性。

  • by devanshkaria88
  • TypeScript
  • 本地部署
  • 4 星标
  • 更新于
在 GitHub 查看 devanshkaria88/depshield-mcp

使用说明

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: npm注册表, 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.js
Windsurf

添加到您的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

退货: 具有漏洞标志、可疑模式检测(新添加的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.js

Raw 工作室 (快速验证):

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密钥:

API 它提供了什么
npm注册表 包存在、版本、元数据、搜索
npm下载API 每周下载次数
OSV.dev 开源漏洞数据库(谷歌)
PyPI Python包元数据

📁 项目结构

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