402 MCP Restaurant Finder
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@402 MCP Restaurant Finderlist restaurants"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
402 MCP — Restaurant Finder with Paid Tools
A demo MCP server that shows agentic commerce with x402: AI agents can browse restaurants and menus for free, but must pay USDC to place an order.
Built on Cloudflare Workers + Durable Objects using the Agents SDK.
Tools
Tool | Cost | Description |
| Free | List all restaurants with cuisine and rating |
| Free | Show the menu for a restaurant by ID |
| Free | Add an item to the cart |
| 0.05 USDC | Place an order (requires x402 payment) |
Free tools return 200 OK. The pay_order tool returns 402 Payment Required with machine-readable payment instructions until payment is settled.
Related MCP server: x402-discovery
Prerequisites
Node.js 20+ and wrangler (
npm i -g wrangler)A wallet — generate an EVM private key:
npx viem generate-private-keyTestnet USDC — get free USDC on Base Sepolia from the Circle Faucet
Cloudflare account —
wrangler login
Setup
Install dependencies:
npm installSet your wallet address as the payment recipient in src/index.ts:
const X402_CONFIG: X402Config = {
network: "base-sepolia",
recipient: "0xYourWalletAddress", // ← replace with your wallet address
facilitator: { url: "https://x402.org/facilitator" },
};Run locally
npm run devThe MCP server is available at http://localhost:8787/mcp.
Deploy
npm run deployThe MCP server will be available at https://402-mcp.<your-subdomain>.workers.dev/mcp.
Test the 402 response
Call the paid pay_order tool without payment — it returns 402:
curl -X POST http://localhost:8787/mcp \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": { "name": "pay_order", "arguments": { "order_id": 1 } }
}'Free tools like list_restaurants return 200 with no payment required.
Connect from an MCP client
Cloudflare AI Playground
Enter your MCP server URL (
https://402-mcp.<your-subdomain>.workers.dev/mcp)Use the tools directly from the playground
Claude Desktop
Use the mcp-remote proxy. In Claude Desktop, go to Settings > Developer > Edit Config:
{
"mcpServers": {
"restaurant-finder": {
"command": "npx",
"args": [
"mcp-remote",
"http://localhost:8787/mcp"
]
}
}
}Restart Claude and the tools will be available.
How it works
The server uses withX402() from agents/x402 to wrap the McpServer. Free tools are registered with this.server.registerTool(...). Paid tools use this.server.paidTool(...) with a price in USDC — the x402 middleware intercepts calls and returns 402 Payment Required with payment instructions until the client settles payment on-chain.
export class MyMCP extends McpAgent {
server = withX402(
new McpServer({ name: "Restaurant Finder", version: "1.0.0" }),
X402_CONFIG,
);
async init() {
// Free tool
this.server.registerTool("list_restaurants", { ... }, async () => { ... });
// Paid tool — 0.05 USDC per call
this.server.paidTool("pay_order", "Pay to place order", 0.05, { ... }, {}, async () => { ... });
}
}References
Resource | URL |
x402 docs | |
Charge for MCP tools | https://developers.cloudflare.com/agents/tools/payments/x402/charge-for-mcp-tools |
Pay from Agents SDK | https://developers.cloudflare.com/agents/tools/payments/x402/pay-from-agents-sdk |
x402 protocol spec | |
Circle Faucet (testnet USDC) | |
x402 Playground |
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/harshil1712/402-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server