by norman-finance
Provides a Model Context Protocol server that enables AI agents to access the Norman Finance API for accounting, invoicing, client management, tax reporting, and document handling.
Enables AI models to interact with the Norman Finance platform, exposing accounting, invoicing, company data, client records, tax information, and document management through a standardized protocol.
Remote (recommended)
npx mcp-remote https://mcp.norman.finance/sse
Local development
git clone https://github.com/norman-finance/norman-mcp-server.git
cd norman-mcp-server
pip install -e .
.env file):
export NORMAN_EMAIL=you@example.com
export NORMAN_PASSWORD=yourpassword
export NORMAN_ENVIRONMENT=production
python -m norman_mcp --transport sse # for SSE/OAuth flow
python -m norman_mcp --transport stdio # for stdin/stdout (Claude Desktop)
http://localhost:3001 by default).Q: Do I need to generate an API token? A: No. The remote server uses OAuth, and the local server reads credentials from environment variables.
Q: Which transport should I use? A: SSE (OAuth) for web‑based tools (Claude, MCP Inspector). Use stdio for Claude Desktop or command‑line integrations.
Q: Can I run the server in a sandbox environment?
A: Yes. Set NORMAN_ENVIRONMENT=sandbox to target the development environment.
Q: How do I expose the server publicly for OAuth callbacks?
A: Set NORMAN_MCP_PUBLIC_URL to a reachable URL (e.g., via ngrok) before starting the server.
Q: What ports does the server listen on by default?
A: Host 0.0.0.0 and port 3001 (configurable via NORMAN_MCP_HOST and NORMAN_MCP_PORT).
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.
Before using this MCP server, you need to:
Norman now offers a hosted remote MCP server at:
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.
To add the Norman MCP server to Cursor, copy and paste the following deeplink into your browser:
cursor://anysphere.cursor-deeplink/mcp/install?name=norman-finance-mcp&config=eyJjb21tYW5kIjoibnB4IiwidHlwZSI6InNzZSIsImFyZ3MiOlsibWNwLXJlbW90ZSIsImh0dHBzOi8vbWNwLm5vcm1hbi5maW5hbmNlL3NzZSJdfQ==
Adding the Norman MCP Server to Claude.ai:
For Claude Max:
https://mcp.norman.finance/sseFor Claude Enterprise & Teams:
https://mcp.norman.finance/sseEnabling the Norman Integration:
To run the Norman Finance MCP server with Claude Desktop, you can use the instruction above or add it manually using the following steps:
Download Claude Desktop.
Launch Claude and navigate to: Settings > Developer > Edit Config.
Update your claude_desktop_config.json file with the following configuration:
{
"mcpServers": {
"norman-mcp-server": {
"command": "npx",
"args": ["mcp-remote", "https://mcp.norman.finance/sse"]
}
}
}
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"
}
}
}
}
The Norman MCP server supports two authentication methods:
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
When using the server with Claude Desktop or stdin/stdout communication, provide credentials through environment variables:
# .env
NORMAN_EMAIL=your-email@example.com
NORMAN_PASSWORD=your-password
NORMAN_ENVIRONMENT=production # or "sandbox" for the development environment
NORMAN_API_TIMEOUT=200 # Request timeout in seconds
The server can be configured using these environment variables:
# Authentication (for stdio transport)
NORMAN_EMAIL=your-email@example.com
NORMAN_PASSWORD=your-password
NORMAN_ENVIRONMENT=production # or "sandbox" for the development environment
# Server configuration
NORMAN_MCP_HOST=0.0.0.0 # Host to bind to
NORMAN_MCP_PORT=3001 # Port to bind to
NORMAN_MCP_PUBLIC_URL=http://example.com # Public URL for OAuth callbacks (important for remote access)
NORMAN_API_TIMEOUT=200 # Request timeout in seconds
This section is for contributors who want to develop or extend the Norman Finance MCP server.
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
Please log in to share your review and rating for this MCP.
Explore related MCPs that share similar capabilities and solve comparable challenges
by stripe
Provides SDKs and tools to integrate Stripe's billing and API services with large language models, agent frameworks, and token‑metering for AI‑powered products and businesses.
by goat-sdk
Enables AI agents to send and receive payments, purchase goods and services, execute investment strategies, tokenize assets, and obtain financial insights by leveraging blockchains, stablecoins, and wallets.
by financial-datasets
Provides access to income statements, balance sheets, cash flow statements, stock prices, market news, and cryptocurrency data through MCP tools for AI assistants.
by alpacahq
Enables large language models to trade stocks and options, retrieve real‑time and historical market data, and manage portfolios using plain English commands through a local or remote MCP server.
by stefanoamorelli
Provides an MCP server that connects AI models to SEC EDGAR filings, enabling real‑time retrieval of company filings, financial statements, and insider‑trading data with exact XBRL precision and verifiable filing references.
by ariadng
Enables AI LLMs to execute trades on the MetaTrader 5 platform through the Model Context Protocol.
by XeroAPI
Provides a bridge between the Model Context Protocol and Xero's API, enabling standardized access to Xero accounting and business features.
by kukapay
Provides a comprehensive set of cryptocurrency technical analysis indicators and ready‑to‑use trading strategies through an MCP interface, enabling AI agents and applications to generate buy, hold, or sell signals.
by kukapay
Integrates the Freqtrade cryptocurrency trading bot with MCP, exposing its REST API as tools for AI agents to perform automated trading operations.
{
"mcpServers": {
"norman-mcp-server": {
"command": "npx",
"args": [
"mcp-remote",
"https://mcp.norman.finance/sse"
],
"env": {}
}
}
}claude mcp add norman-mcp-server npx mcp-remote https://mcp.norman.finance/sse