Skip to main content
Glama

Search US product recalls from FDA and CPSC

recalls
Read-only

US product recalls in one schema from openFDA enforcement reports (food, drug, device) and CPSC: date, product, firm, reason, FDA Class I/II/III mapped to high/medium/low (CPSC severity is derived from the hazard text), distribution and states, and the official link. Filter by keyword, since date (default 30 days), source and classification; up to 100 rows. Price: $0.003 in USDC per successful call, paid with x402 (Base, Solana or Arc); failed calls are not charged.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "recalls"
  }
}

Input Schema

NameRequiredDescriptionDefault
qNoKeyword in the product or firm name
limitNoMax rows, 1-100, default 20
sinceNoYYYY-MM-DD, default 30 days ago, at most one year back
sourceNofda, cpsc or fda,cpsc (default both)
classificationNoClass I, Class II, Class III or high, medium, low

Output Schema

NameRequiredDescriptionDefault
queryNo
totalNo
resultsNo
sourcesNo
returnedNo
severityNoteNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "query": {},
      +    "results": {},
      +    "returned": {},
      +    "severityNote": {},
      +    "sources": {},
      +    "total": {}
      +  },
      +  "type": "object"
      +}
  2. First observed

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations (readOnlyHint, openWorldHint) only say this is an open-world read, so the description carries the real burden and does so well: it discloses pricing ($0.003 USDC per successful call via x402 on Base, Solana or Arc), that failed calls are not charged, the 100-row ceiling, and the derivation of classification (FDA Class I/II/III mapped to high/medium/low; CPSC severity inferred from hazard text). It stops short of runtime traits such as rate limits or pagination behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single dense paragraph, front-loaded with the data source and coverage before filters and pricing. Every clause carries information, though the packed comma-list construction forces the agent to parse attribute, filter and pricing clauses in one breath rather than as separable beats.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need no explanation, and the description covers sources, filters with defaults, the classification mapping caveat, row ceiling and cost model — sufficient for correct invocation. Missing only secondary operational detail (ordering, how the 100-row cap interacts with the default 20) that an agent might want before paging.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents each parameter and the baseline would be 3. The description earns above baseline by explaining the classification mapping, which is why both 'Class I' and 'high' are accepted for the same field — meaning the schema alone does not convey. It weakens slightly by restating 'default 30 days' while omitting the schema's one-year lookback cap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific resource and scope: 'US product recalls in one schema from openFDA enforcement reports (food, drug, device) and CPSC', plus the fields returned. An agent can tell this is a recall search over two specific upstream sources. It does not, however, contrast itself with adjacent siblings such as enforcement_actions or violations, so the differentiation is implicit rather than stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The filtering surface is enumerated ('Filter by keyword, since date (default 30 days), source and classification') along with a row cap, which implies how to use it. But there is no explicit when-to-use statement, no when-not, and no named alternative for regulatory enforcement data generally. The 30-day default is the only guidance-like signal.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources