recallsapi.com US recalls
Server Details
Is it recalled? US recalls from CPSC, FDA, USDA FSIS and NHTSA by UPC, model, NDC, VIN, lot or name.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
TDQS
Scored across 4 tools
check_product (targeted identifier lookup) and check_vehicle (VIN/make-model-year) are clearly distinct domains, and get_recall takes a specific ID. search_recalls partially overlaps with check_product since both surface recalls, but the exploratory/filter-based framing versus confidence-scored exact matching keeps them mostly separable.
All four names follow a clean verb_noun pattern (check_product, check_vehicle, get_recall, search_recalls) with no casing or style deviations. The convention is immediately predictable.
Four tools is reasonable for a read-only recall lookup service, with each covering a genuine access pattern (product lookup, vehicle lookup, ID fetch, full-text search). It is slightly lean, but no tool feels redundant or padded.
The surface covers the key read paths: identifier-based product lookup, VIN/vehicle lookup, single-record retrieval, and filtered full-text search across CPSC/FDA/NHTSA/FSIS. Minor gaps like agency-scoped browsing or pagination helpers exist, but core recall workflows are well supported.
Available Tools
4 toolscheck_productCheck a product for recallsARead-onlyIdempotentInspect
Is this product recalled? Give whatever you have: a product name and brand, a UPC/EAN/GTIN barcode, a model number, an NDC drug code or a lot code. Returns matching US recalls (CPSC, FDA, NHTSA) with a confidence level (exact, strong, possible), the reasons for each match and the agency source link, plus early-warning signals (NHTSA investigations, CPSC violation notices, recall press releases, SEC filings) that name the same model, vehicle or brand. A signal is not a recall.
| Name | Required | Description | Default |
|---|---|---|---|
| lot | No | Lot or batch code | |
| ndc | No | National Drug Code, any dashed layout | |
| upc | No | UPC, EAN or GTIN barcode digits | |
| name | No | Product name or description, e.g. "Hatch Rest sound machine" | |
| brand | No | Brand or manufacturer, e.g. "Hatch" | |
| model | No | Model or part number | |
| receipt | No | true adds a signed receipt: a dated record of what recallsapi.com held for this check, stored for 400 days and fetchable at its verify_url. It is not a safety certification. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent, so the bar is lower. The description adds real value beyond them: it discloses the confidence taxonomy (exact/strong/possible), that early-warning signals come from a distinct NHTSA/CPSC/PRESS/SEC pipeline, and that the receipt option stores a dated record for 400 days fetchable at verify_url and is explicitly not a safety certification.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the core question and the input flexibility, then covers returns and the signal caveat. The long enumerated sentence is dense but every clause carries information; the return-value detail is somewhat verbose given it appears before the caller has decided to use the tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description must explain returns, and it does: match confidence levels, per-match reasons, agency source links, plus early-warning signals and the receipt artifact. An agent has enough to call it and interpret the result without further documentation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so every parameter is already documented in the schema, putting the baseline at 3. The description restates the accepted identifier families (name+brand, UPC/EAN/GTIN, model, NDC, lot) but adds no format or disambiguation rules beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a direct question ('Is this product recalled?') and names the resource and the recall sources checked (CPSC, FDA, NHTSA). It is clearly a product-recall lookup, distinct from the sibling check_vehicle.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Give whatever you have' tells the agent that any subset of identifiers works, which is useful input guidance, and 'A signal is not a recall' sets expectations. However, it never states when to use this tool versus get_recall or search_recalls, nor any exclusion conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_vehicleCheck a vehicle for recallsARead-onlyIdempotentInspect
NHTSA recall campaigns for a vehicle, by 17-character VIN (decoded with NHTSA vPIC) or by make, model and year, plus live NHTSA consumer complaint counts for that make, model and year (not verified by NHTSA, not a safety determination). Campaigns are filed for a make, model and year (model level); whether a campaign includes a vehicle, and whether its repair is done, is held in the vehicle maker's records, and any dealer of the make can check it with the VIN, free.
| Name | Required | Description | Default |
|---|---|---|---|
| vin | No | 17-character VIN | |
| make | No | ||
| year | No | ||
| model | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, openWorld), yet the description adds substantial domain behavior: complaint counts are unverified by NHTSA and not a safety determination, campaigns are filed at model level rather than per-vehicle, and whether a specific vehicle is covered or repaired lives in the maker's records and must be checked by a dealer with the VIN. This is real disclosure beyond structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the core capability before the caveats, and every sentence carries information. The closing sentence about dealer verification is somewhat peripheral but still useful for interpreting the result, so it earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description should describe the return shape more fully; it only says campaigns and complaint counts are returned. The bigger gap is invocation correctness: with 0 required parameters, the description never clarifies the required VIN-or-YMM combination, leaving an agent able to call it with an incomplete argument set.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 25% and there are 4 parameters with 0 required, so the description needs to compensate. It explains that the VIN is 17 characters and decoded with NHTSA vPIC and that make/model/year drive the campaign and complaint lookups, but it never states that either a VIN or the make/model/year combination must be supplied, nor whether both may be passed together or how they interact.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: NHTSA recall campaigns for a vehicle, plus consumer complaint counts, retrieved by VIN or by make/model/year. It is not a tautology and is far more specific than the title. It does not, however, distinguish itself from siblings like get_recall or search_recalls, so an agent cannot confidently route between them from this text alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied rather than stated: two input modes (VIN decoded via vPIC, or make/model/year) are described, which tells the agent what to supply. There is no explicit when-to-use vs. when-not, and none of the sibling tools (check_product, get_recall, search_recalls) are named as alternatives to prefer in a given situation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_recallGet one recallARead-onlyIdempotentInspect
Full record for one recall id (for example "cpsc-24116", "fda-H-1339-2026", "nhtsa-26V631000", "fsis-025-2026"), with every identifier and the agency source link.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint=false, so the safety profile is covered. The description adds return content (every identifier plus the agency source link), which is useful, but says nothing about invalid/missing id behavior. With annotations doing the heavy lifting, this is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; the resource is named before the examples. The four example IDs are slightly listy but each demonstrates a different agency prefix, so they earn their place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter, read-only lookup with annotations covering safety and no output schema, the definition is nearly complete: it names the resource, the key format, and roughly what comes back. Only the not-found/error case is unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the sole 'id' parameter has no schema-level description, so the description carries the burden. It compensates with concrete ID examples showing the agency-prefixed naming convention, which is genuinely useful syntax guidance, though it doesn't state the format exhaustively.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific action and resource: retrieve the full record for a single recall id. The four example IDs (cpsc-, fda-, nhtsa-, fsis- prefixes) make clear this is a by-recall-id lookup, which cleanly separates it from search_recalls and from the product/vehicle checkers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: an agent infers it should call this when it already holds a recall id rather than a product or vehicle identifier. No alternative is named and no condition for choosing this over search_recalls is spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_recallsSearch recallsARead-onlyIdempotentInspect
Full-text search across US recalls from CPSC, FDA (food, drugs, devices) and NHTSA, newest and most relevant first. Filter by category and date.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | Yes | Words to search, e.g. "listeria deli meat" or "Takata airbag" | |
| since | No | Earliest recall date, YYYY-MM-DD | |
| category | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint, idempotentHint, openWorldHint=false), so the bar is lower. The description adds useful context on source coverage and result ranking ('newest and most relevant first'), but says nothing about pagination, result volume caps, or cost/latency behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences: the core operation and sources come first, ordering and filtering follow. No filler, nothing redundant with structured fields.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description could usefully say what a result looks like (recall fields, links) and how deep result sets go, but it does not. For a 4-parameter search over 19 categories it is adequate but leaves the agent guessing on result shape and the limit parameter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%: query and since have descriptions, while limit and category do not. The description hints at category and date filtering, which partially compensates, but the 'limit' parameter and the semantics of the 19-value category enum receive no explanation. Baseline 3 fits.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: full-text search across US recalls, with the three source agencies named (CPSC, FDA, NHTSA) and the result ordering disclosed. It does not explicitly differentiate itself from siblings like get_recall or check_product, which prevents a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by 'filter by category and date' and the word 'search', but there is no explicit statement of when to use this versus get_recall (lookup a known recall) or check_product/check_vehicle (entity-specific checks). The agent must infer the routing itself.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
4 tool updates
- First observed
check_product - First observed
check_vehicle - First observed
get_recall - First observed
search_recalls
Related MCP Connectors
Search U.S. product recalls (CPSC, FDA, NHTSA, FSIS) by product, brand, model, or UPC code.
Is it recalled or fake? Recall lookup vs live US gov feeds + transparent counterfeit risk signal.
Check US recalls for a car, a baby product, a food or a medicine in the official recall databases.
US vehicle, car-seat, product and food recalls, VIN decoding and crash ratings (NHTSA, CPSC, FDA).
81
Related MCP Servers
- AlicenseAqualityBmaintenanceSearches US product recalls across CPSC, FDA, and NHTSA in one call, matching by name, brand, model number, UPC, or VIN with confidence scoring.3MIT
- AlicenseNot gradedqualityBmaintenanceAccess US consumer-product safety recalls from the CPSC, free and without authentication.218 npmMIT

deeprecall-mcpofficial
AlicenseNot gradedqualityCmaintenanceSearch 120,000+ recalled products from CPSC, FDA, EU Safety Gate, and other global agencies via MCP. Enables AI agents to check product safety by text or image.Apache 2.0- AlicenseNot gradedqualityAmaintenanceEnables a voice assistant to answer household safety questions about whether products, food, or medicines have been recalled or are in short supply, drawing on public US and EU government data and proactively checking a saved household watchlist. Answers return a short spoken sentence plus structured detail including the source URL and date for every item.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.