Skip to main content
Glama
Panda Federation Tools

Panda Federation Tools

Product Recall Monitor: FDA Food, Drug, Device & CPSC Recalls

product_recall_monitor
Read-only

Monitor recent US food, drug, device, and consumer product recalls by keyword, firm, FDA class, state, or date, returning product, hazard, firm, distribution, codes, retailers, and remedy details.

Instructions

Pull one feed of US product recalls from openFDA (food, drug, medical device enforcement) and CPSC SaferProducts.gov (consumer products), with product, reason or hazard, recalling firm, FDA class, status, distribution, lots/UPCs, retailers and remedy. Unlike clinical_trial_leads (registered studies) and federal_register_monitor (rulemaking), this is safety recall enforcement. Use when QA, retail, insurance, marketplace or consumer-safety teams need recent recalls by keyword, firm, class, state or date. Do not use for vehicle VIN recalls (use vin_decoder_recalls) or for clinical-trial safety results. Parameters: sources food|drug|device|consumer (default all); keywords and firmContains filter before billing; classifications Class I|II|III (FDA); daysBack or dateFrom; states for distribution; maxResults caps billed recalls. Empty runs are free. Returns per item: agentSummary, source, recallNumber, date, classification, status, product, reason, firm, firmLocation, firmState, distribution, quantity, codes, retailers, remedy, hazard, url; plus RECALLS_XLSX/CSV.

Behavior: read-only; runs the Apify Actor pandadad0214/product-recall-monitor (https://apify.com/pandadad0214/product-recall-monitor) on your own Apify account. Price: $0.0015 per recall returned. Runs that find nothing are not charged per result, and spending is capped per call by run_max_charge_usd (default $0.50). run_max_items (default 50) limits items returned and fills maxResults when you leave it unset, so it also limits what is billed; setting maxResults higher can bill more than is returned. Most calls finish in 5-15 s for a few inputs; large inputs or crawls can take minutes, so raise run_timeout_secs (max 300) or shrink the input after a timeout error. Returns JSON {actor, count, items}; long text output is trimmed to whole items, with all items in structuredContent.

Input Schema

NameRequiredDescriptionDefault
statesNoDistributed in states. 2-letter codes; keeps nationwide recalls and FDA recalls whose distribution mentions the state, e.g. AZ.
sourcesNoSources. FDA food, drugs and devices (openFDA, updated weekly) and CPSC consumer products.
dateFromNoReported on or after. Optional YYYY-MM-DD; overrides days back.
daysBackNoReported in the last N days. Default 30. Use 7 on a weekly schedule.
keywordsNoKeywords (all must match). Comma-separated, matched in product, reason, firm, lots and retailers, e.g. peanut, listeria, insulin pump.
maxResultsNoMaximum results. You pay per recall returned, so this also caps the cost. Default 200.
firmContainsNoFirm name contains. e.g. a supplier or brand.
run_max_itemsNoOptional. Most results to return from this call (default from PANDA_MAX_ITEMS, 50). Also limits how many results the Actor produces and charges for, unless you set its own max field.
classificationsNoFDA class. Class I = most serious. Setting this leaves out CPSC recalls (they have no class).
run_timeout_secsNoOptional. Seconds to wait for results (default from PANDA_TIMEOUT_SECS, 120; max 300).
run_max_charge_usdNoOptional. Hard spending cap for this call in USD (default from PANDA_MAX_CHARGE_USD, 0.50).

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv1.5.0

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already declare readOnlyHint/destructiveHint, and the description still adds substantive behavior: per-recall pricing ($0.0015), free empty runs, a hard spend cap via run_max_charge_usd, expected latency (5-15 s, minutes for large inputs), timeout remediation, and the Actor executed on the caller's own Apify account. It also discloses that maxResults can bill more than is returned — a non-obvious cost trap the schema does not surface.

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?

Purpose and sibling differentiation are front-loaded, then behavior and pricing, then parameters — a sensible order. It is long and has some redundancy, notably restating the full parameter list and return-field list that the schema and behavior already cover, and 'Behavior: read-only' merely echoes readOnlyHint.

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

Completeness5/5

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

For an 11-parameter, no-output-schema tool the description is unusually complete: it enumerates every returned field (agentSummary, recallNumber, classification, hazard, remedy, plus XLSX/CSV exports), states the JSON envelope {actor, count, items}, and explains truncation of long text. Nothing an agent needs to call it or interpret results is missing.

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?

With 100% schema coverage the baseline is 3, but the description adds real meaning: run_max_items 'fills maxResults when you leave it unset' and the interaction where raising maxResults can bill more than is returned. Minor gap: it repeats the param list (sources/keywords/classifications/daysBack/states) rather than only adding the non-obvious interactions.

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

Purpose5/5

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

Opens with a specific verb and resource: 'Pull one feed of US product recalls' from two named upstream sources with their coverage areas. It explicitly distinguishes itself from three siblings by name (clinical_trial_leads, federal_register_monitor, vin_decoder_recalls), so an agent can route without opening any schema.

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

Usage Guidelines5/5

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

Gives both sides of the routing decision: 'Use when QA, retail, insurance, marketplace or consumer-safety teams need recent recalls by keyword, firm, class, state or date' and 'Do not use for vehicle VIN recalls (use vin_decoder_recalls) or for clinical-trial safety results.' The alternative tool is named for each exclusion.

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