关于 checkmcp
CheckMCP 用于审计 MCP 服务的安全性、质量和上下文成本,并生成带有原因说明的评分报告。开发者和团队可手动检查服务或将审计加入 CI;它也能作为 MCP 服务或网关运行。
主要功能
- 01评估安全性与服务质量
- 02检查工具、Schema 和协议合规性
- 03测量工具列表的上下文成本
- 04运行行为评估
- 05生成 JSON、HTML 和徽章报告
- 06代理并检查 MCP 流量
适用场景
- 01采用前审计 MCP 服务
- 02在 CI 中按分数或定义变更失败
- 03检查运行时输出中的注入与数据泄漏
- 04通过自托管网关过滤工具调用
MCP 相关
运行 `audit-mcp mcp` 可向 MCP 客户端提供审计工具。CheckMCP 还提供可自托管的 MCP 网关,用于检查调用并阻止或剥离有害内容。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
1收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| url | string | 是 | 要审计的 MCP 端点 URL,例如 https://mcp.example.com/mcp |
| token | string | 否 | 如果目标服务需要身份验证,可选的 Bearer 令牌。 |
详细介绍
CheckMCP
适用于任何 MCP 服务的厂商中立质量 / 安全 / 上下文成本审计与评分。
一条 uvx/pipx 命令 → MCP 评分 /100 + 因果分析机会(评分原因),采用 Lighthouse 风格。
从 PyPI 安装的包名为
audit-mcp(checkmcp已被占用);命令为audit-mcp。品牌、网站和代码仓库仍为 CheckMCP / checkmcp.dev。
uvx audit-mcp https://mcp.deepwiki.com/mcp
# or
pipx run audit-mcp https://mcp.context7.com/mcp --json
audit-mcp https://my-mcp.example.com/mcp --token "$TOKEN"
将其用作 MCP 服务
audit-mcp mcp 会将审计工具本身转为 MCP 服务(stdio),并提供一个工具
audit_mcp_server——让你的 Agent 能在对话过程中回答 “这个 MCP 服务安全吗?”。
# Claude Code
claude mcp add audit-mcp -- uvx audit-mcp mcp
// Cursor (.cursor/mcp.json) / Claude Desktop (claude_desktop_config.json)
{ "mcpServers": { "audit-mcp": { "command": "uvx", "args": ["audit-mcp", "mcp"] } } }
注册表名称:io.github.H129hj/checkmcp
无依赖项(仅使用标准库)。tiktoken 可选,用于精确计算 token 数量。
测量内容(7 大支柱)
- 安全性 — OWASP MCP Top 10(工具投毒、硬编码密钥、命令注入)、致命三要素。
- 工具设计 — 工具蔓延 / 整合(根据真实服务的百分位数校准:中位数约为 7 个工具,p95 约为 42 个)。
- 架构 / 描述 — 描述以及
inputSchema/outputSchema的完整性。 - 上下文成本 —
tools/list消耗的 token,每次请求都要支付(2026 年最突出的痛点)。 - 合规性 — 协议版本差距、注释、JSON-RPC 错误一致性、OAuth 发现。
- 可靠性 — 目前仅进行单次检查(不计入评分;checkmcp.dev 提供持续 T3 监控)。
- 覆盖范围 — 3 种原语(工具 + 资源 + 提示词)。
硬性下限:架构中含有密钥 → 最高 D;握手失败 → 最高 F。每项扣分均会注明归因:测量 → 机制 → 影响 → Δscore。
CLI 标志
| 标志 | 说明 |
|---|---|
--json | 机器可读报告 |
--badge | SVG 徽章 + README 嵌入代码片段 |
--html | 独立的 SEO/GEO 页面(JSON-LD SoftwareApplication + FAQ) |
--repo owner/name | 从 GitHub 添加维护 / 许可证 / 来源信号 |
--token <bearer> | 审计受 OAuth 保护的服务 |
--min-score N | CI:如果 MCP 评分 < N,则退出码为 1 |
--baseline file | CI:固定工具定义;回归时失败(恶意替换) |
--gh-summary | CI:将 Markdown 摘要写入 $GITHUB_STEP_SUMMARY |
--deep | 如果存在外部扫描器(mcp-scan/snyk),则进行运行时深度扫描 |
--evals | 行为沙箱:使用金丝雀输入实际调用只读工具,以检测工具输出提示词注入、数据外泄途径、密钥 / PII 泄漏及上下文炸弹(会发送真实流量;如果判定为恶意,CI 将失败) |
GitHub Action
# .github/workflows/mcp-audit.yml
name: MCP audit
on: [push, pull_request]
jobs:
checkmcp:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: H129hj/checkmcp@v1
with:
url: https://my-mcp.example.com/mcp
min-score: "70"
baseline: .checkmcp-baseline.json # commit it → fails on rug-pull
行为评估(--evals)
静态分析能发现声明的危险;--evals 则通过使用金丝雀输入实际调用只读工具并检查其响应,发现运行时危险,包括工具输出提示词注入、数据外泄途径以及密钥 / PII 泄漏(支持多语言;可选的回调金丝雀可确认数据外泄)。
如果判定为恶意,CI 将失败。
可自托管的安全网关
除了审计之外,CheckMCP 还提供带内 MCP 网关——一个置于 Agent 与 MCP 服务之间的代理。它会检查每次调用,并在主动模式下拦截 / 移除工具投毒与数据外泄,防止其到达 Agent。 可在自己的基础设施中运行(工具流量绝不会离开你的网络):
docker pull ghcr.io/h129hj/checkmcp-gateway:latest # or build from source
docker run -p 8080:8080 -e GATEWAY_BACKEND_URL=https://mcp.example.com/mcp \
-e GATEWAY_MODE=active -e GATEWAY_SECRET=$(openssl rand -hex 16) \
ghcr.io/h129hj/checkmcp-gateway:latest
有关配置(被动 / 主动、OAuth 后端、策略、日志),请参阅 GATEWAY.md。
托管服务
完整报告、公开目录、实时徽章、持续漂移监控、治理策略 API 以及托管网关,均可在 checkmcp.dev 使用。
诚实的局限
- 百分位区间来自不断扩大的语料库(一个或多个注册表),并会随时间扩展。
- 使用
pipx install "audit-mcp[exact-tokens]"获取精确 token 数(cl100k_base);否则使用字符数除以 4 进行估算。 - 各支柱的权重是专家先验值。
python -m checkmcp.calibrate samples.json会根据已标注的 Agent 成功样本验证这些权重(各支柱相关性 + OLS 建议的权重 + 构念效度 R²)——提供实际结果即可形成闭环。
MIT。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。