Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
作者による説明(英語の原文)
Pay any x402 endpoint on the open web: auto-paying bridge with Bazaar discovery and spend caps.
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
使っているAIアプリを選んで、設定をコピーしてください。
MCP_BRIDGE_EVM_PRIVATE_KEY, MCP_BRIDGE_SVM_PRIVATE_KEY, MCP_BRIDGE_MAX_PRICE_PER_CALL_ATOMIC, MCP_BRIDGE_MAX_TOTAL_ATOMIC, MCP_BRIDGE_ALLOWED_PAYTO, MCP_BRIDGE_ALLOWED_HOSTS, MCP_BRIDGE_ALLOW_HTTP, MCP_BRIDGE_DISCOVER_LIMIT, MCP_BRIDGE_BAZAAR_URL, MCP_BRIDGE_BATCH_DEPOSIT_MULTIPLIER, MCP_BRIDGE_MAX_DEPOSIT_ATOMIC, X402_MCP_BRIDGE_CHANNELS_DIR, RPC_URL_8453「秘密」と表示された値は、あなたのアカウントの鍵です。絶対に人に教えたり、チャットに貼り付けたりしないでください。
必要なもの
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます
{
"mcpServers": {
"x402-bridge": {
"command": "npx",
"args": [
"-y",
"@three-ws/mcp-bridge"
],
"env": {
"MCP_BRIDGE_EVM_PRIVATE_KEY": "your-value",
"MCP_BRIDGE_SVM_PRIVATE_KEY": "your-value",
"MCP_BRIDGE_MAX_PRICE_PER_CALL_ATOMIC": "your-value",
"MCP_BRIDGE_MAX_TOTAL_ATOMIC": "your-value",
"MCP_BRIDGE_ALLOWED_PAYTO": "your-value",
"MCP_BRIDGE_ALLOWED_HOSTS": "your-value",
"MCP_BRIDGE_ALLOW_HTTP": "your-value",
"MCP_BRIDGE_DISCOVER_LIMIT": "your-value",
"MCP_BRIDGE_BAZAAR_URL": "your-value",
"MCP_BRIDGE_BATCH_DEPOSIT_MULTIPLIER": "your-value",
"MCP_BRIDGE_MAX_DEPOSIT_ATOMIC": "your-value",
"X402_MCP_BRIDGE_CHANNELS_DIR": "your-value",
"RPC_URL_8453": "your-value"
}
}
}
}ターミナルでこれを実行します
claude mcp add x402-bridge --env MCP_BRIDGE_EVM_PRIVATE_KEY=your-value --env MCP_BRIDGE_SVM_PRIVATE_KEY=your-value --env MCP_BRIDGE_MAX_PRICE_PER_CALL_ATOMIC=your-value --env MCP_BRIDGE_MAX_TOTAL_ATOMIC=your-value --env MCP_BRIDGE_ALLOWED_PAYTO=your-value --env MCP_BRIDGE_ALLOWED_HOSTS=your-value --env MCP_BRIDGE_ALLOW_HTTP=your-value --env MCP_BRIDGE_DISCOVER_LIMIT=your-value --env MCP_BRIDGE_BAZAAR_URL=your-value --env MCP_BRIDGE_BATCH_DEPOSIT_MULTIPLIER=your-value --env MCP_BRIDGE_MAX_DEPOSIT_ATOMIC=your-value --env X402_MCP_BRIDGE_CHANNELS_DIR=your-value --env RPC_URL_8453=your-value -- npx -y @three-ws/mcp-bridge動かす前に、空欄の値を入力してください。
プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"x402-bridge": {
"command": "npx",
"args": [
"-y",
"@three-ws/mcp-bridge"
],
"env": {
"MCP_BRIDGE_EVM_PRIVATE_KEY": "your-value",
"MCP_BRIDGE_SVM_PRIVATE_KEY": "your-value",
"MCP_BRIDGE_MAX_PRICE_PER_CALL_ATOMIC": "your-value",
"MCP_BRIDGE_MAX_TOTAL_ATOMIC": "your-value",
"MCP_BRIDGE_ALLOWED_PAYTO": "your-value",
"MCP_BRIDGE_ALLOWED_HOSTS": "your-value",
"MCP_BRIDGE_ALLOW_HTTP": "your-value",
"MCP_BRIDGE_DISCOVER_LIMIT": "your-value",
"MCP_BRIDGE_BAZAAR_URL": "your-value",
"MCP_BRIDGE_BATCH_DEPOSIT_MULTIPLIER": "your-value",
"MCP_BRIDGE_MAX_DEPOSIT_ATOMIC": "your-value",
"X402_MCP_BRIDGE_CHANNELS_DIR": "your-value",
"RPC_URL_8453": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"x402-bridge": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@three-ws/mcp-bridge"
],
"env": {
"MCP_BRIDGE_EVM_PRIVATE_KEY": "your-value",
"MCP_BRIDGE_SVM_PRIVATE_KEY": "your-value",
"MCP_BRIDGE_MAX_PRICE_PER_CALL_ATOMIC": "your-value",
"MCP_BRIDGE_MAX_TOTAL_ATOMIC": "your-value",
"MCP_BRIDGE_ALLOWED_PAYTO": "your-value",
"MCP_BRIDGE_ALLOWED_HOSTS": "your-value",
"MCP_BRIDGE_ALLOW_HTTP": "your-value",
"MCP_BRIDGE_DISCOVER_LIMIT": "your-value",
"MCP_BRIDGE_BAZAAR_URL": "your-value",
"MCP_BRIDGE_BATCH_DEPOSIT_MULTIPLIER": "your-value",
"MCP_BRIDGE_MAX_DEPOSIT_ATOMIC": "your-value",
"X402_MCP_BRIDGE_CHANNELS_DIR": "your-value",
"RPC_URL_8453": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
MCP_BRIDGE_MAX_PRICE_PER_CALL_ATOMIC envMCP_BRIDGE_MAX_TOTAL_ATOMIC envMCP_BRIDGE_ALLOWED_PAYTO envMCP_BRIDGE_ALLOWED_HOSTS envMCP_BRIDGE_ALLOW_HTTP envMCP_BRIDGE_DISCOVER_LIMIT envMCP_BRIDGE_BAZAAR_URL envMCP_BRIDGE_BATCH_DEPOSIT_MULTIPLIER envMCP_BRIDGE_MAX_DEPOSIT_ATOMIC envX402_MCP_BRIDGE_CHANNELS_DIR envRPC_URL_8453 envこの設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月6日にチェック
レジストリ名は、リポジトリを所有するGitHubアカウント nirholas で確認済みです
このリポジトリはまだGitHubから読み取っていません
このリポジトリはまだGitHubから読み取っていません
これはパソコンで動くため、インターネット上のエンドポイントはありません
パソコンで動き、代わりにローカルの設定を使います
パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
入力が必要なもの:MCP_BRIDGE_EVM_PRIVATE_KEY, MCP_BRIDGE_SVM_PRIVATE_KEY
あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。
GitHubリポジトリの最終更新は–、最新バージョン(1.0.2)がレジストリに届いたのは3 か月前です。
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにNode.jsも必要です。
同じカテゴリには:Spec Driven Development, Remote Desktop Commander, topo^alpin
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Avalanche bulletins and mountain weather forecasts for any place in the Alps.
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
@three-ws/mcp-bridge
One MCP server that can pay any x402-paid endpoint on the open web — the universal x402 payer for AI agents.
Quick start · Security · Tools · Environment · three.ws
A Model Context Protocol server that can pay any x402-paid endpoint on the open web. Point your agent at a URL that answers
402 Payment Required; the bridge signs, pays, retries, and hands back the response plus the settlement receipt — EVM exact, EVM batch-settlement, and Solana exact, all behind hard spending caps. It also pre-loads a tool per service discovered on the Coinbase x402 Bazaar, so the entire paid-API economy shows up in your tool list.
Claude Code:
claude mcp add x402-bridge -e MCP_BRIDGE_SVM_PRIVATE_KEY=... -- npx -y @three-ws/mcp-bridge
Use -e MCP_BRIDGE_EVM_PRIVATE_KEY=0x... instead (or as well) to pay on Base and other EVM chains. At least one key is required.
Claude Desktop (claude_desktop_config.json) or Cursor (~/.cursor/mcp.json):
{
"mcpServers": { "x402-bridge": { "command": "npx", "args": ["-y", "@three-ws/mcp-bridge"], "env": { "MCP_BRIDGE_EVM_PRIVATE_KEY": "0x…buyer key…", "MCP_BRIDGE_SVM_PRIVATE_KEY": "…base58 64-byte secret key…", "MCP_BRIDGE_MAX_PRICE_PER_CALL_ATOMIC": "100000", "MCP_BRIDGE_DISCOVER_LIMIT": "20" } } } }
Restart the client and ask for something like "pay $0.01 on Base for a weather report" — the model picks a matching Bazaar tool (or call_paid_endpoint), and the bridge auto-pays via x402.
This server holds private keys and spends real USDC. Read this section before configuring it.
MCP_BRIDGE_EVM_PRIVATE_KEY / MCP_BRIDGE_SVM_PRIVATE_KEY should never be a main wallet. Fund it with only what you are willing to let an agent spend.MCP_BRIDGE_MAX_PRICE_PER_CALL_ATOMIC (default 100000 = $0.10 USDC) is refused before a payload is signed, with an error naming the network, asset, and cap.MCP_BRIDGE_MAX_TOTAL_ATOMIC (default 1000000 = $1.00 USDC). This bounds the damage of a looping or prompt-injected agent: once the ceiling is reached, every further payment aborts until restart. The accumulator reserves atomically, so concurrent calls cannot jointly overshoot it.MCP_BRIDGE_ALLOWED_PAYTO (comma-separated addresses) to refuse payment to any recipient you have not explicitly trusted.169.254.169.254 cloud metadata), CGNAT, ULA, or unspecified. Literal-IP hosts are checked directly; redirects are never followed (a public host cannot 3xx the bridge into internal infrastructure). http:// is available only behind the explicit MCP_BRIDGE_ALLOW_HTTP=1 dev opt-in.MCP_BRIDGE_ALLOWED_HOSTS (comma-separated hostnames) for strict mode: only listed hosts can be paid at all.MCP_BRIDGE_MAX_DEPOSIT_ATOMIC (default $5.00) regardless of what a server requests.readOnlyHint: false, idempotentHint: false, openWorldHint: true, so MCP hosts apply their strictest confirmation policy. Retrying a paid call is a new charge.On startup the bridge registers:
| Tool | What it does |
|---|---|
call_paid_endpoint | Universal fallback: hit any URL, auto-pay if it returns 402. Returns the response + parsed settlement. |
list_bazaar_tools | Returns the cached list of Bazaar-discovered tools (name, resource, accepted payment terms). Free. |
refresh_bazaar | Re-queries the x402 Bazaar and re-registers dynamic tools without restarting. Free. |
paid_ … | One tool per discovered Bazaar resource (up to MCP_BRIDGE_DISCOVER_LIMIT), with that endpoint's schema. |
Tools whose prices all exceed the per-call cap are filtered out at discovery time, so the model never sees a tool it cannot afford.
Every tool carries MCP ToolAnnotations so hosts can apply the right confirmation policy:
call_paid_endpoint and every dynamic paid_* tool: readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: true. These spend real USDC — each call settles a payment (capped by MCP_BRIDGE_MAX_PRICE_PER_CALL_ATOMIC), and retrying is a new charge. They never delete or overwrite caller state, hence not destructive.list_bazaar_tools: readOnlyHint: true, idempotentHint: true, openWorldHint: false. Pure in-process cache read; free, no network.refresh_bazaar: readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: true. Free (no payment), but it mutates the registered tool set from the live Bazaar feed, so repeat calls can differ.Tool results that are plain objects are returned as both a JSON text block (backward compatible) and structuredContent for typed clients.
Payment paths registered on the buyer client:
eip155:* → BatchSettlementEvmScheme (preferred when the server advertises it; voucher-based, no per-call gas)eip155:* → ExactEvmScheme (used when the server advertises scheme: "exact")solana:* and the x402 v1 Solana networks (solana, solana-devnet, solana-testnet) → ExactSvmScheme / ExactSvmSchemeV1 (USDC SPL transfer co-signed by the advertised fee payer), registered together by registerExactSvmScheme(). v1 is the wire format most of the open x402 bazaar still speaks; the client always prefers v2 when a seller advertises both. The spending-cap hook reads either amount (v2) or maxAmountRequired (v1) so both are capped the same way.Batch-settlement channel state is persisted to ~/.x402-mcp-bridge/channels/client/ so client restarts do not re-deposit on the next call.
| Variable | Required | Default | Notes |
|---|---|---|---|
MCP_BRIDGE_EVM_PRIVATE_KEY | one of EVM/SVM required | — | 0x-prefixed 32-byte hex. Funds USDC payments on Base, Arbitrum, etc. |
MCP_BRIDGE_SVM_PRIVATE_KEY | one of EVM/SVM required | — | base58 64-byte secret key (Phantom/solana-keygen format) or 64-int JSON array. |
MCP_BRIDGE_MAX_PRICE_PER_CALL_ATOMIC | no | 100000 (= $0.10 USDC at 6 decimals) | Per-call spending cap. Payment aborts above this with a clear reason. |
MCP_BRIDGE_MAX_TOTAL_ATOMIC | no | 1000000 (= $1.00 USDC) | Cumulative session spending ceiling. Aborts further payments once reached. |
MCP_BRIDGE_ALLOWED_PAYTO | no | — (any payee) | Comma-separated payee allowlist. When set, unlisted payTo addresses are refused. |
MCP_BRIDGE_ALLOWED_HOSTS | no | — (any public host) | Comma-separated hostname allowlist for outbound paid requests. |
MCP_BRIDGE_ALLOW_HTTP | no | 0 | Set 1 to allow http:// targets. Local development only. |
MCP_BRIDGE_DISCOVER_LIMIT | no | 20 | Max number of Bazaar tools to register dynamically. Set 0 to disable discovery. |
MCP_BRIDGE_BAZAAR_URL | no | https://api.cdp.coinbase.com/platform/v2/x402/discovery/resources | Override to point at a self-hosted or alternative bazaar. |
MCP_BRIDGE_BATCH_DEPOSIT_MULTIPLIER | no | 5 | How many request-amounts to deposit at once when opening a batch channel. |
MCP_BRIDGE_MAX_DEPOSIT_ATOMIC | no | 5000000 (= $5.00 USDC) | Hard cap on the deposit amount per channel open / top-up. |
X402_MCP_BRIDGE_CHANNELS_DIR | no | ~/.x402-mcp-bridge/channels | Override the directory used by FileClientChannelStorage. |
RPC_URL_ | no | viem default public RPC | Per-chain RPC override. Example: RPC_URL_8453=https://mainnet.base.org. |
MCP_BRIDGE_* key vars also fall back to EVM_PRIVATE_KEY / SVM_PRIVATE_KEY if you already have those set.
The pre-payment hook inspects the selected accepts entry and aborts payload creation if the amount exceeds the per-call cap, the payee is outside the allowlist, or the session ceiling would be crossed. The tool result then carries a clear error message naming the network, asset, and the limit that was hit — useful for the model to decide whether to ask you to raise it.
MCP_BRIDGE_SVM_PRIVATE_KEY=... npx -y @modelcontextprotocol/inspector npx -y @three-ws/mcp-bridge
The inspector connects over stdio and lists the static tools (call_paid_endpoint, list_bazaar_tools, `refresh_ba
冒頭だけを表示しています。続きはリポジトリで読めます