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

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

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