Medical Terminologies MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| LOG_LEVEL | No | pino log level (default: info). | |
| WHO_CLIENT_ID | No | WHO ICD-API client ID. Required only for the 5 ICD-11 tools; all other tools work without credentials. | |
| SNOMED_BASE_URL | No | Base URL of a self-hosted Snowstorm instance. | |
| SNOMED_LANGUAGE | No | Default Accept-Language for SNOMED requests. | |
| WHO_CLIENT_SECRET | No | WHO ICD-API client secret (pairs with WHO_CLIENT_ID). | |
| ENABLE_SNOMED_TOOLS | No | Set to 'true' to enable the 6 SNOMED tools. Requires SNOMED_BASE_URL. | |
| WHO_ICD11_RELEASE_ID | No | ICD-11 release ID (default: 2024-01). |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": true
} |
| resources | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| icd11_searchA | Search for medical conditions, diseases, and health problems in ICD-11 (International Classification of Diseases, 11th Revision). Use this tool to:
Set Returns matching entities with codes, titles, and relevance scores. |
| icd11_lookupA | Get detailed information about a specific ICD-11 entity by code or URI. Use this tool to:
Provide either an ICD-11 code (e.g., "BA00") or a full foundation URI. Set |
| icd11_hierarchyA | Navigate the ICD-11 hierarchy to find parent or child entities. Use this tool to:
Direction 'parents' returns ancestor categories, 'children' returns subcategories. |
| icd11_chaptersA | List all ICD-11 chapters (top-level categories). Use this tool to:
ICD-11 has 28 chapters covering all areas of medicine. |
| icd11_postcoordinationA | Get postcoordination information for an ICD-11 code. Use this tool to:
Postcoordination allows adding severity, laterality, anatomy, etc. |
| loinc_searchA | Search for laboratory tests, clinical observations, and measurements in LOINC (Logical Observation Identifiers Names and Codes). Use this tool to:
Returns matching LOINC codes with names, components, and properties. |
| loinc_detailsA | Get detailed information about a specific LOINC code. Use this tool to:
Provide a LOINC number in format "XXXXX-X" (e.g., "2339-0" for Glucose). |
| loinc_answersA | Get the list of valid answers for a LOINC questionnaire item. Use this tool to:
Only applicable to LOINC codes that represent questions with defined answer sets. |
| loinc_panelsA | Get the structure of a LOINC panel or form. Use this tool to:
Returns the list of LOINC codes that make up the panel. |
| rxnorm_searchA | Search for drugs in RxNorm (Normalized names for clinical drugs). Use this tool to:
Returns matching drugs with RxCUI identifiers, names, and term types. |
| rxnorm_conceptA | Get detailed information about a specific RxNorm concept by RxCUI. Use this tool to:
Provide an RxCUI (RxNorm Concept Unique Identifier) like "161". |
| rxnorm_ingredientsA | Get active ingredients for a drug by RxCUI. Use this tool to:
Returns ingredient RxCUIs and names. |
| rxnorm_classesA | Get therapeutic and pharmacologic classes for a drug. Use this tool to:
Returns class IDs, names, and classification sources. |
| rxnorm_ndcA | Map between RxNorm concepts and National Drug Codes (NDC). Use this tool to:
Provide either an RxCUI to get NDCs, or an NDC to get the RxCUI. |
| mesh_searchA | Search for MeSH (Medical Subject Headings) descriptors. Use this tool to:
Set Returns matching descriptors with MeSH IDs and labels. |
| mesh_descriptorA | Get detailed information about a MeSH descriptor by ID. Use this tool to:
Provide a MeSH Descriptor ID like "D015242" (Ofloxacin). Set |
| mesh_treeA | Get the tree hierarchy location(s) for a MeSH descriptor. Use this tool to:
MeSH tree numbers show the hierarchical path (e.g., C14.280.647 for Myocardial Infarction). |
| mesh_qualifiersA | Get allowed qualifiers (subheadings) for a MeSH descriptor. Use this tool to:
Qualifiers refine descriptors (e.g., "Diabetes Mellitus/drug therapy"). |
| map_icd10_to_icd11A | 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. |
| map_loinc_to_snomedA | 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). |
| validate_codesA | 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
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: 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). |
| find_equivalentA | Ranked unified search for equivalent terms across multiple medical terminologies. Use this tool to:
Searches across: ICD-11, SNOMED CT, LOINC, RxNorm, and MeSH. Set Every candidate carries Searches upstreams in English. For official pt-BR content, use the dedicated tools: |
| atc_classifyA | Look up the WHO ATC (Anatomical Therapeutic Chemical) classification(s) for a drug by name. Use this tool to:
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. |
| atc_lookupA | Look up an ATC code at level 1-4 to get its name and hierarchy level. Use this tool to:
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. |
| atc_membersA | List the drugs (substances) that belong to an ATC class. Use this tool to:
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. |
| cid10_searchA | Search the Brazilian CID-10 (Classificação Estatística Internacional de Doenças, 10ª Revisão) by Portuguese text. Use this tool to:
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. |
| cid10_lookupA | Look up a specific CID-10 code and return its Portuguese name. Use this tool to:
Accepts both dotted ("A00.1") and undotted ("A001") forms; returns the canonical display. |
| cid10_chaptersA | List the 22 chapters of CID-10 with their code ranges and Portuguese titles. Use this tool to:
Returns 22 entries — CID-10 V2008 has not been updated since 2008. |
| cid10_chapterA | 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:
Provide a chapter number (1-22). |
| terminology_versionsA | 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:
Pass |
| terminology_diffA | 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. 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 Inputs:
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. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| find-medical-code | Search a clinical condition, symptom, or medical term across all available terminologies (ICD-11, LOINC, RxNorm, MeSH, ATC, CID-10) in parallel and synthesize the matches with their codes and source terminology. |
| drug-info | Compile comprehensive information about a drug — normalized name, RxCUI, active ingredients, therapeutic classes, and WHO ATC classification — by composing RxNorm and ATC tool calls. |
| cid10-portuguese-lookup | Procura um termo médico em português no CID-10 brasileiro (DataSUS V2008), com contexto de capítulo e descrição clínica. Searches a Portuguese medical term in the Brazilian CID-10 with chapter context. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| Server info | Version, tool count, supported terminologies, and feature-flag state. Useful for LLMs to ground answers about server capabilities. |
| CID-10 chapters | List of the 22 CID-10 chapters (Brazilian Portuguese ICD-10, DataSUS V2008) with code ranges and Portuguese descriptions. Source: bundled CID-10 dataset. |
| Terminology licenses | Per-terminology license disclaimers and access requirements. Important for downstream redistribution decisions and for surfacing license constraints in LLM answers. |
| Usage stats (hosted endpoint) | Per-tool invocation counts and total successful dispatches recorded by the hosted Cloudflare Workers endpoint. Excludes local stdio installs (those have no shared counter by design). Useful for adoption signal — see top_tool to know which terminology is pulling the most demand. |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/SidneyBissoli/medical-terminologies-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server