Server data from the Official MCP Registry
MCP server for Fortnox Swedish accounting API integration
MCP server for Fortnox Swedish accounting API integration
Valid MCP server (4 strong, 1 medium validity signals). 7 known CVEs in dependencies (0 critical, 5 high severity) Package registry verified. Imported from the Official MCP Registry.
6 files analyzed · 8 issues found
Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.
Set these up before or after installing:
Environment variable: FORTNOX_CLIENT_ID
Environment variable: FORTNOX_CLIENT_SECRET
Environment variable: FORTNOX_REFRESH_TOKEN
Add this to your MCP configuration file:
{
"mcpServers": {
"mcp-server": {
"args": [
"-y",
"fortnox-mcp-server"
],
"command": "npx"
}
}
}From the project's GitHub README.
An MCP (Model Context Protocol) server for integrating with the Fortnox Swedish accounting system. This server enables LLMs to interact with Fortnox for managing invoices, customers, suppliers, orders, accounts, vouchers, and provides business intelligence analytics.
| Mode | Best For | Setup |
|---|---|---|
| Remote Mode | End users | Just add URL, authorize in browser |
| Local Mode | Developers, self-hosted | Configure environment variables |
The easiest way to use Fortnox MCP - no credentials needed, just authorize in your browser.
https://fortnox-mcp.vercel.app/mcpOpen your Claude Desktop config file:
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%\Claude\claude_desktop_config.jsonAdd this configuration:
{
"mcpServers": {
"fortnox": {
"url": "https://fortnox-mcp.vercel.app/mcp"
}
}
}
Restart Claude Desktop. When you first ask Claude to do something with Fortnox, a browser window will open for you to authorize access to your Fortnox account. Once authorized, you're all set!
For developers who want to run the server locally or use their own Fortnox app credentials.
Open your Claude Desktop config file:
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%\Claude\claude_desktop_config.jsonAdd this configuration:
{
"mcpServers": {
"fortnox": {
"command": "npx",
"args": ["-y", "fortnox-mcp-server"],
"env": {
"FORTNOX_CLIENT_ID": "your-client-id",
"FORTNOX_CLIENT_SECRET": "your-client-secret",
"FORTNOX_REFRESH_TOKEN": "your-refresh-token"
}
}
}
}
That's it! You can now ask Claude to manage your Fortnox invoices, customers, and more.
fortnox_list_customers - List and search customersfortnox_get_customer - Get customer detailsfortnox_create_customer - Create new customerfortnox_update_customer - Update customerfortnox_delete_customer - Delete customerfortnox_list_invoices - List invoices with filteringfortnox_get_invoice - Get invoice details with line itemsfortnox_create_invoice - Create new invoicefortnox_update_invoice - Update draft invoicefortnox_bookkeep_invoice - Bookkeep invoicefortnox_cancel_invoice - Cancel invoicefortnox_credit_invoice - Create credit notefortnox_send_invoice_email - Send invoice by emailfortnox_list_suppliers - List and search suppliersfortnox_get_supplier - Get supplier detailsfortnox_create_supplier - Create new supplierfortnox_update_supplier - Update supplierfortnox_delete_supplier - Delete supplierfortnox_list_supplier_invoices - List supplier invoices with filteringfortnox_get_supplier_invoice - Get supplier invoice detailsfortnox_approve_supplier_invoice - Approve supplier invoice for paymentfortnox_payables_report - Get accounts payable aging reportfortnox_list_orders - List sales orders with filteringfortnox_list_offers - List offers/quotes with filteringfortnox_list_accounts - List chart of accountsfortnox_get_account - Get account detailsfortnox_create_account - Create new accountfortnox_update_account - Update accountfortnox_delete_account - Delete accountfortnox_list_vouchers - List vouchers (journal entries)fortnox_get_voucher - Get voucher details with rowsfortnox_create_voucher - Create manual voucherfortnox_list_voucher_series - List available voucher seriesfortnox_account_activity - Get activity for a specific accountfortnox_search_vouchers - Search vouchers by description, account, or amountfortnox_get_company_info - Get company detailsfortnox_list_financial_years - List company financial yearsfortnox_invoice_summary - Get invoice statistics by periodfortnox_top_customers - Get top customers by revenuefortnox_unpaid_report - Get detailed unpaid invoice reportfortnox_cash_flow_forecast - Forecast cash flow based on invoices and payablesfortnox_order_pipeline - Analyze sales order pipelinefortnox_sales_funnel - Analyze sales funnel from offers to invoicesfortnox_product_performance - Analyze product/article performancefortnox_period_comparison - Compare financial metrics across periodsfortnox_customer_growth - Analyze customer acquisition and growthfortnox_project_profitability - Analyze project profitability (if using projects)fortnox_cost_center_analysis - Analyze costs by cost centerfortnox_expense_analysis - Analyze expenses by categoryfortnox_yearly_comparison - Compare year-over-year performancefortnox_gross_margin_trend - Track gross margin trends over timeNo installation needed! Just add the config above to Claude Desktop.
npm install -g fortnox-mcp-server
git clone https://github.com/jakobwennberg/fortnox-mcp.git
cd fortnox-mcp
npm install
npm run build
| Variable | Required | Description |
|---|---|---|
FORTNOX_CLIENT_ID | Yes | Your Fortnox app client ID |
FORTNOX_CLIENT_SECRET | Yes | Your Fortnox app client secret |
FORTNOX_REFRESH_TOKEN | Yes | OAuth2 refresh token (only needed for initial setup; automatically persisted after first use) |
FORTNOX_ACCESS_TOKEN | No | Current access token (auto-refreshed) |
TRANSPORT | No | stdio (default) or http |
PORT | No | HTTP port (default: 3000) |
| Variable | Required | Description |
|---|---|---|
AUTH_MODE | Yes | Set to remote |
SERVER_URL | Yes | Public URL of your server |
JWT_SECRET | Yes | Secret for signing JWT tokens |
FORTNOX_CLIENT_ID | Yes | Your Fortnox app client ID |
FORTNOX_CLIENT_SECRET | Yes | Your Fortnox app client secret |
UPSTASH_REDIS_REST_URL | Yes* | Upstash Redis URL for token storage |
UPSTASH_REDIS_REST_TOKEN | Yes* | Upstash Redis token |
PORT | No | HTTP port (default: 3000) |
*Falls back to in-memory storage if not provided (not recommended for production)
See Quick Start above.
TRANSPORT=http PORT=3000 node dist/index.js
Then connect to http://localhost:3000/mcp
{
"tool": "fortnox_list_invoices",
"arguments": {
"filter": "unpaid",
"limit": 20
}
}
{
"tool": "fortnox_create_invoice",
"arguments": {
"customer_number": "1001",
"rows": [
{
"description": "Consulting services",
"quantity": 10,
"price": 1000
}
]
}
}
{
"tool": "fortnox_create_voucher",
"arguments": {
"voucher_series": "A",
"description": "Office supplies",
"transaction_date": "2025-01-24",
"rows": [
{ "account_number": 6110, "debit": 500 },
{ "account_number": 1910, "credit": 500 }
]
}
}
The Fortnox API allows 25 requests per 5 seconds. This server includes automatic rate limiting to prevent exceeding this limit.
# Run in development mode with auto-reload
npm run dev
# Build for production
npm run build
# Clean build artifacts
npm run clean
This server is published to multiple registries for easy installation:
| Registry | URL | Purpose |
|---|---|---|
| npm | npmjs.com/package/fortnox-mcp-server | Package distribution via npx |
| MCP Registry | registry.modelcontextprotocol.io | Official MCP server discovery |
| GitHub | github.com/jakobwennberg/fortnox-mcp | Source code |
npx fortnox-mcp-serverfortnox_list_invoices, fortnox_create_customer, etc.Fortnox refresh tokens are single-use — each token refresh returns a new one. The server automatically persists the latest refresh token to ~/.fortnox-mcp/tokens.json so it survives process restarts without requiring manual config updates.
FORTNOX_REFRESH_TOKEN from your environment/config~/.fortnox-mcp/tokens.jsonThe token file is created with restricted permissions (0600) for security.
To release a new version, use the release script:
# Bug fixes (1.0.0 → 1.0.1)
npm run release:patch
# New features (1.0.0 → 1.1.0)
npm run release:minor
# Breaking changes (1.0.0 → 2.0.0)
npm run release:major
The release script automatically:
package.jsonserver.json for the MCP RegistryPrerequisites for releasing:
npm login - Logged into npmmcp-publisher login github - Logged into MCP RegistryWhen you publish a new version, users running npx -y fortnox-mcp-server will automatically get the latest version the next time they restart Claude Desktop.
Want to host your own instance of the Fortnox MCP server? Follow these instructions.
In your Vercel project settings, add these environment variables:
| Variable | Description |
|---|---|
AUTH_MODE | Set to remote |
SERVER_URL | Your Vercel deployment URL (e.g., https://your-app.vercel.app) |
JWT_SECRET | A random secret string for signing tokens (generate with openssl rand -hex 32) |
FORTNOX_CLIENT_ID | Your Fortnox app client ID |
FORTNOX_CLIENT_SECRET | Your Fortnox app client secret |
UPSTASH_REDIS_REST_URL | Upstash Redis REST URL |
UPSTASH_REDIS_REST_TOKEN | Upstash Redis REST token |
In your Fortnox app settings, add this redirect URI:
https://your-app.vercel.app/oauth/fortnox/callback
vercel --prod
| Endpoint | Description |
|---|---|
GET /health | Health check |
GET /.well-known/oauth-authorization-server | OAuth metadata |
POST /authorize | Start OAuth flow |
POST /token | Exchange code for tokens |
GET /oauth/fortnox/callback | Fortnox OAuth callback |
POST /mcp | Protected MCP endpoint |
┌─────────────────────────────────────────────────────────────┐
│ fortnox-mcp-server │
├─────────────────────────────────────────────────────────────┤
│ Mode: AUTH_MODE=local | remote │
├─────────────────────────────────────────────────────────────┤
│ │
│ LOCAL MODE REMOTE MODE │
│ ─────────── ─────────── │
│ • Env var tokens • OAuth flow │
│ • Single user • Multi-user │
│ • stdio or HTTP • HTTP only │
│ • Auto-persisted tokens • Token storage (Redis) │
│ (~/.fortnox-mcp/) │
│ │
└─────────────────────────────────────────────────────────────┘
MIT
Be the first to review this server!
by Modelcontextprotocol · Developer Tools
Read, search, and manipulate Git repositories programmatically
by Toleno · Developer Tools
Toleno Network MCP Server — Manage your Toleno mining account with Claude AI using natural language.
by mcp-marketplace · Developer Tools
Create, build, and publish Python MCP servers to PyPI — conversationally.
by Microsoft · Content & Media
Convert files (PDF, Word, Excel, images, audio) to Markdown for LLM consumption
by mcp-marketplace · Developer Tools
Scaffold, build, and publish TypeScript MCP servers to npm — conversationally
by mcp-marketplace · Finance
Free stock data and market news for any MCP-compatible AI assistant.