fda-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@fda-mcpRun a postmarket health check on Medtronic MiniMed 780G"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
fda-mcp
Local MCP server exposing FDA medical-device intelligence tools. All data
sources are public and keyless: openFDA (api.fda.gov), the fda.gov
warning-letter endpoint (not in openFDA), and 510(k) summary PDFs from
accessdata.fda.gov (parsed via pdftotext).
The server has no LLM inside — it is the toolbox. Your AI client (opencode, Claude Code, Claude Desktop, Cursor, VS Code Copilot) supplies the model and decides when to call the tools.
Requirements
Bun (tested with 1.4.x)
pdftotext(poppler-utils) on PATH — only needed forget_510k_summary
Related MCP server: fda-approvals-mcp
Run
bun src/index.ts # speaks MCP over stdio; clients spawn this themselvesTools
Tool | What it does |
| Plain-English description or product code → product codes, device class, regulation |
| 510(k) clearances by code/applicant/device name/date range |
| One clearance + its summary PDF parsed, indications statement extracted |
| MAUDE adverse events; list mode or |
| Device recalls by code/firm/product keyword |
| fda.gov warning letters, optionally CDRH-only (dataset absent from openFDA) |
| Recalls + MAUDE volume + warning letters for a brand/company — predicate due diligence |
| PMA approvals/supplements (Class III devices) by code/applicant/date |
| Establishment Registration & Listing — who makes/sterilizes what under a code (competitor/supplier discovery) |
| GUDID/UDI records — resolve brand → legal company name, enumerate models/versions |
| Recall enforcement reports with Class I/II/III severity (complements |
| Full query guide (syntax quirks, endpoint cheat sheets, recipes) — read before |
| Guarded raw GET against FDA hosts only — escape hatch for query shapes the typed tools miss |
Most search tools accept count_by for aggregations (e.g. search_510k with
count_by: "applicant.exact" = who files most under a product code).
Skill (for shell-capable agents — no server needed)
skills/fda-device-intel/SKILL.md teaches an agent with shell access (Claude
Code, opencode, Codex CLI, Copilot agent mode) to query the same endpoints
directly with curl — no process, no install beyond the markdown file:
One-liner install (Claude Code / any agent reading ~/.claude/skills/):
mkdir -p ~/.claude/skills/fda-device-intel && curl -fsSL -o ~/.claude/skills/fda-device-intel/SKILL.md https://raw.githubusercontent.com/happylemonprogramming/fda-mcp/main/skills/fda-device-intel/SKILL.mdOr paste the skill straight into any agent that can fetch URLs:
Fetch https://raw.githubusercontent.com/happylemonprogramming/fda-mcp/main/skills/fda-device-intel/SKILL.md and follow it to answer FDA medical-device questions.
Skill and MCP server share one knowledge source: get_query_guide serves the
skill's body to MCP clients, so remote no-shell clients (Claude Desktop,
ChatGPT, Teams/Copilot Studio) get the same guidance driving fda_fetch.
Connect a client
opencode
Add to opencode.json (project) or ~/.config/opencode/opencode.json:
{
"mcp": {
"fda": {
"type": "local",
"command": ["bun", "/home/lemon/Projects/fda-mcp/src/index.ts"],
"enabled": true
}
}
}Claude Code
claude mcp add fda -- bun /home/lemon/Projects/fda-mcp/src/index.tsor in .mcp.json:
{
"mcpServers": {
"fda": {
"command": "bun",
"args": ["/home/lemon/Projects/fda-mcp/src/index.ts"]
}
}
}Claude Desktop
~/.config/Claude/claude_desktop_config.json → same mcpServers block as
Claude Code above.
Example prompts to try
"Look up the product code for a bipolar laparoscopic coagulation device, then show me the 5 newest clearances under it."
"Run a postmarket health check on POWERSEAL by Olympus."
"Get the indications statement from K213042's summary PDF."
"Any CDRH warning letters mentioning Medtronic?"
Caveats
MAUDE data lags months behind real time.
The warning-letter endpoint is an undocumented fda.gov internal API; it can change without notice. Keep request volume low.
Name matching is keyword-based; brand/company collisions happen (a "Voyant" query matches an unrelated contact lens). Every tool output says so.
Informational only, not regulatory advice; see https://open.fda.gov/terms/.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
FDA 510(k)s, PMAs, recalls & trials, linked: predicate search and review-time stats for AI agents.
FDA medical-device regulatory intelligence from keyless openFDA datasets.
US healthcare data for AI agents: CMS, FDA adverse events, CDC, NPPES NPI. Keyless, real samples.
FDA MCP — US Food and Drug Administration public API (free, no auth)
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables AI agents to query and analyze FDA adverse events, drug labels, medical device clearances, and other public health datasets through natural language commands.13-
- FlicenseNot gradedqualityDmaintenanceEnables querying FDA drug approvals, device clearances (510(k)), recalls, and adverse events via the openFDA API, providing tools for clinical and pharmaceutical research.1-
- FlicenseNot gradedqualityDmaintenanceEnables AI agents to access FDA and ClinicalTrials.gov data for medical device compliance, adverse event monitoring, and regulatory due diligence.-
- FlicenseBqualityDmaintenanceEnables AI agents to query free biomedical and pharmaceutical APIs for clinical trials, drug data, molecular structures, adverse events, and research literature.14-