RxNorm MCP by usefulapi

Look up drug names, RxCUIs, ingredients and interactions in RxNorm.

Should I use this

Quality & Safety

A
Description quality
89%
Schema completeness
95%
Naming quality
78%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (1)

  • LOWTool 'rxnorm_get_spelling_suggestions' name length outside 3-30 rangein rxnorm_get_spelling_suggestions

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,893Tokens (tool definitions)
~864 BTypical response size
Moderate attention impact (1.48% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "rxnorm": {
      "url": "https://rxnorm.usefulapi.io/mcp"
    }
  }
}

Remote endpoints

https://rxnorm.usefulapi.io/mcpstreamable-http

What it can do

Tool inventory

Tools (13)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢rxnorm_find_rxcui_by_name(name, search, allsrc)

Find RxNorm concept IDs (RxCUIs) matching a drug name string. RxNav REST: GET /rxcui.

Input Schema

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "description": "Drug name to look up, e.g. 'cymbalta'."
    },
    "search": {
      "description": "0 exact (default), 1 normalized, 2 exact-or-normalized, 9 approximate.",
      "type": "string",
      "enum": [
        "0",
        "1",
        "2",
        "9"
      ]
    },
    "allsrc": {
      "description": "0 = Active concepts only (default), 1 = all sources.",
      "type": "string",
      "enum": [
        "0",
        "1"
      ]
    }
  },
  "required": [
    "name"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢rxnorm_get_drugs(name, expand)

Search drug products (all term types) matching a name, grouped by concept type. RxNav REST: GET /drugs.

Input Schema

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "description": "Drug name to search, e.g. 'prednisone'."
    },
    "expand": {
      "description": "Optional expansion, e.g. 'psn' to include prescribable names.",
      "type": "string"
    }
  },
  "required": [
    "name"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢rxnorm_get_concept_properties(rxcui)

Get the RxNorm properties (name, synonym, tty, language, suppress, umlscui) of a concept. RxNav REST: GET /rxcui/{rxcui}/properties.

Input Schema

{
  "type": "object",
  "properties": {
    "rxcui": {
      "type": "string",
      "description": "RxNorm concept id (RxCUI), e.g. '617314'."
    }
  },
  "required": [
    "rxcui"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢rxnorm_get_related_by_type(rxcui, tty)

Get concepts related to a concept, restricted to the specified term types. RxNav REST: GET /rxcui/{rxcui}/related.

Input Schema

{
  "type": "object",
  "properties": {
    "rxcui": {
      "type": "string",
      "description": "RxNorm concept id (RxCUI)."
    },
    "tty": {
      "type": "string",
      "description": "Space-separated term types, e.g. 'SCD SBD BPCK'."
    }
  },
  "required": [
    "rxcui",
    "tty"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢rxnorm_get_all_related(rxcui)

Get every concept directly or indirectly related to a concept (all term types). RxNav REST: GET /rxcui/{rxcui}/allrelated.

Input Schema

{
  "type": "object",
  "properties": {
    "rxcui": {
      "type": "string",
      "description": "RxNorm concept id (RxCUI)."
    }
  },
  "required": [
    "rxcui"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢rxnorm_get_ndcs(rxcui)

Get the NDCs (National Drug Codes) associated with a concept. RxNav REST: GET /rxcui/{rxcui}/ndcs.

Input Schema

{
  "type": "object",
  "properties": {
    "rxcui": {
      "type": "string",
      "description": "RxNorm concept id (RxCUI)."
    }
  },
  "required": [
    "rxcui"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢rxnorm_get_history_status(rxcui)

Get the status, history and attributes of a concept (active, remapped, quantified, etc). RxNav REST: GET /rxcui/{rxcui}/historystatus.

Input Schema

{
  "type": "object",
  "properties": {
    "rxcui": {
      "type": "string",
      "description": "RxNorm concept id (RxCUI)."
    }
  },
  "required": [
    "rxcui"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢rxnorm_get_property(rxcui, propName)

Get a named property (category, name, value) of a concept, e.g. ATC code or a synonym. RxNav REST: GET /rxcui/{rxcui}/property.

Input Schema

{
  "type": "object",
  "properties": {
    "rxcui": {
      "type": "string",
      "description": "RxNorm concept id (RxCUI)."
    },
    "propName": {
      "type": "string",
      "description": "Property name, e.g. 'ATC' or 'RxNorm Synonym'."
    }
  },
  "required": [
    "rxcui",
    "propName"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢rxnorm_get_spelling_suggestions(name)

Get spelling suggestions for a possibly-misspelled drug name. RxNav REST: GET /spellingsuggestions.

Input Schema

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "description": "Drug name (possibly misspelled), e.g. 'ibuprofin'."
    }
  },
  "required": [
    "name"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢rxnorm_get_approximate_match(term, maxEntries, option)

Fuzzy match a term against RxNorm names — tolerant of abbreviations, misspellings, and extra words. RxNav REST: GET /approximateTerm.

Input Schema

{
  "type": "object",
  "properties": {
    "term": {
      "type": "string",
      "description": "Search term, e.g. 'zocor 10 mg'."
    },
    "maxEntries": {
      "description": "Max candidates to return. Default 20.",
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "option": {
      "description": "0 = current concepts (default), 1 = include obsolete.",
      "type": "string",
      "enum": [
        "0",
        "1"
      ]
    }
  },
  "required": [
    "term"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢rxnorm_get_term_types

List all RxNorm term types (metadata), e.g. SCD, SBD, IN, BN. RxNav REST: GET /termtypes.

Input Schema

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢rxnorm_get_drug_classes(drugName, relaSource, relas)

Get the drug classes that contain a drug, by drug name (RxClass API). RxNav REST: GET /rxclass/class/byDrugName.

Input Schema

{
  "type": "object",
  "properties": {
    "drugName": {
      "type": "string",
      "description": "Drug name, e.g. 'metformin'."
    },
    "relaSource": {
      "description": "Class source, e.g. 'MEDRT', 'ATC', 'VA', 'DAILYMED'.",
      "type": "string"
    },
    "relas": {
      "description": "Space-separated relationships, e.g. 'may_treat has_ingredient'.",
      "type": "string"
    }
  },
  "required": [
    "drugName"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢rxnorm_get_class_members(classId, relaSource, rela, ttys, trans)

Get the drugs belonging to a drug class (RxClass API). RxNav REST: GET /rxclass/classMembers.

Input Schema

{
  "type": "object",
  "properties": {
    "classId": {
      "type": "string",
      "description": "Class id, e.g. 'N02BE' (ATC) or a MED-RT class id."
    },
    "relaSource": {
      "type": "string",
      "description": "Class source, e.g. 'ATC', 'MEDRT', 'VA', 'DAILYMED'."
    },
    "rela": {
      "description": "Relationship filter, e.g. 'may_treat' (source-dependent).",
      "type": "string"
    },
    "ttys": {
      "description": "Space-separated term types to include, e.g. 'IN MIN'.",
      "type": "string"
    },
    "trans": {
      "description": "0 = direct members (default), 1 = include transitive.",
      "type": "string",
      "enum": [
        "0",
        "1"
      ]
    }
  },
  "required": [
    "classId",
    "relaSource"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded13 tools
verifiedversion not recorded13 tools