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, 代码安全, 安全扫描, 安全规则引擎, 对称加密, 时序注入, 漏洞枚举, 自动化审计, 逆向工具, 错误基检测, 静态代码分析