depguard 是一个专为 AI 编码智能体设计的 MCP(Model Context Protocol)安全服务器,核心目标是解决 npm 生态在供应链完整性上的审计缺失问题。它的作者来自工业软件领域,将“事件可记录、可恢复”的审计思维引入 JavaScript 依赖管理:安装前先验证,对已有依赖进行审计,并生成安全团队可用的 SBOM。
【用途】 depguard 主要服务于需要在安装 npm 包之前进行安全检查的场景,尤其是当 AI 编码智能体准备安装依赖、审计项目或审查代码时。它通过 MCP 协议暴露 14 个工具,让 AI 智能体在这些关键节点自动调用。
【主要能力】
- 安装前守护:在 npm install 前执行三步顺序检查——包是否存在于 npm、名称是否为仿冒(对 100+ 热门包计算 Levenshtein 距离)、完整安全审计。
- 静态代码分析(tarball 扫描):下载包 tarball,解压 JS 文件,扫描 6 大类 18+ 种恶意模式;进行行为匹配,将包声明的用途与实际运行时行为对比。
- 安装脚本分析:对 preinstall/install/postinstall 脚本进行静态模式匹配,不执行任何脚本。
- 漏洞审计:整合 npm Registry 与 GitHub Advisory DB 两个咨询数据库并去重,按已安装版本范围过滤,标注来源。
- 修复建议:每个漏洞结果包含 currentVersion、fixVersion 和 action(upgrade 或 no-fix-available);depguard_remediate 按严重性权重聚合,并将传递依赖按引入它的直接依赖分组。
- 死依赖检测:扫描 .js/.ts/.mjs/.cjs/.jsx/.tsx 中的 import/require/export from,识别配置类依赖、npm 脚本中的二进制、@types/* 与其运行时 peer 配对,未追踪的 devDependencies 标记为“可能未使用”,并报告预估磁盘节省。
- 原生替代建议:在推荐包之前先检查 Node.js 原生 API,如 fetch(18+)、crypto.randomUUID()(19+)、structuredClone()(17+)等 20+ 项,附带示例代码和最低 Node 版本。
- 许可证兼容性:按 Public Domain → Permissive → Weak Copyleft → Strong Copyleft → Network 的层级判断,依赖许可证需同等或更宽松才兼容。
- SBOM 生成:原生生成 CycloneDX 1.6,可直接被 Dependency-Track、Trivy、Grype、OWASP DT 消费,PURL 遵循 Package URL 规范,SHA-512 完整性哈希从 package-lock.json 提取并按 CycloneDX schema 从 base64 转为 hex;--include-vex 可内联 CVSS 评级与修复版本。
- SARIF 输出:audit、audit-project、audit-workspace 支持 --format sarif,输出 SARIF v2.1.0,含 GHSA 稳定规则 ID、CVSS 传播严重性和稳定的 partialFingerprints。
- 评分与决策:每个包按五个维度评分 0-100,shouldUse >=60 建议安装,40-59 谨慎,<40 建议从零编写;静态分析会封顶安全分,不受流行度影响。
- AI 幻觉防护:作为工具能力之一提供。
- tokenSavings 字段:每个 MCP 响应包含该字段,量化相比手工研究节省的 LLM token,无需配置。
【使用方式】 作为 MCP 服务器,通过 stdio 暴露 14 个工具。可添加到任何兼容 MCP 的客户端(Claude Code、Claude Desktop、Cursor、Windsurf、Continue.dev、Cline、Roo Code 等)。文档提供了 Claude Code 一行式安装命令和通用 MCP 配置示例。可选设置 GITHUB_TOKEN(无需任何 scope,仅用于身份识别)将 GitHub Advisory API 速率限制从 60/h 提升到 5,000/h;若 gh CLI 或 GitHub Actions 已提供则自动拾取。
【适用场景】
- AI 编码智能体在安装依赖前的自动安全检查。
- 对项目或工作区进行依赖安全审计。
- 满足欧盟网络弹性法案(CRA)、美国第 14028 号行政令/OMB M-22-18、SOC 2、FedRAMP 及供应商采购的合规需求。
- 防御假面试/带回家测试类恶意软件。
- 借助 SARIF 输出对接 GitHub Code Scanning。
【限制与设计】
- 一切处理本地进行,无遥测、无使用上报;审计结果缓存于内存(5 分钟 TTL)和磁盘 ~/.depguard/cache/(24 小时 TTL),启动时清理。
- 零运行时依赖,网络错误时不抛异常,返回带警告的降级结果。
- TypeScript strict,100% 离线测试。
- 误报规避是每条检测规则的硬约束。
- 许可证为 Apache-2.0。
- 具体安装命令、完整工具列表和详细配置示例需参见项目仓库文档;官方文本中未给出全部 14 个工具的逐一说明及部分配置细节。