mcpField
P
package-guard-mcp

package-guard-mcp

本地服务
github.com/mlawsonking安全1今天更新

关于 package-guard-mcp

package-guard-mcp 是帮助 AI 编码 Agent 在安装前审查软件包的 MCP 服务。它检查注册表收录情况、OSV 公告、软件包元数据和相似名称,但不会获取软件包内容。

主要功能

  1. 01验证 npm 和 PyPI 中的软件包
  2. 02检查 OSV 漏洞与恶意软件公告
  3. 03查看软件包年龄、下载量和元数据
  4. 04审计清单文件中的依赖项
  5. 05查找已注册的 ASCII 相似名称

适用场景

  1. 01安装建议的软件包前进行审查
  2. 02检查 package.json 或 requirements.txt 中的依赖
  3. 03查询软件包版本是否有已知公告

MCP 相关

向 MCP 客户端提供 `verify_package`、`check_vulns`、`package_info`、`audit_deps` 和 `typosquat_scan`。它查询注册表和 OSV,不会获取软件包内容。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"mlawsonking-package-guard": {
"command": "npx",
"args": [
"-y",
"package-guard-mcp"
]
}
}
}
启动命令npx -y package-guard-mcp

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmpackage-guard-mcp1.3.0

工具

5

收录的工具列表 · 更新于 2 周前

参数类型必填说明
namestring是软件包名称(例如 "express"、"@scope/pkg"、"requests")。
versionstring否要检查漏洞的特定版本(默认:latest)。
ecosystemenum否包生态系统:npm 或 pypi(默认 npm)。此处其他生态系统没有注册表客户端。请对这些生态系统使用 check_vulns。npm | pypi

详细介绍

package-guard-mcp

一个 MCP 服务,可在 Agent 安装软件包前对其进行检查。它会确认软件包名称已注册、OSV 中没有针对它的安全公告,并检查软件包的发布时间和下载量。结果确定性高,不使用大模型,且免费。

大模型经常会建议不存在的软件包名称,攻击者会注册这些幻觉名称,将恶意软件混入由 Agent 执行的安装中。这种做法被称为 slopsquatting。检查方法是查询注册表:如果 npm 或 PyPI 中没有该名称的软件包,verify_package 会返回 likely_hallucination: true。这只表示“在此注册表中不存在”,仅此而已——它无法区分虚构名称、拼写错误或重命名;仅存在于私人注册表中的软件包也会被判定为缺失。

它绝不会获取或读取软件包内容。没有安装脚本、代码或 tarball。没有 OSV 安全公告且下载量健康的恶意软件包,会被判定为 safe。

安装

{ "mcpServers": { "package-guard": { "command": "npx", "args": ["-y", "package-guard-mcp"] } } }

工具

  • verify_package:主要防护工具。根据注册表中是否存在该名称(若不存在,会返回 likely_hallucination,并在 npm 上附带“你是不是想找”列表)、OSV 中已知的漏洞和恶意软件信息、发布时间和每周下载量、名称与 npm 搜索结果的编辑距离是否在 2 以内、弃用情况和许可证,返回 safe、caution 或 danger。
  • check_vulns:通过 OSV 查询名称和版本对应的已知漏洞及恶意软件安全公告。
  • package_info:注册表元数据,包括最新版本、弃用情况、许可证、代码仓库、每周下载量和发布时间。
  • audit_deps:检查一组名称、package.json 中的 dependencies 和 devDependencies,或 requirements.txt。
  • typosquat_scan:生成 ASCII 外观相似的名称,并报告其中哪些已注册。

范围和限制

check_vulns 直接查询 OSV.dev,支持全部七个生态系统:npm、PyPI、Go、crates.io、RubyGems、Maven、NuGet。其他所有检查都需要软件包注册表,目前支持两个客户端:npm 和 PyPI。因此,verify_package、package_info、audit_deps 和 typosquat_scan 仅接受 npm 或 pypi。建议和易混淆名称信号使用 npm 搜索 API,因此仅支持 npm。

audit_deps 读取清单文件,不读取锁文件,也不会解析依赖树。它只检查你提供的条目及其依赖,不会检查这些条目的依赖项,最多检查 40 个名称。版本范围会简化为其中的数字,因此 ^4.17.20 会按 4.17.20 检查。

vulnerabilities.checked: false 且 count: null 表示 OSV 请求失败,软件包未经过检查;verify_package 会将判定下调为 caution,而不是判定为安全。count: 0 表示 OSV 已响应,且没有发现问题。audit_deps 目前没有此类防护:如果其批量 OSV 请求失败,每个软件包都会报告 0 个漏洞。

规则更新

此服务大约每天会向规则源询问是否有更新的规则集,并在有更新时应用。请求包含两项内容:发起请求的界面(此处为 facade),以及当前已安装的规则版本。不包含机器 ID、用户 ID、文件名,也不包含任何扫描内容。

规则包使用 Ed25519 签名,并通过编译进此软件包的公钥进行验证,因此由哪个镜像提供规则包并不重要。如果规则包未通过签名、架构或 ReDoS 检查,就会被丢弃,现有规则保持不变。使用 --offline 可关闭更新;设置 AGENT_GUARDS_NO_FEED=1 或在 ~/.agent-guards/config.json 中配置 {"feed": false} 也可关闭更新。规则包格式及自行验证方法:https://github.com/mlawsonking/MCP/blob/main/rules/README.md

它会调用 https://package-guard.vercel.app(设置 PACKAGE_GUARD_API 可覆盖)。这是此仓库中的六个 Agent 防护工具之一。MIT 许可。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。