关于 Compuute MCP Security Scanner
Compuute MCP Security Scanner 是用于扫描公开 GitHub MCP 服务仓库的 HTTP 和 MCP 服务。它依据 MCP 专项静态规则生成结构化结果;扫描项是供分流审查的模式匹配,并非已确认漏洞。
主要功能
- 01扫描公开 GitHub 仓库
- 02应用 38 条 MCP 专项规则
- 03返回结构化发现项和评分
- 04提供 HTTP API 与 Streamable HTTP MCP 工具
适用场景
- 01采用前对 MCP 服务仓库进行初步筛查
- 02在 MCP 开发期间审查扫描结果
MCP 相关
它通过 `/mcp/` 上的 Streamable HTTP 向 MCP 客户端提供 `scan_mcp_server` 工具。扫描结果是模式匹配,应作为待分流审查项,而非已确认漏洞。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://scan.compuute.se/mcp/claude mcp add --transport http compuute-compuute-scan-api https://scan.compuute.se/mcp/{"mcpServers":{"compuute-compuute-scan-api":{"type":"http","url":"https://scan.compuute.se/mcp/"}}}在 Cursor 中打开{"servers":{"compuute-compuute-scan-api":{"type":"http","url":"https://scan.compuute.se/mcp/"}}}在 VS Code 中打开{"mcpServers":{"compuute-compuute-scan-api":{"type":"http","url":"https://scan.compuute.se/mcp/"}}}{"mcpServers":{"compuute-compuute-scan-api":{"serverUrl":"https://scan.compuute.se/mcp/"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
1| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| github_url | string | 是 |
详细介绍
compuute-scan-api
面向 MCP 服务的扫描即服务。 基于 compuute-scan 的 HTTP + MCP 封装——这是一款专为 MCP 设计的静态安全扫描器。面向可由 Agent 调用的场景。
提交一个公开的 GitHub 仓库 URL → 获取结构化安全报告,报告根据 8 种语言(TS/JS、Python、Go、Rust、C#、Java、Kotlin)中的 38 条 MCP 专属规则进行评分。
诚实说明(请先阅读): compuute-scan 是一款模式覆盖广度检测器,并非可利用性判定工具。经人工验证后,原始输出的历史误报率约为 90%(针对 modelcontextprotocol/servers 验证:138 条原始发现 → 13 条确认问题)。每个响应都包含
_disclaimer字段,明确说明这一点。请将发现结果作为待分诊队列,而非已确认漏洞清单。各规则的透明度信息请参阅 docs/FP-RATES.md。
服务运行于 https://scan.compuute.se。服务版本由 /v1/health 报告。
端点
核心扫描
| 方法 | 路径 | 用途 | 认证 |
|---|---|---|---|
| POST | /v1/scan | 扫描公开的 GitHub MCP 服务仓库(免费额度,受速率限制) | 无 |
| POST | /v1/scan/pay | 通过 x402 小额支付使用上述服务(Base L2 上 $0.10 USDC) | X-Payment 请求头 |
不带请求体调用 POST /v1/scan/pay,即可在不付款的情况下读取支付要求——请求体设为可选,正是为了让发现探测请求能够到达 402 响应,而非被请求体验证拦截。使用 Coinbase Agentic Wallet CLI 验证:
npx awal x402 details https://scan.compuute.se/v1/scan/pay
| GET | /v1/scan/info | 扫描器版本、限制和支持的生态系统 | 无 |
| GET | /v1/health | 存活状态和扫描器二进制文件可用性 | 无 |
机器可读协议
| 方法 | 路径 | 用途 |
|---|---|---|
| GET | /openapi.json | OpenAPI v3 规范,包含各字段说明 |
| GET | /docs | OpenAPI 规范的 Swagger UI |
MCP 服务(在线)
| 端点 | 工具 | 传输方式 |
|---|---|---|
/mcp/ | scan_mcp_server(github_url) | Streamable HTTP |
在 Claude Code 中安装:claude mcp add compuute-scan --transport http --url https://scan.compuute.se/mcp/
发现(/.well-known/)
| 路径 | 格式 | 使用方 |
|---|---|---|
/.well-known/agent-card.json | A2A v1.0 Agent Card(规范路径) | A2A 协议客户端 |
/.well-known/agent.json | A2A Agent Card(别名) | 1.0 之前的 A2A 客户端/爬虫 |
/.well-known/ai-plugin.json | OpenAI 插件清单 | ChatGPT / OpenAI 工具 |
/.well-known/x402.json | x402 支付清单 | Coinbase Agent.market 爬虫、x402 聚合器 |
/.well-known/x402 | x402.json 的别名 | 不带 .json 后缀的 x402 探测请求 |
/llms.txt | Markdown 摘要 | 按照 llmstxt.org 规范,由大模型驱动的 Agent 搜索爬虫(Exa、Perplexity 风格) |
/robots.txt | 爬虫策略 | 搜索引擎 |
/sitemap.xml | URL 索引 | 搜索引擎 |
示例
curl -X POST https://scan.compuute.se/v1/scan \
-H 'Content-Type: application/json' \
-H 'Idempotency-Key: 00000000-0000-0000-0000-000000000001' \
-d '{"repo_url": "https://github.com/modelcontextprotocol/servers"}'
响应(已截断):
{
"repo_url": "https://github.com/modelcontextprotocol/servers",
"scanner": {"name": "compuute-scan", "version": "0.6.2", "layers_covered": ["L0", "L1"]},
"summary": {"critical": 1, "high": 94, "medium": 22, "low": 0, "files_scanned": 77},
"score": 0,
"recommendation": "AVOID — 1 critical and 94 high finding(s)...",
"top_findings": [...],
"performance": {"clone_seconds": 1.2, "scan_seconds": 0.5, "repo_size_bytes": 41234},
"_disclaimer": "PATTERN MATCH — compuute-scan is a static analyzer..."
}
面向 Agent 的 API 功能
| 功能 | 方式 |
|---|---|
| 幂等重试(24 小时缓存) | Idempotency-Key 请求头 |
| HTTP 缓存 | ETag + Cache-Control: public, max-age=1800 |
| 条件 GET | If-None-Match → 304 Not Modified |
| 速率限制请求头 | X-RateLimit-Limit/Remaining/Reset |
| 严格输入验证 | Pydantic extra="forbid",仅允许 GitHub HTTPS |
| OWASP 安全请求头 | HSTS / X-Frame-Options / X-Content-Type-Options / CSP / Referrer-Policy / Permissions-Policy |
| OpenAPI 发现 | GET /openapi.json,每个字段均附有说明 |
| MCP Agent 发现 | /mcp/ 提供 scan_mcp_server 工具 |
| 通过 x402 自主购买 | /v1/scan/pay 返回包含 USDC/Base 支付要求的 402 响应 |
| 如实说明 | 每个响应都包含 _disclaimer——结果是模式匹配,不代表可利用性结论 |
定价
| 层级 | 受众 | 价格 |
|---|---|---|
| 开源 CLI | 独立开发者、Agent 构建者 | $0 — npx compuute-scan ./repo |
| 托管 API(免费) | 评估 MCP 服务的 Agent 运营者 | $0 — POST /v1/scan,有速率限制 |
| 托管 API(x402) | Agent.market 生态中的自主 Agent | $0.10 USDC/次扫描 — POST /v1/scan/pay |
| MCP 安全审计 | 将 MCP 产品投入生产的企业 | $5K–$30K SoW |
| AI 采购风险审计 | 采购企业级 AI 能力的 CFO/CTO/CISO | $5K–$15K SoW |
包含 JSON-LD 的完整价格明细:https://compuute.se/pricing。
本地开发
python3 -m venv venv && source venv/bin/activate
pip install -r requirements.txt
export COMPUUTE_SCAN_PATH=$HOME/compuute-scan/compuute-scan.js
uvicorn main:app --reload
x402 付款环境变量(本地均为可选;在设置钱包前,/v1/scan/pay 会返回 503):
| 变量 | 用途 | 默认值 |
|---|---|---|
X402_WALLET_ADDRESS | 接收 USDC 的 Base L2 地址 | 未设置(x402 已禁用) |
X402_NETWORK | CAIP-2 网络 ID — eip155:8453(Base 主网)或 eip155:84532(Base Sepolia) | eip155:8453 |
X402_PRICE_USD | 每次扫描的价格 | 0.10 |
X402_FACILITATOR_URL | Facilitator 基础 URL | CDP facilitator(同时支持两个网络) |
CDP_API_KEY_ID / CDP_API_KEY_SECRET | 用于 facilitator 验证/结算授权的 CDP API 密钥 | 未设置(验证请求会被拒绝) |
在测试网上演练付款
设置 X402_NETWORK=eip155:84532,即可按 Base Sepolia USDC 报价,该代币可从水龙头免费获取。CDP facilitator 也支持 Sepolia,因此测试网付款会经过真实的验证/结算流程,并使用真实的 CDP API 密钥,而无需转移真实资金。
每个网络都会同时选择资产地址和 EIP-712 域:Base 主网 USDC 使用 "USD Coin" 签名,Base Sepolia 使用 "USDC" 签名。混用会导致每个签名都失败,且报错看起来像是 API 密钥有误,因此它们被放在同一个 NETWORKS 表中,而非拆分为单独的环境变量。
默认使用主网,未知值也会回退到主网,因此即使拼错,也绝不会悄无声息地要求真实 Agent 使用毫无价值的测试网 USDC 付款。使用 curl -s https://scan.compuute.se/v1/health 查看当前运行模式 — x402 区块会报告 network 和 testnet。
测试
pytest tests/ -v
# 34 tests covering scan, x402, MCP, discovery, OpenAPI
脚本
| 脚本 | 功能 |
|---|---|
scripts/precheck.sh | 会话开始时检查:分支、工作区、测试、线上状态、下一个待办事项 |
scripts/postcheck.sh | 会话结束时检查:提交者规范、测试,并追加到 docs/PROGRESS.md |
scripts/status.sh | 针对 scan.compuute.se 检查线上状态,耗时 30 秒(4 项探测) |
scripts/sbom.sh | 生成 CycloneDX SBOM,可选择上传到 GitHub Release |
scripts/prospect-research.sh | 从 GitHub 和 Anthropic Registry 获取合格潜在客户,并拟定私信切入点 |
scripts/measure-tiers.sh | 根据 docs/agent-economy-strategy.md §5 生成 T0/T1/T2 分布快照 — 通过 Railway 日志、Base RPC 和 GitHub 星标衡量触达、互动和转化 |
架构
api/services/scan.py— 克隆 + 沙箱 + 扫描 + 解析。纯函数。api/services/x402_service.py— 基于官方x402SDK 进行 x402 v2 验证/结算;默认使用 CDP facilitator(Base 主网);在 402 响应正文中加入 Bazaar 发现扩展。api/services/cdp_auth.py— 用于 facilitator 的精简 CDP API 密钥 JWT 身份验证(PyJWT + cryptography;避免使用完整的 cdp-sdk)。api/serializers/scan_serializer.py— Pydantic 模型,严格验证。api/routes/scan.py—/v1/scan的 HTTP 层:幂等性、缓存、ETag。api/routes/scan_x402.py—/v1/scan/pay的 HTTP 层。api/routes/discovery.py—/.well-known/*、/robots.txt、/sitemap.xml。api/mcp_server.py— 暴露scan_mcp_server的 FastMCP 服务。main.py— FastAPI 组装 + 中间件(安全标头、CORS)。
Dockerfile 中固定了捆绑的 compuute-scan 版本(ARG COMPUUTE_SCAN_REF=v0.6.2)。
文档
| 文档 | 适用对象 |
|---|---|
| docs/agent-economy-strategy.md | 战略文档 — 经 a16z 验证的数据、11 信号买方 Agent 模型、双轨战略、30 天转向触发条件。如果你想了解这家公司,请先阅读。 |
| docs/STRATEGY.md | 定位、定价层级、路线图、决策日志 |
| docs/ARCHITECTURE.md | 组件图、请求流、威胁模型、部署拓扑 |
| docs/DEVELOPMENT.md | 本地设置、目录布局、代码风格、常见陷阱 — 30 分钟内让新开发者完成入职 |
| docs/MONITORING.md | 需要监控的端点、自动化检查、故障运行手册 |
| docs/FP-RATES.md | 各规则误报情况透明说明 |
| docs/scan-self-triage.md | 对扫描器自身代码运行扫描时的报告内容 |
| docs/whitepaper/ | MCP 安全方法论 v1.0(Markdown + PDF) |
| docs/case-studies/ | 2026 年 5 月批次的三份匿名客户报告 |
| docs/advisories/ | 使用 COMPUUTE-YYYY-NNN 编号的公开公告 |
| docs/security/ | 自行渗透测试报告(每 90 天一次) |
| docs/audits/ | AI 采购风险审计清单(获客资料) |
| docs/compliance/ | SOC 2 Type I 就绪声明、TSC 控制映射 |
| docs/submissions/ | 可用于 PR/市场的 LangChain + CrewAI 工具封装 |
| skills/compuute-scan/ | Claude Skill 软件包(SKILL.md + scan.sh)— 已提交至 anthropics/skills#1346 |
| CODE_OF_CONDUCT.md | Contributor Covenant 2.1 |
| docs/launches/ | Show HN 草稿 + 发布清单 |
| docs/setup/ | 状态页(BetterStack)+ 分析(PostHog)设置指南 |
| docs/agentic-market-submission.md | 登上 Coinbase Agent.market 的三条路径 |
| BACKLOG.md | GitHub Issues + Project 看板路线图 |
| IDEAS.md | 已整理的产品假设及其门控规则 |
| CONTRIBUTING.md | 如何参与贡献 |
| SECURITY.md | 漏洞披露政策(90 天窗口) |
安全
发现漏洞?请参阅 SECURITY.md — 发送邮件至 [email protected]。我们遵循 90 天协调披露窗口。
许可证
MIT(与 compuute-scan 一致)。
作者
Compuute AB — [email protected]
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。