Compuute/compuute-scan-api

GitHub: Compuute/compuute-scan-api

面向 MCP 服务器的静态安全扫描即服务,通过 HTTP API 接收 GitHub 仓库地址并返回基于 MCP 专用规则的结构化安全报告。

Stars: 0 | Forks: 0

# compuute-scan-api **面向 MCP 服务器的扫描即服务。** 基于 [compuute-scan](https://github.com/Compuute/compuute-scan)(一款针对 MCP 的专用静态安全扫描器)构建的 HTTP + MCP 封装。专为可供 Agent 调用的场景而设计。 发送一个公开的 GitHub 仓库 URL 进行 POST 请求 → 即可获取一份结构化的安全报告,该报告基于涵盖 8 种语言(TS/JS、Python、Go、Rust、C#、Java、Kotlin)的 37 条 MCP 专用规则进行评分。 ## 端点 | 方法 | 路径 | 用途 | |--------|------|---------| | POST | `/v1/scan` | 扫描公开的 GitHub MCP-server 仓库 | | GET | `/v1/scan/info` | 扫描器版本、限制与功能 | | GET | `/v1/health` | 存活状态 + 扫描器二进制文件检查 | | GET | `/openapi.json` | OpenAPI v3 规范(用于 Agent 发现) | | /mcp/ | (计划中) | 包含 `scan_mcp_server` 工具的 MCP 服务器 | ## 示例 ``` 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 | | 严格的输入校验 | Pydantic `extra="forbid"`,仅限 GitHub HTTPS | | 用于发现的 OpenAPI | `GET /openapi.json`,每个字段均包含描述 | | 如实的框架设定 | 每个响应都带有 `_disclaimer` — 声明为模式匹配,而非可利用性声明 | ## 本地开发 ``` 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 ``` ## 测试 ``` pytest tests/ -v ``` ## 架构 - `api/services/scan.py` — 克隆 + 沙箱 + 扫描 + 解析。纯函数。 - `api/serializers/scan_serializer.py` — Pydantic 模型,严格校验。 - `api/routes/scan.py` — HTTP 层:幂等性、缓存、ETag。 - `main.py` — FastAPI 组装。 内置的 compuute-scan 版本通过 `COMPUUTE_SCAN_PATH` 环境变量进行配置。 ## 产品化路线图 | 层级 | 目标受众 | 价格 | |------|----------|-------| | 免费版 | 独立开发者、Agent 构建者 | 每天 3 次扫描 | | 专业版 | 将 MCP 推向生产的团队 | 待定 | | 审核版 | 由 Compuute AB 进行的人工 L2-L4 审核 | $5K-30K — 参见 [compuute.se/audit](https://compuute.se/audit) | ## 文档 | 文档 | 用途 | |-----|-----| | [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md) | 组件图、请求流程、威胁模型、部署拓扑 | | [docs/DEVELOPMENT.md](docs/DEVELOPMENT.md) | 本地设置、布局、代码风格、常见陷阱 — 30 分钟内引导新开发者上手 | | [docs/STRATEGY.md](docs/STRATEGY.md) | 定位、定价层级、路线图、决策日志 — 为什么我们这样构建它 | | [docs/MONITORING.md](docs/MONITORING.md) | 需关注的端点、自动检查、故障处理手册 | | [docs/agentic-market-submission.md](docs/agentic-market-submission.md) | 登录 Agentic.market 的三条路径及工程量预估 | | [scripts/status.sh](scripts/status.sh) | 30 秒项目状态检查(随时可运行) | ## 安全 发现漏洞?请参阅 [SECURITY.md](SECURITY.md) — 发送邮件至 security@compuute.se。我们遵循 90 天的协调披露窗口期。 ## 许可证 MIT(与 compuute-scan 保持一致)。 ## 作者 Compuute AB — daniel@compuute.se
标签:IPv6支持, MCP, REST API, 代码安全, 安全扫描, 安全规则引擎, 对称加密, 时序注入, 漏洞枚举, 自动化审计, 逆向工具, 错误基检测, 静态代码分析