rk-mcp
MCP serverDev toolsUS recalls MCP: free API key/signup or x402 $0.025 Base; some tools need key; verify↑limits
Available today. Use it from your connected AI after setup.
Needs your own API account. Credentials stay encrypted.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use rk-mcp to add inventory product
From the project's README
As published by recall-kitchen/rk-mcp in README.md.
Go client and examples for Recall Kitchen MCP.
Recall Kitchen searches U.S. CPSC, FDA food, FDA MedWatch, USDA, and NHTSA vehicle recalls.
Hosted MCP
Public streamable HTTP: https://app.recallkitchen.com/mcp. Client config: .mcp.json. Docs: recallkitchen.com/docs.
- Free with API key — mint a key via MCP
signupor Integrations. SendX-API-Key: rk_...(required for Grok) orAuthorization: Bearer rk_...(Claude/Cursor). Env placeholder:RECALL_KITCHEN_API_KEY. - Anonymous x402 — USDC on Base at $0.025/call, no signup.
- Account tools (watches, inventory, notifications) need a key.
- Rate limits — about 60 tool calls/hour unverified vs about 600/hour after verified sign-in at app.recallkitchen.com.
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.
Auth
Two ways to call tools:
- API key (recommended) — free, higher limits. Create a key in the app under Integrations. Send
X-API-Key: rk_...(required for Grok) orAuthorization: Bearer rk_...(Claude Code, Cursor). - x402 — anonymous USDC on Base (~$0.025 / call). Set
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_...
Tools
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.
Go client
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.
Examples
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.
Other clients
- Grok:
X-API-Keyheader (see above). - Claude Code:
claude mcp add --transport http recall-kitchen https://app.recallkitchen.com/mcp --header "Authorization: Bearer ${RK_API_KEY}" - Cursor: copy
.mcp.json(X-API-Key+RECALL_KITCHEN_API_KEY).Authorization: Beareralso works.
Support
Tools it offers (19)
What this server listed when ahel dialed its public endpoint in Sep 2026, with no key and no account of yours. The names are the server’s own.
add_inventory_productadd_watch_patterncheck_tracked_productscreate_api_keyget_product_recalllist_api_keyslist_inventorylist_recall_notificationslist_watch_patternslookup_productmark_notification_readremove_inventory_productremove_watch_patternrevoke_api_keysearch_product_recallssearch_product_recalls_by_upcsearch_product_recalls_from_imagesearch_recalls_by_identifiersignup
Signals
- GitHub stars
- 2
- Last commit
- Sep 2026
ahel review
S4low
published under adamdecaf's namespace; repository belongs to recall-kitchen
Automated review, not a security audit. Ruleset v1.
Advanced
- Delivery
- recall-kitchen MCP server → your ahel gateway (mcp.ahel.ai) → every connected AI client.
- Catalog kind
- mcp-server
- Gateway key
io-github-adamdecaf-recall-kitchen- Source
- github.com/recall-kitchen/rk-mcp
- Hosted endpoint
https://app.recallkitchen.com/mcp