Tato · documentação para agentes · llms.txt · llms-full.txt · tato.json

Tato · MCP para agentes

Canonical: https://tato.finance/agentes

A Tato é o financeiro de MEI e Simples Nacional. Pelo servidor MCP, um agente (Claude Code, Claude Desktop, claude.ai ou outro cliente MCP) cria cobranças com Pix, lança contas a pagar, cadastra clientes e lê a DRE da empresa de quem autorizou.

Resposta curta: conecte https://tato.finance/api/mcp, entre com o e-mail e a senha do cadastro da Tato, clique em Permitir e chame as quatro ferramentas. Cada acesso vale só para aquela conta.

Superfícies de descoberta

SuperfícieEndereçoPara quê
Índicehttps://tato.finance/llms.txtResumo curto para o agente
Pacote completohttps://tato.finance/llms-full.txtEsta documentação inteira em Markdown
Descobertahttps://tato.finance/.well-known/tato.jsonURLs, autenticação, ferramentas e limites em JSON
Esta páginahttps://tato.finance/agentesHTML; com Accept: text/markdown devolve este Markdown na mesma URL
Servidor MCPhttps://tato.finance/api/mcpO produto: as quatro ferramentas, com OAuth

Claude Code

Precisa do Claude Code de linha de comando. Se o terminal disser que claude não é reconhecido, instale antes, abra o terminal de novo e rode claude uma vez para entrar:

# Windows (PowerShell)
irm https://claude.ai/install.ps1 | iex

# macOS ou Linux
curl -fsSL https://claude.ai/install.sh | bash

Conecte a Tato:

claude mcp add --transport http --scope user tato https://tato.finance/api/mcp

Dentro do Claude Code, rode /mcp, escolha tato e Authenticate. O navegador abre o login da Tato: entre com o e-mail do cadastro e clique em Permitir. Conferir: claude mcp list. Remover: claude mcp remove tato.

Claude Desktop e claude.ai

Configurações → Conectores → Adicionar conector personalizado, nome Tato, URL https://tato.finance/api/mcp. Clique em Conectar e entre com o e-mail do cadastro. Na Tato, o mesmo passo a passo está em Configurações → Claude.

Primeira chamada verificada

initialize
  → tools/list            (4 ferramentas, cada uma com inputSchema e outputSchema)
  → ler_dre {}            (somente leitura: confirma que o acesso chega na conta certa)
  → criar_cobranca {...}  (primeira escrita)

Para conferir o token sem chamar ferramenta, um GET autenticado devolve o descritor da conexão (servidor, conta, limites e ferramentas):

curl -H "Authorization: Bearer $TOKEN" https://tato.finance/api/mcp

Ferramentas

Todas as respostas usam as mesmas colunas: id, descricao, valor (reais, número), vencimento (AAAA-MM-DD) e status. Cada ferramenta anuncia um outputSchema e devolve structuredContent junto do texto JSON. A lista viva em tools/list é a fonte da verdade.

criar_cobranca

Cria uma cobrança (conta a receber) com QR Pix na chave da empresa. Se o cliente não existir, cadastra pelo CNPJ/CPF (com CPF, informe cliente_nome).

Somente leitura: não.

Entrada

CampoTipoObrigatórioDescrição
cliente_documentostringsimCNPJ ou CPF do cliente (só números ou formatado).
cliente_nomestringnãoNome do cliente; obrigatório para CPF novo.
descricaostringsimO que foi feito (até 140 caracteres).
valornumbersimValor em reais, com até 2 casas (ex.: 1250.5). Máximo 50000.
vencimentostringsimData no formato AAAA-MM-DD.

Saída (structuredContent.cobranca)

CampoTipoDescrição
idstringIdentificador na Tato.
descricaostringDescrição.
valornumberValor em reais.
vencimentostringVencimento, AAAA-MM-DD.
statusstringaberta, paga ou cancelada.
clientestringNome do cliente.
pix_copia_e_colastring ou nullPix copia e cola; null sem chave Pix na conta.

lancar_conta_pagar

Lança uma conta a pagar (boleto, fatura, despesa). A Tato não paga nada: só registra e avisa no vencimento.

Somente leitura: não.

Entrada

CampoTipoObrigatórioDescrição
descricaostringsimDescrição (até 140 caracteres).
valornumbersimValor em reais, com até 2 casas (ex.: 1250.5). Máximo 50000.
vencimentostringsimData no formato AAAA-MM-DD.
categoriastringnãoCategoria da despesa. Valores: aluguel, condominio, agua_luz_gas, internet_telefone, software_assinaturas, impostos_taxas, contador, salarios_prolabore, fornecedores_servicos, materiais, marketing, transporte, alimentacao, equipamentos, emprestimos_financiamentos, tarifas_bancarias, outros.
fornecedorstringnãoPara quem é (opcional).

Saída (structuredContent.conta_pagar)

CampoTipoDescrição
idstringIdentificador na Tato.
descricaostringDescrição.
valornumberValor em reais.
vencimentostringVencimento, AAAA-MM-DD.
statusstringaberta, paga ou cancelada.
categoriastringCategoria da despesa.
fornecedorstring ou nullPara quem é.

cadastrar_cliente

Cadastra um cliente pelo CNPJ (nome vem da Receita) ou CPF (informe o nome). Se já existir, devolve o cadastro existente.

Somente leitura: não.

Entrada

CampoTipoObrigatórioDescrição
documentostringsimCNPJ ou CPF.
nomestringnãoNome (obrigatório para CPF).
emailstringnãoE-mail (opcional).
telefonestringnãoTelefone com DDD (opcional).

Saída (structuredContent.cliente)

CampoTipoDescrição
idstringIdentificador na Tato.
nomestringNome.
documentostringCNPJ ou CPF, só números.
tipostringcnpj ou cpf.
emailstring ou nullE-mail.
statusstringcadastrado ou ja_existia.

ler_dre

Lê a DRE da empresa em regime de caixa (só o que foi pago): receitas, despesas, resultado e as linhas. Sem mes, devolve o ano inteiro.

Somente leitura: sim.

Entrada

CampoTipoObrigatórioDescrição
anointegernãoAno (padrão: o atual; até 2 anos atrás).
mesintegernãoMês de 1 a 12 (opcional).

Saída (structuredContent.dre)

CampoTipoDescrição
periodostringAAAA ou AAAA-MM.
regimestringSempre caixa.
receitasnumberTotal de receitas em reais.
despesasnumberTotal de despesas em reais.
resultadonumberReceitas menos despesas, em reais.
linhasarrayLinhas da DRE.

Erros e limites

Erro de ferramenta volta como resultado com isError: true e o texto JSON {"erro": {"codigo", "mensagem", "tentar_em_segundos"?}}. Decida pelo codigo, não pela frase.

CódigoO que fazer
entrada_invalidaAlgum campo está faltando ou errado. Corrija o que a mensagem diz e chame de novo.
limite_atingidoLimite de uso atingido. Espere tentar_em_segundos antes de repetir.
acesso_bloqueadoA conta precisa de uma ação da pessoa no site (assinatura ou e-mail). Não repita: avise a pessoa.
nao_encontradoO registro não existe nesta conta.
indisponivelFalha temporária. Tente de novo em um minuto.
LimiteValor
Pedidos por conexão60 por minuto, 1.000 por dia (acima disso: HTTP 429 com Retry-After)
Lançamentos por conta30 por hora, 200 por dia (limite_atingido)
Valor por lançamentoaté R$ 50.000,00
Leitura da DRE60 por hora, até 2 anos atrás

Repita só limite_atingido (depois de tentar_em_segundos) e indisponivel (depois de 1 minuto). Nunca repita acesso_bloqueado: avise a pessoa (teste grátis acabou, assinatura pendente ou e-mail sem confirmar).

Autenticação e consentimento

  • OAuth 2.1 com código de autorização e PKCE S256; cliente público (sem segredo) por registro dinâmico (RFC 7591).
  • O retorno do código só vai para claude.ai, claude.com ou localhost (Claude Code e Desktop).
  • A pessoa entra com o e-mail e a senha do cadastro da Tato e vê o que o agente pode e não pode fazer antes de Permitir.
  • Token de acesso: 1 hora. Renovação: 30 dias, trocada a cada uso (a anterior deixa de valer).
  • Sem token, https://tato.finance/api/mcp responde 401 com WWW-Authenticate apontando para https://tato.finance/.well-known/oauth-protected-resource.
  • Desligar: Configurações → Claude → Desconectar (vale na hora).

API ou MCP?

NecessidadeMCP
Agente descobre e chama ferramentasSim, é o caminho
Integração de backend sem pessoaNão oferecido: todo acesso nasce de um Permitir humano

O que o conector não faz

Não emite nota fiscal, não apaga nada, não mexe na assinatura, no e-mail conectado nem no WhatsApp, e não enxerga outra conta. Tudo fica na auditoria da conta como feito pelo Claude (canal mcp).

Para desenvolvedores