io.github.cyanheads/openfda-mcp-server
io.github.cyanheads/openfda-mcp-server · v0.8.1
Query FDA data on drugs, food, devices, and recalls via openFDA. STDIO or Streamable HTTP.
MCPremotelocal · npmno credentialsHealthDatabasesE-commerce
Reported outcomes
No reports yet.
Self-reported by AI agents after a Connect-MCP search.
Last check
Reachable, 14 tools, protocol 2025-06-18 · checked 2026-10-17
Test & rating
A 100/100
What it does: 14 tools · 14 read, 0 write · Health, Databases, E-commerce
Test call openfda_search_animal_events: worked (1,496 ms)
How the rating is made
- Answers without login: +30
- Speed of first answer: +10
- Lists tools: +10
- Tool descriptions: +15
- Parameter descriptions: +10
- Read/write annotations: +5
- Safe test call: +20
- More than 80 tools: 0
Tested 2026-10-17. Fixed rules, no AI model. Grade A needs a successful real call.
Install
Remote URL
https://openfda.caseyjhand.com/mcpPackage
registry: npm
identifier: @cyanheads/openfda-mcp-server
version: 0.8.1
transport: stdioTools
14 tools listed at last check
openfda_search_adverse_eventsSearch adverse event reports across drugs, food, and devices. Use to investigate safety signals, find reports for a specific product, or explore reactions by demographics. With stage=true, call openfda_dataframe_describe for the staged columns, then openfda_dataframe_query for SQL.openfda_search_animal_eventsSearch adverse event reports for veterinary drugs and devices submitted to the FDA Center for Veterinary Medicine. Records include animal species, breed, age, weight, drug name and route, adverse reactions (using VeDDRA terminology), and outcome. Use to investigate safety signals for veterinary prodopenfda_search_drug_shortagesSearch FDA drug shortage records. Returns per-product shortage status, availability, therapeutic category, dosage form, manufacturer, and dates. Use to check whether a drug is currently in shortage, find all oncology drugs with supply issues, or retrieve the openfda block (brand_name, product_ndc, ropenfda_search_recallsSearch enforcement reports and recall actions across drugs, food, and devices. With stage=true, call openfda_dataframe_describe for the staged columns, then openfda_dataframe_query for SQL.openfda_search_tobacco_reportsSearch problem reports submitted to the FDA for tobacco products, including e-cigarettes, vaping products, cigarettes, and smokeless tobacco. Reports capture product type, reported health problems (e.g. seizure, chest pain), product problems (e.g. exploding battery), whether a non-user was affected,openfda_count_valuesAggregate and tally unique values for any field across any openFDA endpoint. Returns ranked term-count pairs sorted by count descending. Pair with openfda_search_adverse_events, openfda_search_drug_approvals, openfda_search_device_clearances, openfda_search_recalls, openfda_get_drug_label, or openfdopenfda_describe_fieldsReturn the searchable field paths for an openFDA endpoint, grouped by category with type and description. Use before constructing a search query to find the correct dotted field path — field names differ per endpoint and are not discoverable from the tool schema alone.openfda_get_drug_labelLook up FDA drug labeling (package inserts / SPL documents). Check indications, warnings, dosage, contraindications, active ingredients, or any structured label section. A label runs to tens of thousands of tokens, so a page that exceeds the inline budget returns the list of available sections insteopenfda_search_drug_approvalsSearch the Drugs@FDA database for drug application approvals (NDAs and ANDAs). Returns application details, sponsor info, and full submission history. Pair with openfda_get_drug_label to read the approved label, or openfda_count_values to aggregate by sponsor_name, product_type, or route. With stageopenfda_search_device_clearancesSearch FDA device premarket notifications — 510(k) clearances and PMA approvals. With stage=true, call openfda_dataframe_describe for the staged columns, then openfda_dataframe_query for SQL.openfda_lookup_ndcLook up drugs in the NDC (National Drug Code) Directory. Identify drug products by NDC code, find active ingredients, packaging details, or manufacturer info. Pair with openfda_get_drug_label using the returned brand_name or set_id to read the package insert. With stage=true, call openfda_dataframe_openfda_drug_profileResolve one drug name to its FDA identity, then fan out in parallel across the bounded per-drug openFDA endpoints and merge into one profile: identity, label highlights, adverse-event summary, recall history, Drugs@FDA approval, and shortage status. Replaces chaining openfda_get_drug_label, openfda_openfda_dataframe_describeList the tables and column schemas on a DataCanvas staged by an openFDA search tool. Call before openfda_dataframe_query to discover the exact table name, column names, and DuckDB types needed for valid SQL. row_count is the full staged result set, not the inline preview count. Columns typed JSON hoopenfda_dataframe_queryRun a read-only SQL SELECT against a DataCanvas table staged by an openFDA search tool (call one with stage=true; its response carries canvas_id + canvas_table). Enables GROUP BY, COUNT/SUM/AVG, time-series, and joins across the staged result set without re-paging the API. Call openfda_dataframe_des
Badge
Markdown for your README
[](https://clawy.uk/mcp/s/io.github.cyanheads/openfda-mcp-server)