US recalls MCP: free API key/signup or x402 $0.025 Base; some tools need key; verify↑limits
One address for any MCP client. No sign-in needed on this server.
11 read7 act2 other
Grouped by tool name. At most: creates or changes data: records, files, settings.
Odel charges nothing per call. The publisher may charge for its own service.
Go client and examples for Recall Kitchen MCP.
Recall Kitchen searches U.S. CPSC, FDA food, FDA MedWatch, USDA, and NHTSA vehicle recalls.
Public streamable HTTP: https://app.recallkitchen.com/mcp. Client config: .mcp.json. Docs: recallkitchen.com/docs.
signup or Integrations. Send X-API-Key: rk_... (required for Grok) or Authorization: Bearer rk_... (Claude/Cursor). Env placeholder: RECALL_KITCHEN_API_KEY.Local: http://localhost:8080/mcp. Server card: https://app.recallkitchen.com/.well-known/mcp/server-card.json.
Tool reference: recallkitchen.com/docs/#mcp. Implementation notes: docs/mcp.md.
Two ways to call tools:
X-API-Key: rk_... (required for Grok) or Authorization: Bearer rk_... (Claude Code, Cursor).X402_EVM_PRIVATE_KEY. Watch, inventory, and notification tools still need an API key.Grok's HTTP MCP client treats Authorization: Bearer as OAuth. Use X-API-Key for Grok.
# ~/.grok/config.toml
[mcp_servers.recall-kitchen]
url = "https://app.recallkitchen.com/mcp"
enabled = true
[mcp_servers.recall-kitchen.headers]
X-API-Key = "rk_..."
export RK_API_KEY=rk_...
Public (API key or x402)
| Tool | Use |
|---|---|
search_product_recalls | Keyword search. Optional source, since/until (YYYY-MM-DD), location, offset, limit (1–100, default 3). |
search_recalls_by_identifier | Exact UPC, lot, model, extracted product name, or VIN (local year/make decode for NHTSA). |
search_product_recalls_by_upc | Look up a UPC and match extracted recall UPCs. found=false if unknown. |
lookup_product | Catalog / USDA branded-food info. Does not search recalls. |
search_product_recalls_from_image | Public HTTPS URL, data:image/...;base64 URI, or MCP image content. No local file paths. |
get_product_recall | Full description and extracted lots, UPCs, models, locations, contacts, image URLs. |
Search results truncate descriptions and cap extracted products at 5. Call get_product_recall for the full notice.
location is ANDed with the query. CA matches California / "northern california". United States matches U.S. notices, not Canada/Ontario.
Account (API key required)
list_watch_patterns, add_watch_pattern, remove_watch_pattern, list_inventory, add_inventory_product, remove_inventory_product, check_tracked_products, list_recall_notifications.
Watch patterns use the same syntax as the search box: words are AND, OR is or, -term excludes, "quoted phrase" is a phrase.
Prompts: check_product, check_upc, scan_image, check_vin. Resources: recall://docs/tools, recall://docs/sources.
cc, err := rkmcp.NewClient(rkmcp.Config{
ServerURL: "https://app.recallkitchen.com/mcp",
APIKey: os.Getenv("RK_API_KEY"),
})
recalls, err := cc.SearchProductRecalls(ctx, "contamination", 3)
detail, err := cc.GetProductRecall(ctx, recalls[0].ID)
hits, err := cc.SearchRecallsByIdentifier(ctx, rkmcp.IdentifierOptions{LotCode: "I31C"})
APIKey is also read from RK_API_KEY or RECALL_KITCHEN_API_KEY. The client sends X-API-Key. Anonymous clients can set EVMPrivateKey / X402_EVM_PRIVATE_KEY instead.
Module: github.com/Recall-Kitchen/rk-mcp/go.
git clone https://github.com/Recall-Kitchen/rk-mcp.git
cd rk-mcp/examples/go
export RK_API_KEY=rk_...
go run ./search_product_recalls -query "spinach" -location Iowa
go run ./get_product_recall # searches, then fetches full text
go run ./search_by_identifier -name "infant formula"
See examples/go.
X-API-Key header (see above).claude mcp add --transport http recall-kitchen https://app.recallkitchen.com/mcp --header "Authorization: Bearer ${RK_API_KEY}".mcp.json (X-API-Key + RECALL_KITCHEN_API_KEY). Authorization: Bearer also works.