cid10-br-mcp
This MCP server provides full access to the Brazilian CID-10 (ICD-10) classification from DATASUS/Ministério da Saúde. You can search for codes by partial code or keyword, look up detailed information for specific codes (including description, sex restrictions, cause-of-death eligibility, and cross/asterisk classification), navigate the hierarchical structure (e.g., all subcategories under a prefix), list all 22 chapters, retrieve database statistics, and validate codes for use in Brazilian health systems such as AIH, APAC, and SIM.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@cid10-br-mcpBuscar código CID-10 para asma"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
CID-10 Brasil MCP Server
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.
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-mcpThen add to Claude Desktop config:
{
"mcpServers": {
"cid10-br": {
"command": "cid10-br-mcp"
}
}
}Available Tools
Tool | Description |
| Search CID-10 codes by term (code or description) |
| Get detailed information for a specific code |
| Get all codes under a category/prefix |
| List all 22 chapters of CID-10 |
| General statistics about the database |
| 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 startTesting with MCP Inspector
npx @modelcontextprotocol/inspector node dist/index.jsContributing
Contributions are welcome! Feel free to:
Fork the repository
Create a feature branch (
git checkout -b feature/new-feature)Commit your changes (
git commit -m 'Add new feature')Push to the branch (
git push origin feature/new-feature)Open a Pull Request
License
This project is licensed under the MIT License - see the LICENSE file for details.
Author
Sidney Bissoli
GitHub: @SidneyBissoli
Email: sbissoli76@gmail.com
Links
Made for the Brazilian health community
Available Tools
6 toolscid10_capitulosA
Lista todos os 22 capítulos da CID-10 brasileira. Útil para navegação e entendimento da estrutura hierárquica da classificação.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| prefixo | Yes | Prefixo do código CID-10. Exemplos: "E11" (diabetes tipo 2), "I10" (hipertensão), "J45" (asma) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| codigo | Yes | Código CID-10 com ou sem ponto. Exemplos: "E11.2", "E112", "I10", "J45.0" |
TDQS
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.
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.
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.
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.
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.
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_searchA
Busca códigos CID-10 por termo (código ou descrição). Pesquisa na tabela brasileira da CID-10 (DATASUS). Aceita códigos parciais ou termos de busca na descrição. Exemplos: "diabetes", "E11", "hipertensão", "infarto".
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Número máximo de resultados (1-100, padrão: 20) | |
| query | Yes | Termo de busca: código CID-10 (ex: E11, I10) ou palavra-chave na descrição (ex: diabetes, asma) | |
| offset | No | Deslocamento para paginação (padrão: 0) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the search operation and input types, but does not mention behavioral traits like rate limits, authentication needs, return format, or pagination behavior. For a read-only search, this is marginally adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is four sentences, front-loaded with the main action, and contains no wasted words. Each sentence adds useful context: action, source, input types, examples.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (3 parameters, no output schema, no annotations), the description covers the essential functionality and input types. It lacks differentiation from sibling tools and details on return format, but is sufficient for a basic search tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds examples for the query parameter but does not significantly extend meaning beyond the schema definitions for limit or offset.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it searches CID-10 codes by term (code or description) using the Brazilian DATASYS table, with examples. It does not explicitly differentiate from siblings like cid10_lookup, but the purpose is specific and actionable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides usage context (Brazilian table, accepts partial codes and terms) and examples, but does not guide when to use this tool versus alternatives like cid10_validar or cid10_lookup.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.).
| Name | Required | Description | Default |
|---|---|---|---|
| codigo | Yes | Código CID-10 a ser validado |
TDQS
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.
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.
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.
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.
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.
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.
6 tool updates
v1.1.0- First observed
cid10_capitulos - First observed
cid10_hierarchy - First observed
cid10_lookup - First observed
cid10_search - First observed
cid10_stats - First observed
cid10_validar
TDQS
Scored across 6 tools
Each tool serves a distinct purpose: validation, search, lookup, hierarchy browsing, chapter listing, and statistics. There is no functional overlap between them.
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.
With 6 tools, the server is well-scoped for a medical code classification system, covering essential operations without unnecessary bloat.
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
Related MCP Connectors
MCP server for US nursing facility search and ownership lookup (NursingHomeDatabase).
MCP server for Brazilian Federal Senate open data (legislative, administrative, e-Cidadania).
Hosted MCP server for finding authoritative primary data sources and official portals.
MCP server for querying BrainKB, a knowledge base for neuroscience knowledge graphs.
Related MCP Servers
- AlicenseAqualityDmaintenanceMCP server for automated ICD-10 medical coding. Code clinical text to ICD-10-CM diagnoses, search 74,000+ codes, and de-identify PHI via the AutoICD API.616 npmMIT
- AlicenseAqualityAmaintenanceUnified MCP server providing LLMs with reliable lookup access to ICD-11, LOINC, RxNorm, MeSH, ATC, CID-10, and (optionally) SNOMED CT.31133 npm12MIT
- AlicenseAqualityAmaintenanceAn MCP server that enables querying rare-disease data from Orphanet, including disease nomenclature, cross-references, classifications, gene associations, HPO phenotypes, epidemiology, and natural history.19MIT
- AlicenseAqualityDmaintenanceOffline MCP server for ICD medical code lookup, search, and crosswalk translation with 124K codes and 102K mappings, all local with zero network calls.53MIT