JETTAX Auditoria Fiscal AI MCP Server
README.md
# JETTAX Auditoria Fiscal AI (plugin MCPR)
Envelopa `app/JETTAX_AUDITORIA_4.0.py` — não modificado — atrás do contrato
MCPR, seguindo `PLUGINS/PROMPT_CONVERSAO_MCPR.md`. Usa um LLM para detectar
divergências entre os impostos declarados numa planilha de notas fiscais
(NFS-e) e os valores efetivamente mencionados no texto de cada nota.
## O que tem aqui
- `manifest.json` — contrato do plugin com duas funcionalidades:
`listar_empresas` (grátis, sem chamar LLM — só inspeciona o que existe em
`dados/`) e `auditar_empresas` (a auditoria completa, marcada
`destrutiva: true` porque envia texto fiscal da empresa pra API da
OpenAI e tem custo real por chamada).
- `Makefile` / `make.ps1` — entrypoints finos, só encaminham para `cli.py`.
- `cli.py` — o adapter: traduz stdin/stdout JSON em chamadas às classes de
`app/JETTAX_AUDITORIA_4.0.py`. Nenhuma lógica de auditoria mora aqui.
- `app/JETTAX_AUDITORIA_4.0.py` — o sistema original, **sem nenhuma
alteração**.
- `dados/` — raiz das empresas a auditar (ver "Como organizar os dados"
abaixo). Substitui o `root_dir` arbitrário do CLI original — o MCPR só
permite que caminhos resolvam dentro da raiz do plugin.
## Como organizar os dados
```
dados/
└── <NOME_DA_EMPRESA>/
└── notas/
└── recebidas.csv
```
Mesma estrutura que o CLI original já esperava, só que agora sempre dentro
de `dados/` (ou do diretório externo indicado — ver abaixo).
### Apontar para um diretório externo
Copiar os dados pra dentro de `dados/` toda vez nem sempre é prático. O
input `diretorio_dados` (em `listar_empresas` e `auditar_empresas`) aceita
um caminho **absoluto** no disco desta máquina — quando preenchido,
substitui `dados/` inteiramente como raiz, com o mesmo formato de sempre
dentro dele:
```
/home/usuario/Documents/NOTAS/
└── <NOME_DA_EMPRESA>/
└── notas/
└── recebidas.csv
```
Deixe `diretorio_dados` vazio pra manter o comportamento padrão (pasta
interna `dados/` do plugin).
`diretorio_dados` é declarado no manifesto como `tipo: "string"`, não
`tipo: "path"` — deliberadamente fora da contenção de caminho do MCPR (que
restringe todo input `path` à raiz do próprio plugin), já que o propósito
dele é justamente apontar pra fora da pasta do plugin. Só use com caminhos
em que você confia.
## Configuração
1. `cp .env.example .env` e preencha `OPENAI_API_KEY`.
2. Instale as dependências de `app/JETTAX_AUDITORIA_4.0.py` no mesmo
`python3` que o `Makefile`/`make.ps1` chamam:
```
pip install -r requirements.txt
```
## Diferenças em relação ao CLI original
- **Sem prompts interativos.** Os parâmetros que a JETTAX pedia via
`Prompt.ask`/`IntPrompt.ask` (diretório, modelo, paralelismo, delay)
agora são `inputs` da funcionalidade `auditar_empresas`, com os mesmos
valores padrão.
- **`root_dir` reenraizado em `dados/` por padrão** (ou num diretório
externo via `diretorio_dados`) — ver "Como organizar os dados".
- **Saída em JSON, não em tabelas Rich no terminal** — os mesmos dados que
apareciam no resumo do console (`print_summary`) continuam sendo escritos
no Excel geral; a funcionalidade também devolve os totais principais
(`total_empresas`, `empresas_com_divergencia`, `total_notas_analisadas`,
`total_divergencias`) relidos de volta do próprio relatório.
- **`listar_empresas` é novo** — não existia como comando separado no CLI
original (que sempre ia direto para a auditoria completa). Adicionado
porque `auditar_empresas` é `destrutiva: true` (custo real de API) e
ajuda a conferir o escopo do lote antes de confirmar. Reaproveita só os
métodos de descoberta já existentes (`_find_companies`/`_find_csv`), sem
nenhuma lógica de análise nova.
## Referência completa do protocolo
Ver `backend/src/infrastructure/mcpr/README.md` e
`PLUGINS/PROMPT_CONVERSAO_MCPR.md` para o contrato completo do manifesto e
do adapter.
This server cannot be deployed
Maintenance
ActivitySlowing
ResponsivenessNo issues