LABSCO SUMMARY
Built around German tax practice, down to the Finanzamt filing and the notary appointment.
This is not a generic ledger wrapper: UStVA filing, SKR04 chart of accounts and Handelsregister name checks are the actual feature set, so its value depends on whether you run a German business. On company formation the project is clear that the generated documents are drafts to prepare the notary appointment, not legal advice.
What it is
A remote MCP server for Norman Finance, reachable at https://mcp.norman.finance/mcp over Streamable HTTP with OAuth 2.1. It connects your accounting, invoicing and tax filing to any MCP client, and can also be run locally over stdio.
What you get
- Invoicing: create, send and track invoices, including recurring ones and ZUGFeRD e-invoices
- Bookkeeping: categorise transactions, match receipts, and verify entries
- Automation rules you can preview before creating, so recurring vendors book themselves
- Tax filing: Finanzamt previews, VAT returns, and deadline tracking
- Company formation for a German GmbH or UG — founder data, Handelsregister name check, Musterprotokoll and Gesellschafterliste drafts, and a notary hand-off
- Ready-made skills for Claude Code and OpenClaw covering the common jobs, from monthly reconciliation to chasing overdue invoices
Requirements
A Norman account, free to create. The hosted path needs no install: add the remote URL and sign in over OAuth, so your password never reaches the model. The local path installs norman-mcp-server from PyPI and reads NORMAN_EMAIL and NORMAN_PASSWORD from the environment, with NORMAN_ENVIRONMENT selecting production or sandbox.
Setup effort
One command — claude /plugin install github:norman-finance/norman-mcp-server
USE CASES
01
Filing last month's VAT return
Ask for the UStVA, review the Finanzamt preview, and file it without opening the web app.
02
Chasing money you are owed
Find the overdue invoices and send payment reminders in the same conversation.
03
Getting receipts out of your inbox and onto transactions
Find missing receipts from email and attach them to the transactions they belong to.
04
Stopping the same vendor being categorised by hand every month
Preview a rule that books that vendor to the right cost account, then create it.
05
Founding a GmbH or UG
Collect the founders' data, check the name against the Handelsregister, generate the founding documents, and track what is left before registration.
BEFORE YOU INSTALL
What to know first
Requires
A client that can reach a remote MCP server over HTTP
Optional
- NORMAN_EMAIL in your environment
- NORMAN_PASSWORD in your environment
INSTALLATION
Connect your client
Server setup
The command line the project publishes
TERMINAL
claude /plugin install github:norman-finance/norman-mcp-serverHosted endpoint
ENDPOINT URL
https://mcp.norman.finance/mcpAdd this hosted endpoint to your MCP client, then sign in.
MCP Clients
Cursor
CURSOR · JSON
{
"mcpServers": {
"norman-mcp-server": {
"url": "https://mcp.norman.finance/mcp"
}
}
}The configuration on this page does not set NORMAN_EMAIL or NORMAN_PASSWORD, and the hosted server does not use them: you sign in with your Norman account on first use. They are only for the local stdio server (norman-mcp), and the README says to set them as environment variables before starting it.
Claude Code, Any MCP client
JSON
{
"mcpServers": {
"norman-finance": {
"type": "http",
"url": "https://mcp.norman.finance/mcp"
}
}
}The configuration on this page does not set NORMAN_EMAIL or NORMAN_PASSWORD, and the hosted server does not use them: you sign in with your Norman account on first use. They are only for the local stdio server (norman-mcp), and the README says to set them as environment variables before starting it.
Replit
displayName: Norman MCP Server
baseUrl: https://mcp.norman.finance/mcp
The configuration on this page does not set NORMAN_EMAIL or NORMAN_PASSWORD, and the hosted server does not use them: you sign in with your Norman account on first use. They are only for the local stdio server (norman-mcp), and the README says to set them as environment variables before starting it.
OpenClaw — remote
Run this inside OpenClaw (it is an OpenClaw command, not a shell command):
OPENCLAW — REMOTE · IN CLIENT
mcp add https://mcp.norman.finance/mcpYou'll be prompted to log in with your Norman account on first use.
The configuration on this page does not set NORMAN_EMAIL or NORMAN_PASSWORD, and the hosted server does not use them: you sign in with your Norman account on first use. They are only for the local stdio server (norman-mcp), and the README says to set them as environment variables before starting it.
OpenClaw — stdio
Install the server first with pip install norman-mcp-server, then register it:
OPENCLAW — STDIO · TERMINAL
openclaw mcp add norman -- norman-mcp --transport stdioSet NORMAN_EMAIL and NORMAN_PASSWORD as environment variables before starting the gateway.
The configuration on this page does not set NORMAN_EMAIL or NORMAN_PASSWORD, and the hosted server does not use them: you sign in with your Norman account on first use. They are only for the local stdio server (norman-mcp), and the README says to set them as environment variables before starting it.
n8n
Server URL: https://mcp.norman.finance/
MCP Client Tool node URL: https://mcp.norman.finance/mcp
The configuration on this page does not set NORMAN_EMAIL or NORMAN_PASSWORD, and the hosted server does not use them: you sign in with your Norman account on first use. They are only for the local stdio server (norman-mcp), and the README says to set them as environment variables before starting it.