Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
OPENFDA_API_KEYNoOptional openFDA API key to raise daily request limit.

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
rx_healthA

Confirm the rx_shortage_mcp server is running and reachable.

A zero-argument connectivity check. Use it to verify the server is live
before running the shortage → alternatives → cascade-check chain.

Returns:
    HealthStatus: {
        "status": str,      # "ok" when healthy
        "server": str,      # "rx_shortage_mcp"
        "version": str,     # package version, e.g. "0.1.0"
        "next_step": str    # what to call next
    }
rx_check_shortageA

Check the current U.S. FDA (openFDA) shortage status of a drug.

Queries the openFDA Drug Shortages dataset by generic name and aggregates the
NDC/package-level records into a single status summary. National-level data only —
it does NOT reflect a specific pharmacy's local/regional stock.

Use this twice in the workflow: (1) to confirm the original drug is short, and
(2) to re-check EACH candidate alternative — an alternative may itself be in
shortage (the "cascade" check that is the point of this server).

Args:
    drug_name: Generic/ingredient name (e.g. 'furosemide').

Returns:
    ShortageResult — drug, in_shortage (bool), overall_status ('Current' /
    'To Be Discontinued' / 'Resolved' / 'no_record'), statuses (list of
    {status, count}), record_count, last_updated (MM/DD/YYYY or null),
    therapeutic_categories, reasons, and next_step guidance.
rx_normalize_drugA

Normalize a messy drug name/brand/typo to an RxNorm RxCUI and clean name.

This is the FIRST step of the workflow. It uses RxNorm's prescribable search
(exact-then-normalized), falling back to approximate matching for typos.

IMPORTANT: if `match_type` is 'approximate', the result is a best guess — present
the `candidates` to the user and confirm the intended drug before proceeding. Do
not silently assume the top candidate is correct.

Args:
    name: The drug name as the user typed it.

Returns:
    NormalizeResult — found (bool), rxcui, name (resolved RxNorm name), match_type
    ('exact' / 'approximate' / 'none'), candidates (ranked, for approximate matches),
    and next_step guidance.
rx_get_drug_classA

Resolve a drug to its candidate ATC-4 pharmacologic classes (RxClass).

A drug commonly maps to SEVERAL ATC-4 classes (a pure single-ingredient class plus
combination-product classes). This tool returns them ALL, each flagged
`is_combination`, sorted single-ingredient-first. YOU choose the class: normally the
single-ingredient class matching the drug's main therapeutic use. Pass its `class_id`
to rx_find_alternatives.

Args:
    drug_name: Drug/brand name (e.g. 'furosemide', 'Lipitor').

Returns:
    DrugClassResult — drug, classes (list of {class_id, class_name, class_type,
    is_combination}), count, and next_step guidance.
rx_find_alternativesA

List the sibling drugs in an ATC-4 pharmacologic class (RxClass members).

These are CANDIDATE alternatives for a licensed professional to evaluate — NOT a
substitution instruction. Same-class membership does NOT imply clinical
interchangeability (route, indication, contraindications, dosing, and equivalence are
not checked; some members may be withdrawn or combination products). Every response
carries a `disclaimer` that you MUST surface to the user.

After calling this, re-check EACH member's supply with rx_check_shortage to flag the
ones that are also short (the cascade check).

Args:
    class_id: ATC-4 class id (e.g. 'C03CA').

Returns:
    AlternativesResult — class_id, members (list of {rxcui, name, is_combination}),
    count, capped (bool), disclaimer (mandatory), and next_step guidance.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

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/Travis-Clement-Dev/rx-shortage-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server