Skip to main content
Glama
Limecooler

fda-mcp

by Limecooler

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
FDA_PDF_TIMEOUTNoPDF download timeout in seconds60
OPENFDA_API_KEYNoAPI key for higher rate limits (240 vs 40 req/min)
OPENFDA_TIMEOUTNoHTTP request timeout in seconds30
FDA_PDF_MAX_LENGTHNoDefault max text characters extracted from PDFs8000
OPENFDA_MAX_CONCURRENTNoMax concurrent API requests4

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
search_fdaA

Search any of the 21 OpenFDA datasets. Returns individual records.

When to use: Finding specific records — adverse events, drug labels, device submissions, recalls, etc. For aggregation/statistics, use count_records instead. If unsure which fields to search, call list_searchable_fields first.

Args: dataset: Which FDA dataset to search. Options by category:

    Drug:
      drug_adverse_events — FAERS adverse event reports
      drug_labels — SPL drug labeling (package inserts)
      drug_ndc — National Drug Code directory
      drug_approvals — NDA/ANDA/BLA approval history (Drugs@FDA)
      drug_recalls — Drug recall enforcement reports
      drug_shortages — Drug shortage reports

    Device:
      device_adverse_events — MDR adverse event reports
      device_510k — 510(k) clearances, De Novo grants, and HDE submissions
      device_pma — PMA approvals and supplements
      device_classification — Product code classification database
        (submission_type_id: 1=510k, 2=PMA, 4=510k Exempt, 6=De Novo, 7=HDE)
      device_recalls — Device recall enforcement reports
      device_recall_details — Detailed device recall information
      device_registration — Facility registrations and product listings
      device_udi — Unique Device Identifier database
      device_covid19_serology — COVID-19 serology test performance

    Food:
      food_adverse_events — CAERS adverse event reports
      food_recalls — Food/cosmetic recall enforcement reports

    Other:
      historical_documents — FDA historical documents
      substance_data — Substance data (GSRS)
      unii — Unique Ingredient Identifier codes
      nsde — NDC SPL Data Elements

search: OpenFDA query string. Quote string values and use + for spaces.
limit: Max results to return (default 10, max 100).
skip: Number of results to skip for pagination.
sort: Sort field and direction (e.g., "report_date:desc").

Examples: Drug adverse events: dataset="drug_adverse_events", search='patient.drug.openfda.brand_name:"ASPIRIN"' Drug labels: dataset="drug_labels", search='openfda.brand_name:"LIPITOR"' Device 510(k) clearances: dataset="device_510k", search='device_name:"pulse+oximeter"' De Novo grants (also in device_510k): dataset="device_510k", search='decision_code:"DENG"+AND+advisory_committee:"DE"' Food recalls: dataset="food_recalls", search='classification:"Class I"' Device classification lookup: dataset="device_classification", search='device_name:"oximeter"+AND+device_class:2'

count_recordsA

Count/aggregate records by field across any OpenFDA endpoint. Returns top values with counts, percentages, and a narrative summary.

When to use: Getting statistics, distributions, or "top N" lists. For individual records, use search_fda instead.

Args: endpoint: One of the 21 OpenFDA endpoint paths (e.g., "drug/event", "device/510k"). Call list_searchable_fields to see valid endpoints. count_field: Field to aggregate on. IMPORTANT: You MUST add .exact suffix for text fields (e.g., "patient.reaction.reactionmeddrapt.exact"). Without .exact, text fields are tokenized and counts will be wrong. Numeric and date fields do NOT need .exact. search: Optional search filter to narrow records before counting. limit: Number of top values to return (default 10, max 1000).

Examples: Top adverse reactions for a drug: endpoint="drug/event", count_field="patient.reaction.reactionmeddrapt.exact", search='patient.drug.openfda.brand_name:"ASPIRIN"' Device recalls by classification: endpoint="device/enforcement", count_field="classification.exact" Food recall reasons: endpoint="food/enforcement", count_field="reason_for_recall.exact", limit=5

list_searchable_fieldsA

List searchable fields for any OpenFDA endpoint. Returns field names, types, and descriptions.

When to use: Call this BEFORE searching if you're unsure which field names to use in a search query. Field names vary between endpoints.

Args: endpoint: One of the 21 OpenFDA endpoint paths: Drug: drug/event, drug/label, drug/ndc, drug/drugsfda, drug/enforcement, drug/shortage Device: device/event, device/510k, device/pma, device/classification, device/enforcement, device/recall, device/registrationlisting, device/udi, device/covid19serology Food: food/event, food/enforcement Other: other/historicaldocument, other/substance, other/unii, other/nsde category: "common" for the most frequently used fields (default), "all" for the complete field listing.

get_decision_documentA

Fetch FDA regulatory decision documents (not available via OpenFDA API). Downloads the PDF from FDA servers and extracts text content.

When to use: After finding a device submission via search_fda (e.g., dataset="device_510k" or "device_pma"), use the submission number from those results to retrieve the full decision document.

Args: document_type: Type of document to retrieve. submission_number: FDA identifier. Formats: 510k_summary: "K" + 6 digits (e.g., "K213456") denovo_decision: "DEN" + 6 digits (e.g., "DEN200001") pma_approval/pma_ssed/pma_supplement: "P" + 6 digits (e.g., "P200001") supplement_number: Required for pma_supplement only (e.g., "013"). max_length: Max text characters to return (default 8000). Increase for longer documents.

Examples: document_type="510k_summary", submission_number="K213456" document_type="pma_approval", submission_number="P200001" document_type="pma_supplement", submission_number="P200001", supplement_number="013"

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription
get_query_syntaxOpenFDA query syntax reference with operators, wildcards, date ranges, and examples.
get_endpointsList of all 21 OpenFDA API endpoints with descriptions.

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/Limecooler/fda-mcp'

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