Skip to main content
Glama

FDA NDC directory lookup

fda_ndc_lookup
Read-onlyIdempotent

FDA National Drug Code (NDC) directory lookup via openFDA by product or package NDC (dashed, or 10/11-digit billing format) or by drug name. Useful for pharmacy, claims and inventory data. Returns product NDC, brand and generic names, labeler, dosage form, route, active ingredients and strengths, marketing category and dates, application number, DEA schedule and packages, with DailyMed link and retrievedAt. Errors: 400 invalid input, 404 no match. PAID: $0.001 USDC per call on Base via x402 (MCP transport: retry with params._meta["x402/payment"]). Same tool over plain HTTP: GET /v1/fda/ndc.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "fda_ndc_lookup"
  }
}

Input Schema

NameRequiredDescriptionDefault
ndcNoproduct NDC (58151-155), package NDC (58151-155-77) or 11-digit (58151015577)
nameNobrand or generic name
limitNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A3.9/5.0
Behavior5/5

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

Annotations already cover the safety profile (readOnly, idempotent, open-world), and the description goes well beyond them: it discloses the full payload of returned fields, the 400/404 error contract, and a $0.001 USDC per-call charge with the exact x402 retry mechanism (params._meta["x402/payment"]) plus a plain-HTTP fallback route. The paid-call semantics are exactly the kind of behavior an agent cannot learn from structured fields.

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 purpose is front-loaded in the first clause, and the remaining sentences are dense but each carries distinct information (return fields, errors, payment, alternate transport). The long run-on enumeration of return fields is slightly heavy but nothing is redundant.

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 three optional parameters and no output schema, the description compensates well by listing return fields, error codes, and cost. The main residual gap is that, with zero required parameters, it never states the constraint on supplying ndc vs name (mutually exclusive? at least one required?) or how limit interacts with each mode.

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 67% and the description's NDC formatting note ('dashed, or 10/11-digit billing format') and 'by drug name' largely restate what the schema already documents. The 'limit' parameter is never explained, and the description does not say whether ndc and name may be combined or what happens when neither is supplied.

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 names a specific verb and resource ('FDA National Drug Code (NDC) directory lookup via openFDA') and enumerates the accepted lookup keys (product/package NDC, 10/11-digit billing format, drug name). It is clearly distinguishable in substance from label or adverse-event lookups, but it never names a sibling tool to draw the boundary explicitly.

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?

It offers use-case context ('useful for pharmacy, claims and inventory data') but no when-to-use/when-not guidance and no routing to alternatives such as fda_drug_label or recall_check for overlapping drug queries. An agent must infer the choice of tool from the resource name alone.

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.

Resources