Skip to main content
Glama

Rxnorm Search

rxnorm_search
Read-onlyIdempotent

Look up a medication's RxCUI and MAP A BRAND DRUG TO ITS GENERIC INGREDIENT (and vice versa) — e.g. Eliquis -> apixaban, Lipitor -> atorvastatin. Search by brand or generic name; returns RxCUI IDs, names, synonyms, and term types (BN=brand, IN=ingredient, SBD=dose form). The right tool for "what is the RxCUI for X", "what generic ingredient does brand X map to", or "brand vs generic name". Start here to find a drug's unique ID.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameYesDrug name to search for — brand or generic (e.g., "Ozempic", "semaglutide", "metformin")

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameYesNormalized drug name from search
concept_groupsYesGroups of drug concepts organized by term type

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "concept_groups": {
      +      "description": "Groups of drug concepts organized by term type",
      +      "items": {
      +        "properties": {
      +          "concepts": {
      +            "description": "Drug concepts in this group",
      +            "items": {
      +              "properties": {
      +                "language": {
      +                  "description": "Language code (typically ENG)",
      +                  "type": "string"
      +                },
      +                "name": {
      +                  "description": "Drug name",
      +                  "type": "string"
      +                },
      +                "rxcui": {
      +                  "description": "RxNorm concept unique identifier",
      +                  "type": "string"
      +                },
      +                "synonym": {
      +                  "description": "Alternative name or null",
      +                  "type": [
      +                    "string",
      +                    "null"
      +                  ]
      +                },
      +                "tty": {
      +                  "description": "Term type code",
      +                  "type": "string"
      +                }
      +              },
      +              "required": [
      +                "rxcui",
      +                "name",
      +                "tty",
      +                "language"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "term_type": {
      +            "description": "RxNorm term type (BN, IN, SBD, SCD, GPCK, BPCK)",
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "term_type",
      +          "concepts"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "name": {
      +      "description": "Normalized drug name from search",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "name",
      +    "concept_groups"
      +  ],
      +  "type": "object"
      +}
  2. Changed1 schema field changed
    • addedInput schema / examples
      Added value: +[
      +  {
      +    "name": "Ozempic"
      +  },
      +  {
      +    "name": "metformin"
      +  }
      +]
  3. First observed

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and non-destructive nature. The description adds valuable context beyond annotations by detailing return values (RxCUI, names, synonyms, term types) and explaining term type abbreviations (BN, IN, SBD). It does not contradict annotations. While it could mention behavior when no match is found, the provided context is strong.

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?

The description is two sentences long, front-loading the primary purpose and then expanding with examples and return types. Every sentence is substantive and earns its place. No redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (1 required param, full schema coverage, output schema, and annotations indicating safe read), the description is complete. It explains what the tool does, what it returns, and positions it as the entry point for RxNorm queries. No gaps remain for effective use.

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?

The single parameter 'name' is fully described in the schema (100% coverage) with examples. The description reiterates 'Search by brand or generic name' and gives examples, but adds no meaning beyond what the schema already provides. Baseline is 3 due to full schema coverage.

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?

The description clearly states the tool's purpose: look up a medication's RxCUI and map brand to generic (and vice versa). It provides concrete examples (Eliquis->apixaban, Lipitor->atorvastatin) and specifies the returned data: RxCUI IDs, names, synonyms, term types. This distinguishes it from siblings like rxnorm_get_properties by framing it as the starting point for finding a drug's unique ID.

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 explicitly lists use cases: 'what is the RxCUI for X', 'what generic ingredient does brand X map to', 'brand vs generic name'. It advises 'Start here to find a drug's unique ID', giving clear context. However, it does not mention when NOT to use it or contrast with siblings like rxnorm_ndc or rxnorm_related, missing an opportunity for explicit exclusions.

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.