Comparison
Which AI can do your bookkeeping?
Any AI program that can send a fixed API key to an MCP server can keep your German bookkeeping with jahresabschluss.io — among them Claude Code, Codex, Gemini CLI, Antigravity, GitHub Copilot, Copilot Studio, Mistral Le Chat, Cursor and local models in LM Studio. Claude Desktop, the Perplexity Mac app and Jan connect through a small bridge. ChatGPT in the browser, claude.ai, the Gemini app and Microsoft 365 Copilot cannot use a per-company key today; each has a working alternative below.
Last reviewed: 2026-10-17
How to read this comparison
One requirement decides: can the program send our company key?
Our MCP server signs in with a static company key, not with OAuth. A program can use it if it lets you set a header (group A), or if it can start a local command and run the mcp-remote bridge (group B, Node.js required). Programs that only offer OAuth or no sign-in cannot connect today (group C) — for each we name the alternative.
Our server accepts the key in three forms, so most programs work with their default field. Vendors change their apps quickly; this page reflects the state as of October 2026. Whatever the program, it reaches the books of exactly one company per key — a GmbH, UG (German limited companies) or any other legal form we support.
MCP server (Streamable HTTP):
https://api.jahresabschluss.io/functions/v1/bookkeeping-mcp
REST API (OpenAPI 3.1):
https://api.jahresabschluss.io/functions/v1/bookkeeping-api
Accepted key headers:
Authorization: Bearer jab_live_…
Authorization: jab_live_…
X-API-Key: jab_live_…
Bridge for programs that only start local servers (Node.js required):
npx -y mcp-remote https://api.jahresabschluss.io/functions/v1/bookkeeping-mcp \
--header "Authorization: Bearer jab_live_…"Group A: assistants and agents that connect directly
These send the key as a header — nothing to install besides the program itself.
Claude Code
One command: claude mcp add --transport http --scope user buchhaltung with our URL and --header "Authorization: Bearer jab_live_…". Asks before tool calls; approvals are adjustable.
Codex (CLI and IDE extension)
The direct route with an OpenAI account. In ~/.codex/config.toml add [mcp_servers.buchhaltung] with url and bearer_token_env_var = "JAB_API_KEY"; default_tools_approval_mode = "writes" makes Codex confirm every write tool.
Gemini CLI
Entry in ~/.gemini/settings.json with httpUrl and headers, or gemini mcp add --transport http --header. Asks before calls — once, or always for a tool or server.
Antigravity
Google's app, IDE and CLI; since 18 June 2026 it replaces Gemini CLI for unpaid-tier and Google One users. ~/.gemini/config/mcp_config.json with serverUrl and headers; unconfigured tools run in “Ask” mode.
Mistral Le Chat
Connectors → “+ Add Connector” → “Custom MCP Connector”, sign-in “HTTP Bearer Token”. Only admins add connectors; each function can ask every time or be always allowed.
Copilot Studio
Add a Model Context Protocol tool with API key authentication, type Header, name X-API-Key. Each user of the agent enters their own key.
Perplexity in the browser and Comet
Remote connector with the “API Key” option, for Pro and Enterprise accounts. Perplexity doesn't document which header carries the key; our server reads all three forms. If no tools appear, use the Mac app route in group B.
Raycast AI
MCP is Pro-exclusive. Its “HTTP Headers” field takes the Authorization header, also on iOS. Raycast approves read-only tools on its own and asks about the rest.
Group A: code editors and IDE agents
Developers often already have one of these open — the bookkeeping is one more server entry.
GitHub Copilot in VS Code
mcp.json with an input of type promptString (password: true) and the header "Authorization": "Bearer ${input:jab-key}" — VS Code asks for the key once and stores it securely. On Copilot Business and Enterprise the policy “MCP servers in Copilot” must be on; it is off by default.
GitHub Copilot in JetBrains IDEs, Xcode and Eclipse
Same server entry with the header under "requestInit": {"headers": {…}}.
Cursor
~/.cursor/mcp.json with url and headers. Cursor asks for approval before using MCP tools by default.
Windsurf (now Devin Desktop)
mcp_config.json with serverUrl and headers.
Cline
cline_mcp_settings.json with url and headers — and always "type": "streamableHttp", otherwise Cline falls back to the old SSE transport. Each call needs approval unless the tool is in autoApprove.
Zed
context_servers in settings.json with url and headers. Recent versions confirm tool calls by default.
Junie
JetBrains' coding agent reads .junie/mcp/mcp.json (or ~/.junie/mcp/mcp.json) with url and headers.
Kiro
.kiro/settings/mcp.json with url and headers; Kiro asks unless a tool is listed in autoApprove. Amazon Q Developer CLI is now Kiro CLI and uses the same configuration.
Warp
A remote MCP entry with url and headers.
Group B: connects through the bridge
These programs start MCP servers only as local commands. mcp-remote, a published npm package, forwards everything to our hosted server.
Claude Desktop (Mac and Windows)
Entry in claude_desktop_config.json, as below. Node.js is required. Claude Desktop asks before every action; “Always allow” is possible. The app has a step-by-step guide under “KI-Anbindung einrichten”.
Perplexity Mac app
The Mac App Store version with the helper PerplexityXPC installed: local connector with command npx, the mcp-remote arguments and the environment variable JAB_AUTH. Perplexity asks for confirmation with local connectors.
Jan
Use the stdio form: command npx, mcp-remote arguments, environment variable JAB_AUTH. Each call has to be approved individually.
JetBrains AI Assistant
Add the bridge as a local (stdio) server with command npx and the same arguments.
{
"mcpServers": {
"buchhaltung": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://api.jahresabschluss.io/functions/v1/bookkeeping-mcp",
"--header", "Authorization:${JAB_AUTH}"],
"env": { "JAB_AUTH": "Bearer jab_live_…" }
}
}
}Local models: bookkeeping without an AI provider
The model runs on your computer. The bookkeeping data the agent reads goes to your local model and to no AI provider; the calls to your books travel encrypted to us, as always.
LM Studio
From version 0.3.17: Program → Install → Edit mcp.json with url and headers. A confirmation dialog appears before every tool call, and you can edit the arguments.
Jan
Through the bridge (group B), with every call approved individually.
Goose
~/.config/goose/config.yaml: an extension with type: streamable_http, uri and headers. Careful: Goose works autonomously by default — switch to manual approval before connecting your books.
Ollama
Ollama provides the local model; the connection to your books comes from an MCP-capable program such as Goose, Cline or Zed, where you pick Ollama as the model.
Group C: not today — and what to use instead
These sign in only via OAuth or without authentication, so a company key cannot be sent.
ChatGPT in the browser
Custom MCP servers (now “Plugins”, formerly connectors or developer mode) sign in only via OAuth or without authentication; OpenAI states that ChatGPT cannot present custom API keys. Alternative with the same OpenAI account: Codex.
Custom GPTs with Actions
A custom GPT can call our REST API with the key as Bearer. OpenAI is retiring custom GPTs on 11 December 2026 across all plans and says Actions may have to be rebuilt as an app or a custom MCP server. Usable until then; we don't recommend building on it.
claude.ai in the browser and the Claude mobile app
Custom connectors sign in via OAuth or without authentication; fixed headers are only in a closed beta for selected organisations. Use Claude Desktop or Claude Code.
Gemini app
Custom apps sign in only via OAuth and only for users in the US who are 18 or older, with a personal account and English as the language. Use Gemini CLI or Antigravity.
Gemini Enterprise
Custom MCP servers accept only no authentication or OAuth 2.0. Use Gemini CLI or Antigravity.
Microsoft 365 Copilot
API keys are not supported for MCP plugins in declarative agents, and agent connectors take one publisher key, not one per company. Use GitHub Copilot or Copilot Studio.
Same tools and the same rules in every program
The program changes; the bookkeeping behind it doesn't. These sentences work in any of them, with the tools called:
- “Show me the Saldenliste (trial balance) for 2026.” → list_fiscal_years, get_saldenliste
- “Book the receipts that are waiting for review, one by one with my OK.” → list_receipts, get_receipt_proposal, confirm_receipt
- “Match this month's bank payments to the open invoices.” → list_bank_transactions, list_open_items, match_bank_transaction
- “What are the Umsatzsteuer-Voranmeldung (VAT return) figures for October?” → get_vat_return
- Stays in the app whatever the program: bank OAuth, company settings, partners' IBAN and BIC, a first year's manual opening balance, every ELSTER filing, and the annual accounts themselves.
Every program on this page reaches the same 71 tools — 31 read, 38 write, one to email invoices and one to lock periods — filtered by the rights of your key. And every write goes through the same booking core as manual entry in the app, under GoBD (the German rules for proper digital bookkeeping): no deleting or overwriting, Storno reversals instead, debit equals credit, locked periods stay locked. For irreversible steps our server instructs the agent to get your explicit yes. Our advice everywhere: confirm write tools, and use a read-only key for analysis.
Frequently asked questions
Which AI is best for bookkeeping?
The one you already use, if it is in group A or B. Without technical background, Claude Desktop (with the guide in the app) or Mistral Le Chat (a form, no files) are the easiest starts. Developers will find Claude Code, Codex, Gemini CLI or GitHub Copilot quickest.
Can ChatGPT do my bookkeeping?
Not the ChatGPT web app with a custom MCP server today: it signs in only via OAuth or without authentication. Codex works with the same OpenAI account. Custom GPTs can use our REST API until OpenAI retires them on 11 December 2026.
Why can't some programs connect?
Our server signs in with a static company key, not with OAuth. Programs that only offer OAuth or no sign-in — ChatGPT in the browser, claude.ai, the Gemini app, Gemini Enterprise, Microsoft 365 Copilot — have no place to put that key.
Does the AI see all my data?
It sees what the tools return for the single company the key belongs to, limited by the key's rights. What the agent reads passes to the provider of the AI program you use — unless you run a local model, where it stays on your computer.
Can any of these programs file my VAT return or annual accounts?
No. The MCP server and the API cover bookkeeping only. get_vat_return reads the figures; every ELSTER filing stays in the app. At year end publish_trial_balance hands the trial balance to the annual-accounts module, where the annual accounts and E-Bilanz are prepared.
What does the connection cost?
API and MCP server come at no extra charge with the bookkeeping subscription (Solo or Gesamtpaket) or the EÜR subscription. What your AI program costs depends on its provider.