
Pin MCP 工具合同,捕捉静默漂移。npm MCP 顶部的现场审计:218 次静默合同变更(包括 Microsoft、Google、Hostinger)——内部有收据和每周 CI 监控
概览
扫描仪在连接MCP服务器之前会检查它们。RugSnare会观察之后发生的事情:一个经过批准的工具,其描述被默许改动,却是地毯拉动,导致你的构建失败。 我们将安装最多的MCP服务器钉在npm上,运行更新并进行了差异化。一周的方法,收据如下: 完整报告,含逐字引用、供应商公告状态及单命令重复报告: 。自动每周跟进:audits/WEEKLY.md。 MCP 工具描述是你的代理服从但没人阅读的指令。它们在你批准后可能会改变——维护者更新、注册表被攻破、错别抢注包——悄悄携带的窃取指令(“附加 ~/.ssh/id_rsa 进行个性化”)。攻击类被规范为工具中毒(OWASP MCP03:2025)。版本固定在版本字符串不变时无济于事;扫描在批准后无效。 零依赖,不需要安装 NPM——只需 Node.js ≥ 18。 安装后(使用Node src/cli。
概述(AI 翻译)
MCP 工具描述的运行时完整性。 扫描器会在你连接它们之前检查 MCP 服务器。RugSnare 会监控在之后发生了什么:一个经过批准的工具,其描述无声地被更改为地毯拉动,导致你的构建失败。
现场审计:NPM MCP顶部218项无声合同变更(2026年10月)
我们将安装最多的MCP服务器钉在npm上,运行更新并进行了差异化。一周的方法,收据如下:
| 服务器 | 安装/周 | 发现 |
|---|---|---|
| @azure-DevOps/MCP(Microsoft) | 120k | 110 - 在次要版本之间移除了75个工具;#1448中的受害者 |
| chrome-devtools-mcp(Chrome DevTools 团队) | 1.7M | 30 - 所有 28 个模式都更改(重新评分:纯符号,参数层 0)+ 文件写入安全故事停止在变更日志/博客/行为中匹配 |
| @currents/MCP | 103k | 45 - 37 破坏漂移,更新日志从未说“破坏” |
| Hostinger-API-MCP | 265k | 6 - agent-instruction (SKILL.md) 资源注入一周 |
| @notionhq/notion-mcp-server(官方 Notion) | 195k | 0 |
| @heroku/mcp-server | 11k | 0 |
本页由 AI 翻译,技术细节请以原文为准。
README
以下为原文 README 节选,完整内容请查看原文。
RugSnare
218 silent contract changes found in the npm MCP top (Oct 2026) — not one announced in a changelog. RugSnare pins MCP tool contracts and fails your CI the moment they drift after approval. Scanners check servers before you connect them; RugSnare watches what happens after — an approved tool whose description silently changed is a rug pull.
★ Caught a drift? Star the repo — github.com/Paraphern/rugsnare
rugsnare scan --config .mcp.json # pin the contracts you approved
rugsnare diff --config .mcp.json # exit 1 the moment anything drifts
Field audit: 218 silent contract changes in the npm MCP top (Oct 2026)
We pinned the most-installed MCP servers on npm, ran the update, and diffed. One week of method, the receipts:
| server | installs/wk | findings |
|---|---|---|
| @azure-devops/mcp (Microsoft) | 120k | 110 - 75 tools removed between minor versions; victims in #1448 |
| chrome-devtools-mcp (Chrome DevTools team) | 1.7M | 30 - all 28 schemas changed (re-graded: pure notation, 0 parameter-level) + the file-write security story stopped matching across changelog/blog/behavior |
| @currents/mcp | 103k | 45 - 37 BREAKING drifts, changelog never says “breaking” |
| hostinger-api-mcp | 265k | 6 - agent-instruction (SKILL.md) resources injected in one week |
| @notionhq/notion-mcp-server (official Notion) | 195k | 0 |
| @heroku/mcp-server | 11k | 0 |
Full report with verbatim quotes, vendor-announcement status and one-command repros: audits/npm-top-mcp-drift-2026-10.md. Automated weekly follow-up: audits/WEEKLY.md.
Independent measurements
Our audit is not a lone number. Two third-party datasets — published with method and caveats, neither affiliated with us — land on the same shape from different angles:
安装
npx -y rugsnare mcp配置
{ "mcpServers": { "rugsnare": { "command": "npx", "args": ["-y", "rugsnare", "mcp"] } } }