Skip to main content
Glama
Proviscale

fortnox-mcp-server

by Proviscale
README.md
# Fortnox MCP Server

Connect AI agents to **Fortnox** — Sweden's largest cloud accounting platform (612,000+ customers).

Manage invoices, customers, suppliers, accounting entries, orders, and more through the Model Context Protocol.

## Tools (20)

| Category | Tools | Description |
|----------|-------|-------------|
| **Invoices** | `list_invoices`, `get_invoice`, `create_invoice`, `send_invoice`, `get_invoice_payments` | Create, send, and track invoices |
| **Customers** | `list_customers`, `get_customer`, `create_customer` | Manage your customer database |
| **Suppliers** | `list_supplier_invoices`, `get_supplier`, `create_supplier_invoice` | Track bills and expenses |
| **Accounting** | `list_vouchers`, `create_voucher`, `get_accounts`, `get_financial_year` | Journal entries and chart of accounts |
| **Reports** | `get_company_info`, `list_projects`, `list_cost_centers` | Company info and cost tracking |
| **Orders** | `list_orders`, `create_offer` | Sales orders and quotes |

## Quick Start

### 1. Get a Fortnox Access Token

Sign up as a developer at [developer.fortnox.se](https://www.fortnox.se/developer) and create an integration to get your OAuth2 credentials.

### 2. Configure in Claude Desktop

Add to your `claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "fortnox": {
      "command": "npx",
      "args": ["-y", "fortnox-mcp-server"],
      "env": {
        "FORTNOX_ACCESS_TOKEN": "your-access-token-here"
      }
    }
  }
}
```

### 3. Start Using

Ask Claude things like:
- "List all unpaid invoices"
- "Create an invoice for customer 1001 with 10 hours of consulting at 1500 SEK/hr"
- "Show me the chart of accounts"
- "What supplier invoices are overdue?"
- "Create a quote for Acme AB"

## Install from Source

```bash
git clone https://github.com/viggojohansson/fortnox-mcp-server.git
cd fortnox-mcp-server
npm install
npm run build
```

Then configure Claude Desktop to point to the local build:

```json
{
  "mcpServers": {
    "fortnox": {
      "command": "node",
      "args": ["/path/to/fortnox-mcp-server/dist/index.js"],
      "env": {
        "FORTNOX_ACCESS_TOKEN": "your-access-token-here"
      }
    }
  }
}
```

## Environment Variables

| Variable | Required | Description |
|----------|----------|-------------|
| `FORTNOX_ACCESS_TOKEN` | Yes | OAuth2 access token from Fortnox |

## API Reference

This server wraps the [Fortnox REST API v3](https://api.fortnox.se/apidocs). Rate limit: 25 requests per 5 seconds.

## License

MIT

TDQS

B3.4/5.0

Scored across 20 tools

Disambiguation5/5

Every tool targets a distinct resource-action combination. Invoices, customers, suppliers, accounting entries, projects, cost centers, orders, and offers are clearly separated with no overlap.

Naming Consistency5/5

All tools use a consistent verb_noun pattern in snake_case (e.g., get_invoice, list_customers, create_voucher). Variations like 'get_accounts' vs 'get_customer' follow the same pattern.

Tool Count5/5

20 tools cover a broad ERP domain (invoicing, customers, suppliers, accounting, projects, orders, offers) without being excessive. Each tool earns its place.

Completeness3/5

Core operations are present (create, read, list for key entities), but notable gaps exist: no update or delete for invoices, customers, suppliers, or orders. Offers lack list/get/update. The surface is functional but incomplete for full lifecycle management.

Maintenance

ActivityInactive
ResponsivenessNo issues