DEV Community

Recall Kitchen
Recall Kitchen

Posted on

Giving your AI assistant a "is this recalled?" tool with MCP

Most AI assistants will happily guess whether a product was recalled. That's the wrong answer for a question where the real source is a government agency notice. A better pattern is to give the assistant a tool that searches the agency notices and returns the notice link, so the model quotes the agency instead of improvising.

This post walks through wiring that up with the Model Context Protocol (MCP), using Recall Kitchen's hosted MCP server as the example. (Disclosure: I build Recall Kitchen.) The same pattern works for any MCP server that wraps a public data source.

1. Add the server

Recall Kitchen runs as a remote MCP server over Streamable HTTP, so there's nothing to install. In a client that takes a JSON config (Cursor, Claude Desktop, and others), add:

{
  "mcpServers": {
    "recall-kitchen": {
      "url": "https://app.recallkitchen.com/mcp"
    }
  }
}
Enter fullscreen mode Exit fullscreen mode

Search works anonymously within a small free quota. If you want more, the signup tool creates a free account and API key from an email.

2. Pick the right tool for the question

The server exposes a few search tools, and picking the right one matters more than the prompt:

  • search_product_recalls does keyword search with websearch syntax: unquoted words are AND, OR is or, -term excludes, and quoted phrases match as a unit. You can filter by source (cpsc, fdafoodsafety, usda, nhtsa, canada, and others) and by date.
  • search_product_recalls_by_upc takes a UPC/EAN, or a barcode image.
  • search_product_recalls_from_image (beta) tries to identify products in a photo and match them.
  • get_product_recall returns the full notice for one result.

3. Ask a real question

Prompt: "Has there been a CPSC recall on Babyjoy high chairs?"

The assistant calls:

{ "query": "Babyjoy high chair", "source": "cpsc", "limit": 2 }
Enter fullscreen mode Exit fullscreen mode

and gets back a trimmed result like:

{
  "source": "cpsc",
  "title": "Costway Recalls Babyjoy High Chairs Due to Entrapment and Suffocation Hazards ...",
  "url": "https://www.cpsc.gov/Recalls/2025/Costway-Recalls-Babyjoy-High-Chairs-Due-to-Entrapment-and-Suffocation-Hazards-Ban-on-Inclined-Sleepers-and-Violation-of-Federal-Regulations-for-High-Chairs",
  "publishedOn": "2025-02-27",
  "extracted": {
    "products": [{ "productName": "Babyjoy High Chairs", "modelNumbers": ["BB5656PI", "BB5656BE", "BB5656GR"] }]
  }
}
Enter fullscreen mode Exit fullscreen mode

The useful part is the url: the assistant can answer with the agency's own notice and tell the person to compare their model number against it, rather than paraphrasing a hazard from memory.

4. Prompting tips that made answers better

  • Tell the model to always include the agency link and to quote the remedy from the notice instead of summarizing it.
  • Tell it that "no results" means "no match found here", not "this product is fine". Search can miss things, and the agency notice is what counts.
  • Prefer a model number or UPC over a product name when the person has one; names are ambiguous.
  • Use -term to cut noise, for example stroller -wagon.

5. Where this is useful

Resale and marketplace tools checking used baby gear before listing, parenting apps, and kitchen inventory tools are the obvious ones. The pattern also generalizes: any time the true answer lives in a public record, give the model a tool that returns the record and the link.

Docs and the full tool list: https://recallkitchen.com/docs?utm_source=devto&utm_campaign=mcp-recall-tutorial

Top comments (0)