Skip to main content
Glama

DailyMed MCP by usefulapi

Search FDA drug labels (SPLs)

dailymed_search_labels
Read-only

Search Structured Product Labels (SPLs) — one label per marketed drug product. Filter by drug name, NDC, RxCUI, UNII, application (NDA/ANDA) number, marketing category, or publish date. Returns setid, title, spl_version and published_date for each match (use the setid with dailymed_get_label and the label_* tools). DailyMed v2: GET /spls.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
ndcNoNational Drug Code, e.g. '46122-791-66'.
pageNoPage number (1-based). Default 1.
rxcuiNoRxNorm concept unique identifier (product-level).
setidNoFilter to a specific SETID (UUID).
pagesizeNoResults per page (max 100). Default 100.
drug_nameNoDrug name to match (brand or generic), e.g. 'aspirin'.
name_typeNoRestrict drug_name match: b=brand, g=generic, both. Default both.
unii_codeNoFDA UNII code for an active moiety.
published_dateNoPublish date yyyy-MM-dd, paired with published_date_comparison.
application_numberNoFDA application number, e.g. 'NDA020517'.
marketing_categoryNoMarketing category, e.g. 'NDA', 'ANDA', 'OTC MONOGRAPH DRUG'.
published_date_comparisonNoComparison operator for published_date. Default eq.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
  2. First observed

TDQS

A4.2/5.0
Behavior4/5

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

readOnlyHint=true already establishes the safe-read profile, and the description adds real context beyond that: the cardinality assumption (one label per marketed drug product), the exact returned fields (setid, title, spl_version, published_date) despite no output schema, and the underlying DailyMed v2 GET /spls endpoint. It omits result-count/pagination behavior and any usage limits, keeping it out of the top band.

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 with no filler: what it searches, what can be filtered, what comes back and how to use it. The routing instruction is placed after the return-shape sentence it depends on, so the ordering is logical rather than repetitive.

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 12-parameter, all-optional search with no output schema, the description supplies the missing return-shape and result-chaining information an agent needs to act. Auth requirements, rate limits and how paging interacts with total match counts are left unstated, which is the only gap.

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 every parameter is already documented with examples and the two enums are enumerated in the schema. The description's prose list of filters largely restates that information, adding only the NDA/ANDA gloss on application_number. Baseline 3 is appropriate when 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?

States a specific verb (Search), the exact resource (Structured Product Labels, one per marketed drug product) and the filterable dimensions. An agent can immediately distinguish it from the dailymed_get_label and dailymed_label_* siblings, which operate on a single label once a setid is known.

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?

Explicitly routes the caller onward: results include setid, and the description says to use that setid with dailymed_get_label and the label_* tools, which defines this tool's role as the discovery step. It does not state when to prefer this over browse-style siblings like dailymed_list_drug_names or dailymed_list_ndcs, so it falls short of full when/when-not guidance.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.