Skip to main content
Glama
Walma-Labs

fortnox-mcp

by Walma-Labs

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
PORTNoPort for the streamable HTTP server (`node dist/http.js`).8080
FORTNOX_SCOPESNoSpace-separated scopes requested at login.companyinformation bookkeeping invoice customer supplierinvoice supplier article payment settings
FORTNOX_CLIENT_IDNoClient ID from your app in the Fortnox Developer Portal.
FORTNOX_TOKEN_FILENoPath to the token file where OAuth tokens are saved.~/.config/fortnox-mcp/tokens.json
FORTNOX_ACCESS_TOKENNoA ready access token to use instead of the token file; no refresh.
FORTNOX_ACCOUNT_TYPENoSet to `service` for a service account (approver must be a system administrator).
FORTNOX_REDIRECT_URINoOAuth redirect URI; must match the portal exactly.http://localhost:8765/callback
FORTNOX_CLIENT_SECRETNoClient secret from your app in the Fortnox Developer Portal.
FORTNOX_ENABLE_WRITESNoSet to `true` to register the draft-only write tools.false
FORTNOX_TOKEN_FROM_HEADERNoFor the HTTP server: set to `true` so each request carries its own token in the `X-Fortnox-Access-Token` header.false

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
get_company_infoA

Who the connected Fortnox company is (name, org number, address, VAT number), its financial years, and the locked period (the date through which the books are closed). Call this first to orient.

list_financial_yearsA

All financial years (räkenskapsår) with id and date range. The id is what SIE and voucher calls take.

list_invoicesA

Customer invoices (kundfakturor), newest first unless sorted otherwise. Filter by status (unpaid, unpaidoverdue, fullypaid, unbooked, cancelled), invoice date range and customer. Total includes VAT; Balance is the amount still unpaid according to Fortnox.

get_invoiceB

One customer invoice in full: rows, Net (excl. VAT), VAT, Balance, due date, references, booked/sent state.

list_invoice_paymentsB

Payments registered against customer invoices (inbetalningar). Optionally for one invoice.

list_supplier_invoicesB

Supplier invoices (leverantörsfakturor). Filter by status (unpaid, unpaidoverdue, fullypaid, unbooked, cancelled, pendingpayment, authorizepending = awaiting attest), date range and supplier.

get_supplier_invoiceA

One supplier invoice in full, with its accounting rows. given_number is Fortnox's own serial number for it.

list_customersC

Customer register. Search by name, org number or email.

get_customerB

One customer in full: addresses, terms of payment, VAT type, default references.

list_suppliersC

Supplier register.

get_supplierB

One supplier in full, including bank details as registered in Fortnox.

list_articlesC

Article (product/service) register with prices and stock.

list_ordersC

Customer orders. Filter invoicenotcreated shows orders not yet invoiced.

list_offersD

Quotes/offers (offerter).

list_projectsC

Projects, used to tag invoices, vouchers and costs.

list_cost_centersC

Cost centers (kostnadsställen).

list_accountsB

Chart of accounts (kontoplan) for a financial year, with opening (BalanceBroughtForward) and closing (BalanceCarriedForward) balances.

list_vouchersA

Vouchers (verifikationer) by date range or series. Rows are not included; use get_voucher for one, or the report tools for totals.

get_voucherC

One voucher with its debit/credit rows.

income_statementA

Profit and loss for any date range, grouped by BAS account class with per-account lines: revenue, goods, external costs, personnel, depreciation, financial items, tax. Revenue positive, costs negative. Built from the SIE export, so it matches the books exactly, including manual vouchers.

balance_sheetB

Assets, equity and liabilities on a date, per account, plus the year's result not yet closed to equity. Cash and bank are the 19xx accounts.

account_totals_by_monthA

Monthly net movement for an account range, e.g. 3000–3999 for revenue per month, 5000–6999 for external costs, 7000–7699 for personnel, 1930–1930 for the business account. Revenue accounts (3xxx+) are sign-flipped so income reads positive.

receivables_agingA

Unpaid customer invoices bucketed by days past due (not due, 1–30, 31–60, 61–90, 90+), per customer, with the most overdue invoices.

payables_agingB

Unpaid supplier invoices bucketed by days past due, per supplier, with the most overdue.

list_endpointsA

Search the read-only Fortnox endpoints fortnox_get can call (assets, contracts, employees, salary, time, warehouse, price lists, currencies, …). Returns path templates and summaries.

fortnox_getA

GET a Fortnox API path that matches one of the templates from list_endpoints, with {placeholders} filled in, e.g. /3/assets or /3/employees/12. Read-only: nothing that sends, prints or changes data is reachable.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

B3/5.0

Scored across 26 tools

Disambiguation4/5

Most tools target distinct resources or actions, with clear list-vs-get pairs for invoices, suppliers, customers, vouchers, and supplier invoices. The generic list_endpoints/fortnox_get pair overlaps somewhat with the specific list/get tools, which could cause occasional misselection, but descriptions distinguish their intended use.

Naming Consistency4/5

The resource tools consistently use snake_case with list_* for collections and get_* for single records, which is predictable. Report tools use noun phrases such as income_statement and balance_sheet, and fortnox_get uses a provider-prefixed verb-last form, creating minor deviations from the dominant pattern.

Tool Count3/5

26 tools is on the heavy side for an MCP server, and the generic fortnox_get tool means some specific list/get tools could be consolidated. However, the broad Fortnox accounting domain legitimately covers many resources, so most tools have a defensible place.

Completeness4/5

The server provides broad read-only coverage across core accounting resources, including registers, transactions, reports, aging, and a generic read-only endpoint fallback. Some resources lack dedicated get/list tools, but agents can usually work around this via list_endpoints/fortnox_get; write operations are absent but appear intentionally out of scope.

Maintenance

ActivityMaintained
ResponsivenessNo issues