MCP server: One MCP server.

voa-tiss

@voaRun by its publisher: served from their own domain, namespace checked by the registry.MCP server · External

Ferramentas para validar documentos TISS e consultar TUSS, operadoras e dados da ANS.

Insurancev0.3.0Apache-2.0Python
Freeno charge per call

One address for any MCP client. No sign-in needed on this server.

Agente faturista fechando o ciclo TISS no terminal: valida o lote, corrige, envia à operadora simulada, lê as glosas e rascunha os recursos
From the README

What it does

8 read1 act16 other

Grouped by tool name. At most: creates or changes data: records, files, settings.

What it costs

Free

Odel charges nothing per call. The publisher may charge for its own service.

Tools

25 · grouped by tool name · checked 23 Oct 2026

Read · 8Look things up

  • tiss_validate
  • tiss_parse_demonstrativo
  • tuss_lookup
  • tuss_search
  • glosa_explain
  • operadora_lookup
  • tiss_autorizacao_parse
  • tiss_autorizacao_check

Act · 1Change something

  • tiss_apply_fixes

Other · 16Neither hinted nor named

  • tiss_plan_reconciliation
  • tiss_sadt_missing
  • tiss_sadt_catalog
  • tiss_rede
  • operadora_rede
  • operadora_perfil
  • tiss_sandbox_enviar_lote
  • tiss_sandbox_demonstrativo
  • tiss_build
  • tiss_hash
  • tiss_audit
  • tiss_rejection_map
  • tiss_dominio
  • tiss_autorizacao_build
  • tiss_sandbox_autorizacao
  • buscar_docs
Try it in the Inspector
README7 min read

TISS sem dor de cabeça, para pessoas e agentes de IA.

CI Versão no PyPI Versões do Python Licença Apache-2.0 MCP Registry

Valide, corrija e gere lotes TISS, entenda glosas e concilie demonstrativos, tudo em código aberto: uma biblioteca Python que roda offline, uma API HTTP e um MCP remoto para o seu agente de IA.

Agente faturista fechando o ciclo TISS no terminal: valida o lote, corrige, envia à operadora simulada, lê as glosas e rascunha os recursos
O agente faturista usando só o MCP público: corrige dois erros do lote, envia à operadora simulada, lê as glosas e rascunha um recurso por guia, sem inventar evidência.

Tip

Usa Claude Code, Codex ou Cursor? Conecte o MCP e peça em português, por exemplo "valide este lote e corrija o que der". Veja Conectar agentes.

Início rápido

sh
pip install voa-tiss
python
from voa_tiss import examples, validate

report = validate(examples.load("lote-com-erros"))
[(finding.code, finding.severity) for finding in report.findings]

Cada achado traz um código estável, a localização e, quando possível, a correção pronta. Requer Python 3.10+.

Prefere testar no navegador? Abra o playground.

Para quem é

Você éO voa-tiss ajuda a
Prestador (hospital, clínica, laboratório)pegar o erro antes da operadora e entender por que uma guia foi glosada
Profissional de saúdeconferir guias e códigos TUSS sem decorar o manual
Operadorachecar lotes na entrada com as suas regras, offline; ver o mapa de rejeição por prestador; oferecer sandbox com as suas regras; validar autorizações TISS; publicar regras com selo Oficial; e, nos módulos com agente, analisar contas e autorizações prévias
Pacienteentender em linguagem simples o que uma glosa significa
Gestor do SUS ou do governoconsultar dados abertos da ANS sobre operadoras, glosas e rede hospitalar

Como funciona

Você não precisa escrever XML TISS à mão. O ciclo é sempre o mesmo:

  1. Valide o lote com check ou validate.
  2. Corrija com apply_fixes: as correções são determinísticas, em JSON Patch.
  3. Revalide até zerar os erros. Se faltar algum dado, needs diz exatamente qual perguntar.
  4. Gere o XML com build_lote e calcule o hash do epílogo com hash_epilogo.

Depois do envio, parse_demonstrativo lê o retorno da operadora, glosa explica cada código da Tabela 38 e plan_reconciliation concilia o que foi pago com o que foi cobrado. Para testar sem operadora real, use a operadora simulada.

O que vem no pacote

Por que confiar

  • Offline e determinístico: validar, corrigir e gerar roda na sua máquina, sem telemetria; a mesma entrada dá sempre a mesma saída.
  • XSD fixado por hash: a validação usa o esquema TISS oficial, conferido por hash.
  • À prova de prompt injection: texto livre da guia é dado, nunca instrução.
  • Seus dados não ficam com a gente: veja a política de payloads e telemetria em API HTTP.
  • Medido: no TISS-Bench, com quatro modelos, o acerto médio subiu de 58% sem o MCP para 81% com ele. Gerar um lote do zero ainda fica em 16% nos dois modos.

Conectar agentes

O MCP remoto fica em https://tiss-api.voa.health/mcp. Agentes encontram as instruções de uso no AGENTS.md e na skill voa-tiss.

sh
claude mcp add --transport http voa-tiss https://tiss-api.voa.health/mcp

Skill, plugins, Codex e Cursor

Ver detalhes
sh
npx skills add Voa-Health/tiss
claude plugin marketplace add Voa-Health/tiss && claude plugin install voa-tiss@voa-tiss
codex plugin marketplace add Voa-Health/tiss

No Codex, adicione a ~/.codex/config.toml:

toml
[mcp_servers.voa-tiss]
url = "https://tiss-api.voa.health/mcp"

No Cursor, adicione ao mcp.json:

json
{
  "mcpServers": {
    "voa-tiss": {
      "url": "https://tiss-api.voa.health/mcp"
    }
  }
}

Tutoriais

TutorialO que você aprende
Validar um lote (notebook)ler achados e corrigir
Demonstrativo e conciliação (notebook)conferir o que a operadora pagou
TUSS e SP/SADT (notebook)buscar códigos e montar a guia
Gerar e corrigir um lote (notebook)sair do JSON para o XML válido
Regras por operadora (notebook)auditar com regras publicadas
Operadora simulada (notebook)testar envios e glosas
Autorização SP/SADT (notebook)solicitar e analisar autorizações
Mapa de rejeição (notebook)agregar achados por prestador

API HTTP

Servidor local, chaves e telemetria

Ver detalhes

Instale o extra do servidor e inicie a API local:

sh
pip install "voa-tiss[server]"
python -m voa_tiss.server --host 127.0.0.1 --port 8000

Valide XML como JSON ou como corpo XML:

sh
python -c 'import json, pathlib; print(json.dumps({"xml": pathlib.Path("lote.xml").read_text()}))' \
  | curl https://tiss-api.voa.health/v1/validate \
  -H 'Content-Type: application/json' \
  --data-binary @-
curl https://tiss-api.voa.health/v1/validate \
  -H 'Content-Type: application/xml' \
  --data-binary @lote.xml

Consulte o OpenAPI e o catálogo de operações.

Sem chave, só as operações do sandbox respondem. Para as demais, entre com a conta Voa em tiss-api.voa.health/chaves e envie a chave recebida. Não há limite diário.

sh
curl https://tiss-api.voa.health/v1/validate \
  -H "Authorization: Bearer $VOA_TISS_API_KEY" \
  -H 'Content-Type: application/xml' \
  --data-binary @lote.xml

A chave vale 24 horas. Renove com o refresh_token recebido no login; chave inválida ou expirada retorna 401:

sh
curl https://tiss-api.voa.health/v1/keys/refresh \
  -H 'Content-Type: application/json' \
  -d '{"refresh_token": "..."}'

O serviço não armazena nem registra payloads e não os usa para treinar modelos. Quando ativada por POSTHOG_KEY, a telemetria agregada contém operação, códigos de achados, registro ANS, versão TISS e data; na emissão de chave, inclui nível e identificador da organização, sem e-mail. Envie X-Voa-Telemetry: off para desativá-la. A biblioteca local permanece offline e nunca envia telemetria. VOA_TISS_API_KEY é a variável que clientes HTTP locais podem ler para enviar uma chave de acesso.

Referência

Símbolos da biblioteca

Ver detalhes

Para renderizar a guia SP/SADT em PDF, instale pip install "voa-tiss[pdf]".

SímboloUso
validateValida um lote TISS e retorna um relatório.
checkVerifica um lote JSON e propõe correções.
apply_fixesAplica correções determinísticas ao lote JSON.
build_loteGera o XML TISS a partir de um lote validado.
parse_loteConverte XML TISS em um lote JSON.
auditAudita o lote com o contexto da operadora.
validate_packageValida um pacote de regras de operadora e lista os erros.
hash_epilogoCalcula o hash do epílogo.
glosaConsulta um código da Tabela 38.
dominio.lookup / dominio.searchConsulta tabelas de domínio TISS.
operadoras.lookup / operadoras.searchConsulta operadoras ativas na ANS.
operadoras.perfilJunta o cadastro e os indicadores de glosa da ANS.
parse_demonstrativoLê um demonstrativo e retorna decisões por guia.
plan_reconciliationPropõe conciliação entre decisões e guias.
sadt_missingLista campos obrigatórios ausentes da guia SP/SADT.
sadt_catalogRetorna uma cópia do catálogo SP/SADT.
render_sadt (extra pdf)Gera um PDF da guia SP/SADT.
tuss.lookupConsulta um código TUSS.
tuss.searchBusca registros TUSS por texto.
rede.*Consulta vínculos da rede hospitalar da ANS.
json_schemaRetorna o esquema JSON de um tipo público.
examplesDisponibiliza exemplos sintéticos do pacote.

voa_tiss.rede baixa e verifica os dados na primeira consulta. Defina VOA_TISS_REDE com o caminho de um SQLite local para usar uma cópia própria.

Campos de um achado

Ver detalhes
CampoSignificado
codeCódigo estável em docs/codigos.md
severityerror ou warning
guiaIdentificador da guia, quando houver
xpathLocalização no XML, quando houver
messageDescrição concisa do achado
pointerJSON Pointer no lote JSON, quando houver
fixCorreção em JSON Patch, quando determinística
needsCampos necessários para completar a guia
glosaCódigo provável da Tabela 38, quando houver
ruleRegra de operadora que gerou o achado, quando houver

Mais

Similar modules

Browse Insurance