RxNorm MCP by usefulapi
Look up drug names, RxCUIs, ingredients and interactions in RxNorm.
Should I use this
Quality & Safety
Findings (1)
- LOWin rxnorm_get_spelling_suggestions
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
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-httpWhat it can do
Tool inventory
Tools (13)
🟢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
Evidence