Skip to main content
Glama

Verify FDA DSCSA Pharmaceutical Identifier

validate_dscsa

Verify a pharmaceutical product identifier under FDA DSCSA (Drug Supply Chain Security Act): a GS1 DataMatrix barcode or the GTIN + serial + lot + expiration element set, with NDC/GTIN checks and expiry validation.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
lotNoLot or batch number (up to 20 characters)
gtinNo14-digit GTIN of the pharmaceutical product
serialNoSerial number (up to 20 characters)
barcodeNoRaw GS1 DataMatrix barcode element string; alternative to the four DSCSA elements
referenceDateNoOptional reference date for expiry calculations (defaults to today)
expirationDateNoExpiration date (YYYY-MM-DD or YYMMDD)

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4/5.0
Behavior3/5

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

With no annotations, the description carries the full burden, and it does disclose the actual checks performed (NDC/GTIN checks, expiry validation) and that an optional reference date defaults to today. It says nothing about return format, what a failed validation looks like, or whether the GTIN check digit is validated, which are notable gaps for a verification tool with no output 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?

A single sentence with the core action front-loaded and no filler. Both input modes are compressed into one parenthetical clause, so nothing needs trimming.

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 usefully compensates for the otherwise dangerous fact that all six parameters are optional by signaling the two valid input shapes. However, with no annotations and no output schema, it never states what the verification returns, leaving the agent to guess at the result contract.

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's format and constraints are already documented in the schema. The description groups the four DSCSA elements and identifies barcode as an alternative, but adds no syntax or exclusivity rules beyond what the schema states — the baseline 3 applies.

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 (Verify) and resource (pharmaceutical product identifier) with the governing standard (FDA DSCSA) named. It also distinguishes itself from generic siblings like decode_gs1 and decode_udi by specifying the DSCSA identifier set it validates.

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 makes the two accepted input modes explicit ('a GS1 DataMatrix barcode or the GTIN + serial + lot + expiration element set'), which tells the agent how to invoke it. It gives no explicit when-not-to-use or sibling routing (e.g., versus decode_gs1 or decode_udi), so it stops short of a 5.

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