Skip to main content
Glama
sapientsai

OpenFDA MCP Server

by sapientsai

OpenFDA MCP Server

An MCP (Model Context Protocol) server that provides access to U.S. FDA public datasets including drugs, medical devices, adverse events, recalls, and more.

Features

  • 10 FDA Tools: Query drug and device databases through a standardized MCP interface

  • Drug Tools: Adverse events (FAERS), labels, NDC directory, recalls, Drugs@FDA, shortages

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

  • Individual Record Lookup: Retrieve specific reports by ID (safety report ID, set ID, MDR report number)

  • Advanced Filtering: Filter drug labels by boxed warnings, request specific label sections

  • Rate Limit Aware: Supports authenticated requests for higher rate limits (120k/hour vs 1k/hour)

  • TypeScript: Fully typed with Zod schema validation

Related MCP server: OpenFDA MCP Server

Installation

# Install globally
npm install -g openfda-mcp-server

# Or use with npx
npx openfda-mcp-server

Configuration

Claude Desktop

Add to your Claude Desktop configuration (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):

{
  "mcpServers": {
    "openfda": {
      "command": "npx",
      "args": ["-y", "openfda-mcp-server"],
      "env": {
        "OPENFDA_API_KEY": "your-api-key-optional"
      }
    }
  }
}

Environment Variables

Variable

Description

Default

OPENFDA_API_KEY

FDA API key for higher rate limits

None (uses public limits)

Get a free API key at: https://open.fda.gov/apis/authentication/

Available Tools

Drug Tools

Tool

Description

search_drug_adverse_events

Search FAERS for drug safety reports. Retrieve specific report by safetyReportId.

search_drug_labels

Search drug labeling/prescribing info. Get by setId, filter by hasBoxedWarning, select sections.

search_drug_ndc

Search the National Drug Code directory

search_drug_recalls

Search drug recall enforcement reports

search_drugs_at_fda

Search approved drug applications

search_drug_shortages

Search current and resolved drug shortages

Device Tools

Tool

Description

search_device_510k

Search 510(k) premarket notifications

search_device_classifications

Search device classification database

search_device_adverse_events

Search MDR adverse event reports. Retrieve specific report by reportNumber.

search_device_recalls

Search device recall enforcement reports

Tool Parameters

search_drug_labels

Parameter

Type

Description

setId

string

Retrieve a specific label by its unique set_id

drugName

string

Drug brand or generic name

indication

string

Medical indication or use case

activeIngredient

string

Active ingredient/substance name

route

string

Route of administration (e.g., 'oral', 'intravenous')

hasBoxedWarning

boolean

Filter for drugs with boxed warnings (most serious warnings)

sections

string[]

Specific label sections to return (see below)

limit

number

Maximum results (1-100)

skip

number

Number of results to skip for pagination

Available sections: indications_and_usage, dosage_and_administration, contraindications, warnings, warnings_and_cautions, adverse_reactions, drug_interactions, clinical_pharmacology, mechanism_of_action, pharmacokinetics, overdosage, description, how_supplied, storage_and_handling, boxed_warning

search_drug_adverse_events

Parameter

Type

Description

safetyReportId

string

Retrieve a specific FAERS report by its 8-digit ID

drugName

string

Drug or product name to search

reaction

string

Adverse reaction (e.g., 'headache', 'nausea')

manufacturer

string

Drug manufacturer name

serious

boolean

Filter for serious adverse events only

dateFrom

string

Start date (YYYY-MM-DD)

dateTo

string

End date (YYYY-MM-DD)

limit

number

Maximum results (1-100)

skip

number

Number of results to skip for pagination

search_device_adverse_events

Parameter

Type

Description

reportNumber

string

Retrieve a specific MDR report by report number

deviceName

string

Device generic name

brandName

string

Device brand name

manufacturerName

string

Device manufacturer name

eventType

string

Type: 'Injury', 'Malfunction', 'Death', 'Other'

dateFrom

string

Start date (YYYY-MM-DD)

dateTo

string

End date (YYYY-MM-DD)

limit

number

Maximum results (1-100)

skip

number

Number of results to skip for pagination

Usage Examples

Search for drug adverse events

Find adverse events for aspirin in the last year that were serious

Get a specific adverse event report

Retrieve FAERS report with safety report ID 10003641

Search for drugs with boxed warnings

Find all drugs with boxed warnings related to cardiovascular risks

Get specific label sections

Get the boxed_warning and contraindications sections for warfarin

Search for drug recalls

Search for Class I drug recalls from Pfizer

Search for device clearances

Find 510(k) clearances for cardiac pacemakers

Get a specific device adverse event report

Retrieve MDR report number 2649622-2020-08294

Search for device adverse events

Search device adverse events for insulin pumps that resulted in injury

CLI Usage

# Start with stdio transport (default)
openfda-mcp-server

# Start with HTTP transport
openfda-mcp-server --transport http --port 3000

Docker

Quick Start

# Build and run with docker-compose
docker-compose up -d

# Or build manually
docker build -t openfda-mcp-server .
docker run -p 3000:3000 -e OPENFDA_API_KEY=your-key openfda-mcp-server

Docker Compose

services:
  openfda-mcp:
    image: openfda-mcp-server:latest
    ports:
      - "3000:3000"
    environment:
      - OPENFDA_API_KEY=${OPENFDA_API_KEY:-}

Environment Variables

Pass environment variables to the container:

docker run -p 3000:3000 \
  -e OPENFDA_API_KEY=your-api-key \
  -e DEBUG=openfda-mcp:* \
  openfda-mcp-server

Development

# Install dependencies
pnpm install

# Run in development mode
pnpm dev

# Test locally
pnpm serve:test

# Run full validation (format, lint, test, build)
pnpm validate

# Build for production
pnpm build

Programmatic Usage

import { createOpenFDAServer, handleSearchDrugAdverseEvents, handleSearchDrugLabels } from "openfda-mcp-server/lib"

// Create a custom server
const server = createOpenFDAServer({
  name: "my-fda-server",
  version: "1.0.0",
})

// Search for adverse events
const adverseEvents = await handleSearchDrugAdverseEvents({
  drugName: "aspirin",
  serious: true,
  limit: 10,
})

// Get a specific adverse event by ID
const specificReport = await handleSearchDrugAdverseEvents({
  safetyReportId: "10003641",
})

// Search for drugs with boxed warnings
const boxedWarningDrugs = await handleSearchDrugLabels({
  hasBoxedWarning: true,
  limit: 10,
})

// Get specific sections of a drug label
const warfarinLabel = await handleSearchDrugLabels({
  setId: "0cbce382-9c88-4f58-ae0f-532a841e8f95",
  sections: ["boxed_warning", "contraindications", "adverse_reactions"],
})

API Rate Limits

Authentication

Per Minute

Per Hour

Without API Key

40

1,000

With API Key

240

120,000

License

MIT

Acknowledgments


Sponsored by SapientsAI — Building agentic AI for businesses

Available Tools

14 tools
search_device_510kA

Search FDA 510(k) premarket notification database for medical device clearances. Find device clearances by device name, applicant, product code, clearance type, or decision date. Returns clearance decisions and device classification details.

ParametersJSON Schema
NameRequiredDescriptionDefault
skipNoNumber of results to skip for pagination
limitNoMaximum results to return (1-100, default 10)
applicantNoApplicant/company name
deviceNameNoDevice name to search
productCodeNoFDA product code
clearanceTypeNoClearance type (e.g., 'Traditional', 'Special')
decisionDateToNoDecision date range end (YYYY-MM-DD)
decisionDateFromNoDecision date range start (YYYY-MM-DD)

TDQS

A3.8/5.0
Behavior3/5

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

Without annotations, the description carries the full burden of behavioral disclosure. It states the tool returns clearance decisions and classification details, suggesting a read-oriented operation, but does not disclose potential rate limits, authentication requirements, or behavior when no results are found. A score of 3 reflects adequate but not thorough transparency.

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 two sentences with no unnecessary words. The first sentence conveys the core purpose and database, and the second lists search fields and output. It is front-loaded and efficient.

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

Completeness4/5

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

With 8 parameters fully described in the schema and no output schema, the description adequately explains the tool's purpose and return type. It could briefly mention pagination (skip/limit) but this is already in the schema. Overall, the context is sufficient for selecting the tool.

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 mentions specific search criteria (device name, applicant, product code, etc.) but does not add meaning beyond the schema's parameter descriptions. No additional semantic context is 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 the tool searches the FDA 510(k) premarket notification database for medical device clearances, specifying searchable fields (device name, applicant, product code, etc.) and return content (clearance decisions and classification details). This explicitly differentiates it from sibling tools like search_device_adverse_events or search_device_classifications.

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

Usage Guidelines3/5

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

The description implies when to use the tool (searching for 510(k) clearances) but does not provide explicit guidance on when to use alternatives, prerequisites, or when not to use it. No exclusions or alternative recommendations are given.

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

search_device_adverse_eventsA

Search FDA Medical Device Report (MDR) database for device adverse events. Find adverse events by device name, brand, manufacturer, event type (Injury/Death/Malfunction), and date. Retrieve a specific MDR report by reportNumber. Returns device details, event descriptions, and patient outcomes.

ParametersJSON Schema
NameRequiredDescriptionDefault
skipNoNumber of results to skip for pagination
limitNoMaximum results to return (1-100, default 10)
dateToNoEnd date (YYYY-MM-DD or YYYYMMDD format)
dateFromNoStart date (YYYY-MM-DD or YYYYMMDD format)
brandNameNoDevice brand name
eventTypeNoType of adverse event
deviceNameNoDevice generic name
reportNumberNoMDR report number for retrieving a specific device adverse event report
manufacturerNameNoDevice manufacturer name

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations, the description must disclose behavioral traits. It states the tool returns device details, event descriptions, and patient outcomes, and lists filterable parameters. However, it omits information about data source freshness, rate limits, pagination behavior beyond what schema provides, or any side effects. This is adequate but not comprehensive.

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?

Two sentences, front-loaded with purpose and key capabilities. Every sentence adds value—no redundant or filler content.

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

Completeness4/5

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

Given 9 parameters, no output schema, and no annotations, the description covers the main purpose and typical use cases. It mentions the key return fields (device details, event descriptions, patient outcomes) and lists major filtering dimensions. Minor omission: does not indicate that event type enum includes 'Other' (though schema covers it). Overall sufficient for an agent to understand scope.

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 baseline is 3. The description adds minor narrative context by grouping parameters (e.g., 'by device name, brand, manufacturer...'), but does not provide additional semantics beyond the schema's own descriptions. No new parameter constraints or format details are added.

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?

Description clearly states it searches the FDA MDR database for device adverse events, listing specific searchable criteria (device name, brand, manufacturer, event type, date) and mentions retrieving a specific report by reportNumber. It distinguishes from sibling tools (e.g., drug adverse events, other device searches) by specifying 'device' and 'adverse events'.

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

Usage Guidelines3/5

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

The description implies usage for finding device adverse events, but does not provide explicit guidance on when to use this tool versus alternatives like search_device_recalls or search_device_510k. No 'when not to use' or comparison with siblings is given.

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

search_device_classificationsA

Search FDA medical device classification database. Find devices by name, class (1-3), medical specialty, product code, or regulation number. Class 1 is lowest risk, Class 3 is highest risk (implants, life-sustaining).

ParametersJSON Schema
NameRequiredDescriptionDefault
skipNoNumber of results to skip for pagination
limitNoMaximum results to return (1-100, default 10)
deviceNameNoDevice name to search
deviceClassNoDevice class (1=lowest risk, 3=highest)
productCodeNoFDA product code
medicalSpecialtyNoMedical specialty code
regulationNumberNoCFR regulation number

TDQS

A3.7/5.0
Behavior3/5

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

Without annotations, the description carries full burden. It adds context about class risk levels but does not disclose pagination behavior (skip/limit), result ordering, error handling, or any response format details. The description provides basic functionality but not deeper behavioral traits.

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 two sentences long with no wasted words. The first sentence immediately states the purpose and the second adds helpful risk classification context. It is front-loaded and efficient for an AI agent to parse.

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

Completeness3/5

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

Given 7 optional parameters, no output schema, and no annotations, the description lacks information on how multiple search criteria interact, what the output structure looks like, and pagination behavior. It covers the basic search intent but leaves gaps that could affect agent usage.

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 already describes all 7 parameters with clear descriptions (100% coverage). The description merely lists the fields without adding new meaning, examples, or constraints beyond what the schema provides. The class risk explanation is also present in the schema's deviceClass description, 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 tool searches the FDA medical device classification database and lists specific searchable fields (name, class, specialty, product code, regulation number). It explains the risk levels for classes. The name and sibling tools (e.g., search_device_510k) make the distinct purpose obvious.

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

Usage Guidelines3/5

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

The description implies usage for classification lookups by specifying the database and fields, but it does not explicitly state when to use this tool over siblings like search_device_recalls or search_device_adverse_events. No exclusion criteria or context-dependent guidance is provided.

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

search_device_recallsB

Search FDA medical device recall and enforcement reports. Find recalls by company, product description, classification (I-III), status, and date. Class I is most serious (may cause death), Class III is least serious.

ParametersJSON Schema
NameRequiredDescriptionDefault
skipNoNumber of results to skip for pagination
limitNoMaximum results to return (1-100, default 10)
dateToNoEnd date (YYYY-MM-DD or YYYYMMDD format)
statusNoRecall status
dateFromNoStart date (YYYY-MM-DD or YYYYMMDD format)
recallingFirmNoName of the recalling company
classificationNoRecall classification (I=most serious)
productDescriptionNoProduct description keywords

TDQS

B3.4/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 carry the full burden. It explains classification severity but does not disclose pagination behavior, output format, sorting, rate limits, or data retrieval limits beyond the schema. The agent lacks critical behavioral context.

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 two focused sentences with no redundancy. The first sentence states the core purpose, the second lists key searchable fields. Every sentence earns its place.

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 no output schema, the description should explain what the tool returns (e.g., recall reports, counts). It does not mention return structure, pagination, or result format. For a search tool with 8 parameters and no output schema, this is insufficient.

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 only enumerates fields already described in the schema without adding new semantic detail (e.g., date format clarification or pagination behavior). It adds minimal value beyond the schema.

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 searches FDA medical device recall and enforcement reports, listing specific searchable fields (company, product, classification, status, date). This distinguishes it from sibling tools like search_device_510k 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 Guidelines3/5

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

The description implies usage by listing searchable fields but does not explicitly state when to use this tool versus alternatives or provide when-not-to-use guidance. No exclusion criteria or sibling differentiation is mentioned.

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

search_drug_adverse_eventsA

Search FDA Adverse Event Reporting System (FAERS) for drug safety reports. Find adverse events by drug name, reaction type, manufacturer, date range, and seriousness. Retrieve a specific report by safetyReportId. Returns patient demographics, drug details, and reported reactions.

ParametersJSON Schema
NameRequiredDescriptionDefault
skipNoNumber of results to skip for pagination
limitNoMaximum results to return (1-100, default 10)
dateToNoEnd date (YYYY-MM-DD or YYYYMMDD format)
seriousNoFilter for serious adverse events only
dateFromNoStart date (YYYY-MM-DD or YYYYMMDD format)
drugNameNoDrug or product name to search
reactionNoAdverse reaction to search (e.g., 'headache', 'nausea')
manufacturerNoDrug manufacturer name
safetyReportIdNoUnique safety report ID for retrieving a specific adverse event report

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations provided, the description is the sole source of behavioral information. It discloses return content (patient demographics, drug details, reactions) but omits rate limits, authentication needs, or restrictions. The tool is clearly read-only, but this is not explicitly stated.

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?

Three sentences efficiently convey purpose, parameters, and return values. No unnecessary words; all sentences add value. Front-loaded with the main action.

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

Completeness4/5

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

Given no output schema and no annotations, the description adequately covers return fields. However, it does not mention pagination behavior (skip, limit) or date format specifics, which are in the schema but could be highlighted for completeness.

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?

Input schema has 100% coverage with descriptions for all 9 parameters. The description adds a summary narrative grouping parameters (e.g., 'by drug name, reaction type, manufacturer') but does not provide additional detail beyond the schema. Baseline 3 is appropriate.

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 it searches FAERS for drug safety reports, specifying key parameters (drug name, reaction, manufacturer, date range, seriousness) and the ability to retrieve by safetyReportId. It distinguishes from sibling tools by focusing on drug adverse events, as seen in sibling names like 'search_device_adverse_events'.

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

Usage Guidelines3/5

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

The description implies usage for drug adverse events but does not explicitly state when to use this tool versus alternatives like 'search_device_adverse_events'. No when-not-to-use or exclusion criteria are provided.

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

search_drug_labelsA

Search FDA drug labeling (SPL) information including prescribing information, indications, warnings, boxed warnings, dosage, and active ingredients. Retrieve a specific label by setId. Filter for drugs with boxed warnings using hasBoxedWarning. Request specific sections (e.g., indications_and_usage, adverse_reactions, boxed_warning) to limit response.

ParametersJSON Schema
NameRequiredDescriptionDefault
skipNoNumber of results to skip for pagination
limitNoMaximum results to return (1-100, default 10)
routeNoRoute of administration (e.g., 'oral', 'intravenous')
setIdNoUnique label identifier (set_id) for retrieving a specific drug label
drugNameNoDrug brand or generic name
sectionsNoSpecific label sections to return (e.g., ['indications_and_usage', 'warnings', 'adverse_reactions'])
indicationNoMedical indication or use case
hasBoxedWarningNoFilter for drugs with boxed warnings (most serious safety warnings)
activeIngredientNoActive ingredient/substance name

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description must fully disclose behavioral traits. It explains core functionality (search, retrieve, filter) but omits details like whether the operation is read-only, the response structure, pagination behavior beyond the schema, and any rate limiting. The description is adequate but leaves gaps in understanding what the tool does beyond the obvious.

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 three concise sentences, front-loaded with the main purpose, then specific use cases. Every sentence adds value—no redundancy or fluff. Highly efficient.

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

Completeness4/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 covers the main filtering capabilities and common scenarios. It omits details about result format, error conditions, and pagination beyond schema descriptions. However, most use cases are covered, making it nearly complete for a search tool.

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 parameters are well-documented in the schema. The description adds marginal value by contextualizing key parameters (e.g., 'hasBoxedWarning' as 'most serious safety warnings'), but largely restates schema descriptions. Baseline 3 is appropriate.

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 searches FDA drug labeling information, listing specific content types (prescribing info, indications, warnings, dosage, active ingredients) and usage patterns (by setId, filtering with hasBoxedWarning, requesting specific sections). It effectively distinguishes from sibling tools that cover devices, adverse events, NDC, etc.

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

Usage Guidelines4/5

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

The description provides explicit usage guidance: retrieving by setId, filtering by hasBoxedWarning, and limiting response via sections. While it doesn't explicitly state when not to use this tool or list alternatives, the context of sibling tools and the description's focus on drug labeling make the intended use clear. Could be improved by noting that adverse events should use search_drug_adverse_events.

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

search_drug_ndcA

Search the National Drug Code (NDC) Directory for drug product identification. Find drugs by NDC, brand name, generic name, labeler, dosage form, or route. Returns product details, active ingredients, and packaging information.

ParametersJSON Schema
NameRequiredDescriptionDefault
skipNoNumber of results to skip for pagination
limitNoMaximum results to return (1-100, default 10)
routeNoRoute of administration
brandNameNoDrug brand name
dosageFormNoDosage form (e.g., 'tablet', 'capsule', 'injection')
productNdcNoNational Drug Code (NDC)
genericNameNoDrug generic name
labelerNameNoDrug labeler/manufacturer name

TDQS

A4/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden. It discloses that the tool returns 'product details, active ingredients, and packaging information,' which is adequate for a read-only search. However, it omits details on pagination behavior, rate limits, or empty result handling, though skip/limit parameters are in the schema.

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?

Two sentences efficiently state the core purpose and searchable fields, with no redundant or unnecessary information.

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

Completeness4/5

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

The description covers the tool's main inputs and outputs, but given the lack of an output schema and the presence of many sibling tools, it could benefit from clarifying the specific use case (e.g., 'Use this for NDC-specific identification') or mentioning pagination. However, it is still reasonably complete for a search tool.

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 reinforces the searchable fields but does not add new semantic meaning beyond what the parameter descriptions already convey.

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 specifies the tool's action ('Search the National Drug Code (NDC) Directory'), the resource ('drug product identification'), and the searchable fields (NDC, brand name, etc.), distinguishing it from sibling tools that target other FDA datasets.

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

Usage Guidelines3/5

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

The description lists searchable fields, implying use when identifying drugs by those attributes, but does not explicitly state when to avoid this tool or compare to siblings like search_drug_labels or search_drug_adverse_events.

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

search_drug_recallsB

Search FDA drug recall and enforcement reports. Find recalls by company, classification (I-III), status, state, and date range. Class I is most serious (may cause death), Class III is least serious.

ParametersJSON Schema
NameRequiredDescriptionDefault
skipNoNumber of results to skip for pagination
limitNoMaximum results to return (1-100, default 10)
stateNoUS state code (e.g., 'CA', 'NY')
dateToNoEnd date (YYYY-MM-DD or YYYYMMDD format)
statusNoRecall status
dateFromNoStart date (YYYY-MM-DD or YYYYMMDD format)
recallingFirmNoName of the recalling company
classificationNoRecall classification (I=most serious, III=least)

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description should disclose behaviors like rate limits, authentication, or return format. It explains classification levels but omits pagination behavior, data source freshness, or any side effects.

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?

Two concise sentences. First sentence states purpose and lists filterable fields. Second sentence clarifies classification severity. No superfluous text.

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

Completeness3/5

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

The description covers the searchable fields and classification meaning, but lacks information on the output format, pagination behavior, and any restrictions. Without annotations or an output schema, more context would improve completeness.

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% with each parameter described. The description adds meaning by explaining Class I severity, but this largely duplicates the schema's enum description. Overall minimal added value beyond the schema.

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 searches drug recall and enforcement reports and lists the available filter fields (company, classification, status, state, date range). This distinguishes it from sibling tools focused on devices or adverse events.

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 like search_drug_adverse_events. The description does not specify prerequisites, exclusions, or optimal use cases.

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

search_drugs_at_fdaA

Search the Drugs@FDA database for approved drug applications. Find approved drugs by sponsor, application number, brand name, or marketing status. Returns application details, products, and submission history.

ParametersJSON Schema
NameRequiredDescriptionDefault
skipNoNumber of results to skip for pagination
limitNoMaximum results to return (1-100, default 10)
brandNameNoDrug brand name
sponsorNameNoDrug sponsor/company name
marketingStatusNoMarketing status (e.g., 'Prescription', 'OTC')
applicationNumberNoFDA application number (e.g., 'NDA012345')

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations, the description carries the burden. It discloses the tool returns application details, products, and submission history, but does not describe pagination behavior (skip/limit), rate limits, authentication needs, or what happens with no results. Basic transparency is present but incomplete.

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 two sentences (28 words), highly concise, front-loaded with the primary action, and includes specific search and return details. Every sentence adds value without redundancy.

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

Completeness4/5

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

Given 6 parameters (none required) and no output schema, the description adequately covers purpose, search criteria, and return types. It does not detail default pagination but schema covers that. Overall, it is sufficiently complete for a search tool with well-documented parameters.

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% with all parameters described. The description adds context by listing searchable fields, but does not add significant new meaning beyond the schema. Baseline 3 is appropriate as schema already documents each parameter.

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 searches the Drugs@FDA database for approved drug applications, and lists specific search criteria (sponsor, application number, brand name, marketing status). It distinguishes itself from sibling tools like search_device_* or search_drug_adverse_events by focusing on approved drug applications.

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

Usage Guidelines3/5

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

The description implies usage for searching approved drug applications by various criteria, but lacks explicit guidance on when to use this tool versus alternatives (e.g., for adverse events use search_drug_adverse_events). No 'when not to use' or prerequisite information is provided.

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

search_drug_shortagesA

Search the FDA Drug Shortage Database for current and resolved drug shortages. Find shortages by generic drug name or status (Current/Resolved). Returns shortage details, posting dates, and resolution information.

ParametersJSON Schema
NameRequiredDescriptionDefault
skipNoNumber of results to skip for pagination
limitNoMaximum results to return (1-100, default 10)
statusNoShortage status
genericNameNoGeneric drug name

TDQS

A4/5.0
Behavior3/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 mentions that results include shortage details, posting dates, and resolution information, but does not elaborate on pagination, rate limiting, or error handling. The description is functional but could be more transparent about behavior beyond basic output.

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 two sentences long with no wasted words. It front-loads the main action and immediately specifies the resource and search criteria. Highly concise and well-structured.

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

Completeness4/5

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

Given the tool's simplicity (4 parameters, none required, one enum) and complete schema descriptions, the description is mostly complete. It covers the main functionality and return types. Minor gap: the limit parameter's default (10) is in the schema but not in the description, but overall sufficient for agent decision-making.

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 schema already documents all parameters. The description mentions searching by generic name or status, which aligns with parameters, but does not add new meaning beyond what the schema provides. Baseline score of 3 is appropriate.

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 that it searches the FDA Drug Shortage Database for current and resolved shortages by generic drug name or status. It specifies the resource (database) and the verb (search), and distinguishes from sibling tools which are for other FDA data types (devices, labels, etc.).

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

Usage Guidelines4/5

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

The description explains how to search by generic drug name or status, providing clear use cases. However, it does not explicitly state when not to use this tool or name specific alternatives, though the sibling tools context implies different databases. This is adequate but not exemplary.

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

search_fda_drug_patent_expiryA

Unified patent expiry and exclusivity view across FDA Orange Book and optionally Purple Book. Search by drug name or application number. Returns patents sorted by earliest expiry date with associated exclusivity data. Set includePurpleBook=true to also include biologics data.

ParametersJSON Schema
NameRequiredDescriptionDefault
skipNoNumber of results to skip for pagination
limitNoMaximum results to return (1-100, default 10)
applNoNoFDA application number
drugNameNoDrug trade name or ingredient to search
includePurpleBookNoInclude Purple Book biologics data (default: false)
includeExclusivityNoInclude exclusivity data (default: true)

TDQS

A3.9/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. It mentions sorting and default inclusion of exclusivity data, but does not disclose pagination behavior (skip/limit), what happens if both drugName and applNo are provided, or that it is a read operation. These gaps limit transparency.

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?

Three concise sentences, front-loaded with core purpose, then usage details. No unnecessary words; every sentence adds value.

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

Completeness3/5

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

No output schema, but description only vaguely says 'returns patents... with associated exclusivity data'. Lacks details on return fields or structure. Given complexity (unified view, optional parameter), more specifics on output would improve completeness.

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% (all parameters have descriptions), so baseline is 3. Description mentions drugName, applNo, and includePurpleBook but not skip, limit, or includeExclusivity. It adds minimal extra meaning beyond what schema already provides.

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?

Description clearly states unified patent expiry and exclusivity view across Orange Book and optionally Purple Book, distinguishing it from sibling tools that cover only one book. It specifies search by drug name or application number, and mentions sorting by earliest expiry.

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

Usage Guidelines4/5

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

Description provides explicit guidance on when to use the optional parameter includePurpleBook. However, it does not explicitly state when not to use this tool (e.g., for single-book queries) or mention alternative sibling tools.

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

search_fda_orange_bookA

Search FDA Orange Book for approved drug products with therapeutic equivalence evaluations. Find drugs by trade name, ingredient, applicant, application number, or TE code. Returns product details, patent counts, and exclusivity counts. Data is downloaded from FDA bulk files and cached for 24 hours.

ParametersJSON Schema
NameRequiredDescriptionDefault
skipNoNumber of results to skip for pagination
limitNoMaximum results to return (1-100, default 10)
applNoNoFDA application number
teCodeNoTherapeutic equivalence code (e.g., 'AB', 'BX')
drugNameNoDrug trade name or ingredient to search
applicantNoApplicant/company name

TDQS

A4/5.0
Behavior4/5

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

With no annotations provided, the description carries full transparency burden. It discloses that data is downloaded from FDA bulk files and cached for 24 hours, indicating data freshness. It does not mention destructive actions, authentication, or rate limits, but overall it gives a good behavioral overview. No contradiction with annotations (none exist).

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 three sentences with no wasted words. It front-loads the core purpose, lists searchable parameters, mentions return values, and notes data caching. Every sentence adds value.

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

Completeness4/5

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

Given the tool has 6 parameters, no required ones, and no output schema, the description covers usage, return content, and data source. It could include pagination behavior or error handling hints, but for a search tool it is reasonably complete.

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 covers all 6 parameters with descriptions, so schema_description_coverage is 100%. The description reiterates the main searchable fields but adds no additional detail beyond what the schema provides. Baseline 3 is appropriate because the schema does the heavy lifting.

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 searches the FDA Orange Book for approved drug products with therapeutic equivalence evaluations. It lists specific searchable fields (trade name, ingredient, applicant, application number, TE code) and mentions the return type (product details, patent counts, exclusivity counts). This distinguishes it from sibling tools like search_fda_purple_book (biological products) and others.

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

Usage Guidelines3/5

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

The description implies usage for finding drugs by various identifiers but does not explicitly state when not to use it or provide alternatives among the many sibling drug search tools. It lacks exclusion criteria, though the context is clear for Orange Book data. The description could guide agents away from using this for adverse events or recalls.

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

search_fda_orange_book_patentsA

Search FDA Orange Book patent data for drug products. Find patents by drug name, application number, or patent number. Returns patent details including expiry dates, substance/product/use flags, and associated exclusivities.

ParametersJSON Schema
NameRequiredDescriptionDefault
skipNoNumber of results to skip for pagination
limitNoMaximum results to return (1-100, default 10)
applNoNoFDA application number
drugNameNoDrug trade name or ingredient to search
patentNoNoPatent number

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It states the tool returns patent details but does not disclose behavioral traits such as rate limits, pagination behavior (beyond parameters), or whether the action is read-only. The absence of any behavioral context beyond 'returns' is a gap but not misleading.

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?

Two sentences, front-loaded with action and resource. Every sentence adds value: first states what it does, second details search parameters and returns. No fluff or redundancy.

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

Completeness4/5

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

For a search tool with 5 optional parameters and no output schema, the description covers key inputs and typical outputs. It lacks mention of default limit or pagination behavior, but the schema partially compensates. Given sibling complexity (multiple FDA search tools), it sufficiently differentiates via patent-specific details.

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% with descriptions for all 5 parameters. The description only summarizes three of them (drugName, applNo, patentNo) without adding new meaning beyond the schema. For skip and limit, no additional context is provided. Baseline of 3 applies because schema does the heavy lifting.

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', the resource 'FDA Orange Book patent data', and the specific search fields (drug name, application number, patent number). It also lists return details (expiry dates, flags, exclusivities), making it distinct from sibling tools like search_fda_orange_book (general) and search_fda_drug_patent_expiry (focused on expiry).

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

Usage Guidelines3/5

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

The description implies usage for searching Orange Book patents via various criteria, but does not explicitly guide when to choose this tool over alternatives like search_fda_orange_book or search_fda_drug_patent_expiry. The 'Find patents by...' phrasing suggests capability but lacks exclusionary context.

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

search_fda_purple_bookA

Search FDA Purple Book for licensed biological products. Find biologics by product name, applicant, BLA number, license type (351(a)/351(k)), biosimilar status, or interchangeability. Returns product details, licensing status, and reference product information.

ParametersJSON Schema
NameRequiredDescriptionDefault
skipNoNumber of results to skip for pagination
limitNoMaximum results to return (1-100, default 10)
applicantNoApplicant/company name
blaNumberNoBiologics License Application (BLA) number
biosimilarNoFilter for biosimilar products
licenseTypeNoLicense type: 351(a) for originator, 351(k) for biosimilar
productNameNoProduct proprietary or proper name to search
interchangeableNoFilter for interchangeable products

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden. It states the tool returns product details, licensing status, and reference product information, implying a read-only operation. No destructive behavior is mentioned, which is appropriate for a search tool.

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 two sentences, front-loaded with the main purpose, and every word adds value. No unnecessary information.

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

Completeness4/5

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

Given 8 parameters and no output schema, the description adequately explains the tool's function and return content. It omits details about pagination or output structure, but these are covered by the schema. Slightly more context on what the return data looks like would improve completeness.

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 baseline is 3. The description summarizes searchable fields but does not add new meaning beyond the schema descriptions. It groups parameters (e.g., 'license type (351(a)/351(k))') but does not provide additional context for skip, limit, or applicant.

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 searches the FDA Purple Book for licensed biological products, listing specific searchable fields (product name, applicant, BLA number, license type, biosimilar status, interchangeability). It distinguishes itself from siblings that search device or drug databases.

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

Usage Guidelines4/5

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

The description implies use for biologics, which differentiates it from drug and device sibling tools. However, it does not explicitly state when not to use or mention alternatives, such as using Orange Book for small molecules.

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. 14 tool updatesv1.2.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_at_fda
    • First observedsearch_fda_drug_patent_expiry
    • First observedsearch_fda_orange_book
    • First observedsearch_fda_orange_book_patents
    • First observedsearch_fda_purple_book

TDQS

A4/5.0
Disambiguation5/5

Each tool targets a distinct domain and sub-domain (e.g., device vs. drug, 510k vs. recall), with clear prefixes that prevent confusion. Even similar tools like adverse events for devices and drugs are easily distinguishable.

Naming Consistency5/5

All tools follow a consistent 'search_<domain>_<specific>' pattern, with underscores separating categories. No mixing of styles or vague verbs.

Tool Count5/5

With 14 tools covering both medical devices and pharmaceuticals, the count is well-scoped for the breadth of data. Each tool addresses a specific query type without unnecessary duplication.

Completeness5/5

The set covers major FDA databases for devices (510k, recalls, classifications, adverse events) and drugs (labels, NDC, recalls, shortages, approved drugs), plus specialized resources like Orange Book and Purple Book. There are no obvious gaps for the stated purpose.

Maintenance

ActivityInactive
ResponsivenessNo issues

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

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/sapientsai/openfda-mcp-server'

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