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.
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม 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": "ใส่ค่าของคุณ",
"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": "ใส่ค่าของคุณ"
}
}
}
}พิมพ์คำสั่งนี้ใน Terminal
claude mcp add x402-bridge --env MCP_BRIDGE_EVM_PRIVATE_KEY='ใส่ค่าของคุณ' --env MCP_BRIDGE_SVM_PRIVATE_KEY='ใส่ค่าของคุณ' --env MCP_BRIDGE_MAX_PRICE_PER_CALL_ATOMIC='ใส่ค่าของคุณ' --env MCP_BRIDGE_MAX_TOTAL_ATOMIC='ใส่ค่าของคุณ' --env MCP_BRIDGE_ALLOWED_PAYTO='ใส่ค่าของคุณ' --env MCP_BRIDGE_ALLOWED_HOSTS='ใส่ค่าของคุณ' --env MCP_BRIDGE_ALLOW_HTTP='ใส่ค่าของคุณ' --env MCP_BRIDGE_DISCOVER_LIMIT='ใส่ค่าของคุณ' --env MCP_BRIDGE_BAZAAR_URL='ใส่ค่าของคุณ' --env MCP_BRIDGE_BATCH_DEPOSIT_MULTIPLIER='ใส่ค่าของคุณ' --env MCP_BRIDGE_MAX_DEPOSIT_ATOMIC='ใส่ค่าของคุณ' --env X402_MCP_BRIDGE_CHANNELS_DIR='ใส่ค่าของคุณ' --env RPC_URL_8453='ใส่ค่าของคุณ' -- 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": "ใส่ค่าของคุณ",
"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": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
วางในไฟล์ .vscode/mcp.json ของโปรเจกต์
{
"servers": {
"x402-bridge": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@three-ws/mcp-bridge"
],
"env": {
"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": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
ตัวนี้รันในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะ server บนอินเทอร์เน็ต ลองเลือกแอปอื่น
ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี
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ค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 6 พ.ย. 2569
ชื่อใน registry ยืนยันด้วยบัญชี GitHub nirholas ซึ่งเป็นเจ้าของ repo
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต
ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน
รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
ต้องใส่ค่าเหล่านี้: MCP_BRIDGE_EVM_PRIVATE_KEY, MCP_BRIDGE_SVM_PRIVATE_KEY
รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)
repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (1.0.2) เข้า registry 3 เดือนที่ผ่านมา
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Node.js ในเครื่องด้วย
ในหมวดเดียวกันมี Spec Driven Development, Remote Desktop Commander, HotCodePush
server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว
อ่านการ์ด:★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi
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.
Manage over-the-air (OTA) updates for React Native, Expo, Capacitor and Cordova apps.
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ 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
ตัดมาแค่ช่วงต้น อ่านต่อใน repo