Build a Company Profile with FDA Data MCP
Regulatory intelligence teams routinely need a single view of a company's FDA footprint: which names does it operate under, where are its facilities, has it been subject to recalls, and what products does it have on the market? This walkthrough shows how to assemble that profile using FDA Data MCP, in one primary call plus targeted drill-downs.
MCP tool calls — the examples below show tool names and their JSON inputs. Your AI assistant (Claude, Cursor, etc.) calls these tools automatically when you ask questions in natural language. You can also invoke them programmatically via the MCP protocol.
Step 1 — One call to get the full picture
fda_company_full resolves a company name against our alias table, then
fetches facilities, enforcement actions, 510(k) clearances, PMA approvals, and drug
applications in a single request.
fda_company_full({ "company": "Pfizer" })
The response is structured into sections, each independently paginated:
{
"summary": {
"company_id": "pfizer",
"resolved_via": "exact",
"input_normalized": "pfizer",
"facility_count": 52,
"enforcement_count": 187,
"clearance_510k_count": 14,
"pma_count": 3,
"drug_app_count": 412
},
"aliases": [
{ "alias": "Pfizer Inc", "source": "alias_pack", "confidence": 0.95 },
{ "alias": "Pfizer Labs", "source": "enforcement", "confidence": 0.8 },
...
],
"facilities": [
{ "fei": "3002807852", "firm_name": "Pfizer Inc", "city": "New York", "state": "NY", ... },
...
],
"enforcement": [ ... ],
"clearances_510k": [ ... ],
"pma_approvals": [ ... ],
"drug_applications": [ ... ],
"company_risk_summary": {
"total_inspections": 89,
"nai": 62,
"vai": 22,
"oai": 5,
"last_inspection_date": "2024-11-20",
"warning_letters": 3,
"seizures": 0,
"injunctions": 0
}
}
Step 2 — Understand the risk summary
The company_risk_summary gives an aggregate view of FDA inspection outcomes
and compliance actions across all facilities associated with the company. The three
inspection outcome codes in the response are:
- NAI (No Action Indicated) — no significant violations found
- VAI (Voluntary Action Indicated) — violations found, firm expected to correct voluntarily
- OAI (Official Action Indicated) — significant violations requiring regulatory action
A company with a high OAI count or recent warning letters warrants closer monitoring. The summary saves you from looping through individual facilities to build this picture.
Step 3 — Review aliases
Large companies operate under many names: subsidiaries, former names, and regional
variants. The aliases array maps all known names for this company ID.
Each alias includes its source (how it was discovered) and
confidence score. Use high-confidence aliases for automated watchlists;
review lower-confidence ones manually.
Step 4 — Drill into a specific facility
Each facility in the response has an FEI (FDA Establishment Identifier). FEI is the most stable join key across FDA datasets. To get detailed facility information including inspection history and device products:
fda_get_facility({ "fei": "3002807852" })
The response includes the facility's own facility_risk_summary with
per-facility inspection counts and compliance actions, plus linked device products.
Step 5 — Paginate large sections
Each section in the fda_company_full response is independently paginated.
If a company has 187 enforcement actions but the default limit is 25, fetch the next
page with:
fda_company_full({ "company": "Pfizer", "enforcement_offset": 25 })
The same pattern works for facilities_offset,
clearances_510k_offset, pma_offset, and
drug_apps_offset.
Putting it together
A complete company profile workflow typically looks like:
- Call
fda_company_fullto get the overview and risk summary. - Review aliases to confirm subsidiary coverage.
- Check
company_risk_summaryfor OAI counts and warning letters. - Drill into high-risk facilities with
fda_get_facility. - Paginate any section that has more results than the default limit.
This gives you a structured, auditable company profile built entirely from FDA data — no manual research or external assumptions required.