Free self-hosted x402 USDC billing for Cloudflare MCP servers, with a Base Sepolia test endpoint.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent — or use 1-click editor setup below.
We haven't yet run this listing's install command through our automated sandbox check. This isn't a red flag — we're steadily working through the catalog.
💡 Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
Free, self-hosted Cloudflare Workers starter for adding USDC usage billing to an MCP server. It is intentionally small: no dashboard, custody, user account, or Aegis-specific feature is included.
This repository is the product: copy it, deploy it to your own Cloudflare account, and replace the reference paid handler with your own read-only service.
The public endpoint at https://x402-mcp-starter.kadopi.workers.dev/mcp is a Base Sepolia/test-USDC verification environment. It lets an x402-aware MCP client check the configuration tool and a fixed-price payment flow. It is not a hosted production payment service and it does not custody funds.
validate_x402_config: free configuration review for Base USDC, price, amount, receiving address, and facilitator URL.get_paid_sample: fixed-price payment-flow reference, guarded by the official @x402/core and @x402/evm Exact EVM server APIs.x402/payment, and receives a tool result with x402/payment-response.settling record returns payment_confirmation_pending, never a fresh charge request.This is at-least-once delivery around a payment gateway, not a claim of exactly-once execution. If the Worker stops after settlement but before storing delivery, retry with the same proof; do not make a second payment.
Node 20+, a Cloudflare account, a D1 database, a public Base Sepolia receiving address, a compatible x402 facilitator, and a client that supports MCP Streamable HTTP plus x402. The verified package versions are recorded in package-lock.json (agents 0.21.x, x402 2.23.x family).
The buyer's private key belongs only in its payment client. It is never configured in this Worker.
Connect an MCP client to http://localhost:8788/mcp. Use validate_x402_config before deploying a paid tool. An unpaid get_paid_sample returns the payment challenge. The default price is 10,000 atomic USDC units (0.01 USDC) on eip155:84532; X402_AMOUNT must match X402_PRICE_USD × 1,000,000.
migrations/0001_purchases.sql locally or to a specifically chosen non-production D1 database.X402_NETWORK=eip155:84532 and the Base Sepolia USDC address.validate_x402_config with the configured network, asset, amount, price, recipient, and facilitator URL. Then call the paid tool without proof and confirm x402/error / PAYMENT_REQUIRED.exact, eip155:84532, expected USDC asset, recipient, and amount.x402/payment-response receipt. Retry the same proof and input; confirm the saved result, not another settlement. Retry the proof with another option; confirm payment_reuse_rejected.payment_confirmation_pending or the saved receipt. Inspect the D1 row before any manual reconciliation.The included buyer example runs from a normal terminal only; it reads EVM_PRIVATE_KEY from that terminal environment and never sends it to the Worker. Create a separate disposable Base Sepolia payer locally (it writes the secret only to ignored .testnet-payer.env):
It accepts only one exact Base Sepolia USDC requirement for 10,000 atomic units, addressed to the configured recipient. Do not paste a private key into chat or commit it to .dev.vars.
This package does not automatically create a D1 database, deploy a Worker, or make a payment. Base Mainnet is configuration-capable (eip155:8453 and canonical USDC) but is not production-verified. A Mainnet rollout needs a separate approval because it can process real USDC.
delivery_failed includes the receipt reference when settlement succeeded; invalid or rejected proofs do not return a paid result.createPaidToolHandler in src/paid-tool.ts is the reusable payment adapter. Supply a tool name, resource metadata, and a read-only execute handler; keep the ledger and retry checks intact.wrangler.jsonc にD1 ID、.dev.vars に受取ウォレットを設定し、migration実行後に npm run dev を実行します。まず validate_x402_config で設定を確認してから、有料ツールの未払い402→対応クライアントの署名→同じ呼び出しの再送をTestnetで1往復確認してください。Mainnet、実USDC、デプロイはそれぞれ別承認で実行します。
No reviews yet — be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/x402-mcp-starter)<a href="https://allmcps.com/mcp/x402-mcp-starter"><img src="https://allmcps.com/api/badge/x402-mcp-starter?style=directory" alt="X402 MCP Starter on AllMCPs" /></a>