Fortnox MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PORT | No | HTTP port (default: 3000). | 3000 |
| AUTH_MODE | No | Set to 'remote' for remote mode, otherwise local mode (default). | |
| TRANSPORT | No | Transport protocol: 'stdio' (default) or 'http'. | stdio |
| JWT_SECRET | No | Secret for signing JWT tokens (remote mode). | |
| SERVER_URL | No | Public URL of your server (remote mode). | |
| FORTNOX_CLIENT_ID | No | Your Fortnox app client ID. | |
| FORTNOX_ACCESS_TOKEN | No | Current access token (auto-refreshed, optional). | |
| FORTNOX_CLIENT_SECRET | No | Your Fortnox app client secret. | |
| FORTNOX_REFRESH_TOKEN | No | OAuth2 refresh token (local mode). | |
| UPSTASH_REDIS_REST_URL | No | Upstash Redis REST URL (optional, falls back to in-memory). | |
| UPSTASH_REDIS_REST_TOKEN | No | Upstash Redis REST token (optional). |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| fortnox_list_customersA | List customers from Fortnox accounting system. Retrieves a paginated list of customers with optional filtering by status, name, or customer number. Args:
Returns: List of customers with customer number, name, email, city, and organisation number. Examples:
|
| fortnox_get_customerA | Retrieve detailed information about a specific customer. Args:
Returns: Complete customer details including contact info, addresses, payment terms, and VAT settings. |
| fortnox_create_customerA | Create a new customer in Fortnox. Args:
Returns: The created customer with assigned customer number. |
| fortnox_update_customerA | Update an existing customer in Fortnox. Args:
Returns: The updated customer details. |
| fortnox_delete_customerA | Delete a customer from Fortnox. WARNING: This action cannot be undone. The customer must not have any invoices or orders. Args:
Returns: Confirmation of deletion. |
| fortnox_list_invoicesA | List invoices from Fortnox accounting system. Retrieves a paginated list of invoices with optional filtering by status, customer, date range, or amount. Supports convenience period filters and can fetch all results for large datasets. Args:
Returns: For JSON: { total, page, limit, count, has_more, total_pages, next_offset?, truncated?, invoices: [...] } For Markdown: Formatted list with pagination info Examples:
Error Handling:
|
| fortnox_get_invoiceA | Retrieve detailed information about a specific invoice including all line items. Args:
Returns: Complete invoice details including customer info, dates, amounts, line items, and payment status. |
| fortnox_create_invoiceA | Create a new invoice in Fortnox. Args:
Returns: The created invoice with assigned document number. Example rows: [{ "description": "Consulting services", "quantity": 10, "price": 1000 }] |
| fortnox_update_invoiceA | Update an existing invoice in Fortnox. Only unbooked invoices can be updated. Args:
Returns: The updated invoice details. |
| fortnox_bookkeep_invoiceA | Bookkeep an invoice, creating the accounting entries. Once booked, the invoice cannot be edited. Args:
Returns: Confirmation of bookkeeping with the created voucher reference. |
| fortnox_cancel_invoiceA | Cancel an invoice. Booked invoices will have reversal entries created. Args:
Returns: Confirmation of cancellation. |
| fortnox_credit_invoiceA | Create a credit note for an invoice. This creates a new credit invoice referencing the original. Args:
Returns: The created credit invoice details. |
| fortnox_send_invoice_emailA | Send an invoice to the customer via email. The invoice will be sent to the email address configured for the customer. Args:
Returns: Confirmation that the email was sent. |
| fortnox_list_suppliersA | List suppliers from Fortnox accounting system. Retrieves a paginated list of suppliers with optional filtering. Args:
Returns: List of suppliers with supplier number, name, email, city, and organisation number. |
| fortnox_get_supplierA | Retrieve detailed information about a specific supplier. Args:
Returns: Complete supplier details including contact info, addresses, bank details, and payment terms. |
| fortnox_create_supplierA | Create a new supplier in Fortnox. Args:
Returns: The created supplier with assigned supplier number. |
| fortnox_update_supplierA | Update an existing supplier in Fortnox. Args:
Returns: The updated supplier details. |
| fortnox_delete_supplierA | Delete a supplier from Fortnox. WARNING: This action cannot be undone. The supplier must not have any invoices. Args:
Returns: Confirmation of deletion. |
| fortnox_list_supplier_invoicesA | List supplier invoices (accounts payable) from Fortnox. Retrieves a paginated list of supplier invoices with optional filtering by status, supplier, date range, or amount. Args:
Returns: List of supplier invoices with supplier, dates, amounts, and status. Examples:
|
| fortnox_get_supplier_invoiceA | Retrieve detailed information about a specific supplier invoice including all line items. Args:
Returns: Complete supplier invoice details including supplier info, dates, amounts, line items, and payment status. |
| fortnox_approve_supplier_invoiceA | Approve a supplier invoice for payment. This approves the invoice and marks it ready for payment processing. Args:
Returns: Confirmation that the invoice has been approved for payment. |
| fortnox_payables_reportA | Generate an accounts payable aging report for unpaid supplier invoices. Answers questions like:
Args:
Returns: Aging report with summary, breakdowns by supplier and age bucket. Age Buckets:
Examples:
|
| fortnox_list_accountsA | List accounts from the chart of accounts in Fortnox. Retrieves a paginated list of accounts with optional filtering. Args:
Returns: List of accounts with account number, description, and active status. Examples:
|
| fortnox_get_accountA | Retrieve detailed information about a specific account. Args:
Returns: Complete account details including description, VAT settings, and balances. |
| fortnox_create_accountB | Create a new account in the chart of accounts. Args:
Returns: The created account details. |
| fortnox_update_accountB | Update an existing account in the chart of accounts. Args:
Returns: The updated account details. |
| fortnox_delete_accountA | Delete an account from the chart of accounts. WARNING: This action cannot be undone. The account must not have any transactions. Args:
Returns: Confirmation of deletion. |
| fortnox_list_vouchersA | List vouchers (accounting entries) from Fortnox. Retrieves a paginated list of vouchers with optional filtering. IMPORTANT: The financial_year parameter uses Fortnox sequential IDs (1, 2, 3...), NOT calendar years. Use fortnox_list_financial_years first to find the correct ID for your target year. Args:
Returns: List of vouchers with series, number, description, and date. Examples:
|
| fortnox_get_voucherA | Retrieve detailed information about a specific voucher including all accounting rows. IMPORTANT: The financial_year parameter uses Fortnox sequential IDs (1, 2, 3...), NOT calendar years. Use fortnox_list_financial_years first to find the correct ID for your target year. Args:
Returns: Complete voucher details including all debit/credit rows. |
| fortnox_create_voucherA | Create a new voucher (manual accounting entry) in Fortnox. IMPORTANT: The sum of debits must equal the sum of credits (balanced entry). Args:
Returns: The created voucher with assigned voucher number. Example: Create a cash payment voucher: { "voucher_series": "A", "description": "Office supplies payment", "transaction_date": "2025-01-24", "rows": [ { "account_number": 6110, "debit": 500, "description": "Office supplies" }, { "account_number": 1910, "credit": 500, "description": "Cash" } ] } |
| fortnox_list_voucher_seriesA | List available voucher series in Fortnox. Voucher series are used to categorize vouchers (e.g., 'A' for manual entries, 'B' for bank, etc.). Args:
Returns: List of voucher series with code, description, and whether manual entries are allowed. |
| fortnox_account_activityA | Show all voucher transactions affecting specific account(s). IMPORTANT: The financial_year parameter uses Fortnox sequential IDs (1, 2, 3...), NOT calendar years. Use fortnox_list_financial_years first to find the correct ID for your target year. Common use cases:
Note: This tool fetches voucher details and filters client-side since the Fortnox API doesn't support native account filtering. Use date ranges to limit the scan. Args:
Returns: Transactions matching the account criteria with optional summary. Examples:
|
| fortnox_search_vouchersA | Search vouchers by description text. IMPORTANT: The financial_year parameter uses Fortnox sequential IDs (1, 2, 3...), NOT calendar years. Use fortnox_list_financial_years first to find the correct ID for your target year. Performs client-side text search across voucher descriptions. Args:
Returns: Vouchers with descriptions matching the search text. Examples:
|
| fortnox_get_company_infoA | Retrieve information about the company connected to this Fortnox account. Returns company name, organisation number, addresses, contact details, and other company information. Args:
Returns: Company details including name, organisation number, address, and contact information. |
| fortnox_list_financial_yearsA | List all financial years configured in Fortnox. IMPORTANT: Voucher tools (fortnox_list_vouchers, fortnox_account_activity, etc.) use Fortnox sequential IDs (1, 2, 3...) NOT calendar years. Use this tool first to find the correct ID. Example: If ID 4 maps to 2025-01-01 to 2025-12-31, use financial_year=4 in voucher tools. Args:
Returns: List of financial years with ID, date range, and accounting method. |
| fortnox_invoice_summaryA | Calculate summary statistics for invoices over a period. Answers questions like:
Args:
Returns: For JSON: { period, date_range, summary: { count, total, average, min, max, ... }, groups?: [...], invoices?: [...] } For Markdown: Formatted summary with totals and optional breakdown Examples:
Error Handling:
|
| fortnox_top_customersA | Identify top customers by various metrics. Answers questions like:
Args:
Returns: For JSON: { metric, period, customers: [{ rank, customer_number, customer_name, value, invoice_count, ... }] } For Markdown: Ranked table of top customers Examples:
Error Handling:
|
| fortnox_unpaid_reportA | Generate an accounts receivable aging report for unpaid invoices. Answers questions like:
Args:
Returns: For JSON: { summary, by_customer?, by_age_bucket?, invoices? } For Markdown: Formatted aging report with totals Age Buckets:
Examples:
Error Handling:
|
| fortnox_list_ordersA | List sales orders with filtering by status, customer, date range. Filter: cancelled, expired, invoicecreated, invoicenotcreated. |
| fortnox_list_offersA | List sales offers/quotes with filtering by status, customer, date range. Filter: cancelled, expired, ordercreated, ordernotcreated. |
| fortnox_cash_flow_forecastA | Generate cash flow forecast from unpaid receivables and payables. Shows expected inflows, outflows, net flow, and running balance grouped by week or month. |
| fortnox_order_pipelineA | Analyze order pipeline and backlog. Shows pending vs invoiced orders grouped by status, customer, or month. |
| fortnox_sales_funnelA | Analyze sales funnel from offers to orders to invoices. Shows counts, values, and conversion rates at each stage. |
| fortnox_product_performanceA | Analyze product/customer sales performance. Returns top performers ranked by revenue, quantity, or invoice count. |
| fortnox_period_comparisonA | Compare business metrics (revenue, invoice count, etc.) between two time periods with percentage changes. |
| fortnox_customer_growthA | Identify growing and declining customers by comparing revenue across periods. Shows growth rates and trends. |
| fortnox_project_profitabilityA | [LIMITED] Analyze profitability by project. Returns project list only. For actual project financials, use fortnox_account_activity with project filtering on vouchers. |
| fortnox_cost_center_analysisA | [LIMITED] Analyze costs by cost center/department. Returns cost center list only. For actual cost center data, use fortnox_account_activity with cost center filtering on vouchers. |
| fortnox_expense_analysisA | [LIMITED] Analyze expenses by account class. Returns category structure only. For actual expense data, use fortnox_account_activity with account_range={from: 4000, to: 8999}. |
| fortnox_yearly_comparisonA | Compare revenue and metrics across multiple years (2-5). Shows year-over-year growth trends. |
| fortnox_gross_margin_trendA | [LIMITED] Analyze gross margin trends. Returns formula and structure only. For actual margin data, use fortnox_account_activity with:
|
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/erp-mafia/fortnox-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server