Skip to main content
Glama

ICD-11 Entity Details

icd11_lookup
Read-onlyIdempotent

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.

Input Schema

NameRequiredDescriptionDefault
uriNoFull ICD-11 foundation URI
codeNoICD-11 code (e.g., "BA00", "1A00")
languageNoLanguage code (default: en). Returns the source's OFFICIAL translation when it exists (e.g. 'pt' for official Portuguese); content is never machine-translated.en

Output Schema

NameRequiredDescriptionDefault
uriYesWHO ICD-11 entity URI.
codeYesICD-11 MMS code (e.g. "BA00"); null for blocks and chapters, which have a code_range instead.
titleYesOfficial title in the requested language ("Unknown" when the WHO returns none).
block_idYesWHO block identifier for blocks; null otherwise.
class_kindYesWHO class kind (e.g. "chapter", "block", "category"); null when the WHO does not state it.
code_rangeYesCode range of a block or chapter (e.g. "BA00-BA0Z"); null for coded categories.
definitionYesOfficial short definition; null when the WHO publishes none.
exclusionsYesExclusion entries (conditions coded elsewhere), each with its URI and label.
inclusionsYesInclusion entries (synonyms and terms included under this entity), each with its URI and label.
provenanceYesProvenance block: source, URL, data vintage, extraction instant, origin diagnostics, citation, license
attributionYesCanonical source URLs of this response (attribution list)
browser_urlYesLink to the entity in the WHO ICD-11 browser; null when the WHO returns none.
coding_noteYesOfficial coding note; null when the WHO publishes none.
index_termsYesIndex terms that lead to this entity, each with its URI and label.
long_definitionYesOfficial detailed description; null when the WHO publishes none.
diagnostic_criteriaYesOfficial diagnostic criteria text; null when the WHO publishes none.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed14 schema fields changed
    • addedOutput schema / properties / block_id / description
      Added value: +"WHO block identifier for blocks; null otherwise."
    • addedOutput schema / properties / browser_url / description
      Added value: +"Link to the entity in the WHO ICD-11 browser; null when the WHO returns none."
    • addedOutput schema / properties / class_kind / description
      Added value: +"WHO class kind (e.g. \"chapter\", \"block\", \"category\"); null when the WHO does not state it."
    • addedOutput schema / properties / code / description
      Added value: +"ICD-11 MMS code (e.g. \"BA00\"); null for blocks and chapters, which have a code_range instead."
    • addedOutput schema / properties / code_range / description
      Added value: +"Code range of a block or chapter (e.g. \"BA00-BA0Z\"); null for coded categories."
    • addedOutput schema / properties / coding_note / description
      Added value: +"Official coding note; null when the WHO publishes none."
    • addedOutput schema / properties / definition / description
      Added value: +"Official short definition; null when the WHO publishes none."
    • addedOutput schema / properties / diagnostic_criteria / description
      Added value: +"Official diagnostic criteria text; null when the WHO publishes none."
    • addedOutput schema / properties / exclusions / description
      Added value: +"Exclusion entries (conditions coded elsewhere), each with its URI and label."
    • addedOutput schema / properties / inclusions / description
      Added value: +"Inclusion entries (synonyms and terms included under this entity), each with its URI and label."
    • addedOutput schema / properties / index_terms / description
      Added value: +"Index terms that lead to this entity, each with its URI and label."
    • addedOutput schema / properties / long_definition / description
      Added value: +"Official detailed description; null when the WHO publishes none."
    • addedOutput schema / properties / title / description
      Added value: +"Official title in the requested language (\"Unknown\" when the WHO returns none)."
    • addedOutput schema / properties / uri / description
      Added value: +"WHO ICD-11 entity URI."
  2. Changed1 schema field changed
    • changedOutput schema / properties / provenance / properties / notices / description
      Previous value: -"Notices the source publishes alongside the data (license statements, caveats), verbatim. Absent when there is none"New value: +"Caveats the source publishes about the data, verbatim (license statements are not repeated here; see the info://licenses resource). Absent when there is none"
  3. Changed7 schema fields changed
    • changedOutput schema / properties / provenance / description
      Previous value: -"Provenance block (contract v1.1): source, URL, data vintage, extraction instant, origin diagnostics, citation, license"New value: +"Provenance block: source, URL, data vintage, extraction instant, origin diagnostics, citation, license"
    • addedOutput schema / properties / provenance / properties / derivation_note
      Added value: +{
      +  "description": "What this server computed; present together with derived",
      +  "type": "string"
      +}
    • addedOutput schema / properties / provenance / properties / derived
      Added value: +{
      +  "description": "Present (true) only when this server computed the value (e.g. a ranking or summary statistics) instead of passing on what the source returned",
      +  "type": "boolean"
      +}
    • changedOutput schema / properties / provenance / properties / field_sources / description
      Previous value: -"Present only when the response joins parts from different origins or extraction instants (contract v1.2): for each group of fields, its URL, extraction instant and whether it came from cache. Absent in single-origin responses"New value: +"Present only when the response joins parts from different origins or extraction instants: for each group of fields, its URL, extraction instant and whether it came from cache. Absent in single-origin responses"
    • addedOutput schema / properties / provenance / properties / notices
      Added value: +{
      +  "description": "Notices the source publishes alongside the data (license statements, caveats), verbatim. Absent when there is none",
      +  "items": {
      +    "type": "string"
      +  },
      +  "minItems": 1,
      +  "type": "array"
      +}
    • changedOutput schema / properties / provenance / properties / retrieval / description
      Previous value: -"Origin diagnostics of THIS source in this call (contract v1.1): requests made to the upstream, attempts summed across retries, anomalies worked around (kind + count); unstable=true when any anomaly happened. null when nothing was measured (bundled dataset, or response served entirely from cache)"New value: +"Origin diagnostics of THIS source in this call: requests made to the upstream, attempts summed across retries, anomalies worked around (kind + count); unstable=true when any anomaly happened. null when nothing was measured (bundled dataset, or response served entirely from cache)"
    • addedOutput schema / properties / provenance / properties / revision
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "Whether the data can still change at the source: current = the version in force, the source may revise it; provisional = preliminary; final = will not change. Absent when unknown",
      +  "properties": {
      +    "note": {
      +      "description": "O específico da fonte: o que revisa, quando, por quê",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "status": {
      +      "description": "current = versão vigente, a fonte pode revisá-la; provisional = preliminar, incompleta ou sujeita a mudança (não compare como se fosse fechada); final = não muda mais, declarado pela fonte",
      +      "enum": [
      +        "current",
      +        "provisional",
      +        "final"
      +      ],
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "status",
      +    "note"
      +  ],
      +  "type": "object"
      +}
  4. Changed1 schema field changed
    • addedOutput schema / properties / provenance / properties / field_sources
      Added value: +{
      +  "description": "Present only when the response joins parts from different origins or extraction instants (contract v1.2): for each group of fields, its URL, extraction instant and whether it came from cache. Absent in single-origin responses",
      +  "items": {
      +    "additionalProperties": false,
      +    "description": "Proveniência de um grupo de campos da resposta: de onde veio e quando foi extraído",
      +    "properties": {
      +      "data_vintage": {
      +        "description": "Vintage/competência da sub-fonte",
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "dataset_id": {
      +        "description": "Identificador do conjunto da sub-fonte",
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "fields": {
      +        "description": "Campos do payload atribuídos a esta sub-fonte",
      +        "items": {
      +          "type": "string"
      +        },
      +        "minItems": 1,
      +        "type": "array"
      +      },
      +      "retrieved_at": {
      +        "description": "ISO-8601 da extração desta sub-fonte na origem",
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "served_from_cache": {
      +        "description": "true se esta sub-fonte veio do cache do servidor (retrieved_at é o da extração original); false se foi buscada nesta chamada; null se o servidor não distingue",
      +        "type": [
      +          "boolean",
      +          "null"
      +        ]
      +      },
      +      "source_url": {
      +        "description": "URL canônica da sub-fonte que originou estes campos",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "fields",
      +      "source_url",
      +      "dataset_id",
      +      "data_vintage",
      +      "retrieved_at"
      +    ],
      +    "type": "object"
      +  },
      +  "minItems": 1,
      +  "type": "array"
      +}
  5. Changed3 schema fields changed
    • changedOutput schema / properties / provenance / description
      Previous value: -"Provenance block (contract v1.0): source, URL, data vintage, extraction instant, citation, license"New value: +"Provenance block (contract v1.1): source, URL, data vintage, extraction instant, origin diagnostics, citation, license"
    • addedOutput schema / properties / provenance / properties / retrieval
      Added value: +{
      +  "anyOf": [
      +    {
      +      "additionalProperties": false,
      +      "properties": {
      +        "anomalies": {
      +          "description": "Anomalias superadas até o sucesso, somadas por classe, em ordem fixa; [] se nenhuma",
      +          "items": {
      +            "additionalProperties": false,
      +            "properties": {
      +              "count": {
      +                "description": "Ocorrências desta classe na chamada",
      +                "maximum": 9007199254740991,
      +                "minimum": 1,
      +                "type": "integer"
      +              },
      +              "kind": {
      +                "description": "Classe da anomalia (vocabulário fechado do contrato)",
      +                "enum": [
      +                  "timeout",
      +                  "network",
      +                  "http_4xx",
      +                  "http_5xx",
      +                  "rate_limited",
      +                  "malformed_body"
      +                ],
      +                "type": "string"
      +              }
      +            },
      +            "required": [
      +              "kind",
      +              "count"
      +            ],
      +            "type": "object"
      +          },
      +          "type": "array"
      +        },
      +        "attempts": {
      +          "description": "Tentativas somadas, incluindo as repetidas (>= requests)",
      +          "maximum": 9007199254740991,
      +          "minimum": 1,
      +          "type": "integer"
      +        },
      +        "requests": {
      +          "description": "Idas distintas à origem que compõem esta resposta (fatias, páginas)",
      +          "maximum": 9007199254740991,
      +          "minimum": 1,
      +          "type": "integer"
      +        },
      +        "unstable": {
      +          "description": "true se houve repetição (attempts > requests) ou alguma anomalia",
      +          "type": "boolean"
      +        }
      +      },
      +      "required": [
      +        "requests",
      +        "attempts",
      +        "anomalies",
      +        "unstable"
      +      ],
      +      "type": "object"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "Origin diagnostics of THIS source in this call (contract v1.1): requests made to the upstream, attempts summed across retries, anomalies worked around (kind + count); unstable=true when any anomaly happened. null when nothing was measured (bundled dataset, or response served entirely from cache)"
      +}
    • changedOutput schema / properties / provenance / required
      Previous value: -[
      -  "source",
      -  "source_url",
      -  "data_vintage",
      -  "retrieved_at",
      -  "citation",
      -  "license"
      -]New value: +[
      +  "source",
      +  "source_url",
      +  "data_vintage",
      +  "retrieved_at",
      +  "retrieval",
      +  "citation",
      +  "license"
      +]
  6. Changed1 schema field changed
    • addedInput schema / additionalProperties
      Added value: +false
  7. First observed

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already cover safety (readOnly, idempotent, not destructive), but the description adds real behavioral context: at-least-one-of code/uri requirement with a validation error naming both, single-entity return with no pagination, unknown code returns a "not found" error rather than an empty record, and no machine translation. These are error/edge behaviors the annotations do not express.

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

Conciseness5/5

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

Front-loaded with the core action and precondition, then structured bullets for capabilities, then a params paragraph, then exclusions. No redundant restatement of the name or title; every sentence adds usable information.

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

Completeness5/5

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

Output schema exists so return shape need not be described, and the description still covers error semantics, single-record behavior, and language handling. Nothing an agent needs to call this correctly is missing.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds value the schema cannot: it states that at least one of `code` or `uri` is required even though the schema lists zero required parameters, and it clarifies that `language` selects WHO's official translation rather than translating content.

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

Purpose5/5

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

States a specific verb and resource ("Get detailed information about ONE ICD-11 entity") and immediately scopes it to entities the caller already has a code or URI for. This cleanly separates it from icd11_search, icd11_hierarchy and map_icd10_to_icd11, which are all named.

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

Usage Guidelines5/5

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

Explicitly lists the use cases (full definition, coding notes, inclusions/exclusions, title and synonyms) and then an explicit "When NOT to use" block routing to icd11_search, icd11_hierarchy and map_icd10_to_icd11, including the caveat that ICD-10 codes like "E11" are not valid here.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.