Compuute MCP Security Scanner について
Compuute MCP Security Scannerは、公開GitHubのMCPサーバーリポジトリを検査するHTTP・MCPサービスです。MCP固有の静的ルールに基づく結果を返しますが、検出は確定した脆弱性ではなく、精査対象のパターンマッチです。
主な機能
- 01公開GitHubリポジトリのスキャン
- 02MCP固有ルール38件の適用
- 03構造化された検出結果とスコア
- 04HTTP APIとStreamable HTTP MCPツール
活用シーン
- 01採用前のMCPサーバーリポジトリの一次確認
- 02MCP開発中のスキャン結果の確認
MCP 対応
`/mcp/`でStreamable HTTP経由の`scan_mcp_server`ツールをMCPクライアントに公開します。検出結果は確定した脆弱性ではなく、優先度付けして精査する対象です。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
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 に特化した静的セキュリティスキャナーで、エージェントから呼び出して利用できるように設計されています。
公開 GitHub リポジトリの URL を POST すると、8 言語(TS/JS、Python、Go、Rust、C#、Java、Kotlin)にわたる MCP 固有の 38 ルールに基づいてスコアリングされた、構造化セキュリティレポートが返されます。
正直な説明(最初にお読みください): compuute-scan はパターン網羅性検出器であり、悪用可能性を判定するものではありません。手動検証後の過去の誤検出率は、**生の出力で約90%**です(modelcontextprotocol/servers で検証:生の検出結果138件のうち、確認済みは13件)。すべてのレスポンスには、これを明示する
_disclaimerフィールドが含まれます。検出結果は、確認済みの脆弱性一覧ではなく、優先順位付けのためのキューとしてご利用ください。ルールごとの透明性については、docs/FP-RATES.md をご覧ください。
https://scan.compuute.se で稼働中です。サービスのバージョンは /v1/health で確認できます。
エンドポイント
コアスキャン
| Method | Path | Purpose | Auth |
|---|---|---|---|
| POST | /v1/scan | 公開 GitHub MCP サーバーリポジトリをスキャンします(無料枠、レート制限あり) | なし |
| POST | /v1/scan/pay | x402 のマイクロペイメント(Base L2 で $0.10 USDC)を利用して上記と同じスキャンを実行します | X-Payment ヘッダー |
支払い要件を支払わずに確認するには、本文なしで /v1/scan/pay に POST します。リクエスト本文が任意なのは、検出プローブが本文の検証ではなく 402 に到達するようにするためです。Coinbase Agentic Wallet CLI で確認できます。
npx awal x402 details https://scan.compuute.se/v1/scan/pay
| GET | /v1/scan/info | スキャナーのバージョン、制限、対応エコシステム | なし |
| GET | /v1/health | 稼働状況とスキャナーバイナリの利用可能性 | なし |
機械可読コントラクト
| Method | Path | Purpose |
|---|---|---|
| GET | /openapi.json | フィールドごとの説明を含む OpenAPI v3 仕様 |
| GET | /docs | OpenAPI 仕様の Swagger UI |
MCP サーバー(稼働中)
| Endpoint | Tool | Transport |
|---|---|---|
/mcp/ | scan_mcp_server(github_url) | ストリーミング可能な HTTP |
Claude Code へのインストール:claude mcp add compuute-scan --transport http --url https://scan.compuute.se/mcp/
検出(/.well-known/)
| Path | Format | Consumer |
|---|---|---|
/.well-known/agent-card.json | A2A v1.0 エージェントカード(正規版) | A2A プロトコルクライアント |
/.well-known/agent.json | A2A エージェントカード(エイリアス) | 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 に準拠した、LLM 主導のエージェント検索クローラー(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..."
}
エージェント向け API 機能
| Feature | How |
|---|---|
| 冪等な再試行(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 | /mcp/ で scan_mcp_server ツールを公開 |
| 自律的な購入用 x402 | /v1/scan/pay が USDC/Base の支払い要件とともに 402 を返します |
| 誠実な表現 | すべてのレスポンスに _disclaimer を付与。悪用可能性の主張ではなく、パターンマッチです |
料金
| ティア | 対象 | 価格 |
|---|---|---|
| オープンソース CLI | 個人開発者、エージェントのビルダー | $0 — npx compuute-scan ./repo |
| ホステッド API(無料) | MCP サーバーを評価するエージェントの運用者 | $0 — POST /v1/scan、レート制限あり |
| ホステッド API(x402) | Agent.market エコシステムの自律型エージェント | 1 回のスキャンにつき $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 | スキャン 1 回あたりの価格 | 0.10 |
X402_FACILITATOR_URL | ファシリテーターのベース URL | CDP ファシリテーター(両方のネットワークに対応) |
CDP_API_KEY_ID / CDP_API_KEY_SECRET | ファシリテーターの検証/決済認証用 CDP API キー | 未設定(検証が拒否されます) |
テストネットで決済をリハーサルする
X402_NETWORK=eip155:84532 を設定すると、ファウセットから無料で入手できる Base Sepolia USDC で価格が提示されます。CDP ファシリテーターは Sepolia にも対応しているため、テストネットでの決済では、実際の CDP API キーを使って実際の検証/決済経路をテストできます。実際の資金を移動する必要はありません。
アセットアドレスと EIP-712 ドメインは、ネットワークごとに組み合わせて選択されます。Base メインネットの USDC は "USD Coin"、Base Sepolia の USDC は "USDC" として署名されます。これらを混在させると、API キーの誤りのように見えるエラーですべての署名が失敗します。そのため、別々の環境変数ではなく、1 つの NETWORKS テーブルにまとめています。
デフォルトはメインネットで、未知の値はメインネットにフォールバックするため、タイプミスによってエージェントに価値のないテストネット 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 から条件に合う見込み顧客を抽出し、DM の切り口を作成 |
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 ファシリテーター(Base メインネット)を使用し、402 の本文には Bazaar のディスカバリー拡張を含みます。api/services/cdp_auth.py— ファシリテーター向けの最小限の 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)。
同梱する compuute-scan のバージョンは Dockerfile で固定されています(ARG COMPUUTE_SCAN_REF=v0.6.2)。
ドキュメント
| ドキュメント | 対象 |
|---|---|
| docs/agent-economy-strategy.md | 戦略ドキュメント — a16z が検証したデータ、11 シグナルに基づく購入エージェントモデル、2 本立ての戦略、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 月の案件から匿名化したレポート 3 件 |
| 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 に掲載するための 3 つの方法 |
| 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 サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。