Skip to main content
Glama

RxNorm MCP by usefulapi

Server Details

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

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
55.5% over 21 days
Last Tested
Transport
Streamable HTTP · MCP 2025-06-18
URL
Repository
m190/usefulapi-mcp
GitHub Stars
0

TDQS

A3.7/5.0

Scored across 13 tools

Disambiguation4/5

Most tools map to distinct RxNav endpoints and purposes, but name-matching tools (find_rxcui_by_name, get_approximate_match, get_drugs, get_spelling_suggestions) have overlapping search intents, and get_all_related vs get_related_by_type plus get_concept_properties vs get_property require careful reading to distinguish.

Naming Consistency5/5

All 13 tools share the rxnorm_ prefix and a consistent verb_noun snake_case pattern (get_X, find_X_by_name), making the surface highly predictable.

Tool Count5/5

13 tools is a well-scoped set that maps cleanly onto the RxNav/RxClass REST endpoints, with each tool earning its place and little redundancy.

Completeness4/5

Coverage spans name lookup, fuzzy matching, related concepts, drug classes, properties, NDCs, history, and metadata, which is strong for the RxNorm domain; minor gaps like reverse NDC-to-RxCUI lookup or drug-drug interaction endpoints exist but core workflows are covered.

Available Tools

13 tools
rxnorm_find_rxcui_by_nameFind RxCUI by nameB
Read-only
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesDrug name to look up, e.g. 'cymbalta'.
allsrcNo0 = Active concepts only (default), 1 = all sources.
searchNo0 exact (default), 1 normalized, 2 exact-or-normalized, 9 approximate.

TDQS

B3.2/5.0
Behavior3/5

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

readOnlyHint=true already tells the agent this is a safe read, so the bar is lower. The description adds only the underlying REST endpoint (GET /rxcui), which reinforces read-only but reveals nothing about result ambiguity, multiple matches, or error behavior on unknown names.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences with the core purpose front-loaded and no padding. The REST endpoint clause is arguably implementation detail rather than agent-facing value, but it costs only a few words.

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

Completeness3/5

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

With no output schema, the description carries the burden of describing what comes back, and it does not — it never says whether a result is a single RxCUI, a ranked list, or empty when no match is found. Functional but with a clear gap for a lookup tool whose results are often ambiguous.

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?

Schema description coverage is 100% and both enums (allsrc, search) are fully documented in the schema, so the description need not repeat them. It adds no parameter meaning beyond the schema, which is the expected baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Find RxNorm concept IDs (RxCUIs)') scoped to a drug name string, which is more precise than the bare title. It does not explicitly distinguish itself from siblings like rxnorm_get_approximate_match or rxnorm_get_spelling_suggestions, so it lands just short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use guidance, no exclusions, and no routing to alternatives. Given that approximate matching and spelling suggestion siblings exist, an agent gets no signal about when a plain name lookup is the right choice versus those tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rxnorm_get_approximate_matchApproximate term matchA
Read-only
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
termYesSearch term, e.g. 'zocor 10 mg'.
optionNo0 = current concepts (default), 1 = include obsolete.
maxEntriesNoMax candidates to return. Default 20.

TDQS

A3.8/5.0
Behavior4/5

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

Annotations only cover readOnlyHint=true. The description adds real behavioral context beyond that: the matching is fuzzy and tolerant of abbreviations, misspellings, and extra words, which tells the agent what input quality it can absorb. It still says nothing about the returned candidate list, scoring, or rate limits.

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?

Two tight sentences: the matching semantics come first and the upstream REST endpoint is a compact trailing note. Every clause earns its place and nothing is front-loaded incorrectly.

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

Completeness4/5

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

For a single-purpose lookup with a fully documented schema and a safe-read annotation, the description covers what and how well it matches. With no output schema, a brief note on the shape of the result (e.g., candidate list) would have closed the only real gap.

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?

Schema description coverage is 100%, so term, option (enum for obsolete concepts), and maxEntries are already documented in the schema. The description adds no parameter-level information beyond that, which is the correct baseline when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource — 'fuzzy match a term against RxNorm names' — and the phrase 'fuzzy' immediately distinguishes it from exact-match siblings like rxnorm_find_rxcui_by_name and rxnorm_get_spelling_suggestions. It does not name those siblings explicitly, so it falls short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The 'tolerant of abbreviations, misspellings, and extra words' phrasing implies when this tool is appropriate (imprecise or incomplete input), but it never states when to prefer it over rxnorm_find_rxcui_by_name or rxnorm_get_spelling_suggestions. Usage is inferable rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rxnorm_get_class_membersGet drug class membersB
Read-only
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
relaNoRelationship filter, e.g. 'may_treat' (source-dependent).
ttysNoSpace-separated term types to include, e.g. 'IN MIN'.
transNo0 = direct members (default), 1 = include transitive.
classIdYesClass id, e.g. 'N02BE' (ATC) or a MED-RT class id.
relaSourceYesClass source, e.g. 'ATC', 'MEDRT', 'VA', 'DAILYMED'.

TDQS

B3.2/5.0
Behavior3/5

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

readOnlyHint=true already declares the safety profile, and the description matches it by naming the GET /rxclass/classMembers endpoint. It adds provenance about the data source but says nothing about result size, transitive expansion effects, or rate limiting, which would have been the genuinely useful additions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two compact sentences, with the primary purpose front-loaded. The endpoint reference in sentence two is mildly redundant with the title but still concise and non-padding.

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

Completeness3/5

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

No output schema exists, so the description arguably should describe the shape of returned members or how relaSource constrains results. Combined with five parameters and no usage guidance, the definition is minimally adequate rather than complete.

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?

Schema description coverage is 100%, so all five parameters (classId, relaSource, rela, ttys, trans) are already documented with examples and defaults. The description adds no parameter meaning beyond that, which meets the baseline of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: fetching drugs that belong to a drug class, plus the underlying RxNav endpoint. The inverse relationship to a sibling like rxnorm_get_drug_classes (classes for a drug) is inferable but never explicitly contrasted.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this versus rxnorm_get_drug_classes, rxnorm_get_drugs, or rxnorm_get_related_by_type. Usage is only implied by the description of what it returns.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rxnorm_get_concept_propertiesGet concept propertiesB
Read-only
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
rxcuiYesRxNorm concept id (RxCUI), e.g. '617314'.

TDQS

B3.4/5.0
Behavior3/5

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

readOnlyHint=true already establishes this as a safe read, so the bar is lower. The description adds the underlying REST endpoint (GET /rxcui/{rxcui}/properties) which is mildly useful context, but says nothing about error handling for invalid RxCUI or missing concepts.

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?

Two sentences, both front-loaded with the essential information: what is returned first, then the endpoint. No filler.

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

Completeness4/5

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

For a single-parameter read tool with no output schema, the description usefully enumerates the returned properties, compensating for the absent return-value documentation. It is nearly complete, missing only routing guidance against its look-alike sibling.

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?

Schema coverage is 100% and the single rxcui parameter is documented with an example in the schema itself. The description adds nothing beyond restating the path parameter, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb (Get), resource (RxNorm properties of a concept), and enumerates the returned fields (name, synonym, tty, language, suppress, umlscui). However, it does not differentiate from the near-identical sibling rxnorm_get_property, leaving the agent to guess which to call.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use guidance, no prerequisites, and no mention of alternatives. The agent gets no help selecting this over rxnorm_get_property or the related-lookup siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rxnorm_get_drug_classesGet drug classes for a drugB
Read-only
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
relasNoSpace-separated relationships, e.g. 'may_treat has_ingredient'.
drugNameYesDrug name, e.g. 'metformin'.
relaSourceNoClass source, e.g. 'MEDRT', 'ATC', 'VA', 'DAILYMED'.

TDQS

B3.3/5.0
Behavior3/5

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

readOnlyHint=true already declares the safe read profile, so the description only needs to add context. It identifies the backing service (RxClass API / RxNav REST endpoint), but says nothing about rate limits, auth needs, or response shape.

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?

Two short sentences, front-loaded with the core verb and resource, with no filler. The endpoint reference is terse and skimmable.

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

Completeness3/5

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

With no output schema, the description should ideally hint at what is returned (class ids, class names, relationship types) and whether results are grouped by relaSource. Full schema coverage and the readOnly annotation cover the invocation basics, but the return side is unaddressed.

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?

Schema description coverage is 100%, so drugName, relas, and relaSource are already documented with examples in the schema. The description adds no parameter semantics beyond that, which is the expected baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Get the drug classes that contain a drug, by drug name'), which is materially different from siblings like get_class_members or get_drugs. It does not explicitly name an alternative sibling, so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use or when-not-to-use guidance and no reference to alternatives such as rxnorm_get_class_members (the inverse direction). The only implicit signal is the tool name and the 'by drug name' qualifier.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rxnorm_get_drugsSearch drugs by nameA
Read-only
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesDrug name to search, e.g. 'prednisone'.
expandNoOptional expansion, e.g. 'psn' to include prescribable names.

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so safety is covered. The description adds the underlying RxNav REST call (GET /drugs), which is useful context, but discloses nothing about response shape, paging, or grouping behavior beyond the one-line summary. Adequate but thin for a search endpoint.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the core purpose and no filler. The endpoint reference is compact and earns its place, though it could be trimmed without loss.

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

Completeness4/5

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

No output schema exists, so the description needn't detail return values, and it does indicate the result is grouped by concept type. For a simple two-parameter read-only search, this is close to sufficient, with only minor gaps around result scope and paging.

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?

Schema coverage is 100%, so both parameters (name, expand) are already documented in the schema, making baseline 3 correct. The description's 'all term types' / 'grouped by concept type' phrasing loosely relates to the expand parameter but adds no concrete syntax or format guidance beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb+resource: 'Search drug products (all term types) matching a name, grouped by concept type.' This is clearer than a bare name restatement and the 'all term types' / 'grouped by concept type' phrasing hints at scope. However, it does not explicitly distinguish itself from the sibling rxnorm_find_rxcui_by_name, which sounds like an overlapping name search.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied by the name search framing; there is no explicit when-to-use, when-not-to-use, or alternative routing despite a crowded sibling set (find_rxcui_by_name, get_approximate_match, get_spelling_suggestions). An agent must infer that this broad drug-product search is preferred over those siblings in some cases.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rxnorm_get_history_statusGet concept history / statusB
Read-only
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
rxcuiYesRxNorm concept id (RxCUI).

TDQS

B3.4/5.0
Behavior3/5

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

readOnlyHint=true already establishes the safe-read profile, and the description adds the useful fact that results include history and status categorization (active, remapped, quantified). It discloses nothing further about return shape, pagination, or error behavior for an unknown RxCUI, and there is no output schema to compensate.

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?

Two short sentences, front-loaded with the purpose and followed by the underlying endpoint. Every clause earns its place with no filler.

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

Completeness4/5

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

For a one-parameter read-only lookup with 100% schema coverage and annotations covering safety, the description supplies enough to call it correctly: what it returns and the categories of status. Only the exact response shape is unspecified, which is minor here.

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?

Schema description coverage is 100% with a single documented rxcui parameter, so the schema carries the burden. The description only restates the parameter via the REST path /rxcui/{rxcui}/historystatus and adds no format, validity, or sourcing details.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (get) and resource (concept status/history/attributes) and enumerates concrete status values (active, remapped, quantified), so the agent knows what it retrieves. It does not, however, differentiate itself from the adjacent sibling rxnorm_get_concept_properties, which also promises 'attributes'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use guidance, no prerequisites, and no named alternative is given. The agent must infer from the name alone whether this or rxnorm_get_concept_properties is the right call for concept attribute lookups.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rxnorm_get_ndcsGet NDCs for a conceptB
Read-only
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
rxcuiYesRxNorm concept id (RxCUI).

TDQS

B3.2/5.0
Behavior3/5

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

readOnlyHint=true already tells the agent this is a safe, non-mutating read, so the description only needs to add context. It contributes the REST endpoint, but says nothing about behavior when a concept has no NDCs, whether multiple NDCs return as a list, or whether the result is paginated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with what is returned; the endpoint line is useful but slightly redundant given the preceding description. No filler or repetition.

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

Completeness4/5

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

For a simple single-parameter read lookup with readOnlyHint declared and no output schema, the description covers what the tool returns and how it maps to the API. It is nearly complete, though a note on empty results would close the last gap.

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?

Schema coverage is 100% with a single required rxcui parameter that is documented in the schema, so baseline 3 applies. The description's endpoint template reinforces that rxcui is the sole input, but adds no format or validity detail beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (get) and resource (NDCs for a concept), plus the expansion of the acronym and the underlying endpoint. It does not explicitly contrast itself with related siblings such as rxnorm_get_all_related, but the resource is distinctive enough that an agent can pick it out.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no statement of preconditions (e.g. that a valid RxCUI is needed first, obtainable via rxnorm_find_rxcui_by_name), and no mention of alternatives among the many sibling lookups. The agent must infer usage entirely from the name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rxnorm_get_propertyGet concept propertyA
Read-only
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
rxcuiYesRxNorm concept id (RxCUI).
propNameYesProperty name, e.g. 'ATC' or 'RxNorm Synonym'.

TDQS

A3.5/5.0
Behavior3/5

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

readOnlyHint=true already declares this as a safe read, so the bar is lower. The description adds the underlying REST call (GET /rxcui/{rxcui}/property) and the returned property shape (category, name, value), which is useful grounding, but says nothing about auth, lookup failures for unknown property names, or rate limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences: the purpose and examples come first, the REST mapping second. Nothing is wasted, though the endpoint reference is supplementary rather than essential for the main decision.

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

Completeness4/5

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

With 2 required params fully documented in the schema, no output schema, and no nesting, the description plus schema is nearly sufficient; it even sketches the return shape (category, name, value). The only real gap is sibling disambiguation against rxnorm_get_concept_properties.

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?

Schema description coverage is 100%, so both parameters (rxcui, propName) are already documented in the schema. The description's 'category, name, value' phrasing describes the return shape of a property rather than adding parameter-level detail, so it does not meaningfully exceed the schema baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Get) and resource (a named property of a concept) and gives concrete examples (ATC code, synonym). The phrase 'a named property' implicitly distinguishes it from the sibling rxnorm_get_concept_properties (which returns all), but it never names that sibling explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The examples 'ATC code or a synonym' imply when this tool is useful, so usage is inferable. However, there is no explicit when/when-not guidance and no routing to the very close sibling rxnorm_get_concept_properties, which an agent would need to distinguish this from.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rxnorm_get_spelling_suggestionsGet spelling suggestionsA
Read-only
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesDrug name (possibly misspelled), e.g. 'ibuprofin'.

TDQS

A3.5/5.0
Behavior3/5

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

The annotation readOnlyHint=true already tells the agent this is a safe, non-mutating lookup. The description adds no further behavioral detail such as result count limits, ranking behavior, or what happens when no suggestions exist, so it contributes only modest value beyond the structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the purpose. The trailing 'RxNav REST: GET /spellingsuggestions' is endpoint trivia that does not help an agent decide or invoke the tool, but it costs little.

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

Completeness4/5

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

For a single-parameter read-only lookup with no output schema, the definition covers what the tool does and what input it expects. Only the differentiation from the approximate-match sibling is missing, which is a modest gap at this complexity level.

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?

Schema description coverage is 100% and the schema itself provides both the semantics and a concrete example ('ibuprofin'). The description's restatement of 'possibly-misspelled drug name' adds no syntax or format detail beyond what the schema already gives, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Get spelling suggestions for a possibly-misspelled drug name'), which clearly identifies the operation. It does not, however, distinguish itself from the closely related sibling rxnorm_get_approximate_match, leaving the agent to infer the difference.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'possibly-misspelled drug name' implies the input condition under which this tool is appropriate, so usage is hinted at. But there is no explicit when/when-not guidance and no mention of the near-synonym sibling rxnorm_get_approximate_match, which is the main selection ambiguity.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rxnorm_get_term_typesList term typesA
Read-only
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so the safety profile is covered by structured data. The description adds modest context beyond that – that the result is metadata rather than patient/concept data and that it maps to GET /termtypes – but says nothing about auth, rate limits, or caching, all of which matter for an external RxNav API call.

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?

One sentence plus a short provenance clause. The purpose is front-loaded in the first four words and nothing is padded or repeated from the title.

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

Completeness4/5

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

For a zero-param, read-only reference tool with no output schema, the description is nearly sufficient: the examples convey the shape of the returned term-type codes and the endpoint grounds the source. A brief note on the return structure (e.g. tty/name pairs) would close the small remaining gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so the baseline of 4 applies. There is nothing for the description to disambiguate, and it correctly avoids inventing any parameter discussion.

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?

Specific verb ('List') plus a precise resource ('RxNorm term types'), with concrete examples (SCD, SBD, IN, BN) and even the backing REST endpoint. This is clearly distinguished from every sibling, which all operate on specific concepts or drugs rather than the static vocabulary.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied rather than stated: an agent can infer this is a static reference lookup useful for interpreting TTY values returned elsewhere, but the description never says when to call it, when not to, or which sibling it complements. No exclusions or alternatives are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 13 tool updates
    • Changedrxnorm_find_rxcui_by_name1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedrxnorm_get_all_related1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedrxnorm_get_approximate_match1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedrxnorm_get_class_members1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedrxnorm_get_concept_properties1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedrxnorm_get_drug_classes1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedrxnorm_get_drugs1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedrxnorm_get_history_status1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedrxnorm_get_ndcs1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedrxnorm_get_property1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedrxnorm_get_related_by_type1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedrxnorm_get_spelling_suggestions1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedrxnorm_get_term_types1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
  2. 13 tool updates
    • First observedrxnorm_find_rxcui_by_name
    • First observedrxnorm_get_all_related
    • First observedrxnorm_get_approximate_match
    • First observedrxnorm_get_class_members
    • First observedrxnorm_get_concept_properties
    • First observedrxnorm_get_drug_classes
    • First observedrxnorm_get_drugs
    • First observedrxnorm_get_history_status
    • First observedrxnorm_get_ndcs
    • First observedrxnorm_get_property
    • First observedrxnorm_get_related_by_type
    • First observedrxnorm_get_spelling_suggestions
    • First observedrxnorm_get_term_types

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables users to query standardized drug concepts from the National Library of Medicine's RxNorm, including name-based search, drug property retrieval, and related concept exploration via the RxNav REST API.
    23 npm
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Enables drug terminology standardization and name normalization via RxNav API, supporting drug name search, generic/brand name conversion, ATC classification, and ingredient lookup.
    6
    GPL 3.0
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables checking drug-drug interactions, resolving drug names or products, and retrieving structured drug monographs (indication, mechanism of action, dosing, adverse effects) via the DrugBank Clinical API.
    15 npm
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.