Skip to main content
Glama

Fda Drug Competition

Purple Book Product Search

purple_book_product_search
Read-onlyIdempotent

Search FDA Purple Book biologic products by proper/proprietary name, applicant, reference product, or BLA. Returns licensure and product-level attributes. A licensed biosimilar is not necessarily launched, available, interchangeable, or substitutable under state law. Purple Book covers ONLY licensed biologics (BLAs) — a small-molecule drug (most drug names) will not be here; a zero-match response says so and points to orange_book_product_search instead of a bare empty result.

Input Schema

NameRequiredDescriptionDefault
limitNoRows (1-100, default 25).
queryYesName, applicant, reference product, or BLA substring.
license_typeNo
include_discontinuedNoInclude discontinued products (default false).

Output Schema

NameRequiredDescriptionDefault
hintNoPresent ONLY on a zero-match result — explains why and, for "not_a_biologic", names the Orange Book tool to call instead.
reasonNoPresent ONLY on a zero-match result: "not_a_biologic" (the query matches an FDA Orange Book small-molecule listing instead) or "no_match" (nothing found in either book).
sourceYes
productsYes
returnedYes
dataset_noteNo
dataset_staleNo
dataset_updatedNo
dataset_age_daysNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedOutput schema / properties / hint
      Added value: +{
      +  "description": "Present ONLY on a zero-match result — explains why and, for \"not_a_biologic\", names the Orange Book tool to call instead.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / reason
      Added value: +{
      +  "description": "Present ONLY on a zero-match result: \"not_a_biologic\" (the query matches an FDA Orange Book small-molecule listing instead) or \"no_match\" (nothing found in either book).",
      +  "type": "string"
      +}
  2. Changed3 schema fields changed
    • addedOutput schema / properties / dataset_age_days
      Added value: +{
      +  "type": [
      +    "number",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / dataset_note
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / dataset_stale
      Added value: +{
      +  "type": "boolean"
      +}
  3. Changed1 schema field changed
    • changedOutput schema / properties / dataset_updated / type
      Previous value: -"string"New value: +[
      +  "string",
      +  "null"
      +]
  4. Added

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, openWorld, non-destructive), so the description focuses on data-semantics instead: coverage is limited to BLAs, and a licensed biosimilar is not necessarily launched, available, interchangeable, or substitutable. The zero-match routing behavior is also disclosed. It stops short of noting pagination or result-size behavior, keeping it at a strong 4 rather than 5.

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?

Three sentences, front-loaded with purpose and scope before the caveats. Every sentence carries information, though the biosimilar caveat sentence is dense and could be tightened slightly. No filler or restatement of the title.

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 an output schema present, the description doesn't need to describe return values, and it correctly covers scope, caveats, and fallback routing. The only remaining gap is the meaning of the license_type enum values, which is minor given the schema's coverage and the annotation-provided safety profile.

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 75%, so the schema documents limit, query, and include_discontinued directly. The description restates the query dimensions but adds no format/syntax detail, and it never explains the license_type enum values (351(a) vs 351(k) Biosimilar vs Interchangeable), which is the one enum lacking a schema description. Baseline 3 is appropriate.

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) and resource (FDA Purple Book biologic products) plus the four searchable dimensions (name, applicant, reference product, BLA). It explicitly scopes itself to licensed biologics and names the sibling that handles the complementary case (orange_book_product_search), so an agent can distinguish it without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit when-to-use (biologic/BLA products) and when-not (small-molecule drugs will not be here), and routes zero-match cases to orange_book_product_search rather than leaving the agent with an empty result. This is exactly the alternative-selection guidance the rubric rewards.

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.