captcha-mcp について
captcha-mcpは、Proof of WorkまたはLightning決済で呼び出しを制御するMCPサーバーです。呼び出し元のアカウントなしでリクエストごとの制限を設けたい運用者向けに、stdioとステートレスHTTPに対応し、機械可読なチャレンジとアクセストークンを提供します。
主な機能
- 01Proof of Workのチャレンジと検証
- 02Lightning L402決済オプション
- 035分間有効な署名付きアクセストークン
- 04challenge、verify、statusの3ツール
- 05stdioとStreamable HTTPのトランスポート
活用シーン
- 01MCPリクエストに呼び出し元ごとのコストを設定
- 02無料のProof of Workアクセス枠を提供
- 03呼び出し元のアカウントなしでLightning決済を受け取る
MCP 対応
MCP サーバーは `challenge`、`verify`、`status` ツールをクライアントに提供します。デフォルトのstdioに加え、ステートレスなStreamable HTTPモードにも対応します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y @powforge/captcha-mcpCAPTCHA_URLPowForge captcha backend URL. Defaults to public production endpoint when running via npx; override for self-hosted or local dev.ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
3掲載時のツール一覧 · 2 週間前に更新
このツールにパラメーターはありません。
詳細
@powforge/captcha-mcp
エージェントが大量のリクエストを送ると、MCP サーバーは 429 を返します。captcha-mcp は、次の呼び出しをするための条件をエージェントに課します。 エージェントに PoW パズル(無料、CPU 使用時間は約 5 秒)または 3 sats の Lightning 請求書を提示します。どちらも、アカウント、メールアドレス、API キーなしで自律型の呼び出し元が対応できる、機械可読なバックオフシグナルです。
stdio または HTTP 経由で使える 3 つのツールを提供します。標準ライブラリのみを使用します。登録不要、無料の代替手段あり、セルフホスト可能、収益の分配なしです。
なぜ 429 ではないのか?
429 Too Many Requests は、エージェントの時代には適した方法ではありません。MCP サーバーに関する報告では、次の 3 つのパターンが繰り返し見られます。
- エージェントフレームワークは 429 を接続障害として扱います。 すぐに再試行し、多くの場合、指数バックオフを使っても依然として再試行が速すぎるため、そもそも制限の原因となった過負荷を増幅させます。
- 呼び出し元ごとのシグナルがありません。 429 はエージェントではなく、リクエストのバケットに対して発生します。1 つの呼び出し元が他のすべての呼び出し元をスロットリングし、サーバーには、その呼び出し元だけに速度を落とすよう求める手段がありません。
- Retry-After は助言にすぎず、無視されることも少なくありません。 エージェントはこれを一貫して解析するわけでも、常に尊重するわけでもなく、待つメリットもありません。再試行のコストがゼロだからです。
captcha-mcp は、429 を 402 形式のチャレンジに置き換えます。次の呼び出しには、呼び出し元が何らかのコスト(CPU の使用時間または 3 sats)を負担します。このコストは呼び出し元ごとに設定され、機械可読で、自己スロットリング機能を備えています。パズルを解けないエージェントは、エンドポイントに大量のリクエストを送れません。
クイックスタート
npx -y @powforge/captcha-mcp
インストールも設定も API キーも不要です。サーバーは stdio で起動し、MCP クライアントからの接続を待ちます。
Claude Code、Cursor、または MCP 対応ホストに接続するには、設定に追加します。
{
"mcpServers": {
"powforge-captcha": {
"command": "npx",
"args": ["-y", "@powforge/captcha-mcp"]
}
}
}
または、npx @powforge/captcha-mcp --install を実行すると、設定ブロックが出力されます。
機能
PowForge の pow-captcha サービス(captcha.powforge.dev)を、3 つの MCP ツールとして提供します。
| ツール | 目的 |
|---|---|
challenge | 新しい PoW パズルを要求します。{id, salt, difficulty, signature} を返します。 |
verify | 解答済みの nonce を送信します。HMAC 署名付きの 5 分間有効なアクセストークンを返します。 |
status | サーバーのヘルス状態、累計統計、L402 エンドポイントのメタデータを返します。 |
無料枠では、エージェントは約 5〜10 秒の CPU 時間を消費します(SHA-256、デフォルトは先頭 14 ビットがゼロ)。有料枠では、L402(RFC 7235 および WWW-Authenticate 内の bolt11 請求書)を介して Lightning で 3 sats を支払います。
OAuth、API キー、Stripe ではなく、これを使う理由
| 方法 | 1 回あたりのコスト | アカウントが必要 | セルフホスト | エージェント向け |
|---|---|---|---|---|
| API キー | $0 | はい | 該当なし | いいえ |
| OAuth | $0 | はい | 該当なし | いいえ |
| Stripe の従量課金 | 高いオーバーヘッド | はい | 該当なし | いいえ |
| マネージド MCP 認証プラットフォーム | 100〜2000 sats | いいえ | いいえ | はい |
| PoW + L402(本パッケージ) | 秒または 3 sats | いいえ | はい | はい |
エージェントにはメールアドレスがありません。確認リンクをクリックすることも、クレジットカード情報を入力することもできません。PoW + Lightning は、完全自律型の呼び出し元で機能する唯一の認証方式です。
マネージド MCP 認証プラットフォームも使えますが、ベンダーのインフラ上で 1 回の呼び出しにつき 100〜2000 sats が請求され、収益はベンダーの決済経路を通ります。このパッケージは、あなたのサーバー、あなたの Lightning ノード、あなたの鍵で動作します。sats はすべてあなたのものです。
設定
別の captcha バックエンドを使うには、CAPTCHA_URL を設定します。デフォルトは http://localhost:3077 なので、開発時にはスタック全体をローカルで実行できます。本番環境では https://captcha.powforge.dev を指定します。
CAPTCHA_URL=https://captcha.powforge.dev npx @powforge/captcha-mcp
HTTP ストリーマブルトランスポート
ホスト型 MCP クライアント(Smithery、ブラウザーベースのホスト)では、stdio ではなく HTTP が必要です。--http を渡すか、HTTP_MODE=1 を設定してください。
HTTP_MODE=1 PORT=3200 npx @powforge/captcha-mcp
# or
npx @powforge/captcha-mcp --http
その後、サーバーは次のエンドポイントで待ち受けます。
| エンドポイント | メソッド | 用途 |
|---|---|---|
/mcp | POST | 単一の JSON-RPC リクエストと、単一の JSON-RPC レスポンス。通知には 202 を返します。 |
/mcp | GET | サーバーからプッシュされる通知の SSE ストリーム(25 秒間隔のハートビートを送り、接続を維持します)。 |
/health | GET | 生存確認プローブ — {ok, server, transport} を返します。MCP の一部ではありません。 |
ステートレスです。セッション ID はありません。CORS を開放している(Access-Control-Allow-Origin: *)ため、ブラウザークライアントも動作します。stdio モードに変更はなく、デフォルトのままです。フラグを指定せずに npx @powforge/captcha-mcp を実行すると、引き続き stdin/stdout 経由で JSON-RPC をやり取りします。
HTTP トランスポートのスモークテストを実行します。
HTTP_MODE=1 PORT=3200 node src/server.js &
curl -X POST http://localhost:3200/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"1"}}}'
{jsonrpc:"2.0", id:1, result:{protocolVersion:"2024-11-05", capabilities:{tools:{}}, serverInfo:{...}}} を返します。
ローカル開発
captcha widget repo をクローンするか、公開サービスを実行してください。MCP サーバーには、status に記載された captcha エンドポイントへの HTTP アクセスのみが必要です。
git clone https://github.com/zekebuilds-lab/captcha-mcp
cd captcha-mcp
node src/server.js
stderr に ready と出力し、stdin からの JSON-RPC を待ち受けます。
プロトコルを手動でスモークテストします。
echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"1"}}}' | node src/server.js
serverInfo: { name: "@powforge/captcha-mcp", version: "0.2.5" } を含む JSON レスポンスが表示されます。
独自のバックエンドでのトークン検証
エージェントがトークンをサービスに送信したとき、エージェントを信頼せずに検証します。
curl -X POST https://captcha.powforge.dev/api/token/verify \
-H "Content-Type: application/json" \
-d '{"token":"<token-from-verify-tool>"}'
{valid: true, method, issued_at, expires_at} または {valid: false, reason} を返します。
関連パッケージ
@powforge/captcha— 同じサービス向けのブラウザーウィジェットです。@powforge/mcp-l402-gate— L402 と Depth-of-Identity スコアリングを使って、任意の MCP サーバーをゲートする Express ミドルウェアです。@powforge/mcp-identity— エージェントの評判を判定するオラクルです。初回呼び出し時の不正利用対策として、このゲートと組み合わせてください。
他の MCP エージェント認証プリミティブとの比較
MCP サーバーをゲートする領域は、競合が増えています。各ツールが captcha-mcp の機能とどの程度直接競合するかに基づき、現状を率直にまとめました。
| ツール | 決済手段 | 認証モデル | セルフホスト | 無料の PoW ティア | 支払いにアカウント不要 |
|---|---|---|---|---|---|
| PayGated | Stripe クレジット | API キー + OAuth 2.1 + PKCE + M2M | はい(MIT) | いいえ | いいえ(呼び出し元ごとに Stripe の顧客レコードが必要) |
| APort | 非公開 | W3C 検証可能クレデンシャル、ツール実行前フック | デザインパートナー向け | いいえ | 該当なし(監査を行いますが、課金はしません) |
| AgentSign | 非公開 | Ed25519 署名付きパスポート + トラストゲート | 不明 | いいえ | 該当なし |
| x402-mcp | オンチェーン USDC | ウォレット署名 | はい | いいえ | いいえ(資金のあるウォレットが必要) |
| マネージド MCP 認証(Auth0 for AI、MintMCP) | SaaS | OAuth 2.0 / SAML / SSO | いいえ | いいえ | いいえ |
| captcha-mcp(本プロジェクト) | Lightning(L402) | PoW ゲート + L402 によるスキップ + 無料ティア | はい | はい | はい |
最も直接競合するのは PayGated です。「MCP ツールの呼び出しごとに収益化する」という売り文句も、セルフホスト + オープンソースという方針も同じですが、決済手段には Stripe を採用しています。つまり、決済を受け取るには、良好な状態の Stripe アカウント(KYC、銀行口座、対応国)が必要で、呼び出し元ごとに Stripe の顧客レコードを作成しなければ、1 セントも支払ってもらえません。captcha-mcp の差別化要因は、アカウント不要で利用できることです。米国外のエージェント開発者でも、KYC なしで約 200 ミリ秒のうちに呼び出しごとに 3 sats を支払えます。または、まったく支払わない場合は、無料の PoW パズルを解けます。
**APort と AgentSign は、異なるレイヤーに位置します。**どの権限の下で誰がツールを使用したかを記録しますが、呼び出しに価格を設定するものではありません。このようなゲートを置き換えるのではなく、組み合わせて使用できます。
**これらのツールはどれも、インタラクションそのものに価格を設定しません。**他のすべての選択肢は、呼び出し元がすでに認証済みの ID であることを前提とし、その後に使用量を計測するか監査します。この表で、行為者の ID ではなく、インタラクションそのものにコストを課す唯一の仕組みが、この PoW ティアです。本パッケージが主張するのは、この立ち位置です。
x402-mcp、@agentauth/mcp、Cloudflare ARC/ACT との詳しい比較は、powforge.dev/mcp/compare/x402-mcp をご覧ください。
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。