Skip to main content
Glama

CID-10 Brasil MCP Server

WARNING

This package is deprecated. It has been superseded by medical-terminologies-mcp (npm), which serves the same full Brazilian CID-10 (DataSUS V2008) plus ICD-11, LOINC, RxNorm, MeSH, ATC and the authoritative WHO ICD-10→ICD-11 crosswalk, with source provenance on every response — and also offers a hosted endpoint at https://medical.sidneybissoli.com/mcp (no install needed). This repository stays available for reference but will receive no further updates.

npm version npm downloads node MCP Registry LobeHub GitHub stars GitHub Sponsors License: MIT

🇧🇷 Leia em Português

MCP Server for Brazilian ICD-10 (DATASUS) - International Classification of Diseases

A Model Context Protocol (MCP) server that provides access to the Brazilian version of ICD-10 (CID-10), maintained by DATASUS/Ministry of Health of Brazil.

See it in action

Ask your assistant, in plain Portuguese:

  • "Qual o código CID-10 para infarto agudo do miocárdio?"cid10_search / cid10_lookup

  • "Liste todas as subcategorias do diabetes tipo 2 (E11)."cid10_hierarchy

  • "O código C50 é válido e pode ser causa de óbito?"cid10_validar

The answers come straight from the bundled DATASUS V2008 dataset — official codes and descriptions, not guesses from training data.

Related MCP server: Medical Terminologies MCP

Features

  • Search - Search codes by term (code or description)

  • Lookup - Get detailed information for a specific CID-10 code

  • Hierarchy - Navigate the hierarchical structure (chapters, groups, categories, subcategories)

  • Statistics - General statistics about the CID-10 database

  • Validation - Validate codes for use in health systems (SUS)

Installation

Using with Claude Desktop

Add to your Claude Desktop configuration file:

Windows: %APPDATA%\Claude\claude_desktop_config.json
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "cid10-br": {
      "command": "npx",
      "args": ["cid10-br-mcp"]
    }
  }
}

Global Installation

npm install -g cid10-br-mcp

Then add to Claude Desktop config:

{
  "mcpServers": {
    "cid10-br": {
      "command": "cid10-br-mcp"
    }
  }
}

Available Tools

Tool

Description

cid10_search

Search CID-10 codes by term (code or description)

cid10_lookup

Get detailed information for a specific code

cid10_hierarchy

Get all codes under a category/prefix

cid10_capitulos

List all 22 chapters of CID-10

cid10_stats

General statistics about the database

cid10_validar

Validate a code for use in health systems

Usage Examples

Once configured, you can ask Claude:

  • "What is CID-10 code A90?"

  • "Search for diabetes codes in CID-10"

  • "List all codes under category E11"

  • "What are the chapters of CID-10?"

  • "Is F32.1 a valid code for medical records?"

Data Source

The data comes from official DATASUS sources:

  • CID-10-CAPITULOS.CSV - 22 chapters

  • CID-10-GRUPOS.CSV - Groups within chapters

  • CID-10-CATEGORIAS.CSV - 3-character categories

  • CID-10-SUBCATEGORIAS.CSV - Detailed subcategories

Source: DATASUS - CID-10

Development

Prerequisites

  • Node.js >= 18.0.0

  • npm

Setup

# Clone the repository
git clone https://github.com/SidneyBissoli/cid10-br-mcp.git
cd cid10-br-mcp

# Install dependencies
npm install

# Build
npm run build

# Run locally
npm start

Testing with MCP Inspector

npx @modelcontextprotocol/inspector node dist/index.js

Contributing

Contributions are welcome! Feel free to:

  1. Fork the repository

  2. Create a feature branch (git checkout -b feature/new-feature)

  3. Commit your changes (git commit -m 'Add new feature')

  4. Push to the branch (git push origin feature/new-feature)

  5. Open a Pull Request

License

This project is licensed under the MIT License - see the LICENSE file for details.

Author

Sidney Bissoli


Made for the Brazilian health community

Available Tools

6 tools
cid10_capitulosA

Lista todos os 22 capítulos da CID-10 brasileira. Útil para navegação e entendimento da estrutura hierárquica da classificação.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior3/5

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

No annotations are provided, so the description carries full burden. It discloses that the tool lists chapters and is useful for navigation, but does not explicitly state behavioral traits like read-only, caching, or rate limits. However, for a simple list tool with no side effects, this is acceptable.

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?

The description consists of two concise sentences, no fluff. The first sentence states the core functionality, the second provides the use case. Every word earns its place.

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?

Given zero parameters, no output schema, and a simple listing function, the description fully covers what the tool does and its purpose. No additional details are necessary.

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?

There are no parameters, so the schema coverage is 100%. The description adds no parameter-specific information because none is needed. Baseline for zero parameters is 4.

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?

The description clearly states it lists all 22 chapters of the Brazilian CID-10, specifying the verb 'list', the resource 'chapters', and the context 'CID-10 brasileira'. It distinguishes from siblings like cid10_search or cid10_hierarchy by focusing on top-level chapters.

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

Usage Guidelines3/5

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

The description says it is 'útil para navegação e entendimento da estrutura hierárquica', implying it should be used for navigation and understanding the hierarchy. However, it does not explicitly state when to use this tool versus alternatives, nor does it mention when not to use it.

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

cid10_hierarchyA

Retorna todos os códigos CID-10 sob uma categoria/prefixo. Útil para obter todas as subcategorias de uma condição. Exemplo: prefixo "E11" retorna todos os tipos de diabetes mellitus tipo 2.

ParametersJSON Schema
NameRequiredDescriptionDefault
prefixoYesPrefixo do código CID-10. Exemplos: "E11" (diabetes tipo 2), "I10" (hipertensão), "J45" (asma)

TDQS

A3.9/5.0
Behavior2/5

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

No annotations are provided, so the description must fully disclose behavioral traits. It states the tool returns all codes under a prefix but does not describe the return format (e.g., list of full codes with descriptions), side effects, or authentication requirements. This leaves the agent with incomplete behavioral understanding.

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?

The description is two sentences, front-loaded with the core purpose, and every sentence adds value. No unnecessary words or repetition.

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

Completeness3/5

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

The tool has one parameter (100% schema coverage) and no output schema. The description explains what it does and gives an example, but it does not describe the return structure (e.g., list of strings, objects with descriptions). This omission limits completeness for an agent invoking the tool.

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?

The schema describes the 'prefixo' parameter with examples, achieving 100% coverage. The description adds an example of usage ('prefixo E11 retorna todos os tipos de diabetes mellitus tipo 2'), providing context beyond the schema definition.

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?

The description clearly states the tool retrieves all CID-10 codes under a category/prefix, with a specific verb 'Retorna' and resource 'códigos CID-10'. It distinguishes from sibling tools like cid10_search (search) and cid10_lookup (single code lookup).

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

Usage Guidelines4/5

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

The description provides a clear usage context ('Útil para obter todas as subcategorias de uma condição') and an example with prefix 'E11'. However, it does not explicitly state when not to use this tool or mention alternative sibling tools.

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

cid10_lookupA

Consulta detalhes de um código CID-10 específico. Retorna informações completas incluindo descrição, restrições de sexo, se pode ser causa de óbito, e classificação cruz/asterisco.

ParametersJSON Schema
NameRequiredDescriptionDefault
codigoYesCódigo CID-10 com ou sem ponto. Exemplos: "E11.2", "E112", "I10", "J45.0"

TDQS

A3.6/5.0
Behavior2/5

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

No annotations are provided, so the description bears full burden for behavioral disclosure. It describes what is returned but does not mention side effects, read-only nature, authentication requirements, or any constraints. The description is minimally transparent.

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?

Two sentences, no extraneous words. Purpose is front-loaded, and details are appropriately listed. Every sentence is informative.

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

Completeness4/5

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

No output schema exists, so the description compensates by listing what information is returned. Given the tool's simplicity and the sibling tools, the description is fairly complete, though it could mention that the lookup is read-only.

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

Parameters3/5

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

Schema coverage is 100% with description for the single parameter. The tool description reinforces the format but does not add meaningfully new semantic information beyond the schema. Baseline score of 3 is appropriate.

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?

Description clearly states it consults details of a specific CID-10 code and lists the type of information returned (description, sex restrictions, cause of death, cross/asterisk). It distinguishes from sibling tools like cid10_search and cid10_validar by focusing on a single code lookup.

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

Usage Guidelines3/5

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

Description implies usage when you have a specific CID-10 code, but does not explicitly state when to use this tool versus alternatives like cid10_search or cid10_hierarchy. No exclusion criteria or contextual guidance provided.

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

cid10_statsB

Retorna estatísticas gerais da base de dados CID-10 brasileira carregada.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It only says 'returns general statistics' but does not specify what the statistics include, whether the operation is read-only, or any other behavioral traits. This is minimal disclosure.

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

Conciseness4/5

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

The description is a single sentence, concise and to the point. It is appropriately sized for a simple parameterless tool, though it could be expanded slightly without losing conciseness.

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

Completeness3/5

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

Given no parameters, no output schema, and no annotations, the description is minimally adequate but lacks specificity. It does not explain what 'general statistics' are, leaving room for ambiguity. The sibling tools contextualize it partially, but the description itself is incomplete.

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?

The input schema has no parameters, so schema description coverage is 100%. The description adds no parameter information, but since there are none, it cannot add more. The baseline for 0 parameters is 4, and the description does not detract.

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?

The description clearly states 'Retorna estatísticas gerais' (returns general statistics) with the specific resource 'base de dados CID-10 brasileira'. It uses a specific verb and resource, and the purpose is distinct from siblings like 'cid10_search' or 'cid10_lookup'.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives such as 'cid10_capitulos' or 'cid10_hierarchy'. The usage context is implied (when general stats are needed), but no exclusions or alternative recommendations are given.

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

cid10_validarA

Valida se um código CID-10 existe e retorna informações sobre sua validade para uso em sistemas de saúde (AIH, APAC, SIM, etc.).

ParametersJSON Schema
NameRequiredDescriptionDefault
codigoYesCódigo CID-10 a ser validado

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations, the description carries full burden. It states the tool validates existence and returns validity info, suggesting read-only behavior. However, it does not explicitly confirm no side effects, permissions, or rate limits. Basic transparency is provided.

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?

The description is a single, well-structured sentence that conveys the core functionality and context without redundant or extraneous information. Every word serves a purpose.

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

Completeness3/5

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

For a simple tool with one parameter and no output schema, the description provides essential information but lacks detail on the exact return format or fields. Mentioning specific health systems adds context, but completeness could be improved.

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

Parameters3/5

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

The schema has 100% coverage with a description for the 'codigo' parameter. The tool description adds no additional meaning beyond what the schema already provides (e.g., format, constraints). Baseline score of 3 is appropriate.

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?

The description clearly states the tool validates a CID-10 code and returns validity information for use in specific health systems. This distinguishes it from sibling tools like cid10_search (search) and cid10_lookup (details), which serve different purposes.

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

Usage Guidelines3/5

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

The description implies usage for validating CID-10 codes and mentions target systems (AIH, APAC, SIM), but it does not explicitly state when to use this tool over alternatives or provide exclusions. The purpose is clear but lacks explicit guidance.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 6 tool updatesv1.1.0
    • First observedcid10_capitulos
    • First observedcid10_hierarchy
    • First observedcid10_lookup
    • First observedcid10_search
    • First observedcid10_stats
    • First observedcid10_validar

TDQS

A4/5.0

Scored across 6 tools

Disambiguation5/5

Each tool serves a distinct purpose: validation, search, lookup, hierarchy browsing, chapter listing, and statistics. There is no functional overlap between them.

Naming Consistency4/5

All tools share the 'cid10_' prefix and use action-oriented names, though there is a mix of Portuguese (validar, capítulos) and English (search, lookup) verbs, slightly reducing consistency.

Tool Count5/5

With 6 tools, the server is well-scoped for a medical code classification system, covering essential operations without unnecessary bloat.

Completeness5/5

The tool set covers the full expected lifecycle: validation, search, detailed lookup, hierarchical navigation, overview of chapters, and database statistics. No obvious gaps for typical usage.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers