Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

Medical Terminologies MCP

REMOTE · MEDICAL.SIDNEYBISSOLI.COM · 2 COMPONENTS

Diagnoses, drugs & lab codes: ICD-11, LOINC, RxNorm, MeSH, ATC, CID-10. 33 tools, MIT.

0 this week 85 Trust /100

Last scanned (17 hours ago)

Scores higher than 91% of remote servers

Reachable. Last reached 4 Nov 2026.

Category Health and Science

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →

Endpoint Security74
Transport & Reachability100
Schema Quality & AI Usability79
  • 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 7863 tokens (~212/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 Management97
  • Stability observed for 29 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
Changelog

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.

  • 4 Nov 26 −1
    • Stability: pass → 0.97 functional
  • 3 Nov 26 +1
    • Stability: fail → pass ▲ security
  • 28 Oct 26 0
    • Server version: 2.3.0 → 2.4.0 functional
  • 16 Oct 26 0
    • Server version: 2.2.0 → 2.3.0 functional
  • 10 Oct 26 0
    • Server version: 2.1.1 → 2.2.0 functional
  • 4 Oct 26 −1
    • Stability: pass → fail ▼ security
    • Tool “map_loinc_to_snomed” was removed ▼ security
    • The server rewrote its instructions, which are the text every model session reads security
    • Tool “validate_codes” rewrote its description, which is the text the model reads security
    • Tool “find_equivalent” rewrote its description, which is the text the model reads security
    • Tool “terminology_diff” rewrote its description, which is the text the model reads security
    • Tool “terminology_versions” rewrote its description, which is the text the model reads security
    • Server version: 1.18.2 → 2.0.0 functional
    • “terminology_versions” reworded the description of “terminology” cosmetic
  • 3 Oct 26 0
    • Tool “loinc_answers” rewrote its description, which is the text the model reads security
    • Tool “icd11_lookup” rewrote its description, which is the text the model reads security
    • Tool “icd11_postcoordination” rewrote its description, which is the text the model reads security
    • Tool “atc_classify” rewrote its description, which is the text the model reads security
    • Tool “cid10_chapter” rewrote its description, which is the text the model reads security
    • Tool “icd11_chapters” rewrote its description, which is the text the model reads security
    • Schema quality: 181 → 215 ▼ functional
    • Schema quality: 181 → 211 ▼ functional
    • Schema quality: 181 → 201 ▼ functional
    • Server version: 1.18.1 → 1.18.2 functional
    • Server version: 1.17.2 → 1.18.1 functional
    • Server version: 1.17.1 → 1.17.2 functional
    • New tool “harmonize_terms” functional
  • 2 Oct 26 0
    • Server version: 1.17.0 → 1.17.1 functional
    • Server version: 1.16.0 → 1.17.0 functional
Diagnostics

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 4 Nov 2026 · Probed https://medical.sidneybissoli.com/mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=sidneybissoli.com CN=WE1,O=Google Trust Services,C=US 16 Oct 2026 14 Jan 2027 ECDSA 256 ECDSA-SHA256 e77cdcadff5b77bd0ed90e75bcb3726d
SANs: sidneybissoli.com, medical.sidneybissoli.com, *.medical.sidneybissoli.com
CN=WE1,O=Google Trust Services,C=US (CA) CN=GTS Root R4,O=Google Trust Services LLC,C=US 13 Dec 2023 20 Feb 2029 ECDSA 256 ECDSA-SHA384 7ff31977972c224a76155d13b6d685e3
CN=GTS Root R4,O=Google Trust Services LLC,C=US (CA) CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE 15 Nov 2023 28 Jan 2028 ECDSA 384 SHA256-RSA 7fe530bf331343bedd821610493d8a1b

Background: What to check on a remote MCP endpoint →

DNSSEC insecure

Validation of medical.sidneybissoli.com. — Not signed

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
com. present 19718 13 Verified
sidneybissoli.com. absent Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation
Authentication No authorisation required

The endpoint answered without asking for a token. Anyone who knows the URL can reach it.

Result No authorisation required
HTTP status 200

Background: How OAuth 2.1 works in the 2026 MCP spec →

Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://medical.sidneybissoli.com/mcp Verified 200
http (plaintext) http://medical.sidneybissoli.com/mcp HTTPS enforced 301 https://medical.sidneybissoli.com/mcp
MCP tools · 33 exposed · ~7,235 tokens

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 →

Tool Tokens
atc_classify ~281

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. Input is a drug NAME (brand or generic, English/US naming as in RxNorm). A name RxNorm does not recognize, or a drug without an ATC mapping, returns an empty `matches` list with an explanatory note — not an error; try the generic name, or resolve the name first with rxnorm_search. Which ATC tool: start here when you have a drug name; use atc_lookup when you already have a class code (level 1-4, e.g. "A10BA") and want its name; use atc_members to list the drugs inside a class.

NameTypeReqDescription
drug_namestringyesDrug name to classify (brand or generic, e.g., "metformin")
NameTypeReqDescription
attributionarrayyesCanonical source URLs of this response (attribution list)
drug_namestringyesThe drug name as submitted.
matchesarrayyesATC classes NLM RxClass assigns to the drug, one entry per RxNorm concept and ATC class pair; empty when the drug is unknown or has no ATC mapping.
provenanceobjectyesProvenance block: source, URL, data vintage, extraction instant, origin diagnostics, citation, license

No examples provided.

atc_lookup ~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.

NameTypeReqDescription
atc_codestringyesATC 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.
NameTypeReqDescription
atc_codestringyesThe ATC code as submitted.
attributionarrayyesCanonical source URLs of this response (attribution list)
details–yesThe ATC class (code, name, level type); null when found=false.
foundbooleanyesWhether RxClass knows the code at level 1-4; false for unknown and for 7-character substance codes.
provenanceobjectyesProvenance block: source, URL, data vintage, extraction instant, origin diagnostics, citation, license

No examples provided.

atc_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.

NameTypeReqDescription
atc_codestringyesATC code at any level. Higher levels (1-4) return all member substances; level 5 returns the single substance.
NameTypeReqDescription
atc_codestringyesThe ATC code as submitted.
attributionarrayyesCanonical source URLs of this response (attribution list)
membersarrayyesRxNorm drug concepts in the ATC class (all member substances for levels 1-4); empty when the code is unknown or has no RxNorm-mapped members.
provenanceobjectyesProvenance block: source, URL, data vintage, extraction instant, origin diagnostics, citation, license

No examples provided.

cid10_chapter ~265

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 (code ranges with Portuguese titles) - Build hierarchical browsers - Find which group contains a code range Provide the chapter number `num` as an integer 1-22 (chapter I = 1, IX = 9). Numbers outside 1-22 are rejected with a validation error. Returns the chapter (title and code range) plus ALL its groups in one response — no pagination; the 22 chapters hold 275 groups in total. Answered locally from the bundled CID-10 V2008; no network call. Which CID-10 tool: use cid10_chapters first if you do not know the chapter number (it lists all 22 with code ranges); use cid10_lookup for one specific code and cid10_search to find codes by Portuguese text. For the international ICD-11, use icd11_chapters.

NameTypeReqDescription
numintegeryesChapter number (1-22). CID-10 V2008 has 22 chapters.
NameTypeReqDescription
attributionarrayyesCanonical source URLs of this response (attribution list)
chapter–yesThe chapter (number, code range, Portuguese title); null when found=false.
foundbooleanyesWhether the chapter exists in CID-10 V2008.
groupsarrayyesGroups (code-range blocks) of the chapter, each with its range and Portuguese title; empty when found=false.
numintegeryesThe chapter number as submitted.
provenanceobjectyesProvenance block: source, URL, data vintage, extraction instant, origin diagnostics, citation, license

No examples provided.

cid10_chapters ~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.

NameTypeReqDescription
attributionarrayyesCanonical source URLs of this response (attribution list)
chaptersarrayyesThe 22 chapters of CID-10 V2008, each with its number, code range and Portuguese title.
provenanceobjectyesProvenance block: source, URL, data vintage, extraction instant, origin diagnostics, citation, license

No examples provided.

cid10_lookup ~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.

NameTypeReqDescription
codestringyesCID-10 code (e.g., "A00", "A00.1", "A001", "I21"). Dotted and undotted forms both accepted.
NameTypeReqDescription
attributionarrayyesCanonical source URLs of this response (attribution list)
codestringyesThe CID-10 code as submitted.
foundbooleanyesWhether the code exists in CID-10 V2008.
hit–yesThe CID-10 entry (Portuguese title, chapter, group, restrictions); null when found=false.
provenanceobjectyesProvenance block: source, URL, data vintage, extraction instant, origin diagnostics, citation, license

No examples provided.

cid10_search ~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.

NameTypeReqDescription
levelstring–Restrict search to 3-char categories, 4-char subcategories, or both. Default: all
max_resultsinteger–Maximum number of results (1-100). Default: 25
querystringyesSearch terms in Portuguese, AND between words (e.g., "diabetes", "infarto", "câncer de mama"); accents ignored, everyday words resolved to CID-10 wording
NameTypeReqDescription
attributionarrayyesCanonical source URLs of this response (attribution list)
hitsarrayyesMatching CID-10 V2008 codes with their Portuguese titles, chapter and group.
levelstringyesCode level searched: 3-char categories, 4-char subcategories, or all.
provenanceobjectyesProvenance block: source, URL, data vintage, extraction instant, origin diagnostics, citation, license
querystringyesThe search terms as submitted.
shown_countintegeryesNumber of codes returned in hits (at most max_results).
total_countintegeryesNumber of CID-10 codes matching the query, before the max_results cap.
vocabulary_notesarray–Present only when a query word was translated to the CID-10's own wording (e.g. "câncer" → "neoplasia maligna"); says which.

No examples provided.

fetch ~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.

NameTypeReqDescription
idstringyesIdentifier of a document returned by `search`
NameTypeReqDescription
attributionarrayyesCanonical source URLs of this response (attribution list)
idstringyesUnique identifier of the document on this server; what `fetch` takes
metadataobject–Additional key/value pairs about the document (kind, source, period…)
provenanceobjectyesProvenance block: source, URL, data vintage, extraction instant, origin diagnostics, citation, license
textstringyesFull readable content of the document (Markdown)
titlestringyesHuman-readable title of the document
urlstringyesCanonical public URL of the document — ChatGPT's citation depends on it

No examples provided.

find_equivalent ~429

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, 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.

NameTypeReqDescription
limitinteger–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_terminologystring–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_terminologiesarray–Limit the search to these terminologies. If omitted, all five are searched.
termstringyesMedical term to search (e.g., "diabetes", "aspirin")
NameTypeReqDescription
attributionarrayyesCanonical source URLs of this response (attribution list)
groupsarrayyesCandidates from different terminologies whose normalized titles are identical, grouped as likely the same concept; best match_score first. Empty when nothing groups (not evidence of non-equivalence).
provenancearrayyesOne provenance block per upstream source that contributed to this response (licenses are never merged; each block carries the origin diagnostics of ITS source)
rankingobjectyesSelf-description of the ranking: match_score, rank and groups are computed by this server, not upstream relevance.
resultsobjectyesPer-terminology results, keyed by terminology. A key is absent when that terminology was not searched; found=false with empty items and error null means searched, no hits.
searched_terminologiesarrayyesTerminologies actually searched: the targets minus source_terminology. Empty when nothing was left to search.
source_terminology–yesTerminology excluded from the search; null when none was given.
termstringyesThe medical term as submitted.

No examples provided.

harmonize_terms ~594

Map a LIST of free-text clinical terms to standard codes in one call, with ranked candidates and a confidence label for each — the building block of a reviewable crosswalk. Use this tool to: - Harmonize a column of diagnoses, drugs or lab names from a dataset to ICD-11 / RxNorm (+ ATC) / LOINC - Triage which terms map cleanly (exact / strong) and which need a person (needs_review) - Build a crosswalk you can audit: every row keeps its candidates, scores and sources Give each term its `domain`: diagnosis → ICD-11; drug → RxNorm concepts (ingredients first) plus the ATC classes of the term; lab → LOINC. Up to 50 terms per call — a longer list is refused with a validation error: split it into batches of 50. Repeated term+domain pairs are looked up once. `max_candidates` keeps 1-5 per term (default 3). Every candidate carries `match_score` (lexical, 0-1, the find_equivalent formula) and `match_type`: exact = same words after normalization; strong = every term word is in the title (or the matched synonym) and score ≥ 0.85; needs_review = anything else. A one-word term is exact or needs_review, never strong ("Tylenol" vs "Tylenol PM" is a different product). Synonyms, abbreviations ("MI", "HbA1c") and misspellings land in needs_review or no_candidates — the label errs toward asking a person. Candidates sharing no word with the term are dropped, as are LOINC codes named "Deprecated". For diagnoses, a candidate is also scored against the synonyms WHO matched (e.g. "hypertension NOS" for Essential hypertension), reported in `matched_label`; postcoordinated clusters (codes with "/" or "&") are left out — build those with icd11_postcoordination. Lab names are ambiguous without specimen and property: "glucose" matches over a thousand LOINC codes, so write "glucose serum" or expect needs_review. One failed lookup does not fail the batch: that row comes back with status "error". Terms are searched in English and sent to the WHO and NLM APIs — de-identify the list first. For…

NameTypeReqDescription
max_candidatesinteger–Candidates kept per term, best first (1-5, default 3).
termsarrayyesTerms to harmonize, each with its domain. Up to 50 per call; repeated term+domain pairs are looked up once.
NameTypeReqDescription
attributionarrayyesCanonical source URLs of this response (attribution list)
countsobjectyesSubmitted terms tallied by outcome (best-candidate match_type, no candidates, or error); the five counts add up to total.
provenancearrayyesOne provenance block per upstream source that contributed to this response (licenses are never merged; each block carries the origin diagnostics of ITS source)
rankingobjectyesSelf-description of the ranking: match_score and match_type are computed by this server, not upstream relevance.
resultsarrayyesOne entry per submitted term, in request order.
totalintegeryesTerms submitted.
unique_lookupsintegeryesDistinct term+domain pairs actually looked up.

No examples provided.

icd11_chapters ~261

List all ICD-11 chapters (top-level categories) of the pinned WHO release. Use this tool to: - Get an overview of ICD-11 structure - Find which chapter covers a body system or condition type - Get chapter URIs to drill down with icd11_hierarchy (direction 'children') Returns 28 entries in one response, no pagination — chapters 01-26 plus the supplementary sections V (functioning) and X (extension codes) — each with number, code, title and URI. Each chapter is fetched separately from WHO; if one fetch fails, that entry keeps its URI and carries an `error` instead of a title, and the rest still come back. Set `language` for WHO's official translations (e.g. `language: "pt"`); the result is cached, so repeated calls are cheap. When NOT to use: to find a specific disease, use icd11_search; for the Brazilian CID-10 (ICD-10) chapters, use cid10_chapters.

NameTypeReqDescription
languagestring–Language code (default: en). Returns the source's OFFICIAL translation when it exists (e.g. 'pt' for official Portuguese); content is never machine-translated.
NameTypeReqDescription
attributionarrayyesCanonical source URLs of this response (attribution list)
chaptersarrayyesTop-level ICD-11 MMS chapters in WHO order; a chapter the WHO failed to return keeps its number and URI, with error set and the other fields null.
provenanceobjectyesProvenance block: source, URL, data vintage, extraction instant, origin diagnostics, citation, license

No examples provided.

icd11_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.

NameTypeReqDescription
codestring–ICD-11 code (e.g., "BA00", "5A11") or block range (e.g., "5A10-5A2Y")
directionstringyesDirection: "parents" for ancestors, "children" for subtypes
languagestring–Language code (default: en). Returns the source's OFFICIAL translation when it exists (e.g. 'pt' for official Portuguese); content is never machine-translated.
uristring–Entity URI as returned by icd11_lookup, icd11_search or a previous icd11_hierarchy call
NameTypeReqDescription
attributionarrayyesCanonical source URLs of this response (attribution list)
codestringyesThe code, block range or URI the walk started from, as submitted.
directionstringyesDirection walked: parents (ancestors) or children (subtypes).
entitiesarrayyesDirect parents or children of the entity; empty when it has none. Entries the WHO failed to return are left out.
provenanceobjectyesProvenance block: source, URL, data vintage, extraction instant, origin diagnostics, citation, license

No examples provided.

icd11_lookup ~303

Get detailed information about ONE ICD-11 entity you already have a code or URI for. Use this tool to: - Get the full definition of a disease - Retrieve coding notes, inclusions and exclusions - Get the official title and index terms (synonyms) Provide `code` (e.g., "BA00") or `uri` (any URI a previous answer returned) — at least one is required; calling with neither returns a validation error naming both. Set `language` for WHO's official translations (e.g. `language: "pt"` for official Portuguese). Returns a single entity (no pagination). A code WHO does not know comes back as a "not found" error, never an empty record. When NOT to use: to find a code from a disease name, use icd11_search first; to walk parents/children, use icd11_hierarchy; for an ICD-10 code (like "E11"), convert it with map_icd10_to_icd11 — ICD-10 codes are not ICD-11 codes.

NameTypeReqDescription
codestring–ICD-11 code (e.g., "BA00", "1A00")
languagestring–Language code (default: en). Returns the source's OFFICIAL translation when it exists (e.g. 'pt' for official Portuguese); content is never machine-translated.
uristring–Full ICD-11 foundation URI
NameTypeReqDescription
attributionarrayyesCanonical source URLs of this response (attribution list)
block_idstring|nullyesWHO block identifier for blocks; null otherwise.
browser_urlstring|nullyesLink to the entity in the WHO ICD-11 browser; null when the WHO returns none.
class_kindstring|nullyesWHO class kind (e.g. "chapter", "block", "category"); null when the WHO does not state it.
codestring|nullyesICD-11 MMS code (e.g. "BA00"); null for blocks and chapters, which have a code_range instead.
code_rangestring|nullyesCode range of a block or chapter (e.g. "BA00-BA0Z"); null for coded categories.
coding_notestring|nullyesOfficial coding note; null when the WHO publishes none.
definitionstring|nullyesOfficial short definition; null when the WHO publishes none.
diagnostic_criteriastring|nullyesOfficial diagnostic criteria text; null when the WHO publishes none.
exclusionsarrayyesExclusion entries (conditions coded elsewhere), each with its URI and label.
inclusionsarrayyesInclusion entries (synonyms and terms included under this entity), each with its URI and label.
index_termsarrayyesIndex terms that lead to this entity, each with its URI and label.
long_definitionstring|nullyesOfficial detailed description; null when the WHO publishes none.
provenanceobjectyesProvenance block: source, URL, data vintage, extraction instant, origin diagnostics, citation, license
titlestringyesOfficial title in the requested language ("Unknown" when the WHO returns none).
uristringyesWHO ICD-11 entity URI.

No examples provided.

icd11_postcoordination ~266

List the postcoordination axes WHO allows for one ICD-11 stem code (MMS linearization, pinned release). Postcoordination means attaching extra detail to a stem code — severity, laterality, anatomy, causing agent, etc. — to build a composite (cluster) code. Use this tool to: - See which axes a stem code accepts before building a composite code - Check which axes are REQUIRED vs optional - See whether an axis takes one or several values, and how many values it offers Provide an ICD-11 `code` (e.g., "BA00"). Returns one entry per axis with `axis_name`, `required`, `allow_multiple` and `value_count` — the count of allowed values, not the values themselves. A code with no postcoordination, or one WHO does not know, returns an empty `axes` list (not an error), so check the code with icd11_lookup if the list is unexpectedly empty. When NOT to use: this does not build or validate a composite code, and it does not list the allowed values; to get a code from a disease name, use icd11_search.

NameTypeReqDescription
codestringyesICD-11 code to get postcoordination info for
NameTypeReqDescription
attributionarrayyesCanonical source URLs of this response (attribution list)
axesarrayyesPostcoordination axes the WHO allows for this code; empty when it has none or the WHO has no postcoordination info for it.
codestringyesThe ICD-11 code as submitted.
provenanceobjectyesProvenance block: source, URL, data vintage, extraction instant, origin diagnostics, citation, license

No examples provided.

icd11_search ~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.

NameTypeReqDescription
languagestring–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_resultsinteger–Maximum number of results (1-100). Default: 25
querystringyesSearch text (disease name, symptom, or keyword)
NameTypeReqDescription
attributionarrayyesCanonical source URLs of this response (attribution list)
entitiesarrayyesMatching ICD-11 MMS entities in WHO relevance order, at most max_results.
provenanceobjectyesProvenance block: source, URL, data vintage, extraction instant, origin diagnostics, citation, license
querystringyesThe search text as submitted.
total_countintegeryesNumber of entities the WHO search returned, before the max_results cap.

No examples provided.

loinc_answers ~221

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 (LA…) for data entry validation - Get the item scores of scored instruments (e.g. PHQ-9: "Not at all" = 0 … "Nearly every day" = 3) Returns each answer with its LOINC answer code (LA…), text, display order and score (null when the list has none). A valid LOINC code without a defined answer list (e.g. a numeric lab such as 2339-0) returns an empty list; a code LOINC does not know returns a "not found" error. Only applicable to LOINC codes that represent questions with defined answer sets. For the questions of a whole questionnaire, use loinc_panels; to find a code by name, use loinc_search.

NameTypeReqDescription
loinc_numstringyesLOINC number (e.g., "2339-0")
NameTypeReqDescription
answersarrayyesAnswer list of the question in display order; empty when the code exists but has no answer list.
attributionarrayyesCanonical source URLs of this response (attribution list)
loinc_numstringyesThe LOINC number as submitted.
provenanceobjectyesProvenance block: source, URL, data vintage, extraction instant, origin diagnostics, citation, license

No examples provided.

loinc_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).

NameTypeReqDescription
loinc_numstringyesLOINC number (e.g., "2339-0")
NameTypeReqDescription
attributionarrayyesCanonical source URLs of this response (attribution list)
classstringyesLOINC class the term is grouped under (e.g. "CHEM").
componentstringyesLOINC axis 1, Component: what is measured or observed (e.g. "Glucose").
external_copyright_noticestring|nullyesThird-party copyright notice the term carries, served verbatim (LOINC License §10); null when it carries none.
loinc_numstringyesLOINC number (e.g. "2339-0").
long_common_namestringyesLOINC Long Common Name, the full human-readable name of the term.
method_typestringyesLOINC axis 6, Method; empty when the term specifies none.
propertystringyesLOINC axis 2, Property: the kind of quantity (e.g. "MCnc" = mass concentration).
provenanceobjectyesProvenance block: source, URL, data vintage, extraction instant, origin diagnostics, citation, license
scale_typestringyesLOINC axis 5, Scale: Qn (quantitative), Ord, Nom, Nar, etc.
short_namestringyesLOINC short name; empty when the source has none.
statusstringyesLOINC term status (e.g. "ACTIVE", "DEPRECATED"); empty when the source omits it.
systemstringyesLOINC axis 4, System: the specimen or thing observed (e.g. "Bld", "Ser/Plas").
time_aspectstringyesLOINC axis 3, Time: point in time or interval of the observation (e.g. "Pt", "24H").

No examples provided.

loinc_panels ~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.

NameTypeReqDescription
loinc_numstringyesLOINC number (e.g., "2339-0")
NameTypeReqDescription
attributionarrayyesCanonical source URLs of this response (attribution list)
loinc_numstringyesThe LOINC number as submitted.
panel–yesPanel/form definition with its member items; null when no panel structure is found for the code (not a panel, or no definition available).
provenanceobjectyesProvenance block: source, URL, data vintage, extraction instant, origin diagnostics, citation, license

No examples provided.

loinc_search ~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.

NameTypeReqDescription
max_resultsinteger–Maximum number of results (1-100). Default: 25
querystringyesSearch term (test name, keyword, or partial LOINC code)
NameTypeReqDescription
attributionarrayyesCanonical source URLs of this response (attribution list)
itemsarrayyesMatching LOINC terms in source relevance order.
provenanceobjectyesProvenance block: source, URL, data vintage, extraction instant, origin diagnostics, citation, license
querystringyesThe search term as submitted.
shown_countintegeryesNumber of terms returned in items (at most max_results).
total_countintegeryesTotal number of LOINC terms matching the query at the source, which may exceed the items returned.

No examples provided.

map_icd10_to_icd11 ~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.

NameTypeReqDescription
icd10_codestringyesICD-10 code to query in the ICD-11 search index (e.g., E11, I21.0, J18.9)
NameTypeReqDescription
alternativesarrayyesAdditional 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…
attributionarrayyesCanonical source URLs of this response (attribution list)
foundbooleanyesWhether the code is in the WHO ICD-10 → ICD-11 transition table.
icd10–yesSource ICD-10 entry from the WHO table. Null when found=false.
primary–yesPrimary 1:1 ICD-11 mapping. Null when found=false.
provenanceobjectyesProvenance block: source, URL, data vintage, extraction instant, origin diagnostics, citation, license
querystringyesThe ICD-10 code as submitted (raw, before normalization).
sourceobjectyesThe bundled WHO ICD-10 → ICD-11 transition table release this answer comes from.

No examples provided.

mesh_descriptor ~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"`).

NameTypeReqDescription
languagestring–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_idstringyesMeSH Descriptor ID (e.g., D015242, D003920)
NameTypeReqDescription
attributionarrayyesCanonical source URLs of this response (attribution list)
conceptsarrayyesThe preferred concept with its entry terms (synonyms); non-preferred concepts are not retrieved. Empty when the descriptor names no preferred concept.
idstringyesMeSH descriptor ID (e.g. "D003920").
labelstringyesDescriptor heading, in the requested language when NLM publishes that translation.
provenanceobjectyesProvenance block: source, URL, data vintage, extraction instant, origin diagnostics, citation, license
qualifiersarrayyesAllowable qualifiers (subheadings) for the descriptor.
scope_notestringyesScope note (definition) of the descriptor's preferred concept; empty when it has none.
tree_numbersarrayyesTree numbers placing the descriptor in the MeSH hierarchy (e.g. "C18.452.394.750").
uristringyesNLM MeSH RDF URI of the descriptor.

No examples provided.

mesh_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").

NameTypeReqDescription
mesh_idstringyesMeSH Descriptor ID (e.g., D015242, D003920)
NameTypeReqDescription
attributionarrayyesCanonical source URLs of this response (attribution list)
mesh_idstringyesThe MeSH descriptor ID as submitted.
provenanceobjectyesProvenance block: source, URL, data vintage, extraction instant, origin diagnostics, citation, license
qualifiersarrayyesAllowable qualifiers (subheadings) for the descriptor, each with its ID, URI and label.

No examples provided.

mesh_search ~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.

NameTypeReqDescription
languagestring–Language code (default: en). Returns the source's OFFICIAL translation when it exists (e.g. 'pt' for official Portuguese); content is never machine-translated.
matchstring–Match type: exact, contains, or startswith. Default: contains
max_resultsinteger–Maximum number of results (1-100). Default: 25
querystringyesSearch term (e.g., "diabetes", "heart failure")
NameTypeReqDescription
attributionarrayyesCanonical source URLs of this response (attribution list)
descriptorsarrayyesMatching MeSH descriptors, each with its ID (e.g. "D003920"), URI and label.
matchstringyesMatch type applied to descriptor labels.
provenanceobjectyesProvenance block: source, URL, data vintage, extraction instant, origin diagnostics, citation, license
querystringyesThe search term as submitted.
total_countintegeryesNumber of descriptors returned (the NLM lookup is capped at max_results, so this is not a total count of all matches).

No examples provided.

mesh_tree ~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).

NameTypeReqDescription
mesh_idstringyesMeSH Descriptor ID (e.g., D015242, D003920)
NameTypeReqDescription
attributionarrayyesCanonical source URLs of this response (attribution list)
mesh_idstringyesThe MeSH descriptor ID as submitted.
provenanceobjectyesProvenance block: source, URL, data vintage, extraction instant, origin diagnostics, citation, license
tree_numbersarrayyesTree numbers placing the descriptor in the MeSH hierarchy; a descriptor can sit in several branches.

No examples provided.

rxnorm_classes ~78

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.

NameTypeReqDescription
rxcui–yesRxCUI of the drug
NameTypeReqDescription
attributionarrayyesCanonical source URLs of this response (attribution list)
classesarrayyesDrug classes NLM RxClass links to the RxCUI (one entry per class and relationship); empty when none.
provenanceobjectyesProvenance block: source, URL, data vintage, extraction instant, origin diagnostics, citation, license
rxcuistringyesThe RxCUI as submitted.

No examples provided.

rxnorm_concept ~153

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" — as a string of digits or as an integer.

NameTypeReqDescription
include_related––Include related concepts (ingredients, brands, dose forms). Default false; true/false, also accepted as the strings "true"/"false"
rxcui–yesRxNorm Concept Unique Identifier (string of digits or integer, e.g. "161" or 161)
NameTypeReqDescription
attributionarrayyesCanonical source URLs of this response (attribution list)
foundbooleanyesfalse when RxNorm has no concept with this RxCUI (the lookup answered; the fields below are null)
languagestring|nullyesLanguage of the concept name as RxNav reports it (e.g. "ENG"); null when found=false.
namestring|nullyesRxNorm normalized name of the concept; null when found=false.
provenanceobjectyesProvenance block: source, URL, data vintage, extraction instant, origin diagnostics, citation, license
related_groups–yesRelated concepts (ingredients, brands, dose forms) grouped by term type; null unless include_related=true.
remapped_toarrayyesRxCUIs a remapped concept was replaced by; empty otherwise.
rxcuistringyesThe RxCUI looked up.
statusstring|nullyesRxNorm history status (e.g. "Active", "Remapped", "Obsolete"); "Active" when RxNav does not report one; null when found=false.
suppressstring|nullyesRxNorm suppress flag ("N" = not suppressed, the default when RxNav omits it); null when found=false.
synonymstring|nullyesRxNorm synonym (may be empty); null when found=false.
ttystring|nullyesRxNorm term type (e.g. "IN" ingredient, "SCD" clinical drug, "SBD" branded drug); null when found=false.
umlscuistring|nullyesUMLS Concept Unique Identifier linked to the concept (empty when none); null when found=false.

No examples provided.

rxnorm_ingredients ~75

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.

NameTypeReqDescription
rxcui–yesRxCUI of the drug
NameTypeReqDescription
attributionarrayyesCanonical source URLs of this response (attribution list)
ingredientsarrayyesIngredient concepts (term types IN and MIN) RxNav relates to the RxCUI; empty when none.
provenanceobjectyesProvenance block: source, URL, data vintage, extraction instant, origin diagnostics, citation, license
rxcuistringyesThe RxCUI as submitted.

No examples provided.

rxnorm_ndc ~124

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.

NameTypeReqDescription
ndcstring–NDC code to look up RxCUI (alternative to rxcui)
rxcui––RxCUI to get NDC codes for
NameTypeReqDescription
attributionarrayyesCanonical source URLs of this response (attribution list)
ndcstring|nullyesrxcui_for_ndc: the NDC as submitted; null in ndcs_for_rxcui mode.
ndcsarrayyesndcs_for_rxcui: NDC codes RxNorm lists for the RxCUI (empty when none); always empty in rxcui_for_ndc mode.
provenanceobjectyesProvenance block: source, URL, data vintage, extraction instant, origin diagnostics, citation, license
query_modestringyesWhich lookup ran: ndcs_for_rxcui (rxcui given, list its NDCs) or rxcui_for_ndc (ndc given, find its RxCUI).
rxcuistring|nullyesndcs_for_rxcui: the RxCUI as submitted. rxcui_for_ndc: the RxCUI the NDC belongs to, or null when RxNorm has none for it.

No examples provided.

rxnorm_search ~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.

NameTypeReqDescription
max_resultsinteger–Maximum number of results (1-100). Default: 25
querystringyesDrug name to search (brand or generic)
NameTypeReqDescription
attributionarrayyesCanonical source URLs of this response (attribution list)
drugsarrayyesMatching RxNorm concepts, at most max_results. tty "APPROX" marks results of the approximate-match fallback, used when the name matched nothing exactly.
provenanceobjectyesProvenance block: source, URL, data vintage, extraction instant, origin diagnostics, citation, license
querystringyesThe drug name as submitted.
total_countintegeryesNumber of concepts RxNav returned for the name, before the max_results cap.

No examples provided.

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.

NameTypeReqDescription
querystringyesSearch terms, natural language or keywords (accents and case are ignored)
NameTypeReqDescription
attributionarrayyesCanonical source URLs of this response (attribution list)
provenancearrayyesOne provenance block per upstream source that contributed to this response (licenses are never merged; each block carries the origin diagnostics of ITS source)
resultsarrayyesMatching documents, in relevance order

No examples provided.

terminology_diff ~341

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 (LOINC, RxNorm, MeSH), the publisher's official changelog is the authoritative source.

NameTypeReqDescription
from_versionstring–Version you have data from. Optional; behavior depends on terminology.
terminologystringyesWhich terminology to report on.
to_versionstring–Version you want to compare to. Optional.
NameTypeReqDescription
attributionarrayyesCanonical source URLs of this response (attribution list)
bundled_versionsarrayyesVersions of this terminology bundled in the server; empty when the server queries the live upstream.
changelog_urlstring|nullyesPublisher's official changelog for the terminology; null when none is known.
cross_revision_summary–yesPopulated 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_availablebooleanyesTrue when this server has the data to compute a real diff for the requested terminology. False = guidance-only response.
from_versionstring|nullyesThe from_version requested (for icd10, the bundled ICD-10 release when not given); null when not given.
messagestringyesExplanation of the answer: what was computed, or why no diff is available and where to look instead.
provenanceobjectyesProvenance block: source, URL, data vintage, extraction instant, origin diagnostics, citation, license
terminologystringyesThe terminology reported on, as submitted.
to_versionstring|nullyesThe to_version requested; null when not given.

No examples provided.

terminology_versions ~184

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 / 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 7 is returned. The ICD-10 → ICD-11 version reads live from the bundled dataset; everything else is metadata maintained alongside the project release.

NameTypeReqDescription
terminologystring–Filter to a single terminology. Omit to return all 7.
NameTypeReqDescription
attributionarrayyesCanonical source URLs of this response (attribution list)
generatedstringyesDate this snapshot was generated.
provenanceobjectyesProvenance block: source, URL, data vintage, extraction instant, origin diagnostics, citation, license
terminologiesarrayyesRelease this server queries for each terminology (all 7, or the one requested): publisher, current version, release date, update cadence, source and changelog links, and whether the data is bundled i…
totalintegeryesNumber of terminologies listed.

No examples provided.

validate_codes ~408

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; LOINC returns 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, upstream outage, 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`, `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).

NameTypeReqDescription
codesarrayyesList of code+terminology pairs to validate. Hard cap of 50 per call to keep total latency under ~10 s given upstream rate limits.
NameTypeReqDescription
attributionarrayyesCanonical source URLs of this response (attribution list)
error_countintegeryesHow many couldn't be validated due to upstream/network errors.
invalid_countintegeryesHow many were not found.
provenancearrayyesOne provenance block per upstream source that contributed to this response (licenses are never merged; each block carries the origin diagnostics of ITS source)
resultsarrayyesOne entry per submitted code, in request order.
totalintegeryesNumber of codes submitted.
valid_countintegeryesHow many were confirmed valid.

No examples provided.

Install

How do I install the Medical Terminologies MCP server?

Medical Terminologies MCP is a hosted endpoint at https://medical.sidneybissoli.com/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

remote · medical.sidneybissoli.com

# add to Claude Code
claude mcp add --transport http sidneybissoli-medical-terminologies-mcp 'https://medical.sidneybissoli.com/mcp'
Common questions

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, LOINC, RxNorm, MeSH, ATC, CID-10. 33 tools, MIT. This page covers its hosted endpoint (https://medical.sidneybissoli.com/mcp).

Is the Medical Terminologies MCP server safe to use?

Medical Terminologies MCP scores 85 out of 100 on VerifyMCP. 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 7,235 tokens of context every time the server is loaded.

Does the Medical Terminologies MCP server require authentication?

No. We connected to Medical Terminologies MCP without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

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 4 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.