Voa TISS MCP
MCP server for validating TISS medical billing documents, querying TUSS codes, insurance operators, and ANS open data. It allows agents to simulate operators, audit claims, and process billing offline or via remote API.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://tiss-api.voa.health/mcpWhat you can do with it
- Validate TISS billing documents offline
- Query TUSS codes and insurance operators
- Simulate insurance operator responses
- Audit medical claims and glosas
Source and maintenance
- Maintenance checked
Protocol and capabilities
- Server
- tiss 1.30.0
- MCP protocol
- 2025-06-18
- Tools
- 26 advertised
- Resources
- 8 advertised
- Resource templates
- 4 advertised
- Prompts
- 3 advertised
{
"tools": {
"listChanged": false
},
"prompts": {
"listChanged": false
},
"resources": {
"subscribe": false,
"listChanged": false
},
"experimental": {}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
26 advertised
tiss_validate
Valida XML TISS ou lote em JSON. Quando usar: antes de gerar ou enviar um lote. Quando não usar: para corrigir achados sem aplicar o ciclo validar → tiss_apply_fixes → validar de novo.
{
"type": "object",
"properties": {
"xml": {
"type": "string"
},
"data": {
"type": "string",
"format": "date"
},
"lote": {
"type": "object",
"properties": {},
"description": "Schema estrutural disponível em tiss://schemas/lote.",
"additionalProperties": true
},
"contexto": {
"type": "object",
"properties": {
"autorizacoes": {
"type": "object"
},
"carteirinhas": {
"type": "object"
},
"tabela_operadora": {
"type": "object",
"properties": {
"max_guias": {
"type": "integer",
"minimum": 1
},
"registro_ans": {
"type": "string"
},
"vigencia_fim": {
"type": [
"string",
"null"
],
"format": "date"
},
"procedimentos": {
"type": "array",
"items": {
"type": "string"
}
},
"vigencia_inicio": {
"type": "string",
"format": "date"
},
"exige_autorizacao": {
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": false
}
},
"additionalProperties": false
},
"operadora": {
"type": "string",
"pattern": "^[0-9]{5,6}$"
}
},
"additionalProperties": false
}{
"type": "object",
"title": "Report",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"valid",
"version",
"findings"
],
"properties": {
"valid": {
"type": "boolean"
},
"decisao": {
"type": "object",
"required": [
"tipo",
"rules",
"needs"
],
"properties": {
"tipo": {
"enum": [
"aprovar_por_regra",
"pendente",
"encaminhar_auditor"
]
},
"needs": {
"type": "array",
"items": {
"type": "string"
}
},
"rules": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"source",
"mantenedor"
],
"properties": {
"id": {
"type": "string"
},
"source": {
"type": "object",
"required": [
"url",
"titulo",
"data",
"acesso",
"official"
],
"properties": {
"url": {
"type": "string"
},
"data": {
"type": "string"
},
"acesso": {
"type": "string"
},
"titulo": {
"type": "string"
},
"official": {
"type": "boolean"
}
},
"additionalProperties": false
},
"mantenedor": {
"type": "object",
"required": [
"tipo"
],
"properties": {
"tipo": {
"enum": [
"comunidade",
"operadora"
]
},
"registro_ans": {
"type": "string"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}
}
},
"additionalProperties": false
},
"version": {
"type": [
"string",
"null"
]
},
"findings": {
"type": "array",
"items": {
"type": "object",
"title": "Finding",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"code",
"severity",
"guia",
"xpath",
"pointer",
"message",
"fix",
"needs",
"glosa",
"rule"
],
"properties": {
"fix": {
"anyOf": [
{
"type": "null"
},
{
"type": "array",
"items": {
"type": "object"
}
}
]
},
"code": {
"enum": [
"audit.autorizacao_ausente",
"audit.autorizacao_vencida",
"audit.carteirinha_ausente",
"audit.carteirinha_inativa",
"audit.carteirinha_vencida",
"audit.data_ausente",
"audit.operadora_divergente",
"audit.procedimento_ausente",
"audit.procedimento_fora_da_tabela",
"audit.tabela_fora_de_vigencia",
"audit.tabela_sem_procedimentos",
"audit.valor_nao_positivo",
"autorizacao.carteirinha",
"autorizacao.dado_ausente",
"autorizacao.exige_auditoria",
"autorizacao.sem_regra",
"guia.carteirinha_ausente",
"guia.executante_ausente",
"guia.sequencial",
"item.valor_divergente",
"item.valor_zerado",
"lote.acima_do_teto",
"lote.caractere_invalido",
"lote.estrutura",
"lote.guia_duplicada",
"lote.hash_divergente",
"lote.valor_total_geral",
"lote.vazio",
"regra.combinacao_proibida",
"regra.exige_autorizacao",
"regra.max_itens",
"regra.obrigatorio",
"regra.padrao",
"regra.valores",
"tuss.fora_de_vigencia",
"tuss.inexistente",
"versao.divergente",
"versao.nao_detectada",
"versao.nao_suportada",
"xml.doctype",
"xml.encoding",
"xml.malformado",
"xsd.atributo",
"xsd.elemento_ausente",
"xsd.elemento_inesperado",
"xsd.enumeracao",
"xsd.outro",
"xsd.padrao",
"xsd.tamanho",
"xsd.tipo"
]
},
"guia": {
"type": [
"string",
"null"
]
},
"rule": {
"type": [
"object",
"null"
]
},
"glosa": {
"type": [
"string",
"null"
]
},
"needs": {
"anyOf": [
{
"type": "null"
},
{
"type": "array",
"items": {
"type": "string"
}
}
]
},
"xpath": {
"type": [
"string",
"null"
]
},
"message": {
"type": "string"
},
"pointer": {
"type": [
"string",
"null"
]
},
"severity": {
"enum": [
"error",
"warning"
]
}
},
"additionalProperties": false
}
}
},
"additionalProperties": false
}tiss_parse_demonstrativo
Lê decisões de um demonstrativo. Quando usar: para identificar pagamentos e glosas. Quando não usar: para validar lotes.
{
"type": "object",
"required": [
"xml"
],
"properties": {
"xml": {
"type": "string"
}
},
"additionalProperties": false
}{
"type": "object",
"required": [
"decisoes"
],
"properties": {
"decisoes": {
"type": "array",
"items": {
"type": "object",
"required": [
"guia_ref",
"decision",
"motivo"
],
"properties": {
"motivo": {
"type": "string"
},
"decision": {
"enum": [
"pago",
"glosado",
"glosa_parcial"
]
},
"guia_ref": {
"type": "string"
},
"tuss_code": {
"type": "string"
},
"guia_operadora": {
"type": "string"
},
"valor_glosa_cents": {
"type": "integer"
},
"valor_liberado_cents": {
"type": "integer"
}
},
"additionalProperties": true
}
}
},
"additionalProperties": false
}tiss_plan_reconciliation
Propõe vínculos entre decisões e guias. Quando usar: após ler um demonstrativo. Quando não usar: para alterar guias.
{
"type": "object",
"required": [
"decisoes",
"guias"
],
"properties": {
"guias": {
"type": "array",
"items": {
"type": "object",
"properties": {},
"additionalProperties": true
}
},
"id_key": {
"type": "string"
},
"decisoes": {
"type": "array",
"items": {
"type": "object",
"required": [
"guia_ref",
"decision",
"motivo"
],
"properties": {
"motivo": {
"type": "string"
},
"decision": {
"enum": [
"pago",
"glosado",
"glosa_parcial"
]
},
"guia_ref": {
"type": "string"
},
"tuss_code": {
"type": "string"
},
"guia_operadora": {
"type": "string"
},
"valor_glosa_cents": {
"type": "integer"
},
"valor_liberado_cents": {
"type": "integer"
}
},
"additionalProperties": true
}
},
"status_key": {
"type": "string"
},
"operadora_key": {
"type": "string"
},
"prestador_key": {
"type": "string"
}
},
"additionalProperties": false
}{
"type": "object",
"required": [
"propostas",
"sem_par",
"ambiguas"
],
"properties": {
"sem_par": {
"type": "array",
"items": {
"type": "object",
"required": [
"guia_ref",
"decision",
"motivo"
],
"properties": {
"motivo": {
"type": "string"
},
"decision": {
"enum": [
"pago",
"glosado",
"glosa_parcial"
]
},
"guia_ref": {
"type": "string"
},
"tuss_code": {
"type": "string"
},
"guia_operadora": {
"type": "string"
},
"valor_glosa_cents": {
"type": "integer"
},
"valor_liberado_cents": {
"type": "integer"
}
},
"additionalProperties": true
}
},
"ambiguas": {
"type": "array",
"items": {
"type": "object",
"required": [
"guia_ref",
"decision",
"motivo"
],
"properties": {
"motivo": {
"type": "string"
},
"decision": {
"enum": [
"pago",
"glosado",
"glosa_parcial"
]
},
"guia_ref": {
"type": "string"
},
"tuss_code": {
"type": "string"
},
"guia_operadora": {
"type": "string"
},
"valor_glosa_cents": {
"type": "integer"
},
"valor_liberado_cents": {
"type": "integer"
}
},
"additionalProperties": true
}
},
"propostas": {
"type": "array",
"items": {
"type": "object",
"properties": {},
"additionalProperties": true
}
}
},
"additionalProperties": false
}tuss_lookup
Busca um código TUSS exato. Quando usar: para consultar código ou vigência. Quando não usar: para buscar por descrição.
{
"type": "object",
"required": [
"code"
],
"properties": {
"code": {
"type": "string"
},
"data": {
"type": "string",
"format": "date"
},
"tabela": {
"type": "string"
},
"include_expired": {
"type": "boolean"
}
},
"additionalProperties": false
}{
"type": "object",
"required": [
"resultados"
],
"properties": {
"resultados": {
"type": "array",
"items": {
"type": "object",
"properties": {},
"additionalProperties": true
}
}
},
"additionalProperties": false
}tuss_search
Busca códigos TUSS por texto. Quando usar: para localizar procedimentos por descrição. Quando não usar: para validar XML.
{
"type": "object",
"required": [
"text"
],
"properties": {
"data": {
"type": "string",
"format": "date"
},
"text": {
"type": "string"
},
"limite": {
"type": "integer",
"default": 20,
"maximum": 100,
"minimum": 1
},
"tabela": {
"type": "string"
},
"include_expired": {
"type": "boolean"
}
},
"additionalProperties": false
}{
"type": "object",
"required": [
"resultados"
],
"properties": {
"resultados": {
"type": "array",
"items": {
"type": "object",
"properties": {},
"additionalProperties": true
}
}
},
"additionalProperties": false
}tiss_sadt_missing
Identifica campos obrigatórios SP/SADT ausentes. Quando usar: antes de renderizar uma guia. Quando não usar: para validar um lote.
{
"type": "object",
"required": [
"values"
],
"properties": {
"values": {
"type": "object",
"properties": {},
"additionalProperties": true
}
},
"additionalProperties": false
}{
"type": "object",
"required": [
"faltando"
],
"properties": {
"faltando": {
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": false
}tiss_sadt_catalog
Retorna o catálogo SP/SADT. Quando usar: para conhecer campos e domínios. Quando não usar: para preencher uma guia sem dados.
{
"type": "object",
"properties": {},
"additionalProperties": false
}{
"type": "object",
"properties": {},
"additionalProperties": true
}tiss_rede
Consulta as operadoras vinculadas a um CNPJ ou CNES. Quando usar: para identificar vínculos de um estabelecimento. Quando não usar: para buscar o cadastro geral; use operadora_lookup.
{
"type": "object",
"properties": {
"cnes": {
"type": "string"
},
"cnpj": {
"type": "string"
},
"limite": {
"type": "integer",
"default": 200,
"maximum": 1000,
"minimum": 1
}
},
"additionalProperties": false
}{
"type": "object",
"required": [
"atualizado_em",
"fonte",
"total",
"operadoras"
],
"properties": {
"fonte": {
"type": "string"
},
"total": {
"type": "integer"
},
"operadoras": {
"type": "array",
"items": {
"type": "object",
"required": [
"registro_ans",
"nome",
"cnes",
"nome_estabelecimento",
"tipo_contrato",
"disponibilidade",
"tipo_prestador",
"urgencia_emergencia",
"dt_vinculo_inicio",
"planos"
],
"properties": {
"cnes": {
"type": [
"string",
"null"
]
},
"nome": {
"type": [
"string",
"null"
]
},
"planos": {
"type": "integer"
},
"registro_ans": {
"type": "string"
},
"tipo_contrato": {
"type": "array",
"items": {
"type": "string"
}
},
"tipo_prestador": {
"type": "array",
"items": {
"type": "string"
}
},
"disponibilidade": {
"type": "array",
"items": {
"type": "string"
}
},
"dt_vinculo_inicio": {
"type": [
"string",
"null"
]
},
"urgencia_emergencia": {
"type": "boolean"
},
"nome_estabelecimento": {
"type": "string"
}
},
"additionalProperties": false
}
},
"atualizado_em": {
"type": "string"
}
},
"additionalProperties": false
}operadora_rede
Consulta os estabelecimentos vinculados a uma operadora. Quando usar: para identificar unidades da rede por UF. Quando não usar: para buscar o cadastro geral; use operadora_lookup.
{
"type": "object",
"required": [
"registro"
],
"properties": {
"uf": {
"type": "string",
"pattern": "^[A-Za-z]{2}$"
},
"limite": {
"type": "integer",
"default": 200,
"maximum": 1000,
"minimum": 1
},
"registro": {
"type": "string"
}
},
"additionalProperties": false
}{
"type": "object",
"required": [
"atualizado_em",
"fonte",
"registro_ans",
"total",
"por_uf",
"estabelecimentos"
],
"properties": {
"fonte": {
"type": "string"
},
"total": {
"type": "integer"
},
"por_uf": {
"type": "object",
"additionalProperties": {
"type": "integer"
}
},
"registro_ans": {
"type": "string"
},
"atualizado_em": {
"type": "string"
},
"estabelecimentos": {
"type": "array",
"items": {
"type": "object",
"required": [
"cnes",
"cnpj",
"nome",
"classe",
"cd_municipio",
"uf",
"tipo_contrato",
"disponibilidade",
"tipo_prestador",
"urgencia_emergencia",
"dt_vinculo_inicio",
"planos"
],
"properties": {
"uf": {
"type": "string"
},
"cnes": {
"type": [
"string",
"null"
]
},
"cnpj": {
"type": [
"string",
"null"
]
},
"nome": {
"type": "string"
},
"classe": {
"type": [
"string",
"null"
]
},
"planos": {
"type": "integer"
},
"cd_municipio": {
"type": [
"string",
"null"
]
},
"tipo_contrato": {
"type": "array",
"items": {
"type": "string"
}
},
"tipo_prestador": {
"type": "array",
"items": {
"type": "string"
}
},
"disponibilidade": {
"type": "array",
"items": {
"type": "string"
}
},
"dt_vinculo_inicio": {
"type": [
"string",
"null"
]
},
"urgencia_emergencia": {
"type": "boolean"
}
},
"additionalProperties": false
}
}
},
"additionalProperties": false
}operadora_perfil
Consulta o cadastro e a série semestral de glosa e pagamento de uma operadora na ANS. Quando usar: para conhecer uma operadora pelo registro ANS. Quando não usar: para buscar operadoras por nome.
{
"type": "object",
"required": [
"registro_ans"
],
"properties": {
"registro_ans": {
"type": "string",
"pattern": "^[0-9]{5,6}$"
}
},
"additionalProperties": false
}{
"type": "object",
"required": [
"registro_ans",
"razao_social",
"indicadores"
],
"properties": {
"indicadores": {
"type": "object",
"required": [
"fonte",
"serie"
],
"properties": {
"fonte": {
"type": "object",
"properties": {},
"additionalProperties": true
},
"serie": {
"type": "array",
"items": {
"type": "object",
"properties": {},
"additionalProperties": true
}
}
},
"additionalProperties": false
},
"razao_social": {
"type": "string"
},
"registro_ans": {
"type": "string"
}
},
"additionalProperties": true
}tiss_sandbox_enviar_lote
Envia um lote à operadora simulada. Quando usar: para testar integração local. Quando não usar: para transmitir dados reais.
{
"type": "object",
"required": [
"xml"
],
"properties": {
"xml": {
"type": "string"
},
"cenario": {
"enum": [
"aprovado",
"duplicidade",
"carteirinha_vencida",
"sem_autorizacao",
"falha_transitoria",
"falha_permanente"
]
},
"tentativa": {
"type": "integer",
"minimum": 1
},
"registro_ans": {
"type": "string",
"pattern": "^[0-9]{5,6}$"
}
},
"additionalProperties": false
}{
"type": "object",
"required": [
"aceito",
"protocolo",
"numero_protocolo",
"numero_lote",
"cenario",
"findings"
],
"properties": {
"aceito": {
"type": "boolean"
},
"resumo": {
"type": "object",
"properties": {},
"additionalProperties": true
},
"cenario": {
"type": "string"
},
"findings": {
"type": "array",
"items": {
"type": "object",
"properties": {},
"additionalProperties": true
}
},
"protocolo": {
"type": [
"string",
"null"
]
},
"numero_lote": {
"type": [
"string",
"null"
]
},
"numero_protocolo": {
"type": [
"string",
"null"
]
}
},
"additionalProperties": true
}tiss_sandbox_demonstrativo
Gera o demonstrativo de um protocolo simulado. Quando usar: após enviar um lote. Quando não usar: com protocolo de outra operadora.
{
"type": "object",
"required": [
"protocolo"
],
"properties": {
"protocolo": {
"type": "string"
}
},
"additionalProperties": false
}{
"type": "object",
"required": [
"protocolo",
"xml"
],
"properties": {
"xml": {
"type": "string"
},
"protocolo": {
"type": "string"
}
},
"additionalProperties": false
}tiss_build
Gera o XML TISS 4.03.00 de um lote em JSON, com hash do epílogo. Consulte tiss://schemas/lote para o esquema estrutural. Quando usar: depois de validar o lote em JSON sem erros. Quando não usar: para corrigir achados; use tiss_apply_fixes.
{
"type": "object",
"required": [
"lote"
],
"properties": {
"lote": {
"type": "object",
"properties": {},
"description": "Schema estrutural disponível em tiss://schemas/lote.",
"additionalProperties": true
}
},
"additionalProperties": true
}{
"type": "object",
"required": [
"xml",
"hash"
],
"properties": {
"xml": {
"type": "string"
},
"hash": {
"type": "string"
}
},
"additionalProperties": false
}tiss_hash
Calcula o hash do epílogo de um XML TISS. Quando usar: para conferir a integridade do XML. Quando não usar: para validar o conteúdo; use tiss_validate.
{
"type": "object",
"required": [
"xml"
],
"properties": {
"xml": {
"type": "string"
}
},
"additionalProperties": false
}{
"type": "object",
"required": [
"hash"
],
"properties": {
"hash": {
"type": "string"
}
},
"additionalProperties": false
}tiss_audit
Audita um lote JSON com regras locais e contexto da operadora. Quando usar: para identificar inconsistências administrativas. Quando não usar: para aplicar correções; use tiss_apply_fixes.
{
"type": "object",
"required": [
"lote"
],
"properties": {
"data": {
"type": "string",
"format": "date"
},
"lote": {
"type": "object",
"properties": {},
"additionalProperties": true
},
"contexto": {
"type": "object",
"properties": {
"autorizacoes": {
"type": "object"
},
"carteirinhas": {
"type": "object"
},
"tabela_operadora": {
"type": "object",
"properties": {
"max_guias": {
"type": "integer",
"minimum": 1
},
"registro_ans": {
"type": "string"
},
"vigencia_fim": {
"type": [
"string",
"null"
],
"format": "date"
},
"procedimentos": {
"type": "array",
"items": {
"type": "string"
}
},
"vigencia_inicio": {
"type": "string",
"format": "date"
},
"exige_autorizacao": {
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": false
}
},
"additionalProperties": false
},
"operadora": {
"type": [
"string",
"object"
],
"pattern": "^[0-9]{5,6}$"
}
},
"additionalProperties": false
}{
"type": "object",
"title": "Report",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"valid",
"version",
"findings"
],
"properties": {
"valid": {
"type": "boolean"
},
"decisao": {
"type": "object",
"required": [
"tipo",
"rules",
"needs"
],
"properties": {
"tipo": {
"enum": [
"aprovar_por_regra",
"pendente",
"encaminhar_auditor"
]
},
"needs": {
"type": "array",
"items": {
"type": "string"
}
},
"rules": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"source",
"mantenedor"
],
"properties": {
"id": {
"type": "string"
},
"source": {
"type": "object",
"required": [
"url",
"titulo",
"data",
"acesso",
"official"
],
"properties": {
"url": {
"type": "string"
},
"data": {
"type": "string"
},
"acesso": {
"type": "string"
},
"titulo": {
"type": "string"
},
"official": {
"type": "boolean"
}
},
"additionalProperties": false
},
"mantenedor": {
"type": "object",
"required": [
"tipo"
],
"properties": {
"tipo": {
"enum": [
"comunidade",
"operadora"
]
},
"registro_ans": {
"type": "string"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}
}
},
"additionalProperties": false
},
"version": {
"type": [
"string",
"null"
]
},
"findings": {
"type": "array",
"items": {
"type": "object",
"title": "Finding",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"code",
"severity",
"guia",
"xpath",
"pointer",
"message",
"fix",
"needs",
"glosa",
"rule"
],
"properties": {
"fix": {
"anyOf": [
{
"type": "null"
},
{
"type": "array",
"items": {
"type": "object"
}
}
]
},
"code": {
"enum": [
"audit.autorizacao_ausente",
"audit.autorizacao_vencida",
"audit.carteirinha_ausente",
"audit.carteirinha_inativa",
"audit.carteirinha_vencida",
"audit.data_ausente",
"audit.operadora_divergente",
"audit.procedimento_ausente",
"audit.procedimento_fora_da_tabela",
"audit.tabela_fora_de_vigencia",
"audit.tabela_sem_procedimentos",
"audit.valor_nao_positivo",
"autorizacao.carteirinha",
"autorizacao.dado_ausente",
"autorizacao.exige_auditoria",
"autorizacao.sem_regra",
"guia.carteirinha_ausente",
"guia.executante_ausente",
"guia.sequencial",
"item.valor_divergente",
"item.valor_zerado",
"lote.acima_do_teto",
"lote.caractere_invalido",
"lote.estrutura",
"lote.guia_duplicada",
"lote.hash_divergente",
"lote.valor_total_geral",
"lote.vazio",
"regra.combinacao_proibida",
"regra.exige_autorizacao",
"regra.max_itens",
"regra.obrigatorio",
"regra.padrao",
"regra.valores",
"tuss.fora_de_vigencia",
"tuss.inexistente",
"versao.divergente",
"versao.nao_detectada",
"versao.nao_suportada",
"xml.doctype",
"xml.encoding",
"xml.malformado",
"xsd.atributo",
"xsd.elemento_ausente",
"xsd.elemento_inesperado",
"xsd.enumeracao",
"xsd.outro",
"xsd.padrao",
"xsd.tamanho",
"xsd.tipo"
]
},
"guia": {
"type": [
"string",
"null"
]
},
"rule": {
"type": [
"object",
"null"
]
},
"glosa": {
"type": [
"string",
"null"
]
},
"needs": {
"anyOf": [
{
"type": "null"
},
{
"type": "array",
"items": {
"type": "string"
}
}
]
},
"xpath": {
"type": [
"string",
"null"
]
},
"message": {
"type": "string"
},
"pointer": {
"type": [
"string",
"null"
]
},
"severity": {
"enum": [
"error",
"warning"
]
}
},
"additionalProperties": false
}
}
},
"additionalProperties": false
}tiss_rejection_map
Agrega achados por prestador e mês, sem expor dados das guias; CPF é pseudonimizado. Quando usar: para analisar rejeições por prestador. Quando não usar: para consultar guias individuais ou corrigir lotes.
{
"type": "object",
"required": [
"lotes"
],
"properties": {
"data": {
"type": "string",
"format": "date"
},
"lotes": {
"type": "array",
"items": {
"type": [
"string",
"object"
]
},
"maxItems": 100,
"minItems": 1
},
"regras": {
"type": "object",
"properties": {},
"additionalProperties": true
},
"contexto": {
"type": "object",
"properties": {
"autorizacoes": {
"type": "object"
},
"carteirinhas": {
"type": "object"
},
"tabela_operadora": {
"type": "object",
"properties": {
"max_guias": {
"type": "integer",
"minimum": 1
},
"registro_ans": {
"type": "string"
},
"vigencia_fim": {
"type": [
"string",
"null"
],
"format": "date"
},
"procedimentos": {
"type": "array",
"items": {
"type": "string"
}
},
"vigencia_inicio": {
"type": "string",
"format": "date"
},
"exige_autorizacao": {
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": false
}
},
"additionalProperties": false
},
"operadora": {
"type": "string",
"pattern": "^[0-9]{5,6}$"
},
"segredo_pseudonimo": {
"type": "string",
"minLength": 16
}
},
"additionalProperties": false
}{
"type": "object",
"required": [
"version",
"lotes",
"guias",
"ignored",
"providers",
"rows"
],
"properties": {
"rows": {
"type": "array",
"items": {
"type": "object",
"required": [
"provider",
"month",
"code",
"glosa",
"rule_id",
"guias",
"affected_amount"
],
"properties": {
"code": {
"type": "string"
},
"glosa": {
"type": [
"string",
"null"
]
},
"guias": {
"type": "integer",
"minimum": 0
},
"month": {
"type": [
"string",
"null"
],
"pattern": "^\\d{4}-\\d{2}$"
},
"rule_id": {
"type": [
"string",
"null"
]
},
"provider": {
"type": "string",
"pattern": "^(codigo:.+|cnpj:\\d{14}|cpf:hmac:[0-9a-f]{64})$"
},
"affected_amount": {
"type": "string",
"pattern": "^-?\\d+\\.\\d{2}$"
}
},
"additionalProperties": false
}
},
"guias": {
"type": "integer",
"minimum": 0
},
"lotes": {
"type": "integer",
"minimum": 0
},
"ignored": {
"type": "array",
"items": {
"type": "integer",
"minimum": 0
}
},
"version": {
"const": "2"
},
"providers": {
"type": "array",
"items": {
"type": "object",
"required": [
"provider",
"month",
"guias",
"guias_with_finding",
"total_amount",
"affected_amount"
],
"properties": {
"guias": {
"type": "integer",
"minimum": 0
},
"month": {
"type": [
"string",
"null"
],
"pattern": "^\\d{4}-\\d{2}$"
},
"provider": {
"type": "string",
"pattern": "^(codigo:.+|cnpj:\\d{14}|cpf:hmac:[0-9a-f]{64})$"
},
"total_amount": {
"type": "string",
"pattern": "^-?\\d+\\.\\d{2}$"
},
"affected_amount": {
"type": "string",
"pattern": "^-?\\d+\\.\\d{2}$"
},
"guias_with_finding": {
"type": "integer",
"minimum": 0
}
},
"additionalProperties": false
}
}
},
"additionalProperties": false
}tiss_apply_fixes
Aplica correções JSON Patch de um relatório ao lote. Quando usar: depois de tiss_validate ou tiss_audit com achados corrigíveis. Quando não usar: para inventar dados ausentes; peça-os ao usuário.
{
"type": "object",
"required": [
"lote",
"report"
],
"properties": {
"lote": {
"type": "object",
"properties": {},
"additionalProperties": true
},
"report": {
"type": "object",
"required": [
"findings"
],
"properties": {
"findings": {
"type": "array",
"items": {
"type": "object",
"properties": {},
"additionalProperties": true
}
}
},
"additionalProperties": true
}
},
"additionalProperties": false
}{
"type": "object",
"required": [
"lote"
],
"properties": {
"lote": {
"type": "object",
"properties": {},
"additionalProperties": true
}
},
"additionalProperties": false
}glosa_explain
Explica um código da Tabela 38 da ANS. Quando usar: ao interpretar uma glosa recebida. Quando não usar: para validar ou corrigir o lote.
{
"type": "object",
"required": [
"codigo"
],
"properties": {
"codigo": {
"type": "string",
"pattern": "^[0-9]{4}$"
}
},
"additionalProperties": false
}{
"type": "object",
"required": [
"codigo",
"descricao",
"grupo",
"fonte",
"orientacao"
],
"properties": {
"fonte": {
"type": "object",
"required": [
"data",
"titulo",
"url"
],
"properties": {
"url": {
"type": "string"
},
"data": {
"type": "string"
},
"titulo": {
"type": "string"
}
},
"additionalProperties": true
},
"grupo": {
"type": "string"
},
"codigo": {
"type": "string"
},
"descricao": {
"type": "string"
},
"orientacao": {
"type": "object",
"required": [
"fonte",
"texto"
],
"properties": {
"fonte": {
"type": "string"
},
"texto": {
"type": "string"
}
},
"additionalProperties": true
}
},
"additionalProperties": true
}tiss_dominio
Consulta tabelas e códigos de domínio TISS. Quando usar: para localizar um código ou termo de domínio. Quando não usar: para buscar procedimentos TUSS; use tuss_search.
{
"not": {
"required": [
"codigo",
"texto"
]
},
"type": "object",
"properties": {
"data": {
"type": "string",
"format": "date"
},
"texto": {
"type": "string"
},
"codigo": {
"type": "string"
},
"limite": {
"type": "integer",
"default": 20,
"maximum": 100,
"minimum": 1
},
"tabela": {
"type": "string"
},
"include_expired": {
"type": "boolean"
}
},
"dependentRequired": {
"codigo": [
"tabela"
]
},
"additionalProperties": false
}{
"type": "object",
"properties": {
"tabelas": {
"type": "array",
"items": {
"type": "object",
"properties": {},
"additionalProperties": true
}
},
"resultados": {
"type": "array",
"items": {
"type": "object",
"properties": {},
"additionalProperties": true
}
}
},
"additionalProperties": false
}operadora_lookup
Busca operadoras ativas pelo nome, registro, CNPJ ou localidade. Quando usar: para localizar uma operadora na base pública. Quando não usar: para consultar vínculos hospitalares; use tiss_rede.
{
"type": "object",
"required": [
"texto"
],
"properties": {
"texto": {
"type": "string"
},
"limite": {
"type": "integer",
"default": 10,
"maximum": 50,
"minimum": 1
}
},
"additionalProperties": false
}{
"type": "object",
"required": [
"resultados"
],
"properties": {
"resultados": {
"type": "array",
"items": {
"type": "object",
"properties": {},
"additionalProperties": true
}
}
},
"additionalProperties": false
}tiss_referencia
Consulta valores unitários de referência D-TISS da ANS por procedimento TUSS. Quando usar: para comparar valores informados por UF, modalidade, porte e semestre. Quando não usar: para glosa ou preço contratado de uma operadora; use as ferramentas de operadoras.
{
"type": "object",
"required": [
"codigo",
"uf"
],
"properties": {
"uf": {
"type": "string",
"pattern": "^[A-Za-z]{2}$"
},
"porte": {
"type": "string"
},
"codigo": {
"type": "string",
"pattern": "^[0-9]{1,10}$"
},
"tabela": {
"type": "string",
"pattern": "^[0-9]{2}$"
},
"semestre": {
"type": "string",
"pattern": "^[0-9]{4}-[12]$"
},
"modalidade": {
"type": "string"
}
},
"additionalProperties": false
}{
"type": "object",
"required": [
"referencia",
"semestre",
"fonte",
"atualizado_em",
"aviso",
"minimo_n"
],
"properties": {
"aviso": {
"type": [
"string",
"null"
]
},
"fonte": {
"type": "string"
},
"minimo_n": {
"type": "integer"
},
"semestre": {
"type": "string"
},
"referencia": {
"type": [
"object",
"null"
],
"additionalProperties": true
},
"atualizado_em": {
"type": "string"
}
},
"additionalProperties": false
}tiss_autorizacao_build
Gera XML TISS 4.03.00 para solicitação ou resposta de autorização SP/SADT.
{
"type": "object",
"required": [
"mensagem"
],
"properties": {
"mensagem": {
"type": "object",
"properties": {},
"additionalProperties": true
}
},
"additionalProperties": false
}{
"type": "object",
"required": [
"xml",
"hash"
],
"properties": {
"xml": {
"type": "string"
},
"hash": {
"type": "string"
}
},
"additionalProperties": false
}tiss_autorizacao_parse
Interpreta solicitações e respostas de autorização SP/SADT.
{
"type": "object",
"required": [
"xml"
],
"properties": {
"xml": {
"type": "string"
}
},
"additionalProperties": false
}{
"type": "object",
"required": [
"mensagem"
],
"properties": {
"mensagem": {
"type": "object",
"properties": {},
"additionalProperties": true
}
},
"additionalProperties": false
}tiss_autorizacao_check
Valida uma solicitação SP/SADT e retorna uma decisão explicável.
{
"type": "object",
"properties": {
"xml": {
"type": "string"
},
"contexto": {
"type": "object",
"properties": {},
"additionalProperties": true
},
"solicitacao": {
"type": "object",
"properties": {},
"additionalProperties": true
}
},
"additionalProperties": false
}{
"type": "object",
"properties": {},
"additionalProperties": true
}tiss_sandbox_autorizacao
Gera uma resposta SP/SADT sintética nos cenários disponíveis.
{
"type": "object",
"properties": {
"xml": {
"type": "string"
},
"cenario": {
"enum": [
"aprovado",
"pendente",
"negado"
]
},
"solicitacao": {
"type": "object",
"properties": {},
"additionalProperties": true
}
},
"additionalProperties": false
}{
"type": "object",
"required": [
"xml"
],
"properties": {
"xml": {
"type": "string"
}
},
"additionalProperties": false
}buscar_docs
Busca trechos da documentação local da biblioteca. Quando usar: para encontrar instruções e referências da API. Quando não usar: para consultar dados clínicos ou códigos específicos.
{
"type": "object",
"required": [
"texto"
],
"properties": {
"texto": {
"type": "string"
},
"limite": {
"type": "integer",
"default": 3,
"maximum": 10,
"minimum": 1
}
},
"additionalProperties": false
}{
"type": "object",
"required": [
"resultados"
],
"properties": {
"resultados": {
"type": "array",
"items": {
"type": "object",
"required": [
"uri",
"titulo",
"trecho"
],
"properties": {
"uri": {
"type": "string"
},
"titulo": {
"type": "string"
},
"trecho": {
"type": "string"
}
},
"additionalProperties": false
}
}
},
"additionalProperties": false
}Prompts
3 advertised
montar_lote
Monta um lote TISS a partir de atendimentos e valida até convergir.
- atendimentos
- Atendimentos em JSON ou texto, com guias e procedimentos. (required)
- operadora
- Registro ANS da operadora, quando conhecido.
corrigir_lote_rejeitado
Corrige um lote rejeitado pela operadora e revalida.
- lote
- Lote em JSON (esquema `lote`) ou XML TISS rejeitado. (required)
- motivo
- Mensagem ou código de glosa devolvido pela operadora.
- operadora
- Registro ANS da operadora, quando conhecido.
tratar_demonstrativo
Lê um demonstrativo, explica as glosas e propõe a conciliação.
- xml
- XML do demonstrativo de análise de conta. (required)
- guias
- Guias do sistema do usuário em JSON, para conciliar.
Resources
8 advertised
codigos
Códigos estáveis de validação.
tiss://codigoscatalogo-sadt
Campos do catálogo SP/SADT.
tiss://sadt/catalogoreadme
Documentação principal.
tiss://docs/readmeapi
Operações HTTP e tools MCP.
tiss://docs/apischema-lote
Schema JSON estrutural para lotes TISS.
tiss://schemas/lotedominio-tabelas
Tabelas de domínio TISS e suas fontes.
tiss://dominio/tabelasoperadoras
Origem e quantidade de operadoras locais.
tiss://operadorasregras-schema
Esquema dos pacotes de regras por operadora.
tiss://regras/schematuss-paginado
Página local do catálogo TUSS.
tiss://tuss/{tabela}/{pagina}dominio-tabela
Registros locais de uma tabela de domínio TISS.
tiss://dominio/{tabela}operadora-perfil
Cadastro e indicadores públicos de uma operadora.
tiss://operadoras/{registro_ans}operadora-regras
Pacote de regras publicado para uma operadora.
tiss://regras/{registro_ans}30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 1100 ms
- 95th percentile latency
- 1100 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 1100 ms · metadata changed · 26 tool(s), 8 resource(s), 4 resource template(s), 3 prompt(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http voa-tiss-mcp https://tiss-api.voa.health/mcpCodex
codex mcp add voa-tiss-mcp --url https://tiss-api.voa.health/mcpCursor
{
"mcpServers": {
"voa-tiss-mcp": {
"url": "https://tiss-api.voa.health/mcp"
}
}
}Cline
{
"mcpServers": {
"voa-tiss-mcp": {
"type": "streamableHttp",
"url": "https://tiss-api.voa.health/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"voa-tiss-mcp": {
"type": "http",
"url": "https://tiss-api.voa.health/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http voa-tiss-mcp https://tiss-api.voa.health/mcpClaude Desktop
{
"mcpServers": {
"voa-tiss-mcp": {
"url": "https://tiss-api.voa.health/mcp"
}
}
}Windsurf
{
"mcpServers": {
"voa-tiss-mcp": {
"serverUrl": "https://tiss-api.voa.health/mcp"
}
}
}Let your agent find its tools
Find servers like Voa TISS MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.
Other developer tools servers
Do you run Voa TISS MCP?
Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.