openFDA MCP by usefulapi
by usefulapi.io · remote · no sign-in to list tools · v1.16.3 · published by io.usefulapi
Search openFDA drug, device, food and adverse-event datasets.
14 tools: 1 change things and 13 only read.
Scanned Oct 21, 2026
- Deletes or cancels0Claude Code: deny
- Can't be undone0Claude Code: ask
- Changes things1Claude Code: ask: see these tools
- Only reads13Claude Code: allow: see these tools
1 check matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http openfda https://openfda.usefulapi.io/mcpFindings
Matches of fixed checks, with the text they matched.
- Warncount
The server marks "count" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true}; The name "count" says "count": a word for reading.
Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
14 tools
Changes things 1Claude Code: ask
countopenFDA's most valuable feature: aggregate over any dataset by a field to get a top-terms histogram (returns `results: [{term, count}]` instead of records).1 finding
Why it is in this group
- The name "count" says "count": a word for reading.
- The description's first verb is "open": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "count" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true}; The name "count" says "count": a word for reading.
Description, as the server wrote it openFDA's most valuable feature: aggregate over any dataset by a field to get a top-terms histogram (returns `results: [{term, count}]` instead of records). Use the '.exact' field suffix to count whole phrases. Example: endpoint 'drug/event', field 'patient.reaction.reactionmeddrapt.exact', search 'patient.drug.medicinalproduct:"aspirin"' → the most common reactions reported for aspirin.
Annotations the server declares
- title: Count/aggregate over an openFDA dataset
- readOnlyHint: true
Only reads 13Claude Code: allow
openfda_queryGeneric escape hatch to query ANY supported openFDA endpoint with the full parameter set — covers the less-common datasets (device/pma, device/registrationlisting, device/udi, devi…No findings
Why it is in this group
- The name "openfda_query" says "query": a word for reading.
Description, as the server wrote it Generic escape hatch to query ANY supported openFDA endpoint with the full parameter set — covers the less-common datasets (device/pma, device/registrationlisting, device/udi, device/covid19serology, drug/orangebook, other/nsde, other/substance, tobacco/problem, etc.). Use the named search tools for the common datasets; use this for everything else or for advanced queries. openFDA REST API.
Annotations the server declares
- title: Query any openFDA endpoint (generic)
- readOnlyHint: true
search_device_510kSearch 510(k) premarket notification clearances: devices cleared for market as substantially equivalent to a predicate, with applicant, decision, product code and dates.No findings
Why it is in this group
- The name "search_device_510k" says "search": a word for reading.
Description, as the server wrote it Search 510(k) premarket notification clearances: devices cleared for market as substantially equivalent to a predicate, with applicant, decision, product code and dates. openFDA device/510k endpoint.
Annotations the server declares
- title: Search 510(k) premarket clearances
- readOnlyHint: true
search_device_classificationSearch the FDA device classification database: a device type's product code, device class (I/II/III), regulation number, medical specialty and submission requirements.No findings
Why it is in this group
- The name "search_device_classification" says "search": a word for reading.
Description, as the server wrote it Search the FDA device classification database: a device type's product code, device class (I/II/III), regulation number, medical specialty and submission requirements. openFDA device/classification endpoint.
Annotations the server declares
- title: Search device classification
- readOnlyHint: true
search_device_eventsSearch the MAUDE database: medical device adverse events — reported injuries, deaths and malfunctions involving medical devices.No findings
Why it is in this group
- The name "search_device_events" says "search": a word for reading.
Description, as the server wrote it Search the MAUDE database: medical device adverse events — reported injuries, deaths and malfunctions involving medical devices. openFDA device/event endpoint.
Annotations the server declares
- title: Search device adverse-event reports (MAUDE)
- readOnlyHint: true
search_device_recallsSearch medical device recalls: recalled devices with the reason, recalling firm, classification, product code and status.No findings
Why it is in this group
- The name "search_device_recalls" says "search": a word for reading.
Description, as the server wrote it Search medical device recalls: recalled devices with the reason, recalling firm, classification, product code and status. openFDA device/recall endpoint.
Annotations the server declares
- title: Search device recalls
- readOnlyHint: true
search_drug_eventsSearch the FDA Adverse Event Reporting System (FAERS): reports of drug side effects, adverse reactions and medication errors submitted to the FDA.No findings
Why it is in this group
- The name "search_drug_events" says "search": a word for reading.
Description, as the server wrote it Search the FDA Adverse Event Reporting System (FAERS): reports of drug side effects, adverse reactions and medication errors submitted to the FDA. Returns individual case reports. openFDA drug/event endpoint.
Annotations the server declares
- title: Search drug adverse-event reports (FAERS)
- readOnlyHint: true
search_drug_labelsSearch Structured Product Labeling (SPL): the official prescribing information for drugs — indications, warnings, dosage, adverse reactions, drug interactions and more.No findings
Why it is in this group
- The name "search_drug_labels" says "search": a word for reading.
Description, as the server wrote it Search Structured Product Labeling (SPL): the official prescribing information for drugs — indications, warnings, dosage, adverse reactions, drug interactions and more. openFDA drug/label endpoint.
Annotations the server declares
- title: Search drug product labels (SPL)
- readOnlyHint: true
search_drug_ndcSearch the National Drug Code (NDC) directory: every drug product's code, name, dosage form, route, active ingredients, marketing status and labeler.No findings
Why it is in this group
- The name "search_drug_ndc" says "search": a word for reading.
Description, as the server wrote it Search the National Drug Code (NDC) directory: every drug product's code, name, dosage form, route, active ingredients, marketing status and labeler. openFDA drug/ndc endpoint.
Annotations the server declares
- title: Search the National Drug Code directory
- readOnlyHint: true
search_drug_recallsSearch drug recall enforcement reports: recalled drug products with the reason, classification (Class I/II/III), recalling firm, distribution and status.No findings
Why it is in this group
- The name "search_drug_recalls" says "search": a word for reading.
Description, as the server wrote it Search drug recall enforcement reports: recalled drug products with the reason, classification (Class I/II/III), recalling firm, distribution and status. openFDA drug/enforcement endpoint.
Annotations the server declares
- title: Search drug recall enforcement reports
- readOnlyHint: true
search_drug_shortagesSearch current and resolved drug shortages: the affected product, status, reason, availability and related dates.No findings
Why it is in this group
- The name "search_drug_shortages" says "search": a word for reading.
Description, as the server wrote it Search current and resolved drug shortages: the affected product, status, reason, availability and related dates. openFDA drug/shortages endpoint.
Annotations the server declares
- title: Search drug shortages
- readOnlyHint: true
search_drugsfdaSearch Drugs@FDA: FDA-approved drug products and their applications (NDA/ANDA/BLA), sponsors, approval dates, products and submissions.No findings
Why it is in this group
- The name "search_drugsfda" says "search": a word for reading.
Description, as the server wrote it Search Drugs@FDA: FDA-approved drug products and their applications (NDA/ANDA/BLA), sponsors, approval dates, products and submissions. openFDA drug/drugsfda endpoint.
Annotations the server declares
- title: Search Drugs@FDA approved products
- readOnlyHint: true
search_food_eventsSearch the CFSAN Adverse Event Reporting System (CAERS): adverse events and product complaints for foods, dietary supplements and cosmetics.No findings
Why it is in this group
- The name "search_food_events" says "search": a word for reading.
Description, as the server wrote it Search the CFSAN Adverse Event Reporting System (CAERS): adverse events and product complaints for foods, dietary supplements and cosmetics. openFDA food/event endpoint.
Annotations the server declares
- title: Search food/supplement/cosmetic adverse events (CAERS)
- readOnlyHint: true
search_food_recallsSearch food recall enforcement reports: recalled food products with the reason, classification (Class I/II/III), recalling firm, distribution state and status.No findings
Why it is in this group
- The name "search_food_recalls" says "search": a word for reading.
Description, as the server wrote it Search food recall enforcement reports: recalled food products with the reason, classification (Class I/II/III), recalling firm, distribution state and status. openFDA food/enforcement endpoint.
Annotations the server declares
- title: Search food recall enforcement reports
- readOnlyHint: true
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 1.16.3. Values in angle brackets are yours to fill in.
claude mcp add --transport http openfda https://openfda.usefulapi.io/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__openfda__search_drug_events",
"mcp__openfda__search_drug_labels",
"mcp__openfda__search_drug_ndc",
"mcp__openfda__search_drug_recalls",
"mcp__openfda__search_drugsfda",
"mcp__openfda__search_drug_shortages",
"mcp__openfda__search_device_events",
"mcp__openfda__search_device_510k",
"mcp__openfda__search_device_recalls",
"mcp__openfda__search_device_classification",
"mcp__openfda__search_food_events",
"mcp__openfda__search_food_recalls",
"mcp__openfda__openfda_query"
],
"ask": [
"mcp__openfda__count"
],
"deny": []
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as openfda. Review it before you use it.