Skip to main content
Glama

Logo

Unofficial FDA API MCP Server

A comprehensive Model Context Protocol (MCP) server that provides access to the U.S. Food and Drug Administration's public datasets through the openFDA API. This server enables querying of drug adverse events, product labeling, recalls, approvals, shortages, NDC directory information, and medical device regulatory data including 510(k) clearances, classifications, and adverse events.

Developed by Augmented Nature

Features

Drug Tools (6 tools implemented)

  • search_drug_adverse_events: Search FDA Adverse Event Reporting System (FAERS) data

  • search_drug_labels: Search drug product labeling information

  • search_drug_ndc: Query the National Drug Code (NDC) directory

  • search_drug_recalls: Find drug recall enforcement reports

  • search_drugs_fda: Search the Drugs@FDA database for approved products

  • search_drug_shortages: Query current drug shortages

Device Tools (4 tools implemented)

  • search_device_510k: Search FDA 510(k) device clearances

  • search_device_classifications: Search FDA device classifications

  • search_device_adverse_events: Search FDA device adverse events (MDR)

  • search_device_recalls: Search FDA device recall enforcement reports

Key Features

  • Comprehensive Search: Advanced filtering by drug name, manufacturer, indication, dates, and more

  • Rate Limiting: Built-in awareness of FDA API rate limits (1,000 requests/hour without API key)

  • Error Handling: Robust error handling with meaningful error messages

  • Formatted Results: Clean, structured JSON responses with relevant metadata

  • Optional API Key: Supports FDA API key for higher rate limits (120,000 requests/hour)

Related MCP server: OpenFDA MCP Server

Installation

  1. The server is already built and configured in your MCP settings

  2. Optionally set an FDA API key for higher rate limits:

# Set FDA_API_KEY environment variable for higher rate limits
export FDA_API_KEY="your_api_key_here"

To get an FDA API key:

  1. Visit https://open.fda.gov/apis/authentication/

  2. Sign up for an API key

  3. Add it to your MCP settings or environment

Usage Examples

Search Drug Adverse Events

Search for adverse events related to aspirin that occurred in the United States in 2023

Search Drug Labels

Find labeling information for diabetes medications manufactured by Novo Nordisk

Search NDC Directory

Look up NDC information for ibuprofen tablets

Search Drug Recalls

Find all Class I drug recalls from 2023 involving contamination

Search FDA Approved Drugs

Find all FDA-approved drugs sponsored by Pfizer with injection dosage form

Search Drug Shortages

Find current drug shortages for antibiotics

API Response Format

All tools return structured JSON with:

  • search_criteria: The parameters used for the search

  • total_results: Total number of matching records in FDA database

  • results_shown: Number of results returned in this response

  • [data_type]: Array of formatted results (e.g., adverse_events, drug_labels)

  • api_usage: Information about API key status and rate limits

Rate Limiting

  • Without API Key: 1,000 requests per hour

  • With API Key: 120,000 requests per hour

  • The server automatically handles rate limit errors and provides helpful messages

Architecture

The server is built with a modular architecture:

  • /src/index.ts: Main server setup and tool registration

  • /src/handlers/drug-handlers.ts: All drug-related tool implementations

  • /src/handlers/device-handlers.ts: All device-related tool implementations

  • /src/utils/api-client.ts: HTTP client with error handling and rate limiting

  • /src/types/fda.ts: TypeScript interfaces for all FDA data structures

Supported Search Parameters

Drug Adverse Events

  • drug_name: Name of the drug or medication

  • brand_name: Brand/trade name

  • generic_name: Generic name

  • manufacturer: Manufacturer name

  • reaction: Adverse reaction or side effect

  • serious_only: Only return serious adverse events

  • patient_sex: Patient sex (1=Male, 2=Female)

  • country: Country where event occurred

  • date_from/date_to: Date range filters

  • count: Group results for counting

  • limit: Maximum results (1-100)

  • skip: Pagination offset

Drug Labels

  • brand_name: Brand/trade name of the drug

  • generic_name: Generic name

  • manufacturer: Manufacturer name

  • active_ingredient: Active ingredient name

  • indication: Medical indication or condition

  • route: Route of administration

  • product_type: Product type

  • Plus standard pagination and counting parameters

NDC Directory

  • product_ndc: Product NDC number

  • package_ndc: Package NDC number

  • proprietary_name: Brand name

  • nonproprietary_name: Generic name

  • labeler_name: Manufacturer/labeler name

  • dosage_form: Dosage form (tablet, capsule, etc.)

  • route: Route of administration

  • substance_name: Active substance name

  • Plus standard pagination and counting parameters

Drug Recalls

  • product_description: Product description

  • recalling_firm: Name of recalling firm

  • classification: Recall classification (Class I, II, III)

  • status: Recall status

  • state/country: Geographic filters

  • reason_for_recall: Reason for recall

  • date_from/date_to: Date range filters

  • Plus standard pagination and counting parameters

Drugs@FDA

  • sponsor_name: Sponsor/applicant name

  • application_number: FDA application number

  • brand_name: Brand/trade name

  • generic_name: Generic name

  • active_ingredient: Active ingredient

  • dosage_form: Dosage form

  • marketing_status: Marketing status

  • Plus standard pagination and counting parameters

Drug Shortages

  • product_name: Product name

  • generic_name: Generic name

  • brand_name: Brand name

  • active_ingredient: Active ingredient

  • shortage_status: Current shortage status

  • shortage_designation: Shortage designation (Yes/No)

  • dosage_form: Dosage form

  • Plus standard pagination and counting parameters

Device 510(k) Clearances

  • device_name: Name of the medical device

  • applicant: Applicant company name

  • contact: Contact information

  • product_code: FDA product code

  • clearance_type: Type of 510(k) clearance

  • decision_date_from/decision_date_to: Decision date range filters

  • Plus standard pagination parameters

Device Classifications

  • device_name: Name of the medical device

  • device_class: Device class (1, 2, 3)

  • medical_specialty: Medical specialty

  • product_code: FDA product code

  • regulation_number: FDA regulation number

  • Plus standard pagination parameters

Device Adverse Events

  • device_name: Name of the medical device

  • brand_name: Brand name of the device

  • manufacturer: Device manufacturer name

  • product_code: FDA product code

  • event_type: Type of adverse event

  • patient_sex: Patient sex (F=Female, M=Male)

  • date_from/date_to: Event date range filters

  • Plus standard pagination parameters

Device Recalls

  • product_description: Product description or name

  • recalling_firm: Name of the recalling firm

  • classification: Recall classification (Class I, II, III)

  • status: Recall status

  • product_code: FDA product code

  • date_from/date_to: Recall initiation date range filters

  • Plus standard pagination parameters

Future Enhancements

The server architecture supports easy extension with additional FDA endpoints:

  • Device Tools: 510(k) clearances, classifications, adverse events, recalls

  • Food Tools: Adverse events, recall enforcement reports

  • Other Tools: Substance data, UNII, tobacco reports, historical documents

Error Handling

The server provides comprehensive error handling for:

  • Invalid search parameters

  • API rate limiting

  • Network connectivity issues

  • FDA API service unavailability

  • Malformed responses

Development

Built with:

  • TypeScript: Type-safe development

  • MCP SDK: Model Context Protocol implementation

  • Axios: HTTP client with interceptors

  • Node.js: Runtime environment

License

This project is open source and available under standard licensing terms.

Support

For issues or questions about the FDA API MCP Server:

  1. Check the FDA API documentation: https://open.fda.gov/apis/

  2. Review rate limiting and authentication requirements

  3. Ensure proper JSON formatting in search parameters


This MCP server provides access to public FDA datasets. Always consult healthcare professionals for medical decisions and drug information.

Available Tools

10 tools
search_device_510kB

Search FDA 510(k) device clearances

ParametersJSON Schema
NameRequiredDescriptionDefault
device_nameNoName of the medical device
applicantNoApplicant company name
contactNoContact information
product_codeNoFDA product code
clearance_typeNoType of 510(k) clearance
decision_date_fromNoStart date for decision date range (YYYYMMDD format)
decision_date_toNoEnd date for decision date range (YYYYMMDD format)
limitNoMaximum number of results to return (1-100)
skipNoNumber of results to skip for pagination

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden but only says 'Search'. It does not disclose any behavioral traits such as authentication needs, rate limits, response format, or pagination behavior, leaving the agent underinformed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence with no wasted words. It is appropriately sized for a simple search tool, though it could be front-loaded with the purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 9 parameters and no output schema, the description is too minimal. It does not explain what a 510(k) clearance is, how to best use the filters, or what the results look like, leaving gaps in understanding.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds no extra meaning beyond the schema's parameter descriptions, so no additional value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Search' and the resource 'FDA 510(k) device clearances', which is specific and distinguishes it from sibling tools like search_device_adverse_events or search_device_recalls.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives, no context on prerequisites or typical use cases. The description lacks any when-to-use or when-not-to-use information.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_device_adverse_eventsC

Search FDA device adverse events (MDR)

ParametersJSON Schema
NameRequiredDescriptionDefault
device_nameNoName of the medical device
brand_nameNoBrand name of the device
manufacturerNoDevice manufacturer name
product_codeNoFDA product code
event_typeNoType of adverse event
patient_sexNoPatient sex (F=Female, M=Male)
date_fromNoStart date for event date range (YYYYMMDD format)
date_toNoEnd date for event date range (YYYYMMDD format)
limitNoMaximum number of results to return (1-100)
skipNoNumber of results to skip for pagination

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description must cover behavioral traits. It only says 'Search', implying a read operation, but doesn't disclose any API quirks, rate limits, required fields (all optional), or pagination behavior. The behavior with no parameters is unclear.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence. However, conciseness comes at the cost of providing necessary details. It earns a 4 for being clearly structured but not 5 due to missing content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 10 parameters and no output schema, the description is insufficient. It does not explain terms like MDR, how to effectively use filters, or what the output contains. The sibling tools provide context but the description itself is incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all parameters. The description adds no extra meaning beyond what's in the schema, thus baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Search FDA device adverse events (MDR)', indicating the verb and resource. It distinguishes from sibling tools like search_device_510k, but lacks specificity on the scope of MDR data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives, such as when to search adverse events vs. recalls or classifications. No exclusions or prerequisites are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_device_classificationsC

Search FDA device classifications

ParametersJSON Schema
NameRequiredDescriptionDefault
device_nameNoName of the medical device
device_classNoDevice class (I, II, III)
medical_specialtyNoMedical specialty
product_codeNoFDA product code
regulation_numberNoFDA regulation number
limitNoMaximum number of results to return (1-100)
skipNoNumber of results to skip for pagination

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It does not state whether the operation is read-only, destructive, or requires authentication. Although a search is typically read-only, this is not explicitly communicated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise (four words), but it is front-loaded and conveys the core purpose. However, it may be too brief at the expense of helpful details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 7 parameters and no output schema, the description is insufficient. It fails to explain what 'device classifications' are, how the results look, or how to effectively use the parameters like limit/skip for pagination.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, so the baseline is 3. The description 'Search FDA device classifications' does not add any extra meaning or usage context to the parameters beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Search FDA device classifications' clearly states the tool's action and resource, but it does not differentiate it from sibling tools like search_device_510k or search_device_recalls, which also search FDA device-related data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No usage guidelines are provided. The description does not indicate when to use this tool over alternatives, nor are there any prerequisites or exclusions mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_device_recallsC

Search FDA device recall enforcement reports

ParametersJSON Schema
NameRequiredDescriptionDefault
product_descriptionNoProduct description or name
recalling_firmNoName of the recalling firm
classificationNoRecall classification (Class I, Class II, Class III)
statusNoRecall status
product_codeNoFDA product code
date_fromNoStart date for recall initiation (YYYYMMDD format)
date_toNoEnd date for recall initiation (YYYYMMDD format)
limitNoMaximum number of results to return (1-100)
skipNoNumber of results to skip for pagination

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must disclose behavioral traits. It only states the tool searches reports but doesn't mention if it is read-only, pagination behavior, or what happens on errors. Schema hints at filtering but description lacks transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, which is too minimal for a 9-parameter tool. It lacks structure and does not earn its place by providing useful context beyond the tool name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite 9 parameters and no output schema, the description is only one line. It does not explain return values, result structure, or how to combine filters. The description is insufficient for the tool's complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the description does not need to add parameter details. The description adds no additional meaning beyond the schema, so a baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool is for searching FDA device recall enforcement reports. It uses a specific verb ('Search') and resource, and the name differentiates it from siblings like search_device_510k or search_device_adverse_events, though no explicit comparison is made.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives (e.g., search_device_adverse_events). There is no context on prerequisites or typical use cases.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_drug_adverse_eventsC

Search FDA drug adverse event reports (FAERS)

ParametersJSON Schema
NameRequiredDescriptionDefault
drug_nameNoName of the drug or medication
brand_nameNoBrand/trade name of the drug
generic_nameNoGeneric name of the drug
manufacturerNoManufacturer name
reactionNoAdverse reaction or side effect
serious_onlyNoOnly return serious adverse events
patient_sexNoPatient sex (1=Male, 2=Female)
countryNoCountry where event occurred
date_fromNoStart date for date range (YYYYMMDD format)
date_toNoEnd date for date range (YYYYMMDD format)
countNoField to group results by for counting (e.g., "patient.drug.openfda.brand_name.exact")
limitNoMaximum number of results to return (1-100)
skipNoNumber of results to skip for pagination

TDQS

C2.9/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description bears full responsibility for behavioral disclosure. However, it only states the basic purpose with no details on pagination, rate limits, query behavior, or response format. This is insufficient for an agent to understand the tool's behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that communicates the core purpose without unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (13 parameters, no annotations, no output schema), the description is severely lacking. It does not explain how to effectively search, interpret results, or handle pagination. The agent would be left without critical usage information.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All 13 parameters have descriptions in the schema (100% coverage), so the baseline is 3. The description adds no parameter-level context beyond the schema, so it remains at baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: 'Search FDA drug adverse event reports (FAERS)'. It uses a specific verb ('Search') and identifies the resource (FDA drug adverse event reports) and database (FAERS), distinguishing it from sibling tools like search_drug_labels or search_drug_recalls.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites, when not to use, or how it relates to sibling tools. The context of sibling tools suggests differentiation by report type, but the description itself is silent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_drug_labelsC

Search FDA drug product labeling information

ParametersJSON Schema
NameRequiredDescriptionDefault
brand_nameNoBrand/trade name of the drug
generic_nameNoGeneric name of the drug
manufacturerNoManufacturer name
active_ingredientNoActive ingredient name
indicationNoMedical indication or condition
routeNoRoute of administration (e.g., ORAL, TOPICAL)
product_typeNoProduct type (e.g., HUMAN PRESCRIPTION DRUG)
countNoField to group results by for counting
limitNoMaximum number of results to return (1-100)
skipNoNumber of results to skip for pagination

TDQS

C2.3/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description fails to disclose any behavioral traits (e.g., read-only vs. mutating, authentication, rate limits, response format). The agent has no insight into tool effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, which is concise but lacks necessary detail for an agent to use effectively. It is not structured to highlight key aspects.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 10 parameters and no output schema or annotations, the description is extremely sparse. It does not explain what 'labeling information' includes, how search results are returned, or any pagination behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

While schema description coverage is 100%, the description adds no additional meaning beyond parameter names and types. Baseline 3 is lowered because the description does not enhance understanding of how parameters interact or are used in search.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool searches FDA drug product labeling information. However, it does not differentiate from sibling tools like search_drugs_fda, which may also return labeling-related data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives such as search_drug_adverse_events or search_drug_recalls. The agent receives no context for selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_drug_ndcC

Search National Drug Code (NDC) directory

ParametersJSON Schema
NameRequiredDescriptionDefault
product_ndcNoProduct NDC number
package_ndcNoPackage NDC number
proprietary_nameNoProprietary/brand name
nonproprietary_nameNoNonproprietary/generic name
labeler_nameNoLabeler/manufacturer name
dosage_formNoDosage form (e.g., TABLET, CAPSULE, INJECTION)
routeNoRoute of administration
substance_nameNoActive substance name
countNoField to group results by for counting
limitNoMaximum number of results to return (1-100)
skipNoNumber of results to skip for pagination

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations are absent, and the description does not disclose behavioral traits such as whether partial matches are allowed, default pagination, or result structure. The description carries the full burden and fails to provide sufficient detail.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, concise and front-loaded. It contains no unnecessary words, but may be too brief for a tool with many parameters.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 11 parameters and no output schema, the description is insufficient. It does not explain how parameters interact, required fields, or the meaning of 'count' and pagination fields.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All 11 parameters have descriptions in the input schema (100% coverage), so the description adds no additional semantic meaning. The schema already explains the parameters adequately.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool searches the National Drug Code (NDC) directory, distinguishing it from sibling tools focused on devices or other drug-related searches. However, it does not specify the exact type of information returned.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives like search_drugs_fda or search_drug_labels. The description lacks context for selecting this tool over related ones.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_drug_recallsC

Search drug recall enforcement reports

ParametersJSON Schema
NameRequiredDescriptionDefault
product_descriptionNoProduct description or name
recalling_firmNoName of the recalling firm
classificationNoRecall classification (Class I, Class II, Class III)
statusNoRecall status
stateNoState where recall occurred
countryNoCountry where recall occurred
reason_for_recallNoReason for the recall
date_fromNoStart date for recall initiation (YYYYMMDD format)
date_toNoEnd date for recall initiation (YYYYMMDD format)
countNoField to group results by for counting
limitNoMaximum number of results to return (1-100)
skipNoNumber of results to skip for pagination

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description only says 'Search,' which implies a read operation. It does not disclose any behavioral traits such as pagination, data freshness, rate limits, or whether the results are sorted or filtered.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence, but given the tool has 12 parameters and no output schema, it could benefit from more context. It is adequately sized but not optimally informative.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 12 parameters, no output schema, and no annotations, the description lacks completeness. It doesn't explain the response format, how parameters combine (e.g., AND vs OR logic), or any limitations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so all parameters have descriptions in the input schema. The description adds no additional meaning beyond what is already in the schema, meeting the baseline expectation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Search' and the resource 'drug recall enforcement reports'. It differentiates from sibling tools like search_device_recalls by specifying drug recalls, though it doesn't explicitly mention alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus its siblings. The description does not mention when to use it (e.g., to find recall enforcement data) or when not to use it (e.g., for device recalls).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_drugs_fdaC

Search Drugs@FDA database for approved drug products

ParametersJSON Schema
NameRequiredDescriptionDefault
sponsor_nameNoSponsor/applicant name
application_numberNoFDA application number (NDA, ANDA, BLA)
brand_nameNoBrand/trade name of the drug
generic_nameNoGeneric name of the drug
active_ingredientNoActive ingredient name
dosage_formNoDosage form
marketing_statusNoMarketing status
countNoField to group results by for counting
limitNoMaximum number of results to return (1-100)
skipNoNumber of results to skip for pagination

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must disclose behavioral traits. It only says 'search,' omitting details on pagination, result format, error handling, or any constraints. The bare minimum is not met.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, which is concise but overly minimal. It lacks structure or front-loading of key information beyond the basic purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 10 parameters, all optional, and no output schema, the description is too sparse. It doesn't explain how to effectively use the search or what results to expect, leaving the agent under-informed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds no additional meaning beyond the schema's parameter descriptions, but it doesn't need to since the schema is self-explanatory.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool searches the Drugs@FDA database for approved drug products. It uses a specific verb and resource, and while it doesn't explicitly differentiate from sibling tools like search_drug_labels, the name and scope are sufficiently distinct.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives such as search_drug_adverse_events or search_drug_labels. The description lacks any context for appropriate use cases.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_drug_shortagesB

Search current drug shortages reported to FDA

ParametersJSON Schema
NameRequiredDescriptionDefault
product_nameNoProduct name
generic_nameNoGeneric name
brand_nameNoBrand name
active_ingredientNoActive ingredient name
shortage_statusNoCurrent shortage status
shortage_designationNoShortage designation
dosage_formNoDosage form
countNoField to group results by for counting
limitNoMaximum number of results to return (1-100)
skipNoNumber of results to skip for pagination

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must disclose behavior, but it only says 'search current drug shortages.' It omits pagination behavior, grouping via 'count' parameter, or output format.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence, front-loaded with key information. It could be slightly more structured (e.g., bullet-like) but is efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 10 parameters, no output schema, and multiple siblings, the description lacks details on return values, grouping, and differentiation from other drug search tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the tool description adds no extra meaning to parameters. The baseline of 3 applies as no additional semantics are provided.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Search current drug shortages reported to FDA,' using a specific verb and resource. This distinguishes it from sibling tools like search_drug_recalls or search_drug_labels.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool vs. alternatives is provided. There is no mention of prerequisites, exclusions, or context for selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 10 tool updatesv0.1.0
    • First observedsearch_device_510k
    • First observedsearch_device_adverse_events
    • First observedsearch_device_classifications
    • First observedsearch_device_recalls
    • First observedsearch_drug_adverse_events
    • First observedsearch_drug_labels
    • First observedsearch_drug_ndc
    • First observedsearch_drug_recalls
    • First observedsearch_drug_shortages
    • First observedsearch_drugs_fda

TDQS

B3.3/5.0
Disambiguation5/5

Each tool targets a distinct FDA dataset (e.g., 510k clearances, drug labels) with no overlap in resource type or dataset, ensuring clear differentiation.

Naming Consistency5/5

All tools follow a uniform 'search_' prefix followed by a descriptive noun phrase (e.g., search_device_adverse_events), providing a predictable pattern.

Tool Count5/5

10 tools is well-scoped for a public FDA data server, covering major device and drug datasets without being excessive or insufficient.

Completeness5/5

The set covers key FDA data categories for devices (clearances, adverse events, classifications, recalls) and drugs (adverse events, labels, NDC, recalls, approvals, shortages), with no obvious gaps for the stated domain.

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

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    A Model Context Protocol (MCP) server for querying drug information from the OpenFDA API. Features Retrieve drug label information by brand name Retrieve drug information by generic (active ingredient) name Get all brand versions of a generic drug Get adverse event (side effect) reports for a drug
    7
    37
    4
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    An MCP server that enables AI assistants to query U.S. FDA public datasets, including drug adverse events, labeling, recalls, approvals, shortages, NDC directory, and medical device regulatory information.
    10
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Augmented-Nature/OpenFDA-MCP-Server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server