Cash Book MCP

Um livro-razão de partidas dobradas derivado das suas faturas, banco, despesas, depósitos e ativos.

Documentação

mcp-cash-book

Servidor MCP para escrituração contábil por partidas dobradas e um livro-caixa razão geral para pequenas empresas. Um razão de partidas dobradas derivado dos livros que você já mantém, comprovado até a unidade monetária mínima.

Funciona com Claude Desktop, Claude Code, Cursor e qualquer cliente do Model Context Protocol. Roda na sua própria máquina ou hospedado, sem instalação.

Página do produto: https://mcp.zovo.one/s/cash-book — o que faz, as ferramentas que expõe e um endpoint de token ao vivo.

Instalação

Hospedado, nada para instalar. Obtenha um token em https://mcp.zovo.one/mcp/connect (a página de conexão) ou https://mcp.zovo.one/mcp/token (o mesmo token em JSON); um token anônimo gratuito é emitido na hora e uma chave Pro funciona da mesma forma. Em seguida, aponte um cliente MCP para https://mcp.zovo.one/mcp/cash-book via streamable-http e envie o token como Authorization: Bearer <token>.

Se o seu cliente não puder definir cabeçalhos, coloque o token no caminho: https://mcp.zovo.one/mcp/cash-book/t/<token>. Ambas as formas funcionam. A URL simples sem token responde 401 em tools/call, então o token não é opcional.

Claude Desktop, um clique. Baixe cash-book.mcpb do último lançamento e clique duas vezes nele.

A partir do código-fonte. O espelho é autossuficiente: cada dependência @theluckystrike/* é fornecida, então um clone novo compila sem configuração extra.

git clone https://github.com/theluckystrike/mcp-cash-book.git
cd mcp-cash-book
npm install && npm run build

Em seguida, aponte seu cliente para o ponto de entrada compilado:

{
  "mcpServers": {
    "cash-book": {
      "command": "node",
      "args": ["/absolute/path/to/mcp-cash-book/dist/index.js"]
    }
  }
}

@theluckystrike/mcp-cash-book ainda não está publicado no npm, então um comando npx -y @theluckystrike/mcp-cash-book falhará. Os três caminhos acima são os que funcionam e cada um é exercitado pela CI.

cash-book demo

Espelho somente leitura de mcp-servers/servers/cash-book. Veja MIRROR.md.

No Registro Oficial de MCP (io.github.theluckystrike/cash-book). Um razão de partidas dobradas sobre os livros que você já mantém. Ele lê suas faturas, notas de crédito, ordens de compra, depósitos, despesas, importação bancária e registro de ativos fixos, e deriva um débito e um crédito para cada movimento em um período: receita e saída de IVA das faturas, contas a receber e os pagamentos que as quitam, depósitos mantidos como o passivo que são, despesas por categoria com o IVA retirado do valor bruto, ativos fixos e sua depreciação mensal. Ele prova que o balancete soma zero até a unidade monetária mínima e, quando não soma, nomeia o documento cujos próprios números não batem. Ele não escreve nada de volta em nenhum desses livros e não há como digitar um lançamento nele: cada linha carrega o servidor, o ID do documento e a data de origem, para que qualquer valor possa ser rastreado até a página em que foi impresso.

A publicação no npm para @theluckystrike/mcp-cash-book está pendente, então npx -y @theluckystrike/mcp-cash-book retorna 404 hoje. Até lá, o pacote de um clique .mcpb ou um clone + compilação é o caminho que funciona.

Instalação

Claude Desktop, ~/Library/Application Support/Claude/claude_desktop_config.json (Windows: %APPDATA%\Claude\claude_desktop_config.json):

{
  "mcpServers": {
    "cash-book": {
      "command": "npx",
      "args": ["-y", "@theluckystrike/mcp-cash-book"]
    }
  }
}

Claude Code:

claude mcp add cash-book -- npx -y @theluckystrike/mcp-cash-book

Cursor: ~/.cursor/mcp.json (ou .cursor/mcp.json em um projeto), mesma entrada do Claude Desktop.

Este servidor só é útil ao lado dos servidores que possuem os livros: mcp-invoice, mcp-billing-docs, mcp-deposits, mcp-expense-tracker, mcp-bank-statement e mcp-asset-register. Cada um deles é opcional. Uma loja que não está instalada simplesmente fica ausente do razão; uma loja instalada e ilegível é relatada como ilegível e nunca é lida como vazia.

Ferramentas

ferramentao que faz
ledger_buildDeriva o razão para um período em uma moeda e registra o período
period_deleteRemove um período já construído do registro e devolve sua vaga no nível gratuito
trial_balanceTotaliza os débitos e os créditos e prova que são iguais até a unidade monetária mínima
ledger_linesLista as linhas, filtradas por conta, servidor de origem, documento de origem ou data
month_closeLista o que o mês deixa não lançado ou inconsistente e o fecha com um instantâneo
ledger_export_csvRetorna as linhas como CSV RFC 4180, uma linha por lançamento
ledger_reportMovimento e saldo por conta, com os compromissos de compra e as exceções
license_statusGratuito ou Pro, e onde atualizar
license_activateAtiva uma chave Pro, verificada offline

Contas: cash, receivables, revenue, vat_output, vat_input, expenses:<category>, deposits_held, fixed_assets, accumulated_depreciation, depreciation_expense e purchase_commitments como memorando que nunca é lançado.

Gratuito vs Pro

GratuitoPro
trial_balanceilimitadoilimitado
ledger_linesilimitadoilimitado
ledger_build3 períodos por mês calendárioilimitado
Reconstruir um período já construídogratuitogratuito
Reconstruir um sem nada alteradorecusado, nomeia a linharecusado, nomeia a linha
period_deleteilimitadoilimitado
month_close-sim
ledger_export_csv-sim
ledger_report-sim

O balancete é gratuito porque é a única pergunta que este servidor existe para responder. Um contador que não pode verificar se os livros somam não tem motivo para confiar em mais nada aqui.

ledger_lines já retorna todos os campos que ledger_export_csv retorna, bank_ref incluído: a exportação é uma conveniência de formatação, um arquivo RFC 4180 com esses mesmos campos como colunas, não dados novos. A rodada 29 (data/user_value_r29.json, prompt 6) mediu um modelo que interpretou corretamente a recusa Pro em ledger_export_csv, depois construiu manualmente um CSV substituto a partir de ledger_lines e descartou bank_ref mesmo assim. O texto do bloqueio agora diz isso claramente, para que um cliente retransmita ledger_lines em vez de remontar um.

Obtenha Pro: https://mcp.zovo.one/buy/cash-book (pagamento único, vitalício, verificado offline).

A percepção medida

No mês trabalhado em test/_client.mjs, quatro das cinco linhas bancárias são o mesmo dinheiro de um documento que já foi lançado: 1.375.300 das 1.380.300 unidades monetárias mínimas de movimento de caixa, 99,6 por cento, aparecem em ambos os livros. Lançar a importação bancária além dos documentos, que é a forma óbvia de construir um livro-caixa e a forma como a maioria das planilhas faz, move o saldo de caixa de -10.543,00 para -21.111,00 EUR. Não parece errado. Cada linha é individualmente plausível, a conta está errada por quase exatamente um fator de dois, e o balancete ainda soma zero, porque cada recebimento duplicado trouxe sua própria contrapartida.

Então a importação bancária não lança nada aqui. Ela é comparada aos movimentos de caixa lançados como evidência, e os restos são o ponto principal: naquele mês, exatamente 7.500 unidades monetárias mínimas do total bancário, um saque não explicado, é informação que os documentos já não tinham. Esse é o 0,4 por cento que vale a pena importar um extrato, e é a parte que um razão cheio de duplicatas enterra.

Privacidade

Todos os dados permanecem na sua máquina. O razão é derivado em cada chamada dos diretórios de dados dos servidores irmãos em ${XDG_DATA_HOME:-~/.local/share}/mcp-servers/, e este servidor escreve apenas seu próprio cash-book/periods.json e cash-book/closes.json. Não há chamada de rede em nenhum lugar em src e nenhuma telemetria. As chaves de licença são verificadas offline.

Construído por theluckystrike. https://github.com/theluckystrike

Use estes documentos como um servidor MCP

Qualquer cliente MCP (Claude, Cursor, Windsurf, VS Code) pode ler a documentação deste repositório diretamente via GitMCP — sem instalação: