This Model Context Protocol (MCP) server enables AI to interact with the Norman Finance API, allowing access to accounting, invoices, companies, clients, taxes, and more through a standardized protocol.
[!NOTE]
The Norman Finance MCP Server is currently in Beta. We welcome your feedback and encourage you to report any bugs by opening an issue here.
Features
- 🔐 Authentication: Securely authenticate with the Norman Finance account
- 💼 Company Management: Manage your company details, get company balance, VAT insgihts, etc
- 📊 Accounting: Keep an eye on your transactions, categorization
- 📝 (e-)Invoicing: Make, view, send, and handle invoices. You can even set up recurring ones based on your contracts
- 👥 Client Management: Create and manage your clients (CRM)
- 💰 Taxes: View tax information and reports, generate official Finanzamt PDF previews and file your taxes
- 📄 Documents: Upload and manage attachments (receipts, invoices, docs, etc)
👇 Use case examples with Claude Desktop — toggle
Filing VAT tax report
|
Getting transaction insights
|
Syncing Stripe payments with Norman
|
Creating transactions using Gmail receipts
|
Managing overdue invoices - 1
|
Managing overdue invoices - 2
|
Prerequisites
Before using this MCP server, you need to:
- Create an account on Norman Finance
- Have your email and password ready for authentication
Remote MCP Server
Norman now offers a hosted remote MCP server at:
https://mcp.norman.finance/sse
The remote MCP is recommended because it utilizes OAuth authentication, enabling you to log in directly with your Norman account without the need to create or manage access tokens manually.
Installation
Using Claude Desktop with the Norman MCP Server
To run the Norman Finance MCP server with Claude Desktop, follow these steps:
1. Download and Configure Claude Desktop
Remote MCP
{
"mcpServers": {
"norman-mcp-server": {
"command": "npx",
"args": ["mcp-remote", "https://mcp.norman.finance/sse"]
}
}
}
Local MCP
Install uv
Follow the instructions here: Installing uv
{
"mcpServers": {
"norman-mcp-server": {
"command": "<home_path>/.local/bin/uvx",
"args": [
"--from",
"norman-mcp-server@latest",
"norman-mcp"
],
"env": {
"NORMAN_EMAIL": "your-email@example.com",
"NORMAN_PASSWORD": "your-password",
"NORMAN_ENVIRONMENT": "production"
}
}
}
}
Configuration
Authentication Methods
The Norman MCP server supports two authentication methods:
1. OAuth Authentication (for SSE transport)
When using the server with MCP Inspector, Claude, or other SSE clients, the server uses OAuth 2.0 authentication:
-
Start the server with SSE transport:
python -m norman_mcp --transport sse
-
When connecting to the server, you'll be directed to a login page
-
Enter your Norman Finance credentials
-
You'll be redirected back to your application with authentication tokens
2. Environment Variables (for stdio transport)
When using the server with Claude Desktop or stdin/stdout communication, provide credentials through environment variables:
NORMAN_EMAIL=your-email@example.com
NORMAN_PASSWORD=your-password
NORMAN_ENVIRONMENT=production
NORMAN_API_TIMEOUT=200
Environment Variables
The server can be configured using these environment variables:
NORMAN_EMAIL=your-email@example.com
NORMAN_PASSWORD=your-password
NORMAN_ENVIRONMENT=production
NORMAN_MCP_HOST=0.0.0.0
NORMAN_MCP_PORT=3001
NORMAN_MCP_PUBLIC_URL=http://example.com
NORMAN_API_TIMEOUT=200
Development
This section is for contributors who want to develop or extend the Norman Finance MCP server.
Local setup
git clone https://github.com/norman-finance/norman-mcp-server.git
cd norman-mcp-server
pip install -e .
Then update your claude_desktop_config.json file to point to the Python module directly:
{
"mcpServers": {
"norman-mcp-server": {
"command": "<path_to_your_python>/python",
"args": ["-m", "norman_mcp"],
"env": {
"NORMAN_EMAIL": "your-email@example.com",
"NORMAN_PASSWORD": "your-password",
"NORMAN_ENVIRONMENT": "production"
}
}
}
}
Do you have a feature idea or something you'd like to see? Share your suggestion
Make business effortless