{"slug": "how-to-pay-for-recall-kitchen-mcp-tools-with-x402", "title": "How to pay for Recall Kitchen MCP tools with x402", "summary": "Recall Kitchen's MCP server now lets AI agents pay per call for recall lookups using x402, charging $0.025 in USDC on Base once an anonymous IP quota of 5 searches per hour and 15 per day is exhausted, with photo search always requiring payment or an API key. The server returns an HTTP 200 JSON-RPC result carrying an x402 Payment Required challenge rather than a bare HTTP 402, and publishes its price and pay-to address at a .well-known/x402 endpoint. Account tools such as watches and inventory do not accept x402 and require a free API key.", "body_md": "Recall Kitchen's MCP server lets AI agents look up government-published product, food, vehicle and drug recalls. Most lookups are free; past the free quota (and for photo search) an agent can pay per call with x402 in USDC on Base. Here's exactly how.\n\n(Disclosure: I build Recall Kitchen.)\n\nDocs: [https://recallkitchen.com/docs?utm_source=devto&utm_campaign=x402_howto](https://recallkitchen.com/docs?utm_source=devto&utm_campaign=x402_howto)\n\nYou don't need an account to keep using the server. A few anonymous searches per IP are free (5 an hour, 15 a day), and photo search is never in that free quota. After the quota, an x402-capable client can pay per call: $0.025 in USDC on Base. When a call needs payment, the server returns a normal JSON-RPC result whose content is an x402 \"Payment Required\" challenge (HTTP 200, `isError: true`), not a bare HTTP 402. Your client pays it and retries. The price and pay-to address are published at [`https://app.recallkitchen.com/.well-known/x402`](https://app.recallkitchen.com/.well-known/x402?utm_source=devto&utm_campaign=x402_howto). x402 covers search and photo search only. Account tools like watches and inventory need a free API key instead. The full rules are in the [docs](https://recallkitchen.com/docs?utm_source=devto&utm_campaign=x402_howto) and the [API Terms](https://recallkitchen.com/api-terms?utm_source=devto&utm_campaign=x402_howto#x402).\n\n`POST https://app.recallkitchen.com/mcp`\n`https://app.recallkitchen.com/.well-known/x402`\n| Tool | Free anonymous quota | x402 / API key | \n|---|---|---|\n| `search_product_recalls` (and other non-photo search tools) | Yes â€” a few calls per IP (docs/API terms: 5/hour, 15/day) | After the IP quota, pay with x402 **or** send an API key | \n| `search_product_recalls_from_image` (photo, beta) | **No** â€” never in the free anonymous quota | Always needs an API key **or** x402 | \n\nAccount tools (watches, inventory, notifications, key management) do **not** accept x402; use a free API key from `signup` / Integrations.\n\nFor MCP tool calls that require payment, the server answers **HTTP 200** with a JSON-RPC `tools/call` result whose content is an x402 **Payment Required** payload (`isError: true`). That HTTP 200 + JSON-RPC payment challenge is correct for this MCP integration â€” clients should not expect a bare HTTP 402 on the MCP POST for tool payment.\n\nLive example (image search, unpaid), truncated:\n\n```\n{\n  \"jsonrpc\": \"2.0\",\n  \"id\": 2,\n  \"result\": {\n    \"isError\": true,\n    \"structuredContent\": {\n      \"error\": \"Payment Required\",\n      \"x402Version\": 2,\n      \"accepts\": [{\n        \"scheme\": \"exact\",\n        \"network\": \"eip155:8453\",\n        \"asset\": \"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913\",\n        \"amount\": \"25000\",\n        \"payTo\": \"0x8E2d8e2850Baf623A8A886DE7c80CDfB83a5cfa3\",\n        \"maxTimeoutSeconds\": 60,\n        \"extra\": { \"name\": \"USD Coin\", \"version\": \"2\" }\n      }],\n      \"resource\": {\n        \"url\": \"mcp://tool/search_product_recalls_from_image\",\n        \"description\": \"Photo (beta): identify products in an image URL, data URI, or MCP image content\",\n        \"mimeType\": \"application/json\"\n      }\n    }\n  }\n}\n```\n\n`amount` is USDC **atomic units** (6 decimals): `\"25000\"` = **$0.025**. The well-known document publishes the same price as decimal `\"0.025\"`.\n\nFrom `/.well-known/x402` and the live challenge (they match):\n\n| Field | Value | \n|---|---|\n| Network | Base mainnet â€” `eip155:8453` | \n| Asset | USDC on Base â€” `0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913` | \n| Currency | USDC | \n| Price | **$0.025 per call** (unless a live challenge states otherwise) | \n| Pay to | `0x8E2d8e2850Baf623A8A886DE7c80CDfB83a5cfa3` | \n| Scheme | `exact` | \n| x402 version | 2 | \n\nDo not invent other prices; always prefer the live `accepts[]` on the challenge.\n\n`https://app.recallkitchen.com/mcp` (streamable HTTP / JSON-RPC). Prefer a free API key (`X-API-Key: rk_...` for Grok, or `Authorization: Bearer rk_...` for Claude/Cursor) when you have one â€” that skips x402 for search tools.`search_product_recalls` after the free IP quota, or `search_product_recalls_from_image` any time without a key).`accepts[0]` (network, asset, amount, payTo).`X402_EVM_PRIVATE_KEY` and registers scheme `eip155:8453`), sign and settle the `payTo` for `amount` atomic units on Base.\n\n```\nexport X402_EVM_PRIVATE_KEY=0x...   # Base wallet funded with USDC (+ gas)\ncd examples/go\ngo run ./search_product_recalls -query spinach -location Iowa\n```\n\nOr set `RK_API_KEY` / `RECALL_KITCHEN_API_KEY` instead of paying per call.\n\n`GET https://app.recallkitchen.com/.well-known/x402`` tools/call` â†’ `/mcp` (HTTP 200 + Payment Required JSON-RPC)", "url": "https://wpnews.pro/news/how-to-pay-for-recall-kitchen-mcp-tools-with-x402", "canonical_source": "https://dev.to/recallkitchen/how-to-pay-for-recall-kitchen-mcp-tools-with-x402-23fc", "published_at": "2026-10-30 23:09:24+00:00", "updated_at": "2026-10-30 23:19:38.689349+00:00", "lang": "en", "topics": ["ai-agents", "agent-protocols", "ai-tools", "ai-products"], "entities": ["Recall Kitchen", "x402", "Base", "USDC", "Claude", "Cursor", "Grok"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/how-to-pay-for-recall-kitchen-mcp-tools-with-x402", "markdown": "https://wpnews.pro/news/how-to-pay-for-recall-kitchen-mcp-tools-with-x402.md", "text": "https://wpnews.pro/news/how-to-pay-for-recall-kitchen-mcp-tools-with-x402.txt", "jsonld": "https://wpnews.pro/news/how-to-pay-for-recall-kitchen-mcp-tools-with-x402.jsonld"}}