Skip to main content

MCP server Python para 26 calculadoras fiscais brasileiras (CLT, PJ, impostos, finanças, saúde) — HTTP client da API Contaí. Use com Claude Desktop, Cursor, Cline.

Project description

contai-mcp

PyPI Python 3.10+ MIT

MCP server Python para 26 calculadoras fiscais brasileiras.

CLT, PJ, impostos, finanças, saúde — usando Model Context Protocol. Funciona dentro de Claude Desktop, Cursor, Cline, Continue, ou qualquer cliente MCP que fale stdio.

Não rola engine local: é um HTTP client da API Contaí, que executa o engine TypeScript versionado, mesma fórmula que roda em calculas.com.br.


Por que Python?

A versão TypeScript (@contai-evoluke/mcp-server) é a primária. Esta versão Python existe pra:

  • ML/data engineers que já têm Python configurado e não querem instalar Node
  • Usuários de Cursor/Cline com setup Python pré-existente
  • Pipelines automatizados onde Python é o ambiente nativo

Instalação

Recomendado — via uvx (sem install)

uvx contai-mcp

Funciona em Claude Desktop direto:

{
  "mcpServers": {
    "contai": {
      "command": "uvx",
      "args": ["contai-mcp"]
    }
  }
}

Via pip

pip install contai-mcp
contai-mcp

Configuração

Claude Desktop

Edite ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) ou %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "contai": {
      "command": "uvx",
      "args": ["contai-mcp"]
    }
  }
}

Reinicie o Claude Desktop. As tools calcular_rescisao_clt, calcular_salario_liquido, etc., aparecem.

Cursor

Settings → Cursor Settings → MCP → Add new MCP server:

  • Name: contai
  • Command: uvx contai-mcp

Cline / Continue / outros

Aponte qualquer cliente MCP que suporte stdio transport para:

uvx contai-mcp

Variáveis de ambiente (opcional)

# API key (Pro/Team — sem ela usa free tier 100/dia por IP)
export CONTAI_API_KEY="ck_live_..."

# Override base URL (default https://api.calculas.com.br)
export CONTAI_API_URL="http://localhost:8787"

# Timeout em ms (default 5000)
export CONTAI_TIMEOUT_MS=10000

Tools disponíveis (26)

Nota: a API REST tem 27 calcs no total, mas porcentagem (a×b/100) é trivial demais para justificar uma tool MCP — LLMs lidam com isso direto. Os 5 lookup tools (consultar_inss_vigente, etc.) só existem na versão TS via stdio. Roadmap futuro pode adicionar GETs REST equivalentes.

Trabalhistas (12)

calcular_rescisao_clt, calcular_salario_liquido, calcular_13o_salario, calcular_ferias, calcular_horas_extras, calcular_horas_extras_dsr, calcular_fgts_acumulado, calcular_adicional_noturno, calcular_aviso_previo, calcular_inss_facultativo, calcular_insalubridade_periculosidade, calcular_seguro_desemprego

PJ (4)

calcular_mei_das, calcular_simples_nacional, calcular_lucro_presumido, calcular_comparador_regime_tributario

Imóveis (2)

calcular_financiamento_imobiliario, calcular_itbi

Impostos (2)

calcular_itcmd, calcular_irpf_restituicao

Veículos (1)

calcular_ipva

Finanças (3)

calcular_juros_compostos, calcular_simulador_aposentadoria, calcular_consorcio_vs_financiamento

Saúde (2)

calcular_imc, calcular_calculadora_gestacional

Como funciona

Claude Desktop                contai-mcp (Python)            api.calculas.com.br
     │                              │                                │
     │── tools/list ────────────────▶                                │
     │◀── 27 tools listadas ────────│                                │
     │                              │                                │
     │── call_tool(rescisao_clt) ──▶│                                │
     │                              │── POST /v1/calc/rescisao-clt ▶│
     │                              │◀── { totalLiquidoCents: ... } │
     │◀── resultado JSON ──────────│                                │

Sem rede em runtime do LLM = não há latência extra além do HTTP da API. Cache CDN da API absorve a maioria dos hits idempotentes.

Verificar funcionamento

No Claude Desktop, pergunte:

"Calcule a rescisão CLT pra alguém com salário R$ 5.000 admitido em 01/01/2024 e demitido sem justa causa em 01/04/2026"

Deve invocar calcular_rescisao_clt automaticamente.

Erros estruturados

Em vez de raise, retorna envelope:

{
  "ok": false,
  "error": {
    "code": "INVALID_INPUT",
    "message": "salarioBrutoCents: must be positive",
    "details": { "path": ["salarioBrutoCents"] }
  }
}

Codes: INVALID_INPUT, UNKNOWN_CALC, RATE_NOT_AVAILABLE, SCHEMA_DRIFT, INTERNAL, TIMEOUT, NETWORK, RATE_LIMITED, INVALID_KEY.

Rate limits

Tier Limite Auth
Free 100 req/dia (IP-based) sem CONTAI_API_KEY
Pro 10.000 req/dia ck_live_...
Team 50.000 req/dia ck_live_...

Detalhes em docs.calculas.com.br/rate-limits.

Desenvolvimento

cd packages/mcp-server-python
uv sync                       # cria venv + instala deps
uv run pytest                 # roda tests
uv run ruff check src tests   # lint
uv run python scripts/sync-tools.py  # valida sync com OpenAPI da API

Licença

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

contai_mcp-0.1.0.tar.gz (14.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

contai_mcp-0.1.0-py3-none-any.whl (16.0 kB view details)

Uploaded Python 3

File details

Details for the file contai_mcp-0.1.0.tar.gz.

File metadata

  • Download URL: contai_mcp-0.1.0.tar.gz
  • Upload date:
  • Size: 14.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.9 {"installer":{"name":"uv","version":"0.10.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for contai_mcp-0.1.0.tar.gz
Algorithm Hash digest
SHA256 d298ed14747070917753569a057f941093fa73b061be3a628306082c80a8c680
MD5 275474d24799b16806323ef7cc365084
BLAKE2b-256 d237e75ca5cc9fd3f8cd046257e0b2b8f8c04545ee3a11bd714099bc76fbdc70

See more details on using hashes here.

File details

Details for the file contai_mcp-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: contai_mcp-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 16.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.9 {"installer":{"name":"uv","version":"0.10.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for contai_mcp-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b8b6eec8fa7841ebd33cbc331f36da41f76c85a888b3e06e6817380e17fc7877
MD5 a25b0c80178b0c0476bddee3bf43de2e
BLAKE2b-256 c11e77e72797abcf6fece0de6fd5e2541d18dfb4bdcbcedb46d8dc322ba71fed

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page