OpenFDA MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| FDA_API_KEY | No | Optional API key for higher rate limits (120k req/hr instead of 1k req/hr). Get a free key at https://open.fda.gov/apis/authentication/ |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| search_drug_adverse_eventsA | Search FDA Adverse Event Reporting System (FAERS) data. Args: search: openFDA query (e.g. 'patient.drug.openfda.brand_name:"aspirin"'). limit: Max results (1-1000). skip: Offset for pagination. count: Field to count (returns frequency counts instead of records). |
| search_drug_labelsA | Search drug product labeling (SPL) information. Args: search: openFDA query (e.g. 'openfda.brand_name:"lipitor"'). limit: Max results (1-1000). skip: Offset for pagination. count: Field to count. |
| search_drug_ndcA | Search the National Drug Code (NDC) directory. Args: search: openFDA query (e.g. 'brand_name:"tylenol"'). limit: Max results (1-1000). skip: Offset for pagination. count: Field to count. |
| search_drug_recallsB | Search drug recall enforcement reports. Args: search: openFDA query (e.g. 'classification:"Class I"'). limit: Max results (1-1000). skip: Offset for pagination. count: Field to count. |
| search_drug_approvalsA | Search the Drugs@FDA database for approved drug products. Args: search: openFDA query (e.g. 'openfda.brand_name:"keytruda"'). limit: Max results (1-1000). skip: Offset for pagination. count: Field to count. |
| search_drug_shortagesB | Search current FDA drug shortage reports. Args: search: openFDA query. limit: Max results (1-1000). skip: Offset for pagination. count: Field to count. |
| search_device_510kA | Search FDA 510(k) premarket clearance data for medical devices. Args: search: openFDA query (e.g. 'applicant:"medtronic"'). limit: Max results (1-1000). skip: Offset for pagination. count: Field to count. |
| search_device_classificationsA | Search FDA medical device classifications. Args: search: openFDA query (e.g. 'medical_specialty_description:"cardiovascular"'). limit: Max results (1-1000). skip: Offset for pagination. count: Field to count. |
| search_device_adverse_eventsA | Search FDA medical device adverse event (MDR) reports. Args: search: openFDA query (e.g. 'device.brand_name:"insulin pump"'). limit: Max results (1-1000). skip: Offset for pagination. count: Field to count. |
| search_device_recallsA | Search FDA medical device recall enforcement reports. Args: search: openFDA query (e.g. 'classification:"Class I"'). limit: Max results (1-1000). skip: Offset for pagination. count: Field to count. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 10 tools
Each tool targets a distinct FDA dataset (e.g., NDC, adverse events, labels, recalls, approvals, shortages, 510(k), classifications) with no overlap in purpose. Descriptions clearly differentiate the endpoints.
All tools follow a consistent 'search_{domain}_{dataset}' pattern (e.g., search_drug_ndc, search_device_recalls), making it predictable and easy to navigate.
With 10 tools, the server covers the major FDA drug and device datasets without being too sparse or overwhelming. It is well-scoped for the intended domain.
The tool set covers key FDA drug endpoints (NDC, adverse events, labels, recalls, approvals, shortages) and device endpoints (510(k), classifications, adverse events, recalls). Few major gaps exist for the core OpenFDA query use cases.