Jahresabschluss.io
DESign inRegister →

Gemini + MCP

Bookkeeping with Gemini

Yes — with Google's agents for your computer: Gemini CLI and Antigravity both send our API key as a header, so they connect directly to the jahresabschluss.io MCP server and can keep your German bookkeeping by chat. The Gemini app at gemini.google.com does not work today, because its custom apps sign in only via OAuth and are limited to the US. Every booking runs through the same GoBD-compliant core as the app.

Last reviewed: 2026-10-17

Which Gemini works, as of October 2026

Google offers several Gemini surfaces. The ones that can send a fixed header work; the others don't yet.

Gemini CLI — connects directly

The command-line agent reads MCP servers from settings.json and sends any header you configure. It asks before each tool call, with the choice to proceed once, always allow the tool or always allow the server.

Antigravity — connects directly

Antigravity (app, IDE and CLI) reads MCP servers from mcp_config.json with a server URL and headers. Tools you haven't configured run in “Ask” mode. Since 18 June 2026 Antigravity replaces Gemini CLI for unpaid-tier and Google One users.

Gemini app — not today

Custom apps in gemini.google.com sign in only with OAuth and are limited to users in the US who are 18 or older, with a personal Google account and English as the language. Our server uses a static company key, not OAuth — use Gemini CLI or Antigravity.

Gemini Enterprise — not today

Custom MCP servers in Gemini Enterprise accept only “No authentication” or OAuth 2.0, so a company key cannot be sent. Gemini CLI or Antigravity are the working routes.

Step 1: create a company key

For your GmbH or UG (German limited company) — or any other legal form we support.

  • Open Buchhaltung → Einstellungen → “KI-Agent & API” (Bookkeeping → Settings) in the app. Administrators or the workspace creator create keys and confirm with the second factor.
  • Pick the rights: read is always included, write lets Gemini book, send lets it email invoices, finalize lets it lock periods.
  • Pick the expiry: 30, 90 or 365 days. Up to ten keys can be active per company; each key may make 120 requests per minute.
  • One key is one company — Gemini can never reach another company with it. We store only a hash of the key.

Gemini CLI: one command or settings.json

Use httpUrl, not url — in Gemini CLI, url stands for the older SSE transport.

Either run gemini mcp add once, or add the entry yourself to ~/.gemini/settings.json (for all projects) or to .gemini/settings.json inside a project folder. The timeout line is optional.

Gemini CLI asks before calling a tool. Keep that for write tools, and do not set "trust": true for this server — it skips every confirmation.

gemini mcp add --transport http \
  --header "Authorization: Bearer jab_live_…" \
  buchhaltung https://api.jahresabschluss.io/functions/v1/bookkeeping-mcp

# or in ~/.gemini/settings.json
{
  "mcpServers": {
    "buchhaltung": {
      "httpUrl": "https://api.jahresabschluss.io/functions/v1/bookkeeping-mcp",
      "headers": { "Authorization": "Bearer jab_live_…" },
      "timeout": 30000
    }
  }
}

Antigravity: mcp_config.json

For the Antigravity app, IDE and CLI — including free-tier and Google One accounts.

Put the entry into ~/.gemini/config/mcp_config.json to use it in every workspace, or into .agents/mcp_config.json inside one workspace. Antigravity names the address field serverUrl.

Tools you haven't configured run in “Ask” mode, so Antigravity asks before each call. Leave write tools in that mode.

{
  "mcpServers": {
    "buchhaltung": {
      "serverUrl": "https://api.jahresabschluss.io/functions/v1/bookkeeping-mcp",
      "headers": { "Authorization": "Bearer jab_live_…" }
    }
  }
}

First sentences in the chat

If the agent can read files on your computer, it can also pass receipts to upload_receipt — up to about 7 MB through the hosted server.

  • “Create the fiscal year 2027 and check whether the opening balances are in place.” → create_fiscal_year, get_opening_balances
  • “Upload the PDF invoices in the folder belege/oktober and show me what the Autopilot could not book.” → upload_receipt, list_receipts, get_receipt_proposal
  • “Import the September CAMT.053 statement for the business account.” → list_bank_accounts, import_bank_statement
  • “Run the depreciation for 2026, split by month.” → run_depreciation
  • “Export the 2026 journal as CSV so I can check it in a spreadsheet.” → export_bookkeeping

Rights, approvals and GoBD

Gemini's confirmations are the first layer; the key and the server are the second.

  • Gemini only sees the tools your key allows: with a read-only key, the 31 read tools; with every right, all 71.
  • Before irreversible steps — issuing or emailing an invoice, cancelling one, deleting a receipt, locking a period — our server instructs the agent to describe the step and wait for your explicit confirmation. Locking only runs with confirm=true.
  • GoBD (Germany's rules for proper digital bookkeeping) hold for every write: no booked entry is deleted or overwritten, corrections are Storno reversals, debit always equals credit, and nobody books into a locked period.
  • Receipt texts, bank references and partner names are data, not instructions. A retry with the same idempotency_key never creates a second booking.
  • For balance-sheet companies, bank lines never book to income or expense without a receipt; EÜR (cash-basis) businesses book on payment.
  • Our advice: confirm every write tool, and create a separate read-only key for analysis.

What stays in the app

  • The bank connection via OAuth and the mapping of each bank account to a ledger account.
  • Company settings, for example the chart of accounts (SKR03 or SKR04) and the profit method — readable by the agent, changeable only in the app.
  • IBAN and BIC of business partners, to block payment-redirection fraud.
  • The manual opening balance of a first year without a previous year in the system.
  • Every ELSTER filing (the German tax authorities' electronic channel).
  • Annual accounts and E-Bilanz: publish_trial_balance hands the Saldenliste (trial balance) to the annual-accounts module, and you complete them in the app — alone or with your Steuerberater (tax adviser).

Frequently asked questions

Can I do my bookkeeping with Gemini?

Yes, with Gemini CLI or Antigravity. Both send our company key as a header to the MCP server and ask before calling tools. The Gemini app in the browser cannot connect today.

Why doesn't the Gemini app at gemini.google.com work?

Its custom apps sign in only via OAuth, and Google limits them to users in the US who are 18 or older, with a personal account and English as the language. Our server uses a static company key and no OAuth.

Gemini CLI or Antigravity — which should I use?

Google notes that Antigravity replaced Gemini CLI for unpaid-tier and Google One users on 18 June 2026. Both connect the same way; only the file and the address field differ (httpUrl in Gemini CLI, serverUrl in Antigravity).

Can I let Gemini book without asking?

Technically yes, but we advise against it. Keep confirmations for write tools, never set "trust": true for this server, and use a read-only key for analysis. Irreversible steps also need your explicit yes per our server's instructions.

Can Gemini file the VAT return or prepare the annual accounts?

No. get_vat_return reads the figures of the Umsatzsteuer-Voranmeldung (VAT return); the ELSTER filing stays in the app. For the year end, publish_trial_balance hands over the trial balance, and the annual accounts are prepared in the app.

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. Any Google plan you use is separate.