mcpField
X
x402-scan-mcp

x402-scan-mcp

ローカル
github.com/forgemeshlabs開発ツール01 日前に更新

x402-scan-mcp について

x402-scan-mcpは、x402の有料エンドポイントを検査するオープンソースのローカルMCPサーバーです。エージェントによる支払いチャレンジの発見・解析可否を調べ、決済や取引の確定は行いません。

主な機能

  1. 01HTTP 402応答と支払いエンベロープの検査
  2. 02accepts[]必須フィールドの検証
  3. 03MPPデュアルスタック検出の確認
  4. 04有料コンテンツの無料公開を検出
  5. 05単一または最大10件のURLを評価

活用シーン

  1. 01公開前のx402支払いチャレンジの検証
  2. 02エージェントが解析できないエンベロープの調査
  3. 03複数エンドポイントの一括ヘルスチェック

MCP 対応

単一エンドポイントのスキャン、バッチスキャン、census_statsをMCPクライアントに提供し、検査結果と評価、所見を返します。402チャレンジのみを確認し、支払い署名の送信や取引の確定は行いません。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"forgemeshlabs-x402-scan": {
"command": "npx",
"args": [
"-y",
"@forgemeshlabs/x402-scan-mcp"
]
}
}
}
起動コマンドnpx -y @forgemeshlabs/x402-scan-mcp

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm@forgemeshlabs/x402-scan-mcp0.1.9

ツール

3

掲載時のツール一覧 · 2 週間前に更新

パラメーター型必須説明
urlstringはいプローブする 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_endpoint1 つの x402 エンドポイントを検査します — HTTP ステータス、エンベロープの取得元/有効性、accepts[] の概要、MPP デュアルスタック、A-F 評価、検出結果
scan_batch最大 10 個の URL に対して scan_endpoint を順次実行し、7/10 healthy, 2 dead, 1 broken envelope のような 1 行の概要も表示します
census_statsForgeMesh カタログのリアルタイム統計と、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.1 UA、タイムアウト 8 秒、本文の上限 64KB。
  • 強化策のテスト済み — npm test では、安全でない URL の拒否、プライベート IP 範囲、ポートの許可リスト、およびローカルのフィクスチャサーバーに対するエンドポイントスキャンの評価を確認します。

デプロイ: 安全なデフォルトは stdio(ローカル、ユーザーごと)です。パブリックな HTTP デプロイはネットワークへの送信を行うツールであり、公開前に認証、クライアントごとのレート制限、リクエストログ、および送信ポリシーを必ず追加する必要があります。

ライセンス

MIT — 誰でも無料で利用できます。スキャナーが 402 の不具合を見つけた場合、通常はエンベロープを 1 行修正するだけで解決します。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。