文档导航

信任

安全概况

Star 衡量人气。评分衡量仓库信号。认证证明服务器能响应真实的 MCP 握手。安全概况回答第四个问题:这段代码在你的机器上运行时能触及什么。每个已认领和已认证的服务器每周扫描一次,列表页展示答案。

概况是一份披露,不是判决。浏览器自动化服务器必须运行命令。API 封装必须与其 API 通信。配置编辑器的工具必须写入编辑器的配置目录。这些都没有错,概况也不会这样说。它陈述代码做了什么,每一项背后都有文件和行号,把决定留给你。

扫描器是NVIDIA SkillSpector,一个面向代理技能和 MCP 服务器的开源(Apache 2.0)安全扫描器,以静态模式运行。不会执行任何代码:扫描读取仓库的最新快照,遍历代码,并向 OSV.dev 查询依赖。它与认证是两回事,认证会在内核沙箱中真正运行服务器。

扫描查找什么

01

已知漏洞依赖

锁文件和清单与 OSV.dev 比对,适用于固定版本的每个 CVE 和 GHSA 公告都会带着编号显示。这是最常见也最容易修复的发现。

02

数据可能去哪里

对外请求及其背后的主机、批量读取整个环境变量、把对话内容发送出去,以及环境变量或文件内容流向网络或 shell 汇点的污点流。

03

代码可以触碰什么

shell 命令、运行时加载的代码、其他代理的配置目录、SSH 密钥或云凭据文件、本地 .env 文件、sudo、Docker socket 和特权容器。

04

面向代理的指令

提示注入、反拒绝文本和代理配置窥探,检查范围是代理真正会读取的文件:AGENTS.md、CLAUDE.md、SKILL.md 以及 .claude、.cursor、.codex 目录。

05

已知恶意模式

针对恶意软件、webshell 和挖矿程序的 YARA 特征,以及静态审查无法跟踪的编码载荷和混合文字系统文本。

概况如何生成

SkillSpector 为小型技能目录而设计。对准整个 MCP 服务器仓库时它会报告很多:README 里的 HTML 注释算作隐藏指令,.gitignore 中的 .env 字符串算作凭据访问,每次对外 API 调用算作外泄。它自身的风险评分把微软的 Playwright MCP 定为 100,CRITICAL。这就是 MCPVault 不公布评分的原因。它保留全部发现,并把真正重要的部分转换成一份概况:

  1. 发现按所在文件分类。发布代码和面向代理的指令文件计入。README、其他文档、配置、CI 和测试文件记录为备注并排除。
  2. 剩余的每个发现映射到一项能力,即用平实语言描述代码能做什么。多个发现可以支撑同一项能力,概况显示它出现在多少处。
  3. 带有已知公告的依赖单独列出,按包名、版本和编号,直接来自 OSV.dev。
  4. 八项核心能力即使未检测到也会被列出,让一份安静的概况仍然说出具体内容。

概况可能包含的能力:

与外部服务通信发起对外请求。主机会被列出,便于你了解数据去向。
批量读取环境变量复制或枚举整个环境,其中可能包含其他工具的密钥。
向外发送对话内容把提示、消息或工具结果记录或转发到你机器之外的服务。
运行 shell 命令在你的机器上启动进程。对命令、浏览器和构建类工具来说属于预期行为。
运行时加载代码使用 eval、动态导入或编码载荷,静态审查无法完全跟踪。
读写其他代理的配置触碰 ~/.claude、~/.codex 或 ~/.cursor 等目录,这些目录存放设置,有时也存放密钥。
访问凭据文件引用 SSH 密钥、云凭据文件或令牌存储。
读取本地配置文件加载 .env、.npmrc 或配置文件。对需要 API 密钥的服务器来说很正常。
使用提升的权限发布代码中出现 sudo、Docker socket 或特权容器。
安装自身以便稍后运行写入启动项、cron 任务或会话结束后仍存在的状态文件。
包含面向 AI 代理的指令代码或面向代理的文件中有引导模型行为的文本。信任之前值得一读。
未经检查地传递模型输出模型输出未经验证就进入 HTML、SQL 或 shell。
获取用户提供的 URL根据输入请求任意 URL,包括内部地址。
反序列化不受信任的数据对非自身生成的数据使用 pickle、yaml.load 或类似方法。
运行时执行未固定版本的包不带版本号执行 npx 或 uvx,上游若被入侵,恶意版本会被运行。
匹配已知恶意模式匹配到恶意软件、webshell 或挖矿程序的 YARA 特征。运行任何东西之前先检查该文件。

暴露面等级

概况带有一个概括词,即暴露面等级,让列表可以一眼读懂。暴露面描述代码能触及机器及其机密的范围。它只根据检测到的能力得出,从不使用风险评分,也不评判这种触及是否合理。终端工具因为运行命令而是“有限”;编辑器集成因为写入编辑器配置目录而是“较广”。两者都只是在做本职工作。

最小除对外请求和读取本地配置外未检测到任何能力。
有限会运行 shell 命令、运行时加载代码、获取 URL 或执行未固定版本的包,但没有下面的敏感能力。
较广有一到两项敏感能力:批量读取环境变量、向外发送对话内容、其他代理的配置、凭据文件、提升的权限或反序列化不受信任的数据。
广泛三项或更多敏感能力,或匹配到已知恶意模式。

不在概况中的内容

扫描前会把快照裁剪到用户真正安装的部分:测试、CI 工作流、docs 目录、示例、构建产物和 vendored 依赖都会移除。仍留在文档或配置中的模式匹配会记录为带一行原因的备注。拥有者仪表板列出它们,公开概况只显示数量。

没有评分。MCPVault 内部有一套权重用于安排审核队列,但网站上不会据此给服务器排名或着色,上面的暴露面等级也不使用它。

如何阅读概况

先看检测到的清单,问问每一项是否符合这个服务器的用途。运行 shell 命令的文件系统服务器只是在做本职工作;批量读取环境变量的天气服务器值得看看发生在哪个文件。然后读主机一行,那是你的数据可能去的地方。再检查依赖清单,旧的锁文件是最常见也最容易修复的一项。

“未检测到”一行是故事的另一半。什么都没检测到的服务器,意味着扫描器认识的模式一个都没找到。这不是安全的证明,但它是一条你可以拿来核对代码的具体陈述。

面向服务器拥有者

仪表板显示每一项,包括文件、行号、匹配的代码片段和修复建议,以及被排除的备注。概况不会因为你认领而惩罚你:同样的代码无论列表是否属于你都触及同样的东西,而认证徽章旁边一份诚实的概况,正是让用户放心安装的东西。

刷新锁文件后,下一次每周运行会清除公告。对于设计上必需的能力,在 README 里用一句话解释服务器为何需要它们,比扫描器能说的任何话都更有帮助。如果概况显示不可用,说明列表上的仓库地址是私有的、已改名,或大到无法生成快照;请在列表编辑器中修正,下一次运行会重试。

局限

这是基于模式的静态分析。它能找到看起来像已知模式的东西,但不能证明没有未知问题,也不是渗透测试。看起来像凭据路径的字符串可能只是注释。所以每一项都标出文件和行号,方便你自己核对。

概况是对认证的补充。认证证明服务器能运行并响应,概况告诉你代码在运行时会去触碰什么。两者都不能替代在授予服务器文件、密钥或 shell 访问之前阅读源码,也不能替代客户端的工具审批提示。

浏览目录