fda_search_warning_letters
ActiveTool of FDA Data MCP
Search official FDA warning letters with full-text content from the FDA website. Use keyword search for the actual letter body, or filter by company name, issuing office, subject, MARCS-CMS number, product type, or letter issue date. Adds prospecting filters: status (open|responded|closed, derived from response/closeout dates), letter_category (CGMP-manufacturing | BIMO | listing | OPDP/promotion | 503B/compounding | import — heuristic, derived from issuing_office/subject/product_type), and violation_theme (cgmp_subsystem | data_integrity | validation | bimo | listing | promotion — keyword/FTS-derived over subject+body). Set dedupe=true to collapse near-identical letters sharing a MARCS-CMS case number to one canonical row. Each row exposes derived status and letter_category, plus fei_number for one-hop navigation to fda_citations and fda_inspections. This adds narrative context beyond fda_compliance_actions, which only contains dashboard metadata. NOTE: violation_theme and letter_category are best-effort heuristics over free-text fields; keyword cannot be scoped to a parsed cited-violations sub-section because the corpus only stores subject + full letter body.
Parameters schema
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"limit": {
"type": "integer",
"default": 100,
"maximum": 500,
"minimum": 1,
"description": "Max results to return (1-500)"
},
"dedupe": {
"type": "boolean",
"default": false,
"description": "Collapse letters sharing a MARCS-CMS case number to one canonical row (recommended for prospecting)"
},
"offset": {
"type": "integer",
"default": 0,
"maximum": 9007199254740991,
"minimum": 0,
"description": "Result offset for pagination"
},
"status": {
"enum": [
"open",
"responded",
"closed"
],
"type": "string",
"description": "Derived status: closed (has closeout date), responded (has response date), or open"
},
"date_to": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "End date for letter_issue_date range (YYYY-MM-DD)"
},
"keyword": {
"type": "string",
"maxLength": 500,
"description": "Full-text query for the warning letter body and subject"
},
"subject": {
"type": "string",
"maxLength": 500,
"description": "Subject line text (partial match)"
},
"date_from": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Start date for letter_issue_date range (YYYY-MM-DD)"
},
"company_name": {
"type": "string",
"maxLength": 500,
"description": "Company name (fuzzy match)"
},
"product_type": {
"type": "string",
"maxLength": 200,
"description": "Product type from the letter page (e.g. Drugs, Devices, Food)"
},
"issuing_office": {
"type": "string",
"maxLength": 500,
"description": "Issuing office or center name (partial match)"
},
"letter_category": {
"enum": [
"CGMP-manufacturing",
"BIMO",
"listing",
"OPDP/promotion",
"503B/compounding",
"import"
],
"type": "string",
"description": "Heuristic category derived from issuing_office/subject/product_type"
},
"violation_theme": {
"enum": [
"cgmp_subsystem",
"data_integrity",
"validation",
"bimo",
"listing",
"promotion"
],
"type": "string",
"description": "Heuristic violation theme derived from subject and letter body text"
},
"marcs_cms_number": {
"type": "string",
"pattern": "^\\d{3,10}$",
"description": "MARCS-CMS case number shown on the letter page"
}
}
}No endpoints wrapped at confidence ≥ 0.50.
Parent server
FDA Data MCP
https://github.com/medley/fda-data
1/7 registries