NLM RxNorm Drug Database MCP for AI. Standardized access to all pharmaceutical concepts and identifiers.
Works with every AI agent you already use
…and any MCP-compatible client








Connect to your AI in seconds.
NLM RxNorm (Drug Database) gives your AI client access to standardized pharmaceutical nomenclature and relationships. Search for drugs using names, NDC codes, or ATC identifiers; retrieve primary concepts (RxCUIs); map synonyms, classes, and related compounds across multiple data sources.
Use it when you need high-fidelity drug identification for medical research or clinical systems.
What your AI can do
Find related ndcs
Finds National Drug Codes (NDCs) that are related by concept, drug, or NDC product identifier.
Find rxcui by id
Searches for a specific identifier and returns all associated RxCUI identifiers.
Find rxcui by string
Finds an RxCUI by searching a drug's name using any vocabulary within the RxNorm standard.
It finds concepts linked to a drug by relationship type or maps out all related ingredients and therapeutic classes.
It takes any identifier—a common name, an NDC code, or an ATC code—and returns the official, standardized RxCUI required for analysis.
It pulls detailed attributes for a specific drug concept, including all known synonyms and source-specific metadata (e.g., MTHSPL).
It determines which therapeutic or chemical classes a given drug belongs to, allowing you to group drugs by function.
If you misspell a name, it provides the closest known matches, ensuring your query hits accurate data.
Ask an AI about this
Waiting for input…
NLM RxNorm (Drug Database) MCP Server: 21 Tools
Search for drug concepts, identify related identifiers (NDC/ATC), and inspect standardized pharmaceutical properties using these specialized tools.
Make your AI actually useful.
Add this MCP to Claude, Cursor, or Windsurf and your AI stops guessing. It gets real tools to look things up, take action, and handle the stuff you keep doing by hand.
Start using NLM RxNorm (Drug Database) on VinkiusFind Related Ndcs
Finds National Drug Codes (NDCs) that are related by concept, drug, or NDC product identifier.
Find Rxcui By Id
Searches for a specific identifier and returns all associated RxCUI identifiers.
Find Rxcui By String
Finds an RxCUI by searching a drug's name using any vocabulary within the RxNorm...
Find Similar Classes By Drug List
Identifies therapeutic classes that contain members similar to a list of provided...
Get All Properties
Returns detailed, comprehensive properties for any specified RxNorm concept.
Get All Related Info
Retrieves every known concept and term type related to a given RxCUI.
Get All Rxterm Info
Returns the display names, synonyms, strengths, and routes associated with an RxCUI.
Get Approximate Match
Finds concepts and atom IDs that are close matches to a search query string.
Get Class By Rxnorm Drug Id
Returns the therapeutic classes containing a specific drug identified by its RxNorm...
Get Class Members
Lists all drug products that belong to a specified therapeutic or chemical class.
Get Drugs
Returns drug products related to an ingredient name or brand name.
Get Ndc Properties
Retrieves detailed metadata and information for a specific National Drug Code (NDC).
Get Ndc Status
Returns the current status and history of a given NDC code.
Get Ndcs
Lists all active NDCs that are associated with a specific RxNorm concept.
Get Related By Relationship
Retrieves concepts directly linked by a specified relationship type (e.g....
Get Related By Type
Retrieves related concepts that belong to specific term types, like IN or SBD.
Get Rx Concept Properties
Returns basic, core properties for a given RxNorm concept.
Get Rx Property
Retrieves one specific property value (e.g., 'strength') for an RxCUI.
Get Rxterm Display Name
Gets the common display name for a specific RxNorm concept.
Get Rxcui History Status
Returns the status, historical attributes, and change log of a drug concept over...
Get Spelling Suggestions
Suggests correct drug names when you provide an inaccurate or misspelled string.
Security and governance baked right in.
Pick your AI client below to get set up. Just create a Vinkius account, subscribe, and you're instantly up and running. We handle the entire backend infrastructure, delivering out-of-the-box support for HTTPS Streamable, SSE, and OAuth2—zero messy routing required.
Choose How to Get Started
Build a custom MCP for your own tools, or connect a ready-made integration from our catalog.
Build Your Own
Turn any API into an MCP. Import a spec, define Agent Skills, or deploy with MCPFusion.
- Import from OpenAPI, Swagger, or YAML specs
- Create Agent Skills with progressive disclosure
- Deploy to edge with MCPFusion framework
- Built in DLP, auth, and compliance on every call
- Real time usage dashboard and cost metering
- Publish to catalog or keep private
Make Your AI Do More
Start with NLM RxNorm (Drug Database), then connect any of our 5,100+ other servers whenever your AI needs more. One click, no limits.
- Use this MCP plus 5,100+ others, all in one place
- Add new capabilities to your AI anytime you want
- Every connection is secured and compliant automatically
- Track usage and costs across all your servers
- Works with Claude, ChatGPT, Cursor, and more
- New servers added to the catalog every week
Independent Platform Disclaimer: Vinkius is an independent platform and is not affiliated with, endorsed by, sponsored by, verified by, or otherwise authorized by NLM RxNorm. All third-party trademarks, logos, and brand names are the property of their respective owners. Their use on this website is strictly for informational purposes to identify service compatibility and interoperability.
VINKIUS INFRASTRUCTURE
Cloud Hosted
Managed infra
V8 Isolated
Sandboxed per request
Zero-Trust Proxy
No stored credentials
DLP Enforced
Policy on every call
GDPR Compliant
EU data residency
Token Compression
~60% cost reduction
Works with Claude, ChatGPT, Cursor, and more
The Model Context Protocol standardizes how applications expose capabilities to LLMs. Instead of operating in isolation, your AI gains direct access to external platforms, live data, and real-world actions through secure, standardized connections.
This connection provides 21 powerful capabilities that interface natively with Claude, ChatGPT, Cursor, and other compatible AI platforms. No middleware. No custom integration required.
Cross-referencing drug data means jumping between six different databases.
Right now, to understand a compound's full context, you're dealing with an administrative nightmare. You check the NDC database for identification; then you switch to the clinical knowledge base to find properties; next, you open the chemical linker tool just to see what classes it falls into. Every single step requires copying identifiers and pasting them into a new system.
With this MCP server, all that manual switching disappears. You give your agent one task—'Analyze X drug.' The agent executes `find_rxcui_by_string`, feeds the result to `get_all_related_info`, and pulls class context via `get_class_members`. It gives you one structured answer sheet.
The NLM RxNorm Drug Database MCP Server: get_all_properties
Manually pulling all attributes for a drug meant checking three different endpoints just to find synonyms, then another one for strength, and yet a third API call for the source of truth. It's slow, it’s fragile, and you always risk missing an attribute.
Now, using `get_all_properties` is straightforward. You provide the RxCUI once, and the server aggregates all known attributes from various sources into one coherent data payload. The process is fast, reliable, and complete.
What your AI can actually do with this
You're connecting your AI client to the NLM RxNorm Drug Database. This isn't some basic lookup tool; it gives you access to standardized pharma nomenclature, letting you do high-fidelity analysis on drugs and ingredients.
When you use this server, you’ll get the official RxCUI—the unique identifier needed for any serious medical or research work. If you start with a common name, an NDC code, or even just a messy string, your agent can find the standardized concept ID using find_rxcui_by_string or use get_approximate_match if you misspelled something.
To map out how drugs connect in the real world, you've got several ways to go. You can look up all concepts linked by a specific relationship type, like finding everything that shares a common ingredient or tracing parent-child concept hierarchies using get_related_by_relationship. If you need to group drugs by function, your agent identifies therapeutic classes—it will tell you which class a drug belongs to via its RxNorm ID (get_class_by_rxnorm_drug_id), and it can even list all other products that fall under that same chemical or therapeutic grouping using get_class_members.
When you need the deep dive, this server delivers. Your agent pulls detailed attributes for any concept using get_all_properties, giving you a full picture of synonyms, strengths, and source-specific metadata like MTHSPL data. You can also pull out just one specific piece of info—say, the exact 'strength' or 'route'—with get_rx_property.
For complete due diligence, it tracks the history and status of any drug concept over time using get_rxcui_history_status.
Dealing with physical identifiers is no sweat. You can check detailed metadata for a specific National Drug Code (NDC) using get_ndc_properties, and you'll even get its current status or historical changes via get_ndc_status. If you have an RxCUI, the server pulls every known concept and term type related to it with get_all_related_info.
Need to search by ingredient name or brand name? The system handles that. You can find drug products using get_drugs, or if you're focused on NDCs, find_related_ndcs helps map all associated codes based on concept, drug, or product ID.
For the full picture of a single RxCUI, your agent doesn't just give you one name; it uses get_all_rxterm_info to list every common display name, synonym, strength, and administration route. You can also ask for basic core properties with get_rx_concept_properties. If you need to narrow down related concepts by type (like IN or SBD), the tool get_related_by_type handles that specificity.
Your agent's ability to classify drugs is sharp too. It can pinpoint therapeutic classes containing members similar to a list of RxCUIs using find_similar_classes_by_drug_list. You get crystal-clear results whether you’re looking up basic drug products via get_drugs or trying to find the closest match for a messy search query.
Basically, if it's standardized pharmaceutical data—names, codes, relationships, history, classes, synonyms—this server handles it. It lets your AI client move past simple lookups and perform complex mapping across multiple data sources.
019e38c8-e57e-727b-b47d-14d9e5c11ed7 Here's how it actually works
The bottom line is that it translates messy medical terminology and codes into one consistent set of structured data points for your client to read.
First, ask your agent to find the primary identifier (RxCUI) using an external code or drug name via tools like find_rxcui_by_id.
Next, tell the agent what context you need—for example, 'Show me all related concepts' or 'List its attributes.' The agent then calls specialized tools like get_all_related_info.
Finally, your agent compiles the structured data into a readable format, giving you the complete picture of the drug's properties and connections.
Who is this actually for?
Medical researchers, pharmacologists, and clinical developers need this. If you're constantly switching between databases—checking NDC in one tab, properties in another, and relationships in a third—you'll hit the wall. This server centralizes standardized drug knowledge so your agent handles the complexity.
Uses it to embed reliable drug interaction checks or contraindication warnings into patient-facing software.
Maps large sets of compounds, analyzing how different drugs relate via shared chemical classes or ingredients.
Processes disparate drug datasets (e.g., clinical trial results and literature) by mapping everything to the common RxNorm standard for analysis.
What Changes When You Connect
Stop cross-referencing codes manually. Using find_rxcui_by_id lets your agent take an NDC or ATC code, look up the RxCUI, and use that ID for every subsequent query—all in one flow.
See the full picture of a drug's life cycle. The get_rxcui_history_status tool tracks changes over time, showing when a concept was added or modified, which is critical for regulatory reporting.
Avoid scope creep with specific tools. Instead of getting a massive dump of data, use get_rx_property to pull only the exact piece of information you need (like 'dosage form') for cleaner code and faster responses.
Map complex connections efficiently. If you know a drug's class but not its members, get_class_members lists all compounds in that group. Conversely, if you list drugs, find_similar_classes_by_drug_list tells you the common functional area.
Handle bad input gracefully. If your user types 'Metformmin,' the agent runs get_spelling_suggestions, corrects it to 'Metformin,' and then proceeds with the correct data lookup using find_rxcui_by_string.
See it in action
Checking a Compound's Full Scope
A researcher needs to know every related concept for Aspirin. They ask their agent, 'What are all the things linked to Aspirin?' The agent uses get_all_related_info and then cross-references results with get_class_members to provide a complete, structured view of its connections.
Validating an Old Drug Code
A developer is processing historical data containing old NDC codes. They use get_ndc_status to verify if the code was active during the specified date range, ensuring their system doesn't rely on deprecated identifiers.
Finding Alternatives by Class
A clinician needs a drug alternative for a patient whose current drug is discontinued. They provide the RxCUI and ask the agent to use find_similar_classes_by_drug_list to identify other therapeutic classes they can consider.
Building a Drug Profile from Scratch
A data scientist receives only a common name. They prompt, 'Give me everything about this drug.' The agent first runs find_rxcui_by_string to get the ID, then uses that ID with get_all_properties, and finally calls get_all_related_info for maximum context.
The honest tradeoffs
Treating all tools as general lookups
Asking the agent to just 'tell me about Aspirin' and hoping it magically knows which type of data is needed.
You need to specify the data point. Start by getting the ID via find_rxcui_by_string, then ask specifically: 'What are its properties?' or 'List all related concepts using get_all_related_info.' Don't guess.
Ignoring identifier formats
Using the drug name when you actually have a precise NDC code. This leads to ambiguous, general results.
If you have an official code (NDC or ATC), don't search by name. Use find_rxcui_by_id or get_ndc_properties directly with the code for definitive mapping.
Over-fetching data
Requesting 'all properties, related info, and class members' in one shot. The resulting payload is massive and hard to read.
Break it down into sequential steps. First: get_class_by_rxnorm_drug_id. Second: get_all_related_info. This makes the output targeted and actionable.
When It Fits, When It Doesn't
Use this server if your task requires mapping drug concepts across multiple standardized vocabularies (RxNorm, NDC, ATC) or if you need deep relationship analysis (e.g., class membership, ingredient links). You absolutely must use it when data integrity is paramount; simple string searches are insufficient.
Don't use this if you just need a basic definition of a drug or a quick lookup of a single common name without needing the official ID. In those cases, a simpler dictionary service might suffice. However, for any development involving clinical logic, always prefer the structured tools like get_all_properties and get_related_by_type over general web searches—they guarantee data structure.
Questions you might have
How do I find a drug's official ID? (Using find_rxcui_by_string) +
You use find_rxcui_by_string. You just provide the common name, and it returns the unique RxCUI. It’s the first step you need before doing any deep analysis.
Does get_ndc_properties tell me if a drug is discontinued? +
Yes, get_ndc_properties provides detailed metadata. You should pair this with get_ndc_status to confirm the current market status and history of that specific NDC code.
What if I misspell a drug name? (Using get_spelling_suggestions) +
Run get_spelling_suggestions. This tool checks your input against known vocabularies and returns the most likely correct spelling, letting you fix the query before it fails.
How do I find all drugs in a certain class? (Using get_class_members) +
Call get_class_members and provide the specific class ID. It returns a list of every drug product that belongs to that therapeutic group, making classification simple.
What is the difference between find_rxcui_by_string and get_all_related_info? +
find_rxcui_by_string finds the core ID (the RxCUI). get_all_related_info takes that already-found ID and expands it, showing everything connected to that drug concept.
How do I use `get_rxcui_history_status` to track a drug’s status changes over time? +
The get_rxcui_history_status tool provides the full lifecycle data for an RxCUI. You get reports on when attributes or statuses changed, letting you build audit trails. This is crucial for understanding how and why a drug's classification evolved.
When should I use `get_related_by_relationship` instead of checking all related concepts? +
Use get_related_by_relationship when you need to filter connections by a specific link type, like 'ingredient' or 'trade_name'. This is much cleaner than wading through hundreds of general relationships. It narrows down your search immediately.
If I only need one specific piece of data (like the primary strength), how does `get_rx_property` help? +
get_rx_property lets you pull a single, targeted value for any concept. Instead of downloading massive property sheets and writing parsing logic, you specify the exact attribute name you need. It's perfect for quick data checks.
How can I find the RxCUI for a specific drug name? +
You can use the find_rxcui_by_string tool. Simply provide the drug name, and the agent will return the associated RxNorm Concept Unique Identifiers.
What should I do if I am unsure of the correct spelling of a drug? +
Use the get_spelling_suggestions tool. It provides strings similar to your input to help you find the correct standardized drug name.
Can I retrieve all properties, such as synonyms and attributes, for a drug? +
Yes, the get_all_properties tool allows you to fetch detailed attributes, codes, and names associated with a specific RxCUI.
We've already built the connector for NLM RxNorm Drug Database. Just plug in your AI agents and start using Vinkius.
No hosting. No infrastructure. No complex setup.
All 21 tools are live and waiting.
You're up and running in seconds.
Vinkius gives your AI agents access to the full catalog of app connectors, all fully managed, secure, and enterprise-ready. One subscription, every tool you need.
Built, hosted, and secured by Vinkius. You just connect and go.