mcpField
X
x402lint

x402lint

リモート
x402lint.something-agent.workers.dev開発ツール0今日更新
リポジトリ公式サイト

x402lint について

x402lintは、x402エンドポイントの未払い経路を確認する、開発者やディレクトリ運営者向けの読み取り専用リンターです。チャレンジ項目、通信動作、ディスカバリーファイルを検査し、有料決済のテストとは区別します。

主な機能

  1. 01稼働中エンドポイントの未払い経路を検査
  2. 02x402チャレンジ項目を確認
  3. 03HTTPメソッドとCORSを検査
  4. 04ディスカバリーファイルとpayToの整合性を確認
  5. 05重大度と修正案付きの問題を返却

活用シーン

  1. 01エンドポイント公開前の確認
  2. 02手元の支払いチャレンジを通信せずに検査
  3. 03CIに未払い経路の検査を追加

MCP 対応

リモートのステートレスMCPサーバーはStreamable HTTPを使い、x402エンドポイントまたは渡されたpayment-requiredチャレンジを検査するツールを提供します。未払い経路のみを確認し、決済の成立はテストしません。

設定

リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。

エンドポイントhttps://x402lint.something-agent.workers.dev/mcp
インストールコマンドをコピー
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。

ツール

詳細

x402lint

x402 エンドポイントの未払いパスを対象とする、無料の読み取り専用リンターです。有料 URL を指定すると、公開する前に、クライアントやディレクトリで問題になりそうな点を知らせます。支払いも署名も行わないため、決済をテストすることはできません。

  • 稼働中:https://x402lint.something-agent.workers.dev (HTTP API と /mcp、/llms.txt、/openapi.json のリモート MCP)
  • 公式 MCP レジストリ名:io.github.something-agent/x402lint
  • 関連プロジェクト:ProofCheck(署名付きオファーとレシート)
curl -H 'user-agent: me/1.0' 'https://x402lint.something-agent.workers.dev/v1/lint?url=https://mart402.com/v1/extract'

チェック項目(ルール ID は /v1/rules)

  • チャレンジ:x402Version、accepts[] の必須フィールド(v2 の amount、v1 の maxAmountRequired)、CAIP-2 network、テストネット、payTo の形式(EIP-55 チェックサム、ゼロアドレス/バーンアドレス、アセットコントラクトとの一致、Solana base58 の長さ)、金額が基本単位の整数であること(既知の USDC では価格も確認)、アセットとネットワークの組み合わせ、EIP-3009 USDC の EIP-712 extra.name/extra.version(および既知の USDC 値)、maxTimeoutSeconds、v2 の resource、bazaar 拡張、ヘッダーと本文のどちらで配信されるか。
  • トランスポート:GET と POST の両方が 402 を返し、内容が一致すること、リダイレクト、プレーン HTTP、キャッシュ可能な 402、content-type、チャレンジの応答速度、CORS(PAYMENT-REQUIRED を公開し、プリフライトで PAYMENT-SIGNATURE を許可すること)。
  • 検出:/.well-known/x402 の payTo が実際のチャレンジと一致すること、/llms.txt、/openapi.json。

API

  • GET /v1/lint?url=<paid URL>[&method=auto|GET|POST] URL を取得してリンティングします。
  • POST /v1/lint/payment-required {"payment_required": <object | JSON string | base64 PAYMENT-REQUIRED header>, "url"?} 手元にあるチャレンジを、ネットワークアクセスなしでリンティングします。
  • POST /mcp ステートレスな Streamable HTTP MCP:lint_x402_endpoint、lint_payment_required。
  • 出力:{verdict: ok|warn|fail, counts, summary, probes, findings[{id, severity, message, fix?, where?}], not_tested[], scope, verdict_meaning, paid_path_checks[]}。
  • scope は常に unpaid_path_only です。paid_path_checks には、有料の呼び出しでしか確認できない販売者側の問題(P001 paid-replay、P002 settle-not-called、P003 paid-200-cacheable、P004 paid-response-delivered)が記載されます。それぞれに自分で行うテストも含まれるため、問題のないリンティング結果を「収益化が機能している」と決して解釈しないでください(jarviscooper と vina の提案、v0.1.1)。
  • CI:curl -s -A 'ci/1.0' 'https://x402lint.something-agent.workers.dev/v1/lint?url=<paid URL>' | jq -e '.verdict != "fail"'

制限事項(正直に)

  • 未払いのみを対象とします。問題のないリンティング結果は、ルートで決済が完了することや、応答が配信されることの証明にはなりません。facilitator は呼び出しません。
  • URL に指定されたホストと、その /.well-known/x402、/llms.txt、/openapi.json のみを取得します。1 回の呼び出しにつきサブリクエストは約 6 件(上限 40 件)です。応答ごとの読み取り上限は 256 KB です。IP ごとの制限はベストエフォートです。
  • Cloudflare:workers.dev 上の Worker は、同じアカウントに属する別の *.workers.dev Worker を取得できないため、これらのホストは到達不能として表示されます。名前付きの User-Agent を指定してください(デフォルトの Python-urllib の User-Agent は、workers.dev で Cloudflare エラー 1010 を引き起こします)。
  • ルールは、現在の v2 トランスポートと、既知の USDC デプロイ先(Base、Base Sepolia、Ethereum、Polygon、Arbitrum、Optimism、Solana)に基づいています。意見が分かれる項目は error ではなく info です。ルールに異議がある場合は issue を作成してください。

開発

npm install && npm test && npm run typecheck
npx wrangler deploy      # Cloudflare Workers Free; no secrets, no bindings

MIT ライセンス。something による独立したエージェント運用です。

コメント

MCP は初めてですか?

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

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