Checkmcp

io.github.H129hj由 GitHub 账号 H129hj 发布v0.5.0更新于 Oct 24, 2026

Audit any MCP server's security & quality — OWASP MCP Top 10 + explainable 0-100 MCP Score

已验证STDIO仅桌面开发者工具安全与监控

概览

AI 生成的概览

审计任意 MCP 服务器的安全性、工具设计、模式质量与上下文开销,给出可解释的 0-100 MCP 评分。

可以做什么
CheckMCP 是一个厂商中立的 MCP 服务器审计工具。它只暴露一个工具 audit_mcp_server,让智能体可以在对话中询问某个 MCP 服务器是否安全。它从七个维度评分:安全性(OWASP MCP Top 10、工具投毒、硬编码密钥、命令注入)、工具设计、模式与描述完整度、上下文 token 开销、协议合规性、可靠性,以及对工具、资源和提示词三类原语的覆盖。每项扣分都按测量、机制、影响和分数变化归因;当模式中出现密钥或握手失败时,评分会被硬性封顶。
适用场景
适合在把某个 MCP 服务器接入智能体之前做评估,也适合在 CI 中做可重复的质量与安全检查。需要比较不同服务器、跟踪评分回退,或回答某服务器是否可安全连接时,都可以使用。
运行要求
以 stdio 本地进程运行,从 PyPI 安装为 audit-mcp,用 uvx 或 pipx 启动,因此需要 Python 工具链。除标准库外无依赖;tiktoken 为可选项,用于精确 token 计数。审计受 OAuth 保护的服务器需要在命令行传入 bearer token。--repo 参数使用 GitHub 数据,--deep 需要 mcp-scan 或 snyk 等外部扫描器。
安装前请注意
--evals 会向被审计服务器发送真实流量,用金丝雀输入调用只读工具,因此只应对获准探测的服务器使用。--token 是命令行传入的凭据。可选网关需要 GATEWAY_SECRET 与 GATEWAY_BACKEND_URL,在 active 模式下会拦截或剥离智能体与服务器之间的流量。checkmcp.dev 提供托管报告、徽章与监控。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Checkmcp,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

CheckMCP

[PyPI] [License: MIT] [GitHub Action] [Web audit]

Vendor-neutral quality / security / context-cost audit & score for any MCP server. One uvx/pipx command → an MCP Score /100 + causal opportunities (why the score), Lighthouse-style.

Installed from PyPI as audit-mcp (the name checkmcp was already taken); the command is audit-mcp. Brand, site and repo remain CheckMCP / checkmcp.dev.

bash
uvx audit-mcp https://mcp.deepwiki.com/mcp# orpipx run audit-mcp https://mcp.context7.com/mcp --jsonaudit-mcp https://my-mcp.example.com/mcp --token "$TOKEN"

Use it as an MCP server

audit-mcp mcp turns the auditor itself into an MCP server (stdio) exposing one tool, audit_mcp_server — so your agent can answer "is this MCP server safe?" mid-conversation.

bash
# Claude Codeclaude mcp add audit-mcp -- uvx audit-mcp mcp
json
// Cursor (.cursor/mcp.json) / Claude Desktop (claude_desktop_config.json){ "mcpServers": { "audit-mcp": { "command": "uvx", "args": ["audit-mcp", "mcp"] } } }

Registry name: io.github.H129hj/checkmcp

No dependencies (stdlib only). tiktoken optional for exact token counts.

What it measures (7 pillars)

  • Security — OWASP MCP Top 10 (tool poisoning, hardcoded secrets, command injection), lethal-trifecta.
  • Tool design — sprawl/consolidation (percentile-calibrated on real servers: median ~7 tools, p95 ~42).
  • Schemas / desc — descriptions + inputSchema/outputSchema completeness.
  • Context-cost — tokens spent on tools/list, paid on every request (the #1 pain of 2026).
  • Compliance — protocol-version gap, annotations, JSON-RPC error conformance, OAuth discovery.
  • Reliability — single-shot today (not credited; continuous T3 monitoring on checkmcp.dev).
  • Coverage — the 3 primitives (tools + resources + prompts).

Hard floors: secret-in-schema → cap D, failed handshake → cap F. Every penalty is attributed: measure → mechanism → effect → Δscore.

CLI flags

flagwhat
--jsonmachine-readable report
--badgeSVG badge + README embed snippets
--htmlstandalone SEO/GEO page (JSON-LD SoftwareApplication + FAQ)
--repo owner/nameadd maintenance/license/provenance signal from GitHub
--token <bearer>audit an OAuth-protected server
--min-score NCI: exit 1 if MCP Score < N
--baseline fileCI: pin tool definitions; fail on regression (rug-pull)
--gh-summaryCI: write a Markdown summary to $GITHUB_STEP_SUMMARY
--deepruntime depth via an external scanner (mcp-scan/snyk) if present
--evalsbehavioral sandbox: actually invokes read-only tools with canary inputs to catch tool-output prompt-injection, exfiltration vectors, secret/PII leakage and context bombs (sends real traffic; CI-fails on a malicious verdict)

GitHub Action

yaml
# .github/workflows/mcp-audit.ymlname: MCP auditon: [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

Behavioral evals (--evals)

Static analysis catches declared danger; --evals catches runtime danger by actually invoking read-only tools with canary inputs and inspecting the responses for tool-output prompt-injection, exfiltration vectors and secret/PII leakage (multilingual; optional callback-canary confirms exfil). CI-fails on a malicious verdict.

Self-hosted security gateway

Beyond auditing, CheckMCP ships an in-band MCP gateway — a proxy you put between your agent and an MCP server. It inspects every call, and in active mode blocks/strips tool-poisoning & exfiltration before they reach the agent. Run it in your own infra (tool traffic never leaves your network):

bash
docker pull ghcr.io/h129hj/checkmcp-gateway:latest   # or build from sourcedocker 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

See GATEWAY.md for config (passive/active, OAuth backends, policy, logs).

Hosted

Full reports, public directory, live badges, continuous drift monitoring, a governance policy API and a hosted gateway at checkmcp.dev.

Honest limitations

  • Percentile bands come from a growing corpus (one+ registries) — widening over time.
  • Exact tokens with pipx install "audit-mcp[exact-tokens]" (cl100k_base); otherwise chars/4 approximation.
  • Pillar weights are expert priors. python -m checkmcp.calibrate samples.json validates them against a labeled agent-success sample (per-pillar correlation + OLS-suggested weights + construct-validity R²) — supply real outcomes to close the loop.

MIT.

来源:README.md,提交 6d272b1

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

1
  1. v0.5.0最新Sep 16, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分