关于 MCP Customs
MCP Customs 是用于安装前检查 MCP 服务常见安全风险的本地命令行工具。它离线运行并采用可审查的启发式规则扫描,不上传数据;结果需结合其可能的误报和漏报判断。
主要功能
- 01离线扫描 MCP 服务
- 02检查命令执行与动态代码
- 03检测文件访问和凭据风险
- 04识别工具描述中的隐藏指令
- 05生成 SARIF 报告与徽章
适用场景
- 01安装前审查 MCP 服务代码
- 02在 CI 中扫描并按严重程度拦截
- 03生成项目 README 安全徽章
MCP 相关
它不是 MCP 服务,而是检查 MCP 服务代码的命令行工具,不连接 MCP 服务或客户端。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
还没有获取到工具列表
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
mcp-customs
在安装 MCP 服务之前,检查常见的安全风险。 完全离线运行。无遥测数据、无云端上传、无需账号。
npx mcp-customs scan ./some-mcp-server
──────────────────────────────────────────────────────
MCP-CUSTOMS INSPECTION REPORT
──────────────────────────────────────────────────────
target ./some-mcp-server
files scanned 14
score 62 / 100
stamp [ REVIEW ]
──────────────────────────────────────────────────────
[HIGH] MCP002 — Unsanitized file path (possible path traversal)
server.js:41 return fs.readFileSync(userPath, 'utf8');
fix: Resolve the path against an allowed base directory ...
为什么要做这个
开发者安装 MCP 服务的方式,就像以前安装 npm 包一样—— 迅速、信任名称,然后继续下一步。MCP 服务可以读取你的 文件、调用你的 API,并代表你执行命令。几乎没人会在将它连接到 Agent 之前, 检查它实际能做什么。
mcp-customs 是“安装前审计”这一步,可在本地几秒内完成。
检查内容(v0.1)
| 规则 | 严重性 | 检查内容 |
|---|---|---|
| MCP001 | 严重 | 执行 Shell 命令时使用未经清理的插值 |
| MCP002 | 高 | 读写文件时未防范路径遍历 |
| MCP003 | 严重 | eval() / 动态代码执行 |
| MCP004 | 高 | 硬编码的 API 密钥 / 凭据 |
| MCP005 | 严重 | 工具描述中包含隐藏指令类措辞(通过工具自身的元数据进行提示词注入) |
| MCP006 | 中 | 同时调用外部网络并读取环境变量(可能导致数据外泄) |
| MCP007 | 低 | 清单中未声明权限/作用域 |
这些检查基于启发式规则和正则表达式——速度快,也便于一次性全面审查,但并非数据流分析。它们可能会产生误报,也会漏掉更深入的分析能够发现的问题。请将 CLEARED 标记理解为“未发现明显问题”,而非“已验证安全”。
CI 用法
# .github/workflows/mcp-customs.yml
- run: npx mcp-customs scan . --sarif results.sarif --fail-on high
- uses: github/codeql-action/upload-sarif@v3
with:
sarif_file: results.sarif
为你的 README 获取徽章
npx mcp-customs scan . --badge --name your-server-name
路线图
- 将扫描结果发布到公共注册表(mcp-customs.dev),并提供可搜索的信任评分
- 动态/沙箱分析(捕获静态检查遗漏的问题)
- 针对 Python 的 AST 检查(当前 Python 规则仅基于正则表达式)
- 由社区对注册表条目进行举报/验证
许可证
Apache-2.0。不存在开源核心陷阱——无论如何,这个 CLI 都会保持免费。如果日后推出托管注册表/仪表板,那将是单独的付费产品; 此工具的本地扫描永远不会要求使用它。
评论
支持 Markdown
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。