AI-powered bookkeeping and tax filing for entrepreneurs at the heart of the European economy.
AI-powered bookkeeping, accounting, and taxes for European businesses, inside your AI assistant.
Norman connects invoicing, transactions, receipts, ledgers, reports, taxes, and company workflows to any MCP-compatible AI.
https://mcp.norman.finance/mcp
Invoicing — Create, send, and track invoices including recurring and ZUGFeRD e-invoices
Bookkeeping — Categorize transactions, match receipts, and verify entries
Automation rules — "Always book Telekom to Internet costs": preview, create, and manage rules that categorize matching transactions automatically
Client Management — Maintain your client database and contact details
Products & Services — Keep a catalog of what you sell, with prices, VAT rates and units, and fill invoice lines from it
Tax Filing — Generate Finanzamt previews, file VAT returns, and track deadlines
Company Overview — Check your balance, revenue, and financial health at a glance
Company Formation — Found a German GmbH or UG: collect the founders' data, check the name against the Handelsregister, generate the founding documents (Musterprotokoll, Gesellschafterliste), match with a notary, and track every step through to registration
Documents — Upload and attach receipts, invoices, and supporting files
Norman is built as a multi-market European accounting platform. Market-specific capabilities are added as Norman expands; current German coverage includes SKR03/SKR04, DATEV, ELSTER, ZUGFeRD, and GmbH/UG workflows.
Once connected, talk to your books in plain language:
Norman is more than a collection of background tools. In MCP Apps-compatible ChatGPT and Claude clients, Norman can render focused accounting workspaces directly inside the conversation. You can filter and inspect the underlying data, move between related views, and use Ask AI to continue the discussion with the current accounting context.
| Interactive workspace | Use case |
|---|---|
| Document Review | Review uploaded invoices and receipts, find documents that still need a transaction match, and inspect linked records. |
| Reconciliation Cockpit | Find transactions with missing documents, missing categories, or accounts from a previous SKR before month-end or year-end close. |
| Ledger Explorer | Browse the chart of accounts, inspect balances, and drill into the postings behind an account. |
| Tax Preview & Submission | Review the Finanzamt test PDF, tax lines, period, total, and readiness checks before filing. Submission is a separate explicit action and stays disabled until the user confirms the preview. |
Try prompts such as:
The Norman API remains the source of truth. Opening or filtering a workspace does not change accounting data. Binding actions, including tax submission, remain separate MCP tool calls with their normal confirmation and permission checks. Clients without MCP Apps support receive the same underlying results as structured or text tool output.
Found a German GmbH or UG (haftungsbeschränkt) end-to-end — Norman collects the data, prepares the documents, and hands off to a notary:
Choosing GmbH/UG also sets your Norman account to the corporate SKR04 chart of accounts, so bookkeeping and taxes are ready from day one. The documents are drafts to prepare the notary appointment — not legal advice.
|
Filing a VAT return |
Transaction insights |
|
Syncing Stripe payments |
Receipts from Gmail |
|
Chasing overdue invoices |
Sending payment reminders |
Before connecting, create a free Norman account if you don't have one yet. Log in with your Norman credentials via OAuth — your password never touches the AI.
MCP Apps-compatible Claude hosts can open Norman's interactive accounting workspaces directly in the conversation. Other Claude clients receive the same data as normal tool output.
Norman is available as a Claude Code plugin with built-in skills.
/plugin marketplace add norman-finance/norman-mcp-server
/plugin install norman-finance@norman-finance
Or install directly from GitHub:
claude /plugin install github:norman-finance/norman-mcp-server
The plugin includes Norman's interactive accounting workspaces, including Document Review, Reconciliation, Ledger Explorer, and the explicit tax preview and submission flow.
Gemini CLI extension
gemini extensions install https://github.com/norman-finance/norman-mcp-server
Start Gemini CLI and authenticate the remote server when prompted, or run:
/mcp auth norman-finance
Gemini Spark custom app
Create a Spark, add a custom app, and use
https://mcp.norman.finance/mcp as its MCP server URL. Availability depends on
your Gemini account and region. See Google's custom app
guide.
https://mcp.norman.finance/mcpOrganization administrators can share the remote connector with their team.
Grok web
https://mcp.norman.finance/mcp and complete Norman OAuthGrok CLI
grok mcp add --transport http norman-finance https://mcp.norman.finance/mcp
Grok CLI also discovers this repository's .mcp.json automatically.
Option 1 — Remote with OAuth
Run in OpenClaw:
mcp add https://mcp.norman.finance/mcp
You'll be prompted to log in with your Norman account on first use.
Option 2 — Skills only
git clone https://github.com/norman-finance/norman-mcp-server.git
cp -r norman-mcp-server/skills/* ~/.openclaw/skills/
openclaw gateway restart
Option 3 — Local stdio
pip install norman-mcp-server
openclaw mcp add norman -- norman-mcp --transport stdio
Set your credentials as environment variables (NORMAN_EMAIL, NORMAN_PASSWORD) before starting the gateway.
https://mcp.norman.finance/https://mcp.norman.finance/mcp and select the credentialAdd a remote HTTP MCP server with URL:
https://mcp.norman.finance/mcp
Ready-to-use skills compatible with Claude Code, OpenClaw, and the Agent Skills standard.
| Skill | What it does |
|---|---|
financial-overview | Full dashboard — balance, transactions, invoices, and tax status |
create-invoice | Step-by-step invoice creation and sending |
manage-clients | List, create, and update client records |
manage-products | List, create, update, and archive catalog products; fill invoice lines from them |
tax-report | Review, preview, and file tax reports with the Finanzamt |
categorize-transactions | Categorize and verify bank transactions |
find-receipts | Find missing receipts from Gmail or email and attach them |
overdue-reminders | Identify overdue invoices and send payment reminders |
expense-report | Expense breakdown by category, top vendors, and trends |
tax-deduction-finder | Scan transactions for missed deductions and suggest fixes |
monthly-reconciliation | Full monthly close — transactions, invoices, receipts, and taxes |
company-incorporation | Found a German GmbH/UG — data, documents, name check, and notary hand-off |
Claude Code —
/plugin marketplace add norman-finance/norman-mcp-serverClaude Code (local) —
claude --plugin-dir ./norman-mcp-serverOpenClaw —
cp -r skills/* ~/.openclaw/skills/ && openclaw gateway restart
Source-derived launch command. Check the maintainer’s required arguments and credentials before running:
uvx norman-mcp-serverMerge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.
{
"mcpServers": {
"finance-norman-mcp-server": {
"command": "uvx",
"args": [
"norman-mcp-server"
]
}
}
}Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.
Claude Desktop setup referencenorman-mcp-serverpypiNorman MCP Server works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.
~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.~/.cursor/mcp.jsonRestart Cursor for changes to take effect..vscode/mcp.jsonReload VS Code window for changes to take effect.~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect..mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.