Medical Terminologies MCP
NPM · MEDICAL-TERMINOLOGIES-MCP · 2 COMPONENTS · SCANNED SEP 20
Diagnoses, drugs & lab codes: ICD-11, SNOMED, LOINC, RxNorm, MeSH, ATC, CID-10. 33 tools, MIT.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →
Supply Chain Security98
- No malware found by supply-chain analysis.Pass
- No known CVEs affecting this package version or its production dependencies.Pass
- No install/post-install scripts declared.Pass
- 6 of 19 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency100
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Cryptographically verified build provenance (signed, bound to SidneyBissoli/medical-terminologies-mcp). View diagnostics → Pass
- Clear OSI-approved license (MIT).Pass
- Actively maintained (last published 3 days ago).Pass
- Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability82
- 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 6681 tokens (~180/item across 37 items; 33 tools + 4 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management90
- Stability observed for 27 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
- Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- We read all 33 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
- An AI judge read all 35 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a current MCP spec version (2026-07-28).Pass
How do I install the Medical Terminologies MCP server?
Medical Terminologies MCP runs locally as an npm package, launched with npx -y medical-terminologies-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
npm · medical-terminologies-mcp
claude mcp add sidneybissoli-medical-terminologies-mcp -- npx -y medical-terminologies-mcp
{
"mcpServers": {
"sidneybissoli-medical-terminologies-mcp": {
"command": "npx",
"args": [
"-y",
"medical-terminologies-mcp"
]
}
}
} {
"servers": {
"sidneybissoli-medical-terminologies-mcp": {
"command": "npx",
"args": [
"-y",
"medical-terminologies-mcp"
]
}
}
} codex mcp add sidneybissoli-medical-terminologies-mcp -- npx -y medical-terminologies-mcp
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"sidneybissoli-medical-terminologies-mcp": {
"type": "local",
"command": [
"npx",
"-y",
"medical-terminologies-mcp"
],
"enabled": true
}
}
} openclaw mcp add sidneybissoli-medical-terminologies-mcp --command npx --arg -y --arg medical-terminologies-mcp
mcp_servers:
sidneybissoli-medical-terminologies-mcp:
command: "npx"
args: ["-y", "medical-terminologies-mcp"] {
"McpServers": {
"sidneybissoli-medical-terminologies-mcp": {
"Transport": "stdio",
"Command": "npx",
"Arguments": [
"-y",
"medical-terminologies-mcp"
]
}
}
} assistant mcp add sidneybissoli-medical-terminologies-mcp -t stdio -c npx -a -y medical-terminologies-mcp
{
"mcpServers": {
"sidneybissoli-medical-terminologies-mcp": {
"command": "npx",
"args": [
"-y",
"medical-terminologies-mcp"
]
}
}
} Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 20 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 87 to 90. That category is still filling its 30-day observation window: 26 days of observed history at the previous scan, 27 at this one. The score rises as the window fills, whether or not the server changes.
- 18 Sept 26 +11
- Known CVEs: unverified → pass ▲ security
- Dependency health: unverified → 0.88 ▲ functional
- 17 Sept 26 −13
- Known CVEs: pass → unverified ▼ security
- Stability: pass → unverified ▼ security
- Tool safety: pass → unverified ▼ security
- Tool coverage: 100 → unverified ▼ functional
- Schema quality: 100 → unverified ▼ functional
- Capabilities: pass → unverified ▼ functional
- Dependency health: 0.86 → unverified ▼ functional
- Stability: pass → 0.80 functional
- Package version: 1.12.0 → 1.12.1 functional
- 16 Sept 26 0
- Stability: 0.97 → unverified ▼ security
- Tool safety: pass → unverified ▼ security
- Stability: 0.97 → pass security
- Capabilities: pass → unverified ▼ functional
- Tool coverage: 100 → unverified ▼ functional
- Schema quality: 100 → unverified ▼ functional
- Package version: 1.11.0 → 1.12.0 functional
- 15 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 93 to 97. That category is still filling its 30-day observation window: 28 days of observed history at the previous scan, 29 at this one. The score rises as the window fills, whether or not the server changes.
- 14 Sept 26 +15
- Malware scan: unverified → pass ▲ security
- 13 Sept 26 −14
- Malware scan: pass → unverified ▼ security
- Package version: 1.10.0 → 1.11.0 functional
- 11 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 80 to 83. That category is still filling its 30-day observation window: 24 days of observed history at the previous scan, 25 at this one. The score rises as the window fills, whether or not the server changes.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 20 Sept 2026 · Analysed npm/medical-terminologies-mcp@1.12.1
Provenance Verified
A signed build attestation was found and verified, binding this exact artifact to the source repository it claims to come from.
| Result | Verified |
|---|---|
| Ecosystem | npm |
| Reason | Verified |
| Discovered via | Registry attestation endpoint |
| Source repo | SidneyBissoli/medical-terminologies-mcp |
| Certificate issuer | https://token.actions.githubusercontent.com |
| Certificate SAN | https://github.com/SidneyBissoli/medical-terminologies-mcp/.github/workflows/publish.yml@refs/tags/v1.12.1 |
| Rekor log index | 2869278690 |
| Predicate type | https://slsa.dev/provenance/v1 |
| Subject digest | sha512:404c5f6f59cef822e59247c5ad2728b6bf12a29282e9b0dd8f23ee66d0eab1f316c620ab63cc3742aa91e0f8cec002aab7aeeca75efe55de5146effe5 |
Background: How many MCP packages publish verified provenance →
Dependencies 19 packages
| Packages resolved | 19 |
|---|---|
| Stale | 5 |
| No linked repository | 1 |
| Tree resolution | Complete |
Background: SBOMs and build attestations, explained →
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
atc_classify ATC Classification for a Drug ~157
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 | Type | Req | Description |
|---|---|---|---|
| drug_name | string | yes | Drug name to classify (brand or generic, e.g., "metformin") |
| Name | Type | Req | Description |
|---|---|---|---|
| attribution | array | yes | Canonical source URLs of this response (attribution list) |
| drug_name | string | yes | – |
| matches | array | yes | – |
| provenance | object | yes | Provenance block (contract v1.0): source, URL, data vintage, extraction instant, citation, license |
No examples provided.
atc_lookup ATC Code Details ~225
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 | Type | Req | Description |
|---|---|---|---|
| atc_code | string | 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. |
| Name | Type | Req | Description |
|---|---|---|---|
| atc_code | string | yes | – |
| attribution | array | yes | Canonical source URLs of this response (attribution list) |
| details | – | yes | – |
| found | boolean | yes | – |
| provenance | object | yes | Provenance block (contract v1.0): source, URL, data vintage, extraction instant, citation, license |
No examples provided.
atc_members ATC Class Members ~166
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 | Type | Req | Description |
|---|---|---|---|
| atc_code | string | yes | ATC code at any level. Higher levels (1-4) return all member substances; level 5 returns the single substance. |
| Name | Type | Req | Description |
|---|---|---|---|
| atc_code | string | yes | – |
| attribution | array | yes | Canonical source URLs of this response (attribution list) |
| members | array | yes | – |
| provenance | object | yes | Provenance block (contract v1.0): source, URL, data vintage, extraction instant, citation, license |
No examples provided.
cid10_chapter Capítulo da CID-10 ~118
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 | Type | Req | Description |
|---|---|---|---|
| num | integer | yes | Chapter number (1-22). CID-10 V2008 has 22 chapters. |
| Name | Type | Req | Description |
|---|---|---|---|
| attribution | array | yes | Canonical source URLs of this response (attribution list) |
| chapter | – | yes | – |
| found | boolean | yes | – |
| groups | array | yes | – |
| num | integer | yes | – |
| provenance | object | yes | Provenance block (contract v1.0): source, URL, data vintage, extraction instant, citation, license |
No examples provided.
cid10_chapters Capítulos da CID-10 ~131
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.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| attribution | array | yes | Canonical source URLs of this response (attribution list) |
| chapters | array | yes | – |
| provenance | object | yes | Provenance block (contract v1.0): source, URL, data vintage, extraction instant, citation, license |
No examples provided.
cid10_lookup Consultar Código CID-10 ~149
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 | Type | Req | Description |
|---|---|---|---|
| code | string | yes | CID-10 code (e.g., "A00", "A00.1", "A001", "I21"). Dotted and undotted forms both accepted. |
| Name | Type | Req | Description |
|---|---|---|---|
| attribution | array | yes | Canonical source URLs of this response (attribution list) |
| code | string | yes | – |
| found | boolean | yes | – |
| hit | – | yes | – |
| provenance | object | yes | Provenance block (contract v1.0): source, URL, data vintage, extraction instant, citation, license |
No examples provided.
cid10_search Buscar na CID-10 ~342
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". Every word must match (AND), and everyday Portuguese is resolved to the CID-10's own wording (câncer→neoplasia maligna, AVC→acidente vascular cerebral, pressão alta→hipertensão, suicídio→lesão autoprovocada, aids→HIV); when that happens the response says so in vocabulary_notes. 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 | Type | Req | Description |
|---|---|---|---|
| level | string | – | Restrict search to 3-char categories, 4-char subcategories, or both. Default: all |
| max_results | integer | – | Maximum number of results (1-100). Default: 25 |
| query | string | yes | Search terms in Portuguese, AND between words (e.g., "diabetes", "infarto", "câncer de mama"); accents ignored, everyday words resolved to CID-10 wording |
| Name | Type | Req | Description |
|---|---|---|---|
| attribution | array | yes | Canonical source URLs of this response (attribution list) |
| hits | array | yes | – |
| level | string | yes | – |
| provenance | object | yes | Provenance block (contract v1.0): source, URL, data vintage, extraction instant, citation, license |
| query | string | yes | – |
| shown_count | integer | yes | – |
| total_count | integer | yes | – |
| vocabulary_notes | array | – | – |
No examples provided.
fetch Deep Research Document ~206
Returns the full document for an id obtained from `search`, as { id, title, text, url, metadata }: `text` is the readable content (Markdown) and `url` the canonical public page to cite. Companion of `search` in the OpenAI Deep Research contract, over the medical terminologies (CID-10 categories and chapters, ICD-11, LOINC, RxNorm, MeSH, terminology version records) catalog. Only ids returned by `search` are valid; an unknown id returns an error. The terminology tools (`icd11_*`, `cid10_*`, `loinc_*`, `rxnorm_*`, `mesh_*`, `atc_*`, `map_*`, `find_equivalent`, `validate_codes`) remain the tools for data queries. Behavior: read-only and idempotent — a live GET against the public source when the document needs it.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | Identifier of a document returned by `search` |
| Name | Type | Req | Description |
|---|---|---|---|
| attribution | array | yes | Canonical source URLs of this response (attribution list) |
| id | string | yes | Unique identifier of the document on this server; what `fetch` takes |
| metadata | object | – | Additional key/value pairs about the document (kind, source, period…) |
| provenance | object | yes | Provenance block (contract v1.0): source, URL, data vintage, extraction instant, citation, license |
| text | string | yes | Full readable content of the document (Markdown) |
| title | string | yes | Human-readable title of the document |
| url | string | yes | Canonical public URL of the document — ChatGPT's citation depends on it |
No examples provided.
find_equivalent Find Equivalents Across Terminologies ~434
Ranked unified 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. `limit` caps candidates per terminology (default 5, max 10). Every candidate carries `match_score` (lexical similarity to the search term, 0-1) and `rank` (global position across all searched terminologies) — both computed by this server, since upstreams don't expose comparable relevance scores. Candidates from different terminologies whose titles are lexically identical are clustered in `groups` — a strong same-concept signal (absence of a group is NOT evidence of non-equivalence). Searches upstreams in English. For official pt-BR content, use the dedicated tools: `icd11_search`/`mesh_search` accept `language: "pt"`, and `cid10_search` is natively Portuguese.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Maximum candidates returned PER terminology (1-10, default 5). This is a cap, not a page: the live fan-out has no stable cursor across five upstreams, so raise the limit instead of paging. |
| source_terminology | string | – | 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 (sour… |
| target_terminologies | array | – | Limit the search to these terminologies. If omitted, all five are searched. |
| term | string | yes | Medical term to search (e.g., "diabetes", "aspirin") |
| Name | Type | Req | Description |
|---|---|---|---|
| attribution | array | yes | Canonical source URLs of this response (attribution list) |
| groups | array | yes | – |
| provenance | array | yes | One provenance block per upstream source that contributed to this response (contract v1.0; licenses are never merged) |
| ranking | object | yes | – |
| results | object | yes | – |
| searched_terminologies | array | yes | – |
| source_terminology | – | yes | – |
| term | string | yes | – |
No examples provided.
icd11_chapters List ICD-11 Chapters ~111
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 | Type | Req | Description |
|---|---|---|---|
| language | string | – | Language code (default: en). Returns the source's OFFICIAL translation when it exists (e.g. 'pt' for official Portuguese); content is never machine-translated. |
| Name | Type | Req | Description |
|---|---|---|---|
| attribution | array | yes | Canonical source URLs of this response (attribution list) |
| chapters | array | yes | – |
| provenance | object | yes | Provenance block (contract v1.0): source, URL, data vintage, extraction instant, citation, license |
No examples provided.
icd11_hierarchy Browse ICD-11 Hierarchy ~297
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 Name the entity by `code` (a leaf code like "5A11", or a block range like "5A10-5A2Y" — blocks come back from 'parents' with an empty code and a code_range) or by `uri` (the URI any previous answer returned). Direction 'parents' returns ancestor categories, 'children' returns subcategories. ICD-10 codes (like "E11") are not ICD-11 codes: convert them first with map_icd10_to_icd11.
| Name | Type | Req | Description |
|---|---|---|---|
| code | string | – | ICD-11 code (e.g., "BA00", "5A11") or block range (e.g., "5A10-5A2Y") |
| direction | string | yes | Direction: "parents" for ancestors, "children" for subtypes |
| language | string | – | Language code (default: en). Returns the source's OFFICIAL translation when it exists (e.g. 'pt' for official Portuguese); content is never machine-translated. |
| uri | string | – | Entity URI as returned by icd11_lookup, icd11_search or a previous icd11_hierarchy call |
| Name | Type | Req | Description |
|---|---|---|---|
| attribution | array | yes | Canonical source URLs of this response (attribution list) |
| code | string | yes | – |
| direction | string | yes | – |
| entities | array | yes | – |
| provenance | object | yes | Provenance block (contract v1.0): source, URL, data vintage, extraction instant, citation, license |
No examples provided.
icd11_lookup ICD-11 Entity Details ~175
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. Set `language` for WHO's official translations (e.g. `language: "pt"` for official Portuguese).
| Name | Type | Req | Description |
|---|---|---|---|
| code | string | – | ICD-11 code (e.g., "BA00", "1A00") |
| language | string | – | Language code (default: en). Returns the source's OFFICIAL translation when it exists (e.g. 'pt' for official Portuguese); content is never machine-translated. |
| uri | string | – | Full ICD-11 foundation URI |
| Name | Type | Req | Description |
|---|---|---|---|
| attribution | array | yes | Canonical source URLs of this response (attribution list) |
| block_id | string|null | yes | – |
| browser_url | string|null | yes | – |
| class_kind | string|null | yes | – |
| code | string|null | yes | – |
| code_range | string|null | yes | – |
| coding_note | string|null | yes | – |
| definition | string|null | yes | – |
| diagnostic_criteria | string|null | yes | – |
| exclusions | array | yes | – |
| inclusions | array | yes | – |
| index_terms | array | yes | – |
| long_definition | string|null | yes | – |
| provenance | object | yes | Provenance block (contract v1.0): source, URL, data vintage, extraction instant, citation, license |
| title | string | yes | – |
| uri | string | yes | – |
No examples provided.
icd11_postcoordination ICD-11 Postcoordination Options ~85
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 | Type | Req | Description |
|---|---|---|---|
| code | string | yes | ICD-11 code to get postcoordination info for |
| Name | Type | Req | Description |
|---|---|---|---|
| attribution | array | yes | Canonical source URLs of this response (attribution list) |
| axes | array | yes | – |
| code | string | yes | – |
| provenance | object | yes | Provenance block (contract v1.0): source, URL, data vintage, extraction instant, citation, license |
No examples provided.
icd11_search Search ICD-11 ~198
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 Set `language` for WHO's official translations — e.g. `language: "pt"` searches and returns the official Portuguese (pt-BR) ICD-11 labels. Never machine-translated. Returns matching entities with codes, titles, and relevance scores.
| Name | Type | Req | Description |
|---|---|---|---|
| language | string | – | Language code (default: en). Returns the source's OFFICIAL translation when it exists (e.g. 'pt' for official Portuguese); content is never machine-translated. |
| max_results | integer | – | Maximum number of results (1-100). Default: 25 |
| query | string | yes | Search text (disease name, symptom, or keyword) |
| Name | Type | Req | Description |
|---|---|---|---|
| attribution | array | yes | Canonical source URLs of this response (attribution list) |
| entities | array | yes | – |
| provenance | object | yes | Provenance block (contract v1.0): source, URL, data vintage, extraction instant, citation, license |
| query | string | yes | – |
| total_count | integer | yes | – |
No examples provided.
loinc_answers LOINC Answer Lists ~90
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 | Type | Req | Description |
|---|---|---|---|
| loinc_num | string | yes | LOINC number (e.g., "2339-0") |
| Name | Type | Req | Description |
|---|---|---|---|
| answers | array | yes | – |
| attribution | array | yes | Canonical source URLs of this response (attribution list) |
| loinc_num | string | yes | – |
| provenance | object | yes | Provenance block (contract v1.0): source, URL, data vintage, extraction instant, citation, license |
No examples provided.
loinc_details LOINC Code Details ~107
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 | Type | Req | Description |
|---|---|---|---|
| loinc_num | string | yes | LOINC number (e.g., "2339-0") |
| Name | Type | Req | Description |
|---|---|---|---|
| attribution | array | yes | Canonical source URLs of this response (attribution list) |
| class | string | yes | – |
| component | string | yes | – |
| external_copyright_notice | string|null | yes | – |
| loinc_num | string | yes | – |
| long_common_name | string | yes | – |
| method_type | string | yes | – |
| property | string | yes | – |
| provenance | object | yes | Provenance block (contract v1.0): source, URL, data vintage, extraction instant, citation, license |
| scale_type | string | yes | – |
| short_name | string | yes | – |
| status | string | yes | – |
| system | string | yes | – |
| time_aspect | string | yes | – |
No examples provided.
loinc_panels LOINC Panel Structure ~95
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 | Type | Req | Description |
|---|---|---|---|
| loinc_num | string | yes | LOINC number (e.g., "2339-0") |
| Name | Type | Req | Description |
|---|---|---|---|
| attribution | array | yes | Canonical source URLs of this response (attribution list) |
| loinc_num | string | yes | – |
| panel | – | yes | – |
| provenance | object | yes | Provenance block (contract v1.0): source, URL, data vintage, extraction instant, citation, license |
No examples provided.
loinc_search Search LOINC ~129
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 | Type | Req | Description |
|---|---|---|---|
| max_results | integer | – | Maximum number of results (1-100). Default: 25 |
| query | string | yes | Search term (test name, keyword, or partial LOINC code) |
| Name | Type | Req | Description |
|---|---|---|---|
| attribution | array | yes | Canonical source URLs of this response (attribution list) |
| items | array | yes | – |
| provenance | object | yes | Provenance block (contract v1.0): source, URL, data vintage, extraction instant, citation, license |
| query | string | yes | – |
| shown_count | integer | yes | – |
| total_count | integer | yes | – |
No examples provided.
map_icd10_to_icd11 Map ICD-10 to ICD-11 ~291
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 | Type | Req | Description |
|---|---|---|---|
| icd10_code | string | yes | ICD-10 code to query in the ICD-11 search index (e.g., E11, I21.0, J18.9) |
| Name | Type | Req | Description |
|---|---|---|---|
| alternatives | array | 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 alternat… |
| attribution | array | yes | Canonical source URLs of this response (attribution list) |
| found | boolean | 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. |
| primary | – | yes | Primary 1:1 ICD-11 mapping. Null when found=false. |
| provenance | object | yes | Provenance block (contract v1.0): source, URL, data vintage, extraction instant, citation, license |
| query | string | yes | The ICD-10 code as submitted (raw, before normalization). |
| source | object | yes | – |
No examples provided.
map_loinc_to_snomed Map LOINC to SNOMED CT (Guidance) ~230
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 | Type | Req | Description |
|---|---|---|---|
| loinc_code | string | yes | LOINC code (e.g., 2339-0 for Glucose) |
| Name | Type | Req | Description |
|---|---|---|---|
| attribution | array | yes | Canonical source URLs of this response (attribution list) |
| guidance | string | yes | Short human-readable explanation of why this tool returns guidance instead of a mapping. |
| loinc_code | string | 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 | array | yes | Structured list of authoritative LOINC → SNOMED CT mapping sources (UMLS Metathesaurus, LOINC SNOMED CT Expression Association, Regenstrief RELMA). |
| provenance | object | yes | Provenance block (contract v1.0): source, URL, data vintage, extraction instant, citation, license |
| status | string | 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. |
No examples provided.
mesh_descriptor MeSH Descriptor Details ~159
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). Set `language` to request NLM's official translations where they exist (e.g. `language: "pt"`).
| Name | Type | Req | Description |
|---|---|---|---|
| language | string | – | Language code (default: en). Returns the source's OFFICIAL translation when it exists (e.g. 'pt' for official Portuguese); content is never machine-translated. |
| mesh_id | string | yes | MeSH Descriptor ID (e.g., D015242, D003920) |
| Name | Type | Req | Description |
|---|---|---|---|
| attribution | array | yes | Canonical source URLs of this response (attribution list) |
| concepts | array | yes | – |
| id | string | yes | – |
| label | string | yes | – |
| provenance | object | yes | Provenance block (contract v1.0): source, URL, data vintage, extraction instant, citation, license |
| qualifiers | array | yes | – |
| scope_note | string | yes | – |
| tree_numbers | array | yes | – |
| uri | string | yes | – |
No examples provided.
mesh_qualifiers MeSH Allowable Qualifiers ~96
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 | Type | Req | Description |
|---|---|---|---|
| mesh_id | string | yes | MeSH Descriptor ID (e.g., D015242, D003920) |
| Name | Type | Req | Description |
|---|---|---|---|
| attribution | array | yes | Canonical source URLs of this response (attribution list) |
| mesh_id | string | yes | – |
| provenance | object | yes | Provenance block (contract v1.0): source, URL, data vintage, extraction instant, citation, license |
| qualifiers | array | yes | – |
No examples provided.
mesh_search Search MeSH ~199
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 Set `language` to request NLM's official translations where they exist (e.g. `language: "pt"` for Portuguese labels); content is never machine-translated. Returns matching descriptors with MeSH IDs and labels.
| Name | Type | Req | Description |
|---|---|---|---|
| language | string | – | Language code (default: en). Returns the source's OFFICIAL translation when it exists (e.g. 'pt' for official Portuguese); content is never machine-translated. |
| match | string | – | Match type: exact, contains, or startswith. Default: contains |
| max_results | integer | – | Maximum number of results (1-100). Default: 25 |
| query | string | yes | Search term (e.g., "diabetes", "heart failure") |
| Name | Type | Req | Description |
|---|---|---|---|
| attribution | array | yes | Canonical source URLs of this response (attribution list) |
| descriptors | array | yes | – |
| match | string | yes | – |
| provenance | object | yes | Provenance block (contract v1.0): source, URL, data vintage, extraction instant, citation, license |
| query | string | yes | – |
| total_count | integer | yes | – |
No examples provided.
mesh_tree MeSH Tree Locations ~104
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 | Type | Req | Description |
|---|---|---|---|
| mesh_id | string | yes | MeSH Descriptor ID (e.g., D015242, D003920) |
| Name | Type | Req | Description |
|---|---|---|---|
| attribution | array | yes | Canonical source URLs of this response (attribution list) |
| mesh_id | string | yes | – |
| provenance | object | yes | Provenance block (contract v1.0): source, URL, data vintage, extraction instant, citation, license |
| tree_numbers | array | yes | – |
No examples provided.
rxnorm_classes RxNorm Drug Classes ~80
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 | Type | Req | Description |
|---|---|---|---|
| rxcui | string | yes | RxCUI of the drug |
| Name | Type | Req | Description |
|---|---|---|---|
| attribution | array | yes | Canonical source URLs of this response (attribution list) |
| classes | array | yes | – |
| provenance | object | yes | Provenance block (contract v1.0): source, URL, data vintage, extraction instant, citation, license |
| rxcui | string | yes | – |
No examples provided.
rxnorm_concept RxNorm Concept Details ~112
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 | Type | Req | Description |
|---|---|---|---|
| include_related | boolean | – | Include related concepts (ingredients, brands, dose forms) |
| rxcui | string | yes | RxNorm Concept Unique Identifier |
| Name | Type | Req | Description |
|---|---|---|---|
| attribution | array | yes | Canonical source URLs of this response (attribution list) |
| language | string | yes | – |
| name | string | yes | – |
| provenance | object | yes | Provenance block (contract v1.0): source, URL, data vintage, extraction instant, citation, license |
| related_groups | – | yes | – |
| remapped_to | array | yes | – |
| rxcui | string | yes | – |
| status | string | yes | – |
| suppress | string | yes | – |
| synonym | string | yes | – |
| tty | string | yes | – |
| umlscui | string | yes | – |
No examples provided.
rxnorm_ingredients RxNorm Drug Ingredients ~77
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 | Type | Req | Description |
|---|---|---|---|
| rxcui | string | yes | RxCUI of the drug |
| Name | Type | Req | Description |
|---|---|---|---|
| attribution | array | yes | Canonical source URLs of this response (attribution list) |
| ingredients | array | yes | – |
| provenance | object | yes | Provenance block (contract v1.0): source, URL, data vintage, extraction instant, citation, license |
| rxcui | string | yes | – |
No examples provided.
rxnorm_ndc RxNorm / NDC Mapping ~126
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 | Type | Req | Description |
|---|---|---|---|
| ndc | string | – | NDC code to look up RxCUI (alternative to rxcui) |
| rxcui | string | – | RxCUI to get NDC codes for |
| Name | Type | Req | Description |
|---|---|---|---|
| attribution | array | yes | Canonical source URLs of this response (attribution list) |
| ndc | string|null | yes | – |
| ndcs | array | yes | – |
| provenance | object | yes | Provenance block (contract v1.0): source, URL, data vintage, extraction instant, citation, license |
| query_mode | string | yes | – |
| rxcui | string|null | yes | – |
No examples provided.
rxnorm_search Search RxNorm Drugs ~101
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 | Type | Req | Description |
|---|---|---|---|
| max_results | integer | – | Maximum number of results (1-100). Default: 25 |
| query | string | yes | Drug name to search (brand or generic) |
| Name | Type | Req | Description |
|---|---|---|---|
| attribution | array | yes | Canonical source URLs of this response (attribution list) |
| drugs | array | yes | – |
| provenance | object | yes | Provenance block (contract v1.0): source, URL, data vintage, extraction instant, citation, license |
| query | string | yes | – |
| total_count | integer | yes | – |
No examples provided.
search Deep Research Search ~257
Searches the medical terminologies (CID-10 categories and chapters, ICD-11, LOINC, RxNorm, MeSH, terminology version records) catalog and returns up to 10 matching documents as { id, title, url }, ordered by relevance (an empty list means nothing matched). This tool exists for the OpenAI Deep Research contract: ChatGPT deep research, company knowledge and research workflows over the Responses API require exactly the tools `search` and `fetch`. Pass one of the returned ids to `fetch` to read the document. For direct questions and for data (values, series, rankings) prefer the terminology tools (`icd11_*`, `cid10_*`, `loinc_*`, `rxnorm_*`, `mesh_*`, `atc_*`, `map_*`, `find_equivalent`, `validate_codes`), which return the actual data with provenance — this is a catalog index, not a data query. Query: natural language or keywords, Portuguese or English; accents and case are ignored. Behavior: read-only and idempotent — the catalog comes from the public source and is cached in memory.
| Name | Type | Req | Description |
|---|---|---|---|
| query | string | yes | Search terms, natural language or keywords (accents and case are ignored) |
| Name | Type | Req | Description |
|---|---|---|---|
| attribution | array | yes | Canonical source URLs of this response (attribution list) |
| provenance | array | yes | One provenance block per upstream source that contributed to this response (contract v1.0; licenses are never merged) |
| results | array | yes | Matching documents, in relevance order |
No examples provided.
terminology_diff Terminology Version Diff ~346
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 | Type | Req | Description |
|---|---|---|---|
| from_version | string | – | Version you have data from. Optional; behavior depends on terminology. |
| terminology | string | yes | Which terminology to report on. |
| to_version | string | – | Version you want to compare to. Optional. |
| Name | Type | Req | Description |
|---|---|---|---|
| attribution | array | yes | Canonical source URLs of this response (attribution list) |
| bundled_versions | array | yes | – |
| changelog_url | string|null | 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. |
| diff_available | boolean | yes | True when this server has the data to compute a real diff for the requested terminology. False = guidance-only response. |
| from_version | string|null | yes | – |
| message | string | yes | – |
| provenance | object | yes | Provenance block (contract v1.0): source, URL, data vintage, extraction instant, citation, license |
| terminology | string | yes | – |
| to_version | string|null | yes | – |
No examples provided.
terminology_versions Terminology Versions ~188
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 | Type | Req | Description |
|---|---|---|---|
| terminology | string | – | Filter to a single terminology. Omit to return all 8. |
| Name | Type | Req | Description |
|---|---|---|---|
| attribution | array | yes | Canonical source URLs of this response (attribution list) |
| generated | string | yes | Date this snapshot was generated. |
| provenance | object | yes | Provenance block (contract v1.0): source, URL, data vintage, extraction instant, citation, license |
| terminologies | array | yes | – |
| total | integer | yes | – |
No examples provided.
validate_codes Validate Medical Codes ~421
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: null` means "code not found"; `valid: false` + `error: set` means "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 | Type | Req | Description |
|---|---|---|---|
| codes | array | 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. |
| Name | Type | Req | Description |
|---|---|---|---|
| attribution | array | yes | Canonical source URLs of this response (attribution list) |
| error_count | integer | yes | How many couldn't be validated due to upstream/network errors. |
| invalid_count | integer | yes | How many were not found. |
| provenance | array | yes | One provenance block per upstream source that contributed to this response (contract v1.0; licenses are never merged) |
| results | array | yes | – |
| total | integer | yes | Number of codes submitted. |
| valid_count | integer | yes | How many were confirmed valid. |
No examples provided.
What is the Medical Terminologies MCP server?
Medical Terminologies MCP is listed in the public MCP registry as io.github.SidneyBissoli/medical-terminologies-mcp. Diagnoses, drugs & lab codes: ICD-11, SNOMED, LOINC, RxNorm, MeSH, ATC, CID-10. 33 tools, MIT. This page covers its npm package (medical-terminologies-mcp).
Is the Medical Terminologies MCP server safe to use?
Medical Terminologies MCP scores 95 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 20 September 2026. It declares no install or post-install scripts. Its build provenance is signed and verified. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the Medical Terminologies MCP server expose?
Medical Terminologies MCP exposes 33 tools: icd11_search, icd11_lookup, icd11_hierarchy, icd11_chapters, icd11_postcoordination, and 28 more. Their descriptions and schemas cost roughly 6,002 tokens of context every time the server is loaded.
Is the Medical Terminologies MCP server still maintained?
Medical Terminologies MCP is still listed as active in the MCP registry. We last reached this channel on 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.
What licence is the Medical Terminologies MCP server under?
Medical Terminologies MCP declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.