mcpbeat

Openfda MCP Server

io.github.cyanheads/openfda-mcp-server
answering

Openfda MCP Server is answering right now. Last checked 2 min ago. 753 installs a week from npm. It exposes 14 tools. Last commit 30 Jul 2026.

Query FDA data on drugs, food, devices, and recalls via openFDA. STDIO or Streamable HTTP.

Installs per day peak 518 · avg 63 · +85% w/w
a month agotoday
Uptime history 39 hours of history · worst hour 75%
39 hours agonow
100.0%
Uptime 24h
92 of 92 checks
14
Tools
read from the server
363 ms
Response time
average over 24h
753
Installs / week
npm and PyPI

Connect this server

Endpoint below is the one we actually reach during checks — not the one copied from a README. Last verified 2 min ago.

run in your terminal
claude mcp add openfda-mcp-server --transport http https://openfda.caseyjhand.com/mcp
~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "openfda-mcp-server": {
      "url": "https://openfda.caseyjhand.com/mcp"
    }
  }
}
~/.codex/config.toml
[mcp_servers.openfda-mcp-server]
url = "https://openfda.caseyjhand.com/mcp"
.cursor/mcp.json
{
  "mcpServers": {
    "openfda-mcp-server": {
      "url": "https://openfda.caseyjhand.com/mcp"
    }
  }
}
.vscode/mcp.json
{
  "mcpServers": {
    "openfda-mcp-server": {
      "url": "https://openfda.caseyjhand.com/mcp"
    }
  }
}

Available tools 14

Read directly from the server with tools/list, grouped by what they act on. If a tool disappears, we record the date.

openfda
openfda_count_values
Aggregate 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 openfda_lookup_ndc when sample records help interpret the aggregates.
openfda_dataframe_describe
List 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 hold nested openFDA objects/arrays — query them with DuckDB json functions.
openfda_dataframe_query
Run 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_describe first to get the exact table and column names. Results are capped at the canvas row limit — when truncated is true, page the rest with ORDER BY plus LIMIT/OFFSET. Scalar fields are stored as text (CAST for numeric math); nested objects/arrays are JSON columns — read them with DuckDB json functions, e.g. json_extract_string(openfda, '$.brand_name[0]'). Only SELECT is allowed — DDL, DML, COPY, and file-reading functions are blocked.
openfda_describe_fields
Return 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_drug_profile
Resolve 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_search_adverse_events, openfda_search_recalls, openfda_search_drug_approvals, and openfda_search_drug_shortages — and reconciles the identifier drift between endpoints that makes that chaining error-prone. Each section is best-effort: a miss returns null rather than failing the call. For deep dives into any one area, use the dedicated tool.
openfda_get_drug_label
Look 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 instead; re-call with sections to pull the ones you need.
openfda_lookup_ndc
Look 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.
openfda_search_adverse_events
Search adverse event reports across drugs, food, and devices. Use to investigate safety signals, find reports for a specific product, or explore reactions by demographics.
openfda_search_animal_events
Search 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 products, find reports by animal species or drug, or explore reaction patterns.
openfda_search_device_clearances
Search FDA device premarket notifications — 510(k) clearances and PMA approvals.
openfda_search_drug_approvals
Search 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.
openfda_search_drug_shortages
Search 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, rxcui) to chain into openfda_get_drug_label or openfda_lookup_ndc.
openfda_search_recalls
Search enforcement reports and recall actions across drugs, food, and devices.
openfda_search_tobacco_reports
Search 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, and submission date. Use to investigate safety signals, find reports by product type, or analyze health effects.

Endpoints

URLTransportStateLatencyChecked
https://openfda.caseyjhand.com/mcp streamable-http answering 382 ms 2 min ago

Openfda MCP Server — questions

Answers built from our own checks of this server.

What can Openfda MCP Server do?
It exposes 14 tools, read directly from the server on our last check. Among them: openfda_count_values, openfda_dataframe_describe, openfda_dataframe_query, openfda_describe_fields, openfda_drug_profile, openfda_get_drug_label and 8 more. The full list with descriptions is on this page — we take it from the server itself via tools/list, not from a README. How MCP servers expose tools in the first place →
Is Openfda MCP Server working right now?
We send a real MCP handshake every 15 minutes. Over the last 24 hours 92 of 92 checks got a reply (100.0%), average response time 363 ms. The bar chart above shows every period we have measured.
How do I connect Openfda MCP Server?
Copy the ready config from this page — we generate it for Claude Code, Claude Desktop, Codex, Cursor and VS Code, each with the file path that client actually reads. It is a remote server, so there is nothing to install — the client connects to the address.
Does Openfda MCP Server need an API key?
No. Openfda MCP Server completed a full MCP handshake with us as an anonymous client and listed its tools without asking for anything. All 14 of them are readable on this page. This is what we observed, not what the docs claim.
How fast is Openfda MCP Server?
It answers our handshake in 363 ms on average, which is faster than 38% of all working MCP servers we measure. The comparison comes from our own checks across the whole registry, every 15 minutes.
How many people use Openfda MCP Server?
The npm package @cyanheads/openfda-mcp-server was installed 753 times in the last week. Week over week that is +85%. We show installs rather than GitHub stars on purpose: a star is a bookmark, an install is someone actually running it.
Is Openfda MCP Server open source?
Yes — it is published under the Apache-2.0 licence, written in TypeScript and 4 stars on GitHub. The source link is on this page, so you can read exactly what it does with your data before you connect it.