x402-scan-mcp について
x402-scan-mcpは、x402の有料エンドポイントを検査するオープンソースのローカルMCPサーバーです。エージェントによる支払いチャレンジの発見・解析可否を調べ、決済や取引の確定は行いません。
主な機能
- 01HTTP 402応答と支払いエンベロープの検査
- 02accepts[]必須フィールドの検証
- 03MPPデュアルスタック検出の確認
- 04有料コンテンツの無料公開を検出
- 05単一または最大10件のURLを評価
活用シーン
- 01公開前のx402支払いチャレンジの検証
- 02エージェントが解析できないエンベロープの調査
- 03複数エンドポイントの一括ヘルスチェック
MCP 対応
単一エンドポイントのスキャン、バッチスキャン、census_statsをMCPクライアントに提供し、検査結果と評価、所見を返します。402チャレンジのみを確認し、支払い署名の送信や取引の確定は行いません。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
3掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| url | string | はい | プローブする x402 エンドポイントの URL。例: https://api.example.com/paid-route |
詳細
x402-scan-mcp — 無料の x402 エンドポイントスキャナー
有料エンドポイントは、エージェントが実際に支払い可能な状態ですか?
402 Payment Required レスポンスを返すだけでは、正しいレスポンスを返していることにはなりません。accepts[] のフィールドが欠けていたり、Base64 エンベロープの形式が不正だったり、決済ゲートの設定ミスでコンテンツが無料で漏れていたりすると、ブラウザーでは問題がないように見えても、本来支払ってくれたはずのエージェントを知らないうちにすべて逃してしまいます。
x402-scan-mcp は、無料のオープンソース x402 エンドポイントスキャナーです。1 つ以上の x402 エンドポイントを検査し、エージェントが実際にそれらを検出、解析し、支払いできるかを報告する MCP サーバーです。npm パッケージは @forgemeshlabs/x402-scan-mcp です。
決済が送信されることはありません。スキャナーは
PAYMENT-SIGNATUREを指定しないため、トランザクションを承認または決済することはできません。検査するのは 402 チャレンジの形式だけです。
=== x402 Endpoint Scan: https://library.forgemesh.io/business-management ===
Reachable: true HTTP: 402 Method: GET (184ms)
402: true Envelope: header Valid: true MPP: true
Grade: A
Findings:
- Valid x402 envelope is advertised over both the classic PAYMENT-REQUIRED header
and MPP's WWW-Authenticate: Payment header — maximally discoverable across agent
payment stacks.
検査項目
- HTTP 402 ステータス — ルートは実際に
402 Payment Requiredを返しますか。それとも、200、404、500を返し、決済対応エージェントに気付かれない状態ですか? PAYMENT-REQUIREDエンベロープ — ヘッダーは存在し、Base64 としてデコードでき、有効な JSON で、数値のx402Versionと空でないaccepts[]を含んでいますか? エンベロープをレスポンスボディに含めるエンドポイントでは、代わりにボディ内のx402Versionフィールドを確認します。- 必須の決済フィールド —
accepts[]のすべてのエントリにscheme、network、asset、payTo、amountが含まれていますか? - MPP デュアルスタック — 従来のヘッダーの代わりに一部のエージェントスタックが使用する MPP の検出経路である
WWW-Authenticate: Paymentヘッダーを通じても、エンドポイントを検出できますか? - 無料コンテンツの漏洩 —
402で保護されるべきルートが、実際のコンテンツを200で配信していませんか?
各結果は、A(有効なエンベロープ + MPP デュアルスタック)、B(有効なエンベロープ、従来のヘッダーのみ)、C(402 だが、エンベロープがない、または形式が不正)、F(402 以外、到達不能、または有料コンテンツを無料で配信)のいずれかで評価されます。さらに、エージェントに何が見えているか、そしてそれによってなぜトラフィックを逃すのかを説明する、平易な表現の findings[] も提示されます。
インストール
Node.js ≥ 20 が必要です。npm から @forgemeshlabs/x402-scan-mcp として公開されています。クローンやビルドは不要です。
npm install -g @forgemeshlabs/x402-scan-mcp
または、インストールせずに npx で実行できます(MCP クライアントにおすすめです)。
npx -y @forgemeshlabs/x402-scan-mcp
Claude Code
claude mcp add x402-scan -- npx -y @forgemeshlabs/x402-scan-mcp
Claude Desktop / Cursor / Windsurf(任意の MCP クライアント)
{
"mcpServers": {
"x402-scan": {
"command": "npx",
"args": ["-y", "@forgemeshlabs/x402-scan-mcp"]
}
}
}
開発(ソースから)
スキャナー自体を開発する場合にのみ必要です。
git clone https://github.com/forgemeshlabs/x402-scan-mcp
cd x402-scan-mcp
npm install && npm run build
claude mcp add x402-scan -- node /path/to/x402-scan-mcp/dist/index.js
ツール
| ツール | 機能 |
|---|---|
scan_endpoint | 1 つの x402 エンドポイントを検査します — HTTP ステータス、エンベロープの取得元/有効性、accepts[] の概要、MPP デュアルスタック、A-F 評価、検出結果 |
scan_batch | 最大 10 個の URL に対して scan_endpoint を順次実行し、7/10 healthy, 2 dead, 1 broken envelope のような 1 行の概要も表示します |
census_stats | ForgeMesh カタログのリアルタイム統計と、2026 年 8 月の x402 Bazaar ヘルス調査の静的な主要数値 |
試してみましょう:「私の x402 ルートに有効な 402 チャレンジがあるかスキャンして」 · 「この 5 つのエンドポイントを一括スキャンして、問題のあるものを教えて」 · 「2026 年 8 月の x402 ヘルス調査では何がわかった?」
CLI スモークテスト(ソースをチェックアウトした状態から)
npm run smoke -- https://your-endpoint.example.com
無料のローカルスキャンの先へ
この MCP サーバーはローカル専用で、無料です。指定したエンドポイント(および census_stats の場合は ForgeMesh 独自の公開統計エンドポイント)を呼び出す場合を除き、データがマシンの外に出ることはありません。さらに詳しく知りたい場合は、次をご覧ください。
- ホスト型の有料サーバーサイドスキャン — x402 経由で $0.05 の
POST https://x402.forgemesh.io/x402-endpoint-scan。プローブを自分とは別のネットワークから実行したい場合や、ほかのツールで x402 の料金をすでに支払っているエージェントから呼び出す場合に便利です。 - ブラウザツール — MCP クライアントやウォレットを使わず、単発のスキャンを実行できる forgemesh.io/scan。
- 修正案付きの $5 の詳細レポート — 不合格となったすべてのチェックについて、すぐに貼り付けられる修正案を含む、より詳細な監査を forgemesh.io/scan でご利用いただけます。
2026年8月の x402 Bazaar ヘルス調査
census_stats には、ForgeMesh が独自に実施した x402 Bazaar カタログの調査結果の概要がまとめられています。1,225 の販売者をプローブし、74% が正常、206 が応答なし、40 が有料コンテンツを無料で提供しており、MPP デュアルスタックに対応しているのはわずか 15% でした。 詳細な記事:forgemesh.io/blog/x402-bazaar-health-census-august-2026。
セキュリティ
このスキャナーは、指定された URL に送信リクエストを行うため、SSRF 攻撃への対策を備えています。
- スキームの許可リスト —
http/httpsのみを許可し、file:、ftp:、gopher:、data:などは拒否します。 - ポートの許可リスト —
80、443、8080、8443のみを許可します。それ以外のポートが明示的に指定されている場合は、DNS ルックアップやネットワーク呼び出しを行う前に拒否します。 - ローカルホスト名の拒否 —
localhost、*.localhost、*.local、*.internalは、DNS 解決を行う前にホスト名で拒否します。 - プライベート宛先のブロック — DNS 解決後、ループバック、プライベート(RFC 1918)、リンクローカル、CGNAT、予約済み、マルチキャスト、およびクラウドメタデータアドレス(
169.254.169.254)へのリクエストを拒否します。IPv6 のループバック/ULA/リンクローカルおよび IPv4 マップ形式も対象です。ホスト名がプライベートアドレスを 1 つでも解決する場合、スキャンを拒否します。 - IP アドレスを固定した通信 — 検証済みの正確なパブリック IP アドレスに接続し、TLS では元のホスト名を引き続き検証します。これにより、検証後から接続までの間に発生する DNS リバインディングを防ぎます。
- リダイレクトを追跡しない —
3xx応答は(ステータスと、あればLocationとともに)そのまま報告し、スキャナーがリダイレクト先へアクセスすることはありません。これは厳格なエージェントクライアントの動作に準拠し、リクエスト数を予測可能に保ちます。 - 上限あり —
scan_endpointの呼び出しごとに最大 2 件のリクエスト(GET を 1 回、さらに405の場合に限り POST で再試行を 1 回)、forgemesh-scan-mcp/0.1UA、タイムアウト 8 秒、本文の上限 64KB。 - 強化策のテスト済み —
npm testでは、安全でない URL の拒否、プライベート IP 範囲、ポートの許可リスト、およびローカルのフィクスチャサーバーに対するエンドポイントスキャンの評価を確認します。
デプロイ: 安全なデフォルトは stdio(ローカル、ユーザーごと)です。パブリックな HTTP デプロイはネットワークへの送信を行うツールであり、公開前に認証、クライアントごとのレート制限、リクエストログ、および送信ポリシーを必ず追加する必要があります。
ライセンス
MIT — 誰でも無料で利用できます。スキャナーが 402 の不具合を見つけた場合、通常はエンベロープを 1 行修正するだけで解決します。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。