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
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d298ed14747070917753569a057f941093fa73b061be3a628306082c80a8c680
|
|
| MD5 |
275474d24799b16806323ef7cc365084
|
|
| BLAKE2b-256 |
d237e75ca5cc9fd3f8cd046257e0b2b8f8c04545ee3a11bd714099bc76fbdc70
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b8b6eec8fa7841ebd33cbc331f36da41f76c85a888b3e06e6817380e17fc7877
|
|
| MD5 |
a25b0c80178b0c0476bddee3bf43de2e
|
|
| BLAKE2b-256 |
c11e77e72797abcf6fece0de6fd5e2541d18dfb4bdcbcedb46d8dc322ba71fed
|