Medical Terminologies MCP
Server Details
Diagnoses, drugs & lab codes: ICD-11, SNOMED, LOINC, RxNorm, MeSH, ATC, CID-10. 37 tools, MIT.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
- Repository
- SidneyBissoli/medical-terminologies-mcp
- GitHub Stars
- 3
- Server Listing
- Medical Terminologies MCP
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Average 4.3/5 across 31 of 31 tools scored. Lowest: 3.6/5.
Every tool is clearly scoped to a specific terminology and operation. The prefixes (atc_, cid10_, icd11_, loinc_, mesh_, rxnorm_) prevent any ambiguity across terminologies, and within each group the actions (search, lookup, details, etc.) are distinct. No two tools have overlapping purposes.
All tools follow a consistent '[terminology]_[action]' pattern using lowercase with underscores. Verbs like classify, lookup, search, and nouns like details are used uniformly. The pattern makes it easy to predict tool names and understand their function.
With 31 tools covering six major medical terminologies (ATC, CID-10, ICD-11, LOINC, MeSH, RxNorm) plus cross-utility tools, every tool earns its place. The count is well-scoped for the server's purpose – not excessive, yet comprehensive enough for terminology lookup, search, and mapping tasks.
Core operations (search, lookup, details, hierarchy) are present for each supported terminology. Additional specialized tools (e.g., postcoordination, panels, qualifiers) add depth. However, there is no dedicated SNOMED CT tool beyond validation and find_equivalent, which is a minor gap given SNOMED's importance in clinical data.
Available Tools
31 toolsatc_classifyARead-onlyIdempotentInspect
Look up the WHO ATC (Anatomical Therapeutic Chemical) classification(s) for a drug by name.
Use this tool to:
Find the ATC code for a medication (e.g., "metformin" → A10BA02)
Identify the therapeutic and pharmacological class hierarchy
Cross-reference drugs with their international ATC codes
Returns one entry per ATC code the drug belongs to. A single-ingredient drug typically maps to one substance-level code; combination products map to multiple. ATC codes are international (WHO Collaborating Centre); this tool retrieves them via NLM RxClass.
| Name | Required | Description | Default |
|---|---|---|---|
| drug_name | Yes | Drug name to classify (brand or generic, e.g., "metformin") |
Output Schema
| Name | Required | Description |
|---|---|---|
| matches | Yes | |
| drug_name | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already show readOnly, idempotent, non-destructive. Description adds details about source (NLM RxClass), return logic (one entry per ATC code, combination products), and hierarchy information.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Tight structure: main sentence then bullet points. No superfluous text, all sentences earn their place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, description covers essential behavior: source, per-code return, combination handling. Well-rounded for a lookup tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Single parameter drug_name has 100% schema coverage. Description adds value by clarifying input can be brand or generic, and gives an example (metformin).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it looks up ATC classifications by drug name with examples. Does not explicitly differentiate from sibling tools like atc_lookup or atc_members, but the focus on drug-to-code mapping is clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides usage scenarios in bullet points, such as finding ATC codes and therapeutic hierarchy. Lacks explicit guidance on when not to use or comparison with sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
atc_lookupARead-onlyIdempotentInspect
Look up an ATC code at level 1-4 to get its name and hierarchy level.
Use this tool to:
Resolve an ATC code (e.g., "A10BA") to its class name ("Biguanides")
Confirm a code exists in the current ATC index
Identify the level (anatomical / therapeutic / pharmacological / chemical)
Accepts codes 1-5 characters long: "A" (anatomical), "A10" (therapeutic), "A10B" (pharmacological), "A10BA" (chemical). Substance-level codes (7 chars, e.g., "A10BA02") are not exposed by this endpoint — use atc_classify with the drug name to retrieve the substance code.
| Name | Required | Description | Default |
|---|---|---|---|
| atc_code | Yes | ATC code at level 1-4 (1-5 chars). Substance-level codes (7 chars, e.g., A10BA02) are not exposed by this endpoint — use atc_classify with the drug name instead. |
Output Schema
| Name | Required | Description |
|---|---|---|
| found | Yes | |
| details | Yes | |
| atc_code | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint. The description adds useful context on accepted code lengths, hierarchy levels, and the exclusion of substance codes, but does not elaborate on error handling 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, uses bullet points for readability, and front-loads the core purpose. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool with an output schema, the description fully explains functionality, valid inputs, and exclusions. It is complete given the tool's complexity and available metadata.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema description already contains the same information as the tool description about code format and limitations. The description adds no new parameter semantics beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Look up an ATC code at level 1-4 to get its name and hierarchy level,' providing a specific verb and resource. It distinguishes from siblings by mentioning the alternative tool atc_classify for substance-level codes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly lists use cases (resolve, confirm, identify) and includes a clear when-not-to-use: substance-level codes should use atc_classify. This provides both context and alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
atc_membersARead-onlyIdempotentInspect
List the drugs (substances) that belong to an ATC class.
Use this tool to:
Enumerate all members of a therapeutic class (e.g., "A10BA" → metformin, phenformin)
Build a list of drugs sharing a pharmacological mechanism
Explore an ATC subtree at any level
Each member includes its substance-level (7-char) ATC code via source_atc_code, useful for disambiguation when the queried class is at level 1-4. RxNorm's catalog is US-centric; the ATC class names and codes themselves are international.
| Name | Required | Description | Default |
|---|---|---|---|
| atc_code | Yes | ATC code at any level. Higher levels (1-4) return all member substances; level 5 returns the single substance. |
Output Schema
| Name | Required | Description |
|---|---|---|
| members | Yes | |
| atc_code | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds value beyond annotations by explaining that RxNorm is US-centric and that each member includes a source_atc_code for disambiguation. It does not contradict any annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured with a clear lead sentence, bullet points for use cases, and an explanatory note. Every sentence contributes meaning without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple single-parameter tool with complete schema coverage, annotations, and the presence of an output schema, the description fully covers the tool's behavior, return value specifics, and caveats. No gaps remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already describes the parameter 'atc_code' with a pattern, but the description adds crucial semantic details: higher levels return all substances, level 5 returns a single substance, and the output includes source_atc_code. This compensates for the otherwise minimal schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists drugs/substances belonging to an ATC class, with specific examples like 'A10BA' → metformin. It distinguishes itself from sibling tools like atc_classify and atc_lookup by focusing on enumerating members.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use this tool (e.g., enumerate members, build a drug list) and notes a limitation (US-centric RxNorm catalog but international codes). It does not explicitly mention when not to use it, but the use cases are sufficiently clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cid10_chapterARead-onlyIdempotentInspect
Get one CID-10 chapter and its constituent groups (e.g., "Chapter IX → I00-I02 Febre reumática aguda, I05-I09 Doenças reumáticas crônicas do coração, ...").
Use this tool to:
Drill from a chapter into its groups
Build hierarchical browsers
Find which group contains a code range
Provide a chapter number (1-22).
| Name | Required | Description | Default |
|---|---|---|---|
| num | Yes | Chapter number (1-22). CID-10 V2008 has 22 chapters. |
Output Schema
| Name | Required | Description |
|---|---|---|
| num | Yes | |
| found | Yes | |
| groups | Yes | |
| chapter | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, idempotent, and non-destructive behavior. The description adds that it returns groups but does not detail response structure or error handling. With good annotations, this is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is concise, uses bullet points for clarity, and includes an illustrative example. Every sentence provides value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple lookup tool with a clear annotation set and output schema, the description is sufficient. It covers the primary use cases and parameter requirements without missing critical context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a description for the single parameter 'num'. The tool description does not add new semantic info beyond the schema, so baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool retrieves a CID-10 chapter and its groups, with specific verb 'Get' and resource. It distinguishes from sibling 'cid10_chapters' by focusing on a single chapter. The example reinforces the purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description explicitly lists use cases: drilling into groups, building hierarchical browsers, and finding code ranges. It does not mention when not to use, but the context from sibling tools makes alternatives apparent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cid10_chaptersARead-onlyIdempotentInspect
List the 22 chapters of CID-10 with their code ranges and Portuguese titles.
Use this tool to:
See the top-level structure of CID-10 (chapters I-XXII, e.g., "I. Algumas doenças infecciosas e parasitárias", "IX. Doenças do aparelho circulatório")
Map a code to its chapter by code range (e.g., I00-I99 → chapter IX)
Build a navigable table of contents for downstream tooling
Returns 22 entries — CID-10 V2008 has not been updated since 2008.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| chapters | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, open-world, idempotent, and non-destructive behavior. The description adds context that the tool returns exactly 22 entries and that CID-10 V2008 has not been updated since 2008, which is valuable beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded. The first sentence states the core purpose, followed by bullet points for usage, and a final note about the static nature. No redundant or unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity (no parameters, fixed 22 results), and the presence of an output schema, the description covers all needed aspects: purpose, usage, and behavioral notes. It is fully sufficient for an agent to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has no parameters, and schema coverage is 100% (vacuously). The description adds no parameter information, but none is needed. It provides context about the fixed output (22 entries). Baseline 4 for zero parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific action 'List' and a specific resource 'chapters of CID-10' with details on what is returned (code ranges and Portuguese titles). It clearly distinguishes from siblings like cid10_chapter (singular) and cid10_search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit use cases in bullet points (see top-level structure, map code to chapter, build table of contents). It does not explicitly state when not to use, but the sibling tools imply alternatives (e.g., cid10_chapter for a specific chapter).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cid10_lookupARead-onlyIdempotentInspect
Look up a specific CID-10 code and return its Portuguese name.
Use this tool to:
Resolve a code to its Brazilian description ("I21" → "Infarto agudo do miocárdio")
Confirm a 3-char category or 4-char subcategory exists in CID-10
Retrieve gender / cause-of-death restriction flags when applicable
Accepts both dotted ("A00.1") and undotted ("A001") forms; returns the canonical display.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | CID-10 code (e.g., "A00", "A00.1", "A001", "I21"). Dotted and undotted forms both accepted. |
Output Schema
| Name | Required | Description |
|---|---|---|
| hit | Yes | |
| code | Yes | |
| found | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds that the tool returns the canonical display and can include gender/cause-of-death restriction flags. This provides useful behavioral context beyond the annotations, such as the normalization of input formats (accepting both forms) and the inclusion of optional restriction information.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact (4 sentences), uses bullet points for use cases, and avoids unnecessary details. Every sentence adds value: purpose, usage list, and input format clarification. The structure is well-organized with a clear heading and subpoints, making it easy for an agent to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (1 parameter, clear input validation), the description is thorough enough. It covers purpose, usage, and input formatting. Since an output schema exists, the return structure is likely documented there. Minor omission: it does not mention error handling for invalid codes, but that is acceptable given the schema's pattern constraint and the output schema's likely inclusion of error responses.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the description adds that the tool accepts both dotted and undotted forms and returns the canonical display. This goes beyond the schema's pattern and description, clarifying input flexibility and output normalization. The single parameter is well-documented both in schema and description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it looks up a specific CID-10 code and returns its Portuguese name. It provides concrete examples ("I21" → "Infarto agudo do miocárdio") and specifies accepted formats (dotted and undotted), distinguishing it from sibling tools like cid10_search (which searches by text) and cid10_chapter (which lists chapter codes).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly lists three use cases: resolving a code to its Brazilian description, confirming code existence, and retrieving restriction flags. It states it accepts both dotted and undotted forms. However, it does not explicitly mention when not to use it or suggest alternatives among siblings (e.g., cid10_search for textual queries). The guidance is clear but lacks exclusionary context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cid10_searchARead-onlyIdempotentInspect
Search the Brazilian CID-10 (Classificação Estatística Internacional de Doenças, 10ª Revisão) by Portuguese text.
Use this tool to:
Find CID-10 codes for Brazilian SUS / ANVISA contexts ("infarto", "diabetes", "tuberculose")
Look up the official Portuguese (CBCD/USP) translation of a clinical term
Locate codes for billing, epidemiology, and clinical documentation in Brazil
Returns matches from CID-10 categories (3-char) and/or subcategories (4-char). Search is diacritic-insensitive: typing "infeccoes" matches "infecções". This tool searches the Brazilian Portuguese CID-10 V2008 — for the international ICD-11 (current WHO revision, in English by default), use icd11_search.
| Name | Required | Description | Default |
|---|---|---|---|
| level | No | Restrict search to 3-char categories, 4-char subcategories, or both. Default: all | all |
| query | Yes | Search term in Portuguese (e.g., "diabetes", "infarto", "tuberculose") | |
| max_results | No | Maximum number of results (1-100). Default: 25 |
Output Schema
| Name | Required | Description |
|---|---|---|
| hits | Yes | |
| level | Yes | |
| query | Yes | |
| shown_count | Yes | |
| total_count | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint. The description adds valuable behavioral details: search returns categories/subcategories, is diacritic-insensitive, and uses V2008 version. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (about 100 words) and well-structured with bullet points for use cases. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema, the description covers all necessary aspects: purpose, usage context, version, sibling differentiation. No gaps for a search tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description adds context for the query parameter (Portuguese term, diacritic insensitivity) which supplements the schema. The note about diacritics is not in the schema description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches Brazilian CID-10 by Portuguese text. It lists specific use cases (SUS/ANVISA, official translation, billing) and distinguishes from icd11_search by version and language.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use (Brazilian contexts, Portuguese) and when to use icd11_search instead. However, no guidance is given for when to prefer this over other CID-10 siblings like cid10_lookup or cid10_chapter.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_equivalentARead-onlyIdempotentInspect
Search for equivalent terms across multiple medical terminologies.
Use this tool to:
Find the same concept in different coding systems
Compare how terminologies represent a concept
Support terminology mapping and data integration
Searches across: ICD-11, SNOMED CT, LOINC, RxNorm, and MeSH. Set target_terminologies to limit which are searched, or set source_terminology to exclude one (e.g. when you already have a code from that terminology and want equivalents elsewhere). The two combine: source is subtracted from targets.
| Name | Required | Description | Default |
|---|---|---|---|
| term | Yes | Medical term to search (e.g., "diabetes", "aspirin") | |
| source_terminology | No | If set, this terminology is excluded from the search. Use this when the term came from this terminology and you want equivalents in the others. Combines with target_terminologies by subtraction (source is removed from the target list). | |
| target_terminologies | No | Limit the search to these terminologies. If omitted, all five are searched. |
Output Schema
| Name | Required | Description |
|---|---|---|
| term | Yes | |
| results | Yes | |
| source_terminology | Yes | |
| searched_terminologies | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnly, openWorld, idempotent, and non-destructive behavior. The description adds context about the terminologies searched and parameter combination logic, which supplements but does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two paragraphs with a clear opening sentence and bullet points for use cases. Every sentence serves a purpose without unnecessary verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (3 parameters, output schema exists), the description covers purpose, usage, parameter behavior, and lists terminologies. The output schema handles return value documentation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the description clarifies the interplay between 'source_terminology' and 'target_terminologies' ('source is subtracted from targets'), adding meaning beyond the schema's individual descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Search for equivalent terms across multiple medical terminologies,' using specific verbs and resources. It distinguishes from sibling tools that are specific to individual terminologies or mappings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit use cases (e.g., 'Find the same concept in different coding systems') and explains how to use parameters, including their interaction. It lacks explicit 'when not to use,' but the context of numerous sibling tools implies it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
icd11_chaptersARead-onlyIdempotentInspect
List all ICD-11 chapters (top-level categories).
Use this tool to:
Get an overview of ICD-11 structure
Find which chapter covers a body system or condition type
Navigate to specific disease categories
ICD-11 has 28 chapters covering all areas of medicine.
| Name | Required | Description | Default |
|---|---|---|---|
| language | No | Language code (default: en) | en |
Output Schema
| Name | Required | Description |
|---|---|---|
| chapters | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true. The description adds that it lists all chapters and mentions there are 28 chapters, which is consistent but does not reveal additional behavioral traits beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise: one sentence for the main action, three bullet points for use cases, and one sentence about the number of chapters. Every sentence adds value and is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with one optional parameter and an output schema exists. The description covers purpose and use cases adequately, but could add a note about the language parameter to be fully self-contained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (language parameter described in schema). The description does not mention the language parameter or add meaning beyond the schema, so baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'List all ICD-11 chapters (top-level categories)' with a specific verb and resource. It distinguishes from siblings like cid10_chapters and icd11_hierarchy by explicitly naming ICD-11 and listing use cases.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear use cases (overview, finding chapters, navigation) but does not explicitly mention when not to use or compare to alternatives like icd11_lookup or icd11_search.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
icd11_hierarchyARead-onlyIdempotentInspect
Navigate the ICD-11 hierarchy to find parent or child entities.
Use this tool to:
Find broader categories (parents) of a condition
Find specific subtypes (children) of a condition
Understand the classification structure
Direction 'parents' returns ancestor categories, 'children' returns subcategories.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | ICD-11 code to get hierarchy for | |
| direction | Yes | Direction: "parents" for ancestors, "children" for subtypes |
Output Schema
| Name | Required | Description |
|---|---|---|
| code | Yes | |
| entities | Yes | |
| direction | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false. The description adds that the tool returns parent/children entities but does not provide additional behavioral context beyond what annotations and schema cover. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short, well-structured with bullet points for use cases, and front-loaded with the main action. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple two-parameter tool, the presence of an output schema (not shown), and clear annotations, the description adequately covers the tool's purpose and usage. No gaps identified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds minimal meaning beyond the schema, only clarifying that 'parents' returns ancestors and 'children' returns subtypes, which is already described in the enum descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool navigates the ICD-11 hierarchy to find parent or child entities, using specific verbs and resource. It distinguishes itself from sibling tools like icd11_lookup or icd11_search by focusing on hierarchical relationships.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description lists concrete use cases (finding broader categories, specific subtypes, understanding structure) and explains the direction parameter. While it doesn't explicitly state when not to use it, the sibling context provides alternatives for other tasks.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
icd11_lookupARead-onlyIdempotentInspect
Get detailed information about a specific ICD-11 entity by code or URI.
Use this tool to:
Get the full definition of a disease
Retrieve coding notes and exclusions
Get the official title and synonyms
Provide either an ICD-11 code (e.g., "BA00") or a full foundation URI.
| Name | Required | Description | Default |
|---|---|---|---|
| uri | No | Full ICD-11 foundation URI | |
| code | No | ICD-11 code (e.g., "BA00", "1A00") | |
| language | No | Language code (default: en) | en |
Output Schema
| Name | Required | Description |
|---|---|---|
| uri | Yes | |
| code | Yes | |
| title | Yes | |
| block_id | Yes | |
| class_kind | Yes | |
| code_range | Yes | |
| definition | Yes | |
| exclusions | Yes | |
| inclusions | Yes | |
| browser_url | Yes | |
| coding_note | Yes | |
| index_terms | Yes | |
| long_definition | Yes | |
| diagnostic_criteria | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the description does not need to repeat those. The description adds useful behavioral context: it retrieves definitions, notes, exclusions, titles, and synonyms. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Very concise: two sentences with a bullet-like list for use cases. Every sentence adds information. No redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that an output schema exists, description need not explain return values. It covers purpose, parameters, and usage. Minor gap: schema shows zero required parameters, but description implies at least code or URI is needed, which could confuse an agent. Overall adequately complete for a lookup tool with rich annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for all parameters. The description adds value by explaining that either code or URI can be provided and includes example codes. This helps clarify usage beyond what the schema alone provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it gets detailed information about a specific ICD-11 entity by code or URI, listing specific use cases like definition, coding notes, exclusions, titles, and synonyms. It distinguishes from sibling tools that cover other terminologies (ATC, CID10, LOINC).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description explains when to use (to get detailed info on a specific entity) and how to provide input (code or URI). But it does not explicitly guide when not to use or mention alternatives among siblings (e.g., icd11_search for searching, icd11_hierarchy for tree navigation). Usage is implied but lacks exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
icd11_postcoordinationARead-onlyIdempotentInspect
Get postcoordination information for an ICD-11 code.
Use this tool to:
Find available axes for building composite codes
Check required vs optional postcoordination
Understand code extension possibilities
Postcoordination allows adding severity, laterality, anatomy, etc.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | ICD-11 code to get postcoordination info for |
Output Schema
| Name | Required | Description |
|---|---|---|
| axes | Yes | |
| code | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and no destructive action. The description adds context about postcoordination (severity, laterality, anatomy) but does not disclose additional behavioral traits beyond what annotations provide. This is adequate but not enhanced.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with four sentences, front-loaded with the main action. It uses bullet-style listing for use cases, making it easily scannable. No superfluous content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of postcoordination, the description adequately explains the concept and lists intended use cases. With an output schema present, the description does not need to detail return values. It is complete for an info-retrieval tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a single parameter 'code' described clearly. The description does not add extra meaning or examples for the parameter beyond what the schema provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool retrieves postcoordination information for an ICD-11 code. It lists specific use cases (axes, required vs optional, extension), making the purpose distinct from sibling tools that focus on general lookup or search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use the tool by listing three use cases: finding axes, checking required vs optional postcoordination, and understanding extension possibilities. It does not explicitly state when not to use it or mention alternatives, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
icd11_searchARead-onlyIdempotentInspect
Search for medical conditions, diseases, and health problems in ICD-11 (International Classification of Diseases, 11th Revision).
Use this tool to:
Find ICD-11 codes for diagnoses
Search for diseases by name or keyword
Look up conditions in multiple languages
Returns matching entities with codes, titles, and relevance scores.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search text (disease name, symptom, or keyword) | |
| language | No | Language code (default: en) | en |
| max_results | No | Maximum number of results (1-100). Default: 25 |
Output Schema
| Name | Required | Description |
|---|---|---|
| query | Yes | |
| entities | Yes | |
| total_count | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=true, covering safety and idempotency. The description adds return format (codes, titles, relevance scores) but no additional behavioral traits beyond what annotations imply. Bar is lowered by annotation completeness.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is 5 sentences, front-loaded with purpose, followed by explicit use cases and return value. No redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has an output schema (not shown but indicated) and annotations cover behavioral aspects. The description mentions return fields. For a search tool with straightforward parameters and no nested objects, this is complete. Minor omission: no mention of result limits or error states, but max_results parameter handles that.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description does not add new parameter semantics beyond the schema's own descriptions, which are already clear. The use cases imply the query parameter usage but don't add detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches for medical conditions in ICD-11, lists specific use cases (find codes, search by name, multi-language), and distinguishes from sibling tools like icd11_lookup (exact code) and icd11_chapters (hierarchy navigation).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly provides a bulleted list of when to use the tool (find codes, search by name/keyword, multi-language lookup). It does not explicitly mention when not to use it or name alternatives, but the context of sibling tools makes the guidance clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
loinc_answersARead-onlyIdempotentInspect
Get the list of valid answers for a LOINC questionnaire item.
Use this tool to:
Find valid response options for survey questions
Get answer codes for data entry validation
Look up standardized answer lists
Only applicable to LOINC codes that represent questions with defined answer sets.
| Name | Required | Description | Default |
|---|---|---|---|
| loinc_num | Yes | LOINC number (e.g., "2339-0") |
Output Schema
| Name | Required | Description |
|---|---|---|
| answers | Yes | |
| loinc_num | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint false. The description adds the condition of applicability (LOINC codes with defined answer sets) but does not disclose additional behavioral traits such as return format, pagination, or error handling. Given the comprehensive annotations, the description adds moderate value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise: five sentences including a bullet-like list. It avoids redundancy and is well-structured, front-loading the main action. Every sentence serves a purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter), existence of an output schema, and comprehensive annotations, the description covers all necessary context: what the tool does, when to use it, and its limitations. No gaps remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is one parameter (loinc_num) with 100% schema description coverage (provides format and example). The tool description does not add further semantics beyond what the schema already covers. Baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get the list of valid answers for a LOINC questionnaire item.' It specifies the action (get), resource (answers for LOINC item), and includes example use cases (find valid response options, get answer codes, look up standardized answer lists), distinguishing it from sibling tools like loinc_details or loinc_search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage guidance: 'Use this tool to...' followed by three scenarios, and notes applicability condition: 'Only applicable to LOINC codes that represent questions with defined answer sets.' It does not mention alternatives or when not to use, but the condition effectively excludes non-answer-set LOINC codes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
loinc_detailsARead-onlyIdempotentInspect
Get detailed information about a specific LOINC code.
Use this tool to:
Get the full name and description of a LOINC code
Find the component, property, timing, and system
Check the scale type and method
Provide a LOINC number in format "XXXXX-X" (e.g., "2339-0" for Glucose).
| Name | Required | Description | Default |
|---|---|---|---|
| loinc_num | Yes | LOINC number (e.g., "2339-0") |
Output Schema
| Name | Required | Description |
|---|---|---|
| class | Yes | |
| status | Yes | |
| system | Yes | |
| property | Yes | |
| component | Yes | |
| loinc_num | Yes | |
| scale_type | Yes | |
| short_name | Yes | |
| method_type | Yes | |
| time_aspect | Yes | |
| long_common_name | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, etc. The description adds value by specifying exactly which fields (component, property, timing, system, scale type, method) are returned. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with clear purpose, followed by bullet-pointed use cases, and ends with a format example. Every sentence is concise and relevant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter, read-only tool with output schema, the description is adequate. It lists return fields but does not mention error handling or missing code behavior. Overall sufficient for common use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%; the description reiterates the format and provides an example, adding marginal context beyond what the schema already provides (pattern, description).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the tool retrieves detailed information about a specific LOINC code, listing specific attributes (full name, description, component, property, timing, system, scale type, method). This distinguishes it from siblings like loinc_search (searching) and loinc_panels (panel structure).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly lists use cases with bullet points. Does not mention when not to use or alternatives, but the context implies it is for when you have a specific code. Lacks exclusions or comparison to siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
loinc_panelsARead-onlyIdempotentInspect
Get the structure of a LOINC panel or form.
Use this tool to:
See all tests included in a panel (e.g., CBC, metabolic panel)
Get the structure of assessment forms
Find related observations grouped together
Returns the list of LOINC codes that make up the panel.
| Name | Required | Description | Default |
|---|---|---|---|
| loinc_num | Yes | LOINC number (e.g., "2339-0") |
Output Schema
| Name | Required | Description |
|---|---|---|
| panel | Yes | |
| loinc_num | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, which align with the description. The description adds value by specifying the return type (list of LOINC codes), going beyond annotation details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, with three short paragraphs front-loaded with the core action. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has an output schema (not shown but present), the description adequately covers semantics. It mentions the return is a list of LOINC codes, sufficient for understanding the tool's output.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage with a clear description for loinc_num. The tool description provides an example format (e.g., '2339-0') but adds minimal extra meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves the structure of a LOINC panel or form, listing included tests. It distinguishes from sibling tools like loinc_search and loinc_details by focusing on panel composition.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit use cases: seeing all tests in a panel, getting assessment form structure, and finding related observations. While it doesn't explicitly state when not to use it, the context of sibling tools implies alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
loinc_searchARead-onlyIdempotentInspect
Search for laboratory tests, clinical observations, and measurements in LOINC (Logical Observation Identifiers Names and Codes).
Use this tool to:
Find LOINC codes for lab tests (e.g., "glucose", "hemoglobin")
Search for clinical measurements and vital signs
Look up diagnostic observations
Returns matching LOINC codes with names, components, and properties.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search term (test name, keyword, or partial LOINC code) | |
| max_results | No | Maximum number of results (1-100). Default: 25 |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | |
| query | Yes | |
| shown_count | Yes | |
| total_count | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, destructiveHint. The description adds behavioral context by stating it 'returns matching LOINC codes with names, components, and properties', which is beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise: two short paragraphs. It front-loads the purpose, lists use cases, and mentions return information. Every sentence adds value with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the rich annotations, 100% schema coverage, and presence of an output schema, the description is complete. It provides purpose, usage guidance, and return content without missing critical information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameters are well-documented in the schema. The description adds example search terms and the return content type, but does not significantly enhance parameter understanding beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches LOINC for laboratory tests, clinical observations, and measurements. It provides specific examples like 'glucose' and 'hemoglobin', and the context of sibling tools shows it is distinguished by focusing on LOINC terminology.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description lists clear use cases: finding LOINC codes, clinical measurements, diagnostic observations. It does not explicitly state when not to use it or alternatives, but the sibling tool names and the specific LOINC focus provide implicit guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
map_icd10_to_icd11ARead-onlyIdempotentInspect
Authoritative ICD-10 → ICD-11 mapping using WHO transition tables (release 2025-01, bundled with the server).
Returns the primary 1:1 ICD-11 category for the ICD-10 code plus any alternative ICD-11 candidates that WHO documents (some ICD-10 concepts split into multiple ICD-11 entities). For each mapping, includes the ICD-11 code, title, chapter, and the Foundation URI / Linearization URI for navigating to the full entity definition.
Use this for clinical coding, billing migration, retrospective analysis, and any workflow that needs authoritative mapping rather than text-search candidates. Coverage: 11,243 ICD-10 categories (excludes chapters and blocks like "A00-A09" which aren't used in clinical coding).
Provide a code like "E11" (Type 2 diabetes), "I21" (Acute MI), or "A07.8" (4 alternatives in WHO's table). Both dotted ("A07.8") and undotted ("A078") forms are accepted.
Returns "no mapping" when the code isn't in the WHO category-level table — that's the honest answer rather than a fuzzy search fallback.
| Name | Required | Description | Default |
|---|---|---|---|
| icd10_code | Yes | ICD-10 code to query in the ICD-11 search index (e.g., E11, I21.0, J18.9) |
Output Schema
| Name | Required | Description |
|---|---|---|
| found | Yes | Whether the code is in the WHO ICD-10 → ICD-11 transition table. |
| icd10 | Yes | Source ICD-10 entry from the WHO table. Null when found=false. |
| query | Yes | The ICD-10 code as submitted (raw, before normalization). |
| source | Yes | |
| primary | Yes | Primary 1:1 ICD-11 mapping. Null when found=false. |
| alternatives | Yes | Additional ICD-11 candidates WHO documents for this ICD-10 code. Empty when the primary is the only documented mapping (or when found=false). 1,461 of the 11,243 indexed codes have non-empty alternatives. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds context beyond annotations: WHO table release, coverage of 11,243 categories, acceptance of dotted/undotted forms, and honest 'no mapping' response. No contradictions. It doesn't detail error handling for invalid inputs, but annotations already cover safety and idempotence.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is moderately long but well-structured: purpose first, then details, usage tips, and edge cases. Every sentence adds value. Minor tightening possible, but overall efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema (mentioned but not shown), the description adequately explains mapping details, coverage, and missing code handling. It provides enough context for an agent to use the tool correctly without needing additional information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With only one parameter and 100% schema coverage, the description adds value by providing examples and noting that dotted and undotted codes are both accepted. This clarifies acceptable input formats beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: mapping ICD-10 to ICD-11 using authoritative WHO tables. It specifies the output includes primary and alternative mappings with codes, titles, and URIs. It distinguishes from siblings like find_equivalent and icd11_search by emphasizing authoritative mapping over text search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit use cases (clinical coding, billing migration, etc.) and gives input examples. It implies when not to use (e.g., for fuzzy search, use other tools), but lacks a direct 'do not use for' statement. The guidance is clear and helpful.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
map_loinc_to_snomedARead-onlyIdempotentInspect
This tool looks up a LOINC code in NLM Clinical Tables and returns guidance on where to obtain a LOINC → SNOMED CT mapping. It does not perform the mapping.
Direct LOINC → SNOMED CT mappings are not freely available via API. UMLS Metathesaurus contains the relationships but requires an individual UMLS Terminology Services license; the LOINC SNOMED CT Expression Association is published by Regenstrief Institute as part of the LOINC release and requires authenticated download from loinc.org under the LOINC license.
For programmatic LOINC → SNOMED mapping, use UMLS or the LOINC Expression Association files. For interactive lookup, use the SNOMED CT browser available to your organization or the Regenstrief RELMA desktop tool.
Provide a LOINC code like "2339-0" (Glucose) or "718-7" (Hemoglobin).
| Name | Required | Description | Default |
|---|---|---|---|
| loinc_code | Yes | LOINC code (e.g., 2339-0 for Glucose) |
Output Schema
| Name | Required | Description |
|---|---|---|
| status | Yes | Always "guidance-only" — direct LOINC → SNOMED CT mappings require licensed sources (UMLS Metathesaurus or LOINC SNOMED CT Expression Association). This tool returns pointers, not the mapping itself. |
| guidance | Yes | Short human-readable explanation of why this tool returns guidance instead of a mapping. |
| loinc_code | Yes | The LOINC code as submitted. |
| loinc_details | Yes | NLM Clinical Tables details for the LOINC code (component, system, property, etc.). Null when the code was not found upstream. |
| mapping_sources | Yes | Structured list of authoritative LOINC → SNOMED CT mapping sources (UMLS Metathesaurus, LOINC SNOMED CT Expression Association, Regenstrief RELMA). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint true and destructiveHint false. The description adds significant behavioral context: it does not perform mapping, returns only guidance, and explains licensing limitations (UMLS license, LOINC license). No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured: first sentence states core purpose, then limitations, then alternatives, then example. Every sentence adds value, but it is somewhat lengthy. Front-loading is effective.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool that deals with legal restrictions and indirect mapping, the description is highly complete: it explains what the tool does, what it doesn't, licensing context, alternative sources, and an input example. Output schema exists to cover return value details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with the loinc_code parameter described. The description adds value by providing example codes ('2339-0', '718-7') and clarifying the format. This exceeds the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the tool's purpose: it looks up a LOINC code and returns guidance on where to obtain a LOINC → SNOMED CT mapping, and importantly clarifies that it does not perform the mapping itself. This distinguishes it from mapping tools like map_icd10_to_icd11.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear when-to-use and when-not-to-use guidance, including explicit alternatives such as UMLS or the LOINC Expression Association files for programmatic mapping and the SNOMED CT browser or RELMA for interactive lookup. This helps the agent choose correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mesh_descriptorARead-onlyIdempotentInspect
Get detailed information about a MeSH descriptor by ID.
Use this tool to:
Get the full definition (scope note) of a MeSH term
View tree numbers showing hierarchy location
See related concepts and synonyms
Provide a MeSH Descriptor ID like "D015242" (Ofloxacin).
| Name | Required | Description | Default |
|---|---|---|---|
| mesh_id | Yes | MeSH Descriptor ID (e.g., D015242, D003920) | |
| language | No | Language code (default: en) | en |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| uri | Yes | |
| label | Yes | |
| concepts | Yes | |
| qualifiers | Yes | |
| scope_note | Yes | |
| tree_numbers | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, openWorld, and non-destructive hints. The description adds behavioral content by specifying the type of returned information (definition, hierarchy, synonyms), which goes beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (4 lines), uses bullet points for clarity, includes an example, and is front-loaded with the primary purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema (not shown), the description sufficiently covers the tool's capabilities and usage without needing to detail the return format.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds an example ID ('D015242') but no additional semantic detail for the language parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get detailed information about a MeSH descriptor by ID' and lists specific outputs (scope note, tree numbers, related concepts, synonyms). This distinguishes it from siblings like mesh_search, mesh_tree, and mesh_qualifiers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit use cases ('Use this tool to:'), but does not explicitly state when not to use it or name alternative tools. However, the sibling context implies the appropriate scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mesh_qualifiersARead-onlyIdempotentInspect
Get allowed qualifiers (subheadings) for a MeSH descriptor.
Use this tool to:
Find which qualifiers can be combined with a descriptor
Build precise MeSH search queries
Understand aspects that can be specified
Qualifiers refine descriptors (e.g., "Diabetes Mellitus/drug therapy").
| Name | Required | Description | Default |
|---|---|---|---|
| mesh_id | Yes | MeSH Descriptor ID (e.g., D015242, D003920) |
Output Schema
| Name | Required | Description |
|---|---|---|
| mesh_id | Yes | |
| qualifiers | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, destructiveHint. Description adds context about returning qualifiers and offers an example, enhancing transparency without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is concise with a single-sentence summary, bulleted use cases, and an example. No redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema and clear annotations, the description is sufficient. It explains what the tool does and how to use it. Could add note about qualifiers being subheadings, but not necessary.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers the single parameter with description and pattern. Description does not add new semantic details beyond the schema; it reiterates the purpose of mesh_id in context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get allowed qualifiers') and the resource ('MeSH descriptor'). It distinguishes from sibling tools like mesh_descriptor (descriptor details) and mesh_search (search).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit use cases ('Find which qualifiers can be combined', 'Build precise queries'). Does not mention when not to use or alternatives, but context from siblings implies alternatives exist.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mesh_searchARead-onlyIdempotentInspect
Search for MeSH (Medical Subject Headings) descriptors.
Use this tool to:
Find MeSH terms for indexing medical literature
Look up subject headings for PubMed searches
Find controlled vocabulary terms
Returns matching descriptors with MeSH IDs and labels.
| Name | Required | Description | Default |
|---|---|---|---|
| match | No | Match type: exact, contains, or startswith. Default: contains | contains |
| query | Yes | Search term (e.g., "diabetes", "heart failure") | |
| language | No | Language code (default: en) | en |
| max_results | No | Maximum number of results (1-100). Default: 25 |
Output Schema
| Name | Required | Description |
|---|---|---|
| match | Yes | |
| query | Yes | |
| descriptors | Yes | |
| total_count | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, etc. The description adds that it returns matching descriptors with MeSH IDs and labels, which is consistent. No contradictions, but does not elaborate on pagination or response structure beyond that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (4 sentences) and front-loaded with purpose and usage. Every sentence adds value without unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool is a simple search, with rich annotations and full schema coverage, the description covers the essential aspects: purpose, usage, and output summary. Output schema exists, so return values need not be detailed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, all parameters have descriptions in the schema. The description does not add additional meaning beyond the schema; it sets context but not per-parameter details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches for MeSH descriptors, listing specific use cases like indexing medical literature and PubMed searches. It distinguishes from sibling tools focused on other terminologies (ATC, ICD, LOINC, etc.).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly lists three use cases ('Use this tool to:'), providing clear context for when to use it. It does not mention alternatives or when not to use, but the sibling tool names imply alternatives for other vocabularies.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mesh_treeARead-onlyIdempotentInspect
Get the tree hierarchy location(s) for a MeSH descriptor.
Use this tool to:
See where a term fits in the MeSH hierarchy
Understand broader/narrower relationships
Find related terms in the same branch
MeSH tree numbers show the hierarchical path (e.g., C14.280.647 for Myocardial Infarction).
| Name | Required | Description | Default |
|---|---|---|---|
| mesh_id | Yes | MeSH Descriptor ID (e.g., D015242, D003920) |
Output Schema
| Name | Required | Description |
|---|---|---|
| mesh_id | Yes | |
| tree_numbers | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint. The description adds meaningful context about the hierarchical nature and example path, without contradicting annotations. It explains what the tool does beyond safety traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short (3 sentences and 3 bullet points), well-structured, and front-loaded with the main action. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple tool (one parameter, clear annotations, output schema present), the description covers the necessary context: what the hierarchy is, how tree numbers work, and typical use cases. No gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a well-described parameter (mesh_id). The description does not add further details about the parameter itself, so a baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves the tree hierarchy location(s) for a MeSH descriptor, with examples and specific use cases (e.g., C14.280.647). This distinguishes it from siblings like mesh_descriptor or mesh_search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly lists three use-case bullet points ('Use this tool to: ...'), providing clear context for when to use it. It does not explicitly exclude other tools, but the purpose is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rxnorm_classesARead-onlyIdempotentInspect
Get therapeutic and pharmacologic classes for a drug.
Use this tool to:
Find the drug class (e.g., "Beta-blockers", "NSAIDs")
Identify therapeutic categories
Look up mechanism of action classifications
Returns class IDs, names, and classification sources.
| Name | Required | Description | Default |
|---|---|---|---|
| rxcui | Yes | RxCUI of the drug |
Output Schema
| Name | Required | Description |
|---|---|---|
| rxcui | Yes | |
| classes | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint as safe. The description adds the return structure ('class IDs, names, and classification sources'), which is useful but does not delve into behavioral nuances like handling multiple classes or classification sources. A 3 is appropriate given the annotations cover the safety profile.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise: a one-line purpose, three bullet points for uses, and a one-line return summary. It is front-loaded with the main action and uses minimal yet informative language.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity (one required parameter, read-only) and the presence of both annotations and an output schema, the description covers the essential aspects: purpose, usage scenarios, and return structure. It lacks details about potential multiple classes or error conditions, but overall it is sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the parameter description 'RxCUI of the drug' is clear. The tool description does not add additional semantic context beyond what the schema provides, so a baseline score of 3 is correct.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'Get therapeutic and pharmacologic classes for a drug' and lists specific use cases with examples like 'Beta-blockers' and 'NSAIDs'. This clearly specifies the verb and resource, and while not directly comparing to siblings, the purpose is distinct from other rxnorm tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'Use this tool to' section provides clear context for when to use it, listing three specific scenarios. However, it does not explicitly exclude alternatives or mention when not to use it, which would improve guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rxnorm_conceptARead-onlyIdempotentInspect
Get detailed information about a specific RxNorm concept by RxCUI.
Use this tool to:
Get the full name and synonyms for a drug
Check the concept status (active, remapped, etc.)
View related concepts (ingredients, brands, forms)
Provide an RxCUI (RxNorm Concept Unique Identifier) like "161".
| Name | Required | Description | Default |
|---|---|---|---|
| rxcui | Yes | RxNorm Concept Unique Identifier | |
| include_related | No | Include related concepts (ingredients, brands, dose forms) |
Output Schema
| Name | Required | Description |
|---|---|---|
| tty | Yes | |
| name | Yes | |
| rxcui | Yes | |
| status | Yes | |
| synonym | Yes | |
| umlscui | Yes | |
| language | Yes | |
| suppress | Yes | |
| remapped_to | Yes | |
| related_groups | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, and nondestructive behavior. The description adds context about returned information (names, status, related concepts) which aligns with annotations. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Concise bullet list and example. Every sentence adds value; no wasted words. Front-loaded with main action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema and good annotations, the description covers the tool's core purpose and typical outputs. Lacks mention of error handling for invalid RxCUI, but this is often acceptable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, baseline is 3. Description provides an example ('161') but no additional meaning beyond schema for rxcui or include_related. The use case mentions related concepts but doesn't directly explain the include_related parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it retrieves detailed info for a specific RxNorm concept. It implicitly differentiates from sibling tools like rxnorm_search and rxnorm_ingredients by focusing on a single RxCUI, but does not explicitly contrast them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description lists use cases (get name, status, related concepts) but does not specify when to avoid this tool or explicitly name alternatives, leaving the guidance implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rxnorm_ingredientsARead-onlyIdempotentInspect
Get active ingredients for a drug by RxCUI.
Use this tool to:
Find the active ingredients in a medication
Check for single vs. multiple ingredient products
Identify the generic components of brand drugs
Returns ingredient RxCUIs and names.
| Name | Required | Description | Default |
|---|---|---|---|
| rxcui | Yes | RxCUI of the drug |
Output Schema
| Name | Required | Description |
|---|---|---|
| rxcui | Yes | |
| ingredients | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint, destructiveHint=false. The description adds that it returns ingredient RxCUIs and names, which is consistent. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short, front-loaded with the main action, and uses bulleted examples. Every sentence is meaningful and no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists and the description explains the return format (ingredient RxCUIs and names), the description is complete enough for an agent to understand what the tool returns.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter rxcui has schema coverage 100% with pattern and description. The description does not add extra detail about the parameter beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool gets active ingredients for a drug by RxCUI, and lists specific use cases (find active ingredients, check single vs. multiple, identify generic components). It distinguishes from siblings like rxnorm_concept and rxnorm_search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit use cases for when to use this tool, but does not explicitly state when not to use it (e.g., for full concept details use rxnorm_concept). The examples are clear and helpful.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rxnorm_ndcARead-onlyIdempotentInspect
Map between RxNorm concepts and National Drug Codes (NDC).
Use this tool to:
Get all NDC codes for a drug (by RxCUI)
Find the RxCUI for an NDC code
Cross-reference between coding systems
Provide either an RxCUI to get NDCs, or an NDC to get the RxCUI.
| Name | Required | Description | Default |
|---|---|---|---|
| ndc | No | NDC code to look up RxCUI (alternative to rxcui) | |
| rxcui | No | RxCUI to get NDC codes for |
Output Schema
| Name | Required | Description |
|---|---|---|
| ndc | Yes | |
| ndcs | Yes | |
| rxcui | Yes | |
| query_mode | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, etc. Description adds minimal behavioral context (mapping direction, parameter mutual exclusivity) but does not significantly extend beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Five tightly focused sentences with front-loaded purpose, bulleted use cases, and precise usage note. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequately describes purpose and usage for a simple mapping tool. Could briefly mention output format (list or single value) but output schema likely covers that.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for both parameters. Description restates the mutual exclusivity but adds no deeper semantics beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states bidirectional mapping between RxNorm concepts and NDC codes, with specific use cases (get NDCs for RxCUI, find RxCUI for NDC). Distinguishes from siblings like rxnorm_concept or rxnorm_search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use: for cross-referencing coding systems by providing either rxcui or ndc. Clear context but no mention of when not to use or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rxnorm_searchARead-onlyIdempotentInspect
Search for drugs in RxNorm (Normalized names for clinical drugs).
Use this tool to:
Find drug concepts by brand or generic name
Look up medications for prescribing
Search for drug formulations
Returns matching drugs with RxCUI identifiers, names, and term types.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Drug name to search (brand or generic) | |
| max_results | No | Maximum number of results (1-100). Default: 25 |
Output Schema
| Name | Required | Description |
|---|---|---|
| drugs | Yes | |
| query | Yes | |
| total_count | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only and idempotent behavior. The description adds that results include RxCUI, names, and term types, but does not mention any additional behavioral details like pagination, rate limits, or search matching algorithm, which would be helpful.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (three sentences plus bullet points), front-loaded with the main purpose, and organized into clear sections for use cases and return information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (2 parameters, output schema present), the description covers the main use cases and return format. However, it could be more complete by noting search behavior (e.g., case-insensitivity, exact vs partial match) and referencing other RxNorm tools for follow-up actions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with clear descriptions for both 'query' and 'max_results' parameters. The description adds no extra semantics beyond what the schema provides, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches for drugs in RxNorm by brand or generic name, listing specific use cases and return fields (RxCUI, names, term types). This differentiates it from sibling RxNorm tools like rxnorm_concept or rxnorm_ingredients.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a list of when to use the tool (find drug concepts, look up medications, search formulations) but does not explain when not to use it or suggest alternative tools for specific needs, such as getting detailed concept information via rxnorm_concept.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
terminology_diffARead-onlyIdempotentInspect
Report what diff data is available between two versions of a terminology.
For most terminologies this is guidance only — the server doesn't ship historical snapshots, so the tool points at the publisher's official changelog and explains the cadence. bundled_versions lists the version(s) this server actually has on hand.
For ICD-10 vs ICD-11 specifically, the tool surfaces a real cross-revision summary from the bundled WHO transition tables (the ICD-10 → ICD-11 case is a structural diff between two WHO revisions). Use terminology: "icd10" with no to_version to get the cross-revision summary: total mapped ICD-10 categories, how many are 1:1 vs split into multiple ICD-11 codes, and the average number of alternatives when split.
Inputs:
terminology(required): which terminology to report on.from_version(optional): the version you have data from. If omitted, the tool reports against the currently-bundled version.to_version(optional): the version you want to compare to. If omitted, the tool reports against the publisher's latest known release.
This tool is intentionally a metadata + guidance layer, not a diff engine — for terminologies that change frequently (SNOMED, LOINC, RxNorm, MeSH), the publisher's official changelog is the authoritative source.
| Name | Required | Description | Default |
|---|---|---|---|
| to_version | No | Version you want to compare to. Optional. | |
| terminology | Yes | Which terminology to report on. | |
| from_version | No | Version you have data from. Optional; behavior depends on terminology. |
Output Schema
| Name | Required | Description |
|---|---|---|
| message | Yes | |
| to_version | Yes | |
| terminology | Yes | |
| from_version | Yes | |
| changelog_url | Yes | |
| diff_available | Yes | True when this server has the data to compute a real diff for the requested terminology. False = guidance-only response. |
| bundled_versions | Yes | |
| cross_revision_summary | Yes | Populated only for terminology="icd10" today — the bundled WHO ICD-10 → ICD-11 transition tables let us surface a real structural diff between the two WHO revisions. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint false. The description adds behavioral context: the tool is 'guidance only,' it doesn't ship historical snapshots for most terminologies, and it points to the publisher's changelog for authoritative diffs. It also mentions 'bundled_versions' to indicate available versions on the server.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections and examples, but it is somewhat verbose. Every sentence adds value, but it could be slightly more concise without losing clarity. Front-loading the main purpose is effective.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of supporting multiple terminologies with different behaviors, the description is thorough. It covers edge cases, explains the tool's limitations, and provides specific usage guidance. The presence of an output schema supports completeness by not requiring the description to explain return values.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description adds meaning beyond the schema: it explains the behavior when from_version or to_version is omitted, and provides special instructions for the terminology parameter when dealing with ICD-10 vs ICD-11. This enriches the agent's understanding of how each parameter affects the output.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Report what diff data is available between two versions of a terminology,' specifying the verb (report) and the resource (terminology diff). It distinguishes itself from the sibling tool 'map_icd10_to_icd11' by explaining that for ICD-10 vs ICD-11 it provides a cross-revision summary, while for others it's guidance only.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use the tool (for checking available diff data) and when not to use it (for actual diffs of frequently changing terminologies, the publisher's changelog is authoritative). It provides usage examples, such as using terminology='icd10' with no to_version for cross-revision summary, and explains the limitations as a metadata layer.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
terminology_versionsARead-onlyIdempotentInspect
List the current version, release date, publisher, source URL, and update cadence of every terminology this server queries against.
Useful for pipeline maintainers who need to:
Confirm which release of ICD-11 / SNOMED / LOINC / RxNorm / MeSH / ATC the server is querying before a batch run.
Verify the bundled CID-10 (frozen at V2008) and ICD-10 → ICD-11 transition tables (currently 2025-01) match expectations.
Cite the data version in research artifacts.
Pass terminology to filter to a single entry; otherwise the full set of 8 is returned. The ICD-10 → ICD-11 version reads live from the bundled dataset; everything else is metadata maintained alongside the project release.
| Name | Required | Description | Default |
|---|---|---|---|
| terminology | No | Filter to a single terminology. Omit to return all 8. |
Output Schema
| Name | Required | Description |
|---|---|---|
| total | Yes | |
| generated | Yes | Date this snapshot was generated. |
| terminologies | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnly, openWorld, and idempotent. Description adds transparency by noting that the ICD-10→ICD-11 version is read live while others are static metadata, and describes the output content (8 terminologies). No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a clear first sentence, followed by bullet-point use cases. It is not overly long for the information provided; every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple input (one optional param) and presence of an output schema, the description fully covers what the tool does, its two data sources, and its utility. No gaps remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the parameter is described both there and in the description. The description restates the filtering behavior and the number of entries (8), which adds minimal value over the schema's 'Omit to return all 8'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists version metadata for all terminologies, using specific fields (version, release date, publisher, etc.). It distinguishes from siblings—none of which seem to list versions—and is not a tautology.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description provides three explicit use cases for pipeline maintainers and explains when to use the optional 'terminology' parameter. It lacks explicit when-not-to-use guidance, but no sibling tool serves the same purpose, so it's still clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
validate_codesARead-onlyIdempotentInspect
Validate a mixed batch of medical codes against their source terminologies. Useful for retrospective analysis of legacy databases — flag codes that no longer exist, surface ICD-10 → ICD-11 replacements, and grade activity status where the terminology exposes it.
For each input { code, terminology }, returns:
valid: whether the code exists in the source terminology.
active: whether the code is currently active. Null when the source doesn't expose an explicit active/inactive distinction at category level (CID-10, ATC, ICD-11, RxNorm, MeSH all return null today; SNOMED and LOINC return a real boolean).
title: the official label/name when available.
replaced_by: a successor code, populated today only for ICD-10 codes that have a primary ICD-11 mapping in the bundled WHO transition tables.
source: human-readable provenance of the validation (terminology + release/version).
error: non-null only when validation couldn't be performed (network error, SNOMED feature flag off, etc.).
valid: false+error: nullmeans "code not found";valid: false+error: setmeans "couldn't validate".
Terminology is required per code — auto-detection isn't supported because category codes like "A00" exist in both ICD-10 and CID-10. Accepted values: icd11, icd10, snomed, loinc, rxnorm, mesh, atc, cid10.
Hard cap of 50 codes per call; codes are validated in parallel through their respective clients, so total wall time scales with the slowest upstream + its rate limit (worst case ~10 s for a full batch hitting ICD-11).
| Name | Required | Description | Default |
|---|---|---|---|
| codes | Yes | List of code+terminology pairs to validate. Hard cap of 50 per call to keep total latency under ~10 s given upstream rate limits. |
Output Schema
| Name | Required | Description |
|---|---|---|
| total | Yes | Number of codes submitted. |
| results | Yes | |
| error_count | Yes | How many couldn't be validated due to upstream/network errors. |
| valid_count | Yes | How many were confirmed valid. |
| invalid_count | Yes | How many were not found. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=true, idempotentHint=true, destructiveHint=false. Description adds context: parallel validation, wall time scaling, worst-case latency (~10s), and semantics of null active status per terminology. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured, front-loaded with purpose, then details on return values, then constraints. Every sentence adds value, no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given complexity (multi-terminology validation), description fully covers input schema, return fields, error handling, performance, and constraints. Complete without needing output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, but description adds value by explaining why terminology is required, the cap of 50, and accepted values. Reiterates and clarifies beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool validates a mixed batch of medical codes against their source terminologies. It specifies input (code and terminology pairs) and output fields, distinguishing it from sibling lookup/search tools by focusing on batch validation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly mentions use case (retrospective analysis of legacy databases), explains why auto-detection isn't supported (category codes in multiple terminologies), specifies hard cap of 50 codes, and lists accepted terminology values. Provides clear guidance on when to use this tool versus alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Your Connectors
Sign in to create a connector for this server.