Search U.S. FDA, USDA FSIS, and CPSC recalls, fetch one, or diff since a date. API key or x402.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Bearer rk_... API key from https://recallradar.withglint.app/pricing. Omit when paying per call with x402.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Recalls created or updated after a timestamp, oldest change first; each row has change = created | updated. Pass meta.until as the next since. Paid: send Authorization: Bearer rk_… or an x402 payment in params._meta["x402/payment"]. Fixed price per call (x402 exact). RecallRadar indexes public recall notices from the FDA, USDA FSIS, and CPSC. The official agency notice is the authoritative source. Always confirm details at the linked source before acting. source_url is authoritative.
ISO 8601 timestamp; returns rows created or updated after it
Free text over product, reason, firm
Rows to return. Paid per row returned.
Ongoing, or unknown for agencies without lifecycle status
Whole-word match on normalized brand, firm, or product text
next_cursor from the previous call
Rows without a class (CPSC) always match
Company slug or name (firm, else brand)
Recalls created or updated after a timestamp, oldest change first; each row has change = created | updated. Pass meta.until as the next since. Paid: send Authorization: Bearer rk_… or an x402 payment in params._meta["x402/payment"]. Fixed price per call (x402 exact). RecallRadar indexes public recall notices from the FDA, USDA FSIS, and CPSC. The official agency notice is the authoritative source. Always confirm details at the linked source before acting. source_url is authoritative.
| Argument | Type | Description |
|---|---|---|
| q | string | Free text over product, reason, firm |
| limit | integer | Rows to return. Paid per row returned. |
| since* | string | ISO 8601 timestamp; returns rows created or updated after it |
| active | boolean | Ongoing, or unknown for agencies without lifecycle status |
| agency | string | |
| brands | array | Whole-word match on normalized brand, firm, or product text |
| cursor | string | next_cursor from the previous call |
| status | string | |
| classes | array | Rows without a class (CPSC) always match |
| company | string | Company slug or name (firm, else brand) |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"since"
],
"properties": {
"q": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Free text over product, reason, firm"
},
"limit": {
"type": "integer",
"default": 20,
"maximum": 1000,
"minimum": 1,
"description": "Rows to return. Paid per row returned."
},
"since": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
"description": "ISO 8601 timestamp; returns rows created or updated after it"
},
"active": {
"type": "boolean",
"description": "Ongoing, or unknown for agencies without lifecycle status"
},
"agency": {
"enum": [
"fda_food",
"fda_drug",
"fda_device",
"fsis",
"cpsc"
],
"type": "string"
},
"brands": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"maxItems": 50,
"description": "Whole-word match on normalized brand, firm, or product text"
},
"cursor": {
"type": "string",
"description": "next_cursor from the previous call"
},
"status": {
"enum": [
"ongoing",
"terminated",
"completed",
"unknown"
],
"type": "string"
},
"classes": {
"type": "array",
"items": {
"enum": [
"I",
"II",
"III",
"PHA"
],
"type": "string"
},
"description": "Rows without a class (CPSC) always match"
},
"company": {
"type": "string",
"minLength": 1,
"description": "Company slug or name (firm, else brand)"
}
}
}One recall by id or slug, with the raw agency payload and status history. Paid: send Authorization: Bearer rk_… or an x402 payment in params._meta["x402/payment"]. Fixed price per call (x402 exact). RecallRadar indexes public recall notices from the FDA, USDA FSIS, and CPSC. The official agency notice is the authoritative source. Always confirm details at the linked source before acting. source_url is authoritative.
| Argument | Type | Description |
|---|---|---|
| id* | string | 32-hex recall id or page slug |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "32-hex recall id or page slug"
}
}
}Agencies RecallRadar indexes and their labels. Free. RecallRadar indexes public recall notices from the FDA, USDA FSIS, and CPSC. The official agency notice is the authoritative source. Always confirm details at the linked source before acting.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}Search FDA, USDA FSIS, and CPSC recalls by brand, company, free text, agency, class, status, and published date, newest first. Paid: send Authorization: Bearer rk_… or an x402 payment in params._meta["x402/payment"]. Priced per row returned (x402 upto). RecallRadar indexes public recall notices from the FDA, USDA FSIS, and CPSC. The official agency notice is the authoritative source. Always confirm details at the linked source before acting. source_url is authoritative.
| Argument | Type | Description |
|---|---|---|
| q | string | Free text over product, reason, firm |
| limit | integer | Rows to return. Paid per row returned. |
| since | string | published_at >= since |
| until | string | published_at <= until |
| active | boolean | Ongoing, or unknown for agencies without lifecycle status |
| agency | string | |
| brands | array | Whole-word match on normalized brand, firm, or product text |
| cursor | string | next_cursor from the previous call |
| status |
| string |
| classes | array | Rows without a class (CPSC) always match |
| company | string | Company slug or name (firm, else brand) |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"q": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Free text over product, reason, firm"
},
"limit": {
"type": "integer",
"default": 20,
"maximum": 1000,
"minimum": 1,
"description": "Rows to return. Paid per row returned."
},
"since": {
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
"description": "published_at >= since"
},
"until": {
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$",
"description": "published_at <= until"
},
"active": {
"type": "boolean",
"description": "Ongoing, or unknown for agencies without lifecycle status"
},
"agency": {
"enum": [
"fda_food",
"fda_drug",
"fda_device",
"fsis",
"cpsc"
],
"type": "string"
},
"brands": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"maxItems": 50,
"description": "Whole-word match on normalized brand, firm, or product text"
},
"cursor": {
"type": "string",
"description": "next_cursor from the previous call"
},
"status": {
"enum": [
"ongoing",
"terminated",
"completed",
"unknown"
],
"type": "string"
},
"classes": {
"type": "array",
"items": {
"enum": [
"I",
"II",
"III",
"PHA"
],
"type": "string"
},
"description": "Rows without a class (CPSC) always match"
},
"company": {
"type": "string",
"minLength": 1,
"description": "Company slug or name (firm, else brand)"
}
}
}