Skip to main content
Glama
erp-mafia

Fortnox MCP Server

by erp-mafia

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
PORTNoHTTP port (default: 3000).3000
AUTH_MODENoSet to 'remote' for remote mode, otherwise local mode (default).
TRANSPORTNoTransport protocol: 'stdio' (default) or 'http'.stdio
JWT_SECRETNoSecret for signing JWT tokens (remote mode).
SERVER_URLNoPublic URL of your server (remote mode).
FORTNOX_CLIENT_IDNoYour Fortnox app client ID.
FORTNOX_ACCESS_TOKENNoCurrent access token (auto-refreshed, optional).
FORTNOX_CLIENT_SECRETNoYour Fortnox app client secret.
FORTNOX_REFRESH_TOKENNoOAuth2 refresh token (local mode).
UPSTASH_REDIS_REST_URLNoUpstash Redis REST URL (optional, falls back to in-memory).
UPSTASH_REDIS_REST_TOKENNoUpstash Redis REST token (optional).

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
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:

  • limit (number): Max results per page, 1-100 (default: 20)

  • page (number): Page number for pagination (default: 1)

  • filter ('active' | 'inactive'): Filter by customer status

  • search_name (string): Search customers by name (partial match)

  • customer_number (string): Filter by specific customer number

  • organisation_number (string): Filter by organisation number

  • response_format ('markdown' | 'json'): Output format

Returns: List of customers with customer number, name, email, city, and organisation number.

Examples:

  • List all active customers: filter="active"

  • Search by name: search_name="Acme"

  • Get specific customer: customer_number="1001"

fortnox_get_customerA

Retrieve detailed information about a specific customer.

Args:

  • customer_number (string): The customer number to retrieve (required)

  • response_format ('markdown' | 'json'): Output format

Returns: Complete customer details including contact info, addresses, payment terms, and VAT settings.

fortnox_create_customerA

Create a new customer in Fortnox.

Args:

  • name (string): Customer name (required)

  • customer_number (string): Customer number (auto-generated if not provided)

  • organisation_number (string): Company registration number

  • email (string): Primary email address

  • phone (string): Primary phone number

  • address1, address2, zip_code, city, country, country_code: Address fields

  • currency (string): 3-letter currency code (e.g., 'SEK')

  • vat_number (string): VAT registration number

  • vat_type ('SEVAT' | 'EUVAT' | 'EUREVERSEDVAT' | 'EXPORT'): VAT type

  • terms_of_payment (string): Payment terms code

  • price_list (string): Price list code

  • comments (string): Internal comments

Returns: The created customer with assigned customer number.

fortnox_update_customerA

Update an existing customer in Fortnox.

Args:

  • customer_number (string): Customer number to update (required)

  • name, email, phone, address fields, etc.: Fields to update (only provided fields are changed)

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:

  • customer_number (string): Customer number to delete (required)

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:

  • limit (number): Max results per page, 1-100 (default: 20)

  • page (number): Page number for pagination (default: 1)

  • filter ('cancelled' | 'fullypaid' | 'unpaid' | 'unpaidoverdue' | 'unbooked'): Filter by invoice status

  • customer_number (string): Filter by customer number

  • from_date (string): Filter invoices from this date (YYYY-MM-DD)

  • to_date (string): Filter invoices to this date (YYYY-MM-DD)

  • period ('today' | 'yesterday' | 'this_week' | 'last_week' | 'this_month' | 'last_month' | 'this_quarter' | 'last_quarter' | 'this_year' | 'last_year'): Convenience date period, overrides from_date/to_date

  • from_final_pay_date (string): Filter by due date from (YYYY-MM-DD)

  • to_final_pay_date (string): Filter by due date to (YYYY-MM-DD)

  • sortby ('customername' | 'customernumber' | 'documentnumber' | 'invoicedate' | 'total'): Field to sort by

  • sortorder ('ascending' | 'descending'): Sort order (default: ascending)

  • fetch_all (boolean): Fetch all results by auto-paginating (max 10,000 results)

  • min_amount (number): Filter invoices >= this amount (client-side)

  • max_amount (number): Filter invoices <= this amount (client-side)

  • response_format ('markdown' | 'json'): Output format

Returns: For JSON: { total, page, limit, count, has_more, total_pages, next_offset?, truncated?, invoices: [...] } For Markdown: Formatted list with pagination info

Examples:

  • List unpaid invoices: filter="unpaid"

  • Last month's invoices: period="last_month"

  • Top invoices by amount: sortby="total", sortorder="descending"

  • All invoices over 10000: fetch_all=true, min_amount=10000

  • Customer invoices this year: customer_number="1001", period="this_year"

Error Handling:

  • Returns "Error: Rate limit exceeded..." if API limit hit

  • Returns truncation info if fetch_all hits safety limits

fortnox_get_invoiceA

Retrieve detailed information about a specific invoice including all line items.

Args:

  • document_number (string): The invoice document number to retrieve (required)

  • response_format ('markdown' | 'json'): Output format

Returns: Complete invoice details including customer info, dates, amounts, line items, and payment status.

fortnox_create_invoiceA

Create a new invoice in Fortnox.

Args:

  • customer_number (string): Customer number (required)

  • rows (array): Invoice line items (at least one required)

    • Each row: { description, quantity?, price?, article_number?, unit?, discount?, vat?, account_number? }

  • invoice_date (string): Invoice date YYYY-MM-DD (defaults to today)

  • due_date (string): Due date YYYY-MM-DD

  • our_reference (string): Our reference person

  • your_reference (string): Customer's reference

  • invoice_type ('INVOICE' | 'CASH' | 'CARD' | 'UNDEFINED'): Invoice type

  • currency (string): 3-letter currency code

  • terms_of_payment (string): Payment terms code

  • comments (string): Internal comments

  • remarks (string): Remarks printed on invoice

  • freight (number): Shipping cost

  • administration_fee (number): Admin fee

  • send_type ('EMAIL' | 'PRINT' | 'EINVOICE'): How to send

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:

  • document_number (string): Invoice document number to update (required)

  • rows (array): Updated line items (replaces all existing rows)

  • Other fields: Same as create_invoice

Returns: The updated invoice details.

fortnox_bookkeep_invoiceA

Bookkeep an invoice, creating the accounting entries. Once booked, the invoice cannot be edited.

Args:

  • document_number (string): Invoice document number to bookkeep (required)

  • response_format ('markdown' | 'json'): Output format

Returns: Confirmation of bookkeeping with the created voucher reference.

fortnox_cancel_invoiceA

Cancel an invoice. Booked invoices will have reversal entries created.

Args:

  • document_number (string): Invoice document number to cancel (required)

  • response_format ('markdown' | 'json'): Output format

Returns: Confirmation of cancellation.

fortnox_credit_invoiceA

Create a credit note for an invoice. This creates a new credit invoice referencing the original.

Args:

  • document_number (string): Invoice document number to credit (required)

  • response_format ('markdown' | 'json'): Output format

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:

  • document_number (string): Invoice document number to send (required)

  • response_format ('markdown' | 'json'): Output format

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:

  • limit (number): Max results per page, 1-100 (default: 20)

  • page (number): Page number for pagination (default: 1)

  • filter ('active' | 'inactive'): Filter by supplier status

  • search_name (string): Search suppliers by name (partial match)

  • response_format ('markdown' | 'json'): Output format

Returns: List of suppliers with supplier number, name, email, city, and organisation number.

fortnox_get_supplierA

Retrieve detailed information about a specific supplier.

Args:

  • supplier_number (string): The supplier number to retrieve (required)

  • response_format ('markdown' | 'json'): Output format

Returns: Complete supplier details including contact info, addresses, bank details, and payment terms.

fortnox_create_supplierA

Create a new supplier in Fortnox.

Args:

  • name (string): Supplier name (required)

  • supplier_number (string): Supplier number (auto-generated if not provided)

  • organisation_number (string): Company registration number

  • email (string): Email address

  • phone (string): Phone number

  • address1, address2, zip_code, city, country, country_code: Address fields

  • currency (string): 3-letter currency code

  • vat_number (string): VAT registration number

  • bank_account (string): Bank account number

  • bg_number (string): Bankgiro number

  • pg_number (string): Plusgiro number

  • terms_of_payment (string): Payment terms code

  • comments (string): Internal comments

Returns: The created supplier with assigned supplier number.

fortnox_update_supplierA

Update an existing supplier in Fortnox.

Args:

  • supplier_number (string): Supplier number to update (required)

  • All other fields from create_supplier (only provided fields are updated)

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:

  • supplier_number (string): Supplier number to delete (required)

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:

  • limit (number): Max results per page, 1-100 (default: 20)

  • page (number): Page number for pagination (default: 1)

  • filter ('cancelled' | 'fullypaid' | 'unpaid' | 'unpaidoverdue' | 'unbooked' | 'pendingpayment'): Filter by invoice status

  • supplier_number (string): Filter by supplier number

  • from_date (string): Filter invoices from this date (YYYY-MM-DD)

  • to_date (string): Filter invoices to this date (YYYY-MM-DD)

  • period ('today' | 'yesterday' | ... | 'last_year'): Convenience date period, overrides from_date/to_date

  • from_final_pay_date (string): Filter by due date from (YYYY-MM-DD)

  • to_final_pay_date (string): Filter by due date to (YYYY-MM-DD)

  • sortby ('suppliername' | 'suppliernumber' | 'invoicenumber' | 'invoicedate' | 'total'): Field to sort by

  • sortorder ('ascending' | 'descending'): Sort order (default: ascending)

  • fetch_all (boolean): Fetch all results by auto-paginating (max 10,000 results)

  • min_amount (number): Filter invoices >= this amount (client-side)

  • max_amount (number): Filter invoices <= this amount (client-side)

  • response_format ('markdown' | 'json'): Output format

Returns: List of supplier invoices with supplier, dates, amounts, and status.

Examples:

  • List unpaid supplier invoices: filter="unpaid"

  • Last month's supplier invoices: period="last_month"

  • Supplier invoices this year: supplier_number="1", period="this_year"

fortnox_get_supplier_invoiceA

Retrieve detailed information about a specific supplier invoice including all line items.

Args:

  • given_number (string): The supplier invoice given number to retrieve (required)

  • response_format ('markdown' | 'json'): Output format

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:

  • given_number (string): The supplier invoice given number to approve (required)

  • response_format ('markdown' | 'json'): Output format

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:

  • "What supplier invoices are overdue?"

  • "How much do we owe each supplier?"

  • "Show me aging breakdown of payables"

  • "Which supplier invoices over 10,000 SEK are unpaid?"

Args:

  • min_amount (number): Only include invoices >= this amount

  • supplier_number (string): Filter by specific supplier

  • group_by ('supplier' | 'age_bucket' | 'both'): How to group report (default: both)

  • include_details (boolean): Include individual invoice list (default: true)

  • response_format ('markdown' | 'json'): Output format

Returns: Aging report with summary, breakdowns by supplier and age bucket.

Age Buckets:

  • not_due: Due date is in the future

  • 1-30 days: Overdue 1-30 days

  • 31-60 days: Overdue 31-60 days

  • 61-90 days: Overdue 61-90 days

  • 90+ days: Overdue more than 90 days

Examples:

  • Full payables report: (use defaults)

  • Large unpaid invoices: min_amount=50000

  • Specific supplier: supplier_number="1"

fortnox_list_accountsA

List accounts from the chart of accounts in Fortnox.

Retrieves a paginated list of accounts with optional filtering.

Args:

  • limit (number): Max results per page, 1-100 (default: 20)

  • page (number): Page number for pagination (default: 1)

  • search_description (string): Search accounts by description

  • from_account (number): Filter accounts from this number (1000-9999)

  • to_account (number): Filter accounts to this number (1000-9999)

  • response_format ('markdown' | 'json'): Output format

Returns: List of accounts with account number, description, and active status.

Examples:

  • List revenue accounts: from_account=3000, to_account=3999

  • List expense accounts: from_account=4000, to_account=8999

fortnox_get_accountA

Retrieve detailed information about a specific account.

Args:

  • account_number (number): The account number to retrieve (1000-9999, required)

  • response_format ('markdown' | 'json'): Output format

Returns: Complete account details including description, VAT settings, and balances.

fortnox_create_accountB

Create a new account in the chart of accounts.

Args:

  • account_number (number): Account number 1000-9999 (required)

  • description (string): Account description (required)

  • vat_code (string): VAT code for the account

  • active (boolean): Whether the account is active (default: true)

  • cost_center_settings ('ALLOWED' | 'MANDATORY' | 'NOTALLOWED'): Cost center settings

  • project_settings ('ALLOWED' | 'MANDATORY' | 'NOTALLOWED'): Project settings

  • sru_code (number): SRU code for tax reporting

Returns: The created account details.

fortnox_update_accountB

Update an existing account in the chart of accounts.

Args:

  • account_number (number): Account number to update (required)

  • description (string): Account description

  • vat_code (string): VAT code

  • active (boolean): Whether the account is active

  • cost_center_settings ('ALLOWED' | 'MANDATORY' | 'NOTALLOWED'): Cost center settings

  • project_settings ('ALLOWED' | 'MANDATORY' | 'NOTALLOWED'): Project settings

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:

  • account_number (number): Account number to delete (required)

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:

  • limit (number): Max results per page, 1-100 (default: 20)

  • page (number): Page number for pagination (default: 1)

  • voucher_series (string): Filter by voucher series (e.g., 'A', 'B')

  • financial_year (number): Fortnox financial year ID (use fortnox_list_financial_years to find)

  • from_date (string): Filter vouchers from this date (YYYY-MM-DD)

  • to_date (string): Filter vouchers to this date (YYYY-MM-DD)

  • response_format ('markdown' | 'json'): Output format

Returns: List of vouchers with series, number, description, and date.

Examples:

  • First call fortnox_list_financial_years to find that ID 4 = 2025

  • List vouchers for 2025: financial_year=4

  • List manual vouchers: voucher_series="A", financial_year=4

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:

  • voucher_series (string): Voucher series (e.g., 'A') (required)

  • voucher_number (number): Voucher number within the series (required)

  • financial_year (number): Fortnox financial year ID (use fortnox_list_financial_years to find)

  • response_format ('markdown' | 'json'): Output format

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:

  • voucher_series (string): Voucher series (e.g., 'A', 'B') (required)

  • description (string): Voucher description (required)

  • transaction_date (string): Transaction date YYYY-MM-DD (required)

  • rows (array): Accounting rows, minimum 2 (required)

    • Each row: { account_number, debit?, credit?, description?, cost_center?, project? }

  • cost_center (string): Default cost center for all rows

  • project (string): Default project for all rows

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:

  • response_format ('markdown' | 'json'): Output format

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:

  • Rent expenses: account_number=5010 (or 5010-5099 range)

  • Salary costs: account_range={ from: 7000, to: 7999 }

  • Bank transactions: account_number=1930

  • Revenue analysis: account_range={ from: 3000, to: 3999 }

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:

  • account_number (number): Single account number to filter by (1000-9999)

  • account_numbers (array): Multiple account numbers to filter by (max 20)

  • account_range (object): Account range { from: 3000, to: 3999 }

  • financial_year (number): Fortnox financial year ID (use fortnox_list_financial_years to find)

  • period ('today' | ... | 'last_year'): Convenience date period filter

  • from_date (string): Filter vouchers from this date (YYYY-MM-DD)

  • to_date (string): Filter vouchers to this date (YYYY-MM-DD)

  • voucher_series (string): Filter by voucher series (e.g., 'A')

  • include_summary (boolean): Include totals per account (default: true)

  • max_vouchers (number): Max vouchers to scan, 10-500 (default: 500)

  • response_format ('markdown' | 'json'): Output format

Returns: Transactions matching the account criteria with optional summary.

Examples:

  • First call fortnox_list_financial_years to find that ID 4 = 2025

  • Bank transactions this month: account_number=1930, financial_year=4, period="this_month"

  • Salary costs: account_range={ from: 7000, to: 7999 }, financial_year=4

  • Rent expenses: account_number=5010, financial_year=4

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:

  • search_text (string): Text to search for in voucher descriptions (min 2 chars)

  • financial_year (number): Fortnox financial year ID (use fortnox_list_financial_years to find)

  • period ('today' | ... | 'last_year'): Convenience date period filter

  • from_date (string): Filter vouchers from this date (YYYY-MM-DD)

  • to_date (string): Filter vouchers to this date (YYYY-MM-DD)

  • voucher_series (string): Filter by voucher series (e.g., 'A')

  • case_sensitive (boolean): Case-sensitive search (default: false)

  • include_rows (boolean): Include voucher row details (default: false)

  • max_vouchers (number): Max vouchers to scan, 10-500 (default: 500)

  • response_format ('markdown' | 'json'): Output format

Returns: Vouchers with descriptions matching the search text.

Examples:

  • First call fortnox_list_financial_years to find that ID 4 = 2025

  • Find salary vouchers: search_text="salary", financial_year=4, period="this_year"

  • Find rent payments: search_text="rent", financial_year=4, voucher_series="B"

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:

  • response_format ('markdown' | 'json'): Output format

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:

  • response_format ('markdown' | 'json'): Output format

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:

  • "What was my total revenue this month?"

  • "How many invoices did we send last quarter?"

  • "What's the average invoice amount this year?"

  • "Show me revenue breakdown by customer"

Args:

  • period ('today' | 'yesterday' | 'this_week' | 'last_week' | 'this_month' | 'last_month' | 'this_quarter' | 'last_quarter' | 'this_year' | 'last_year'): Date period to analyze

  • from_date (string): Start date YYYY-MM-DD (ignored if period specified)

  • to_date (string): End date YYYY-MM-DD (ignored if period specified)

  • filter ('cancelled' | 'fullypaid' | 'unpaid' | 'unpaidoverdue' | 'unbooked'): Filter by invoice status

  • customer_number (string): Filter by specific customer

  • group_by ('customer' | 'month' | 'status'): Group statistics by dimension

  • include_details (boolean): Include individual invoice list (default: false)

  • response_format ('markdown' | 'json'): Output format

Returns: For JSON: { period, date_range, summary: { count, total, average, min, max, ... }, groups?: [...], invoices?: [...] } For Markdown: Formatted summary with totals and optional breakdown

Examples:

  • Monthly revenue: period="this_month"

  • Revenue by customer this year: period="this_year", group_by="customer"

  • Unpaid invoice totals: filter="unpaid"

Error Handling:

  • Returns truncation warning if >10,000 invoices

  • Returns "Error: ..." if API call fails

fortnox_top_customersA

Identify top customers by various metrics.

Answers questions like:

  • "Who are my top 10 customers by revenue?"

  • "Which customers have the most invoices?"

  • "Who has the highest unpaid balance?"

  • "What's the average invoice size per customer?"

Args:

  • metric ('total_amount' | 'invoice_count' | 'unpaid_amount' | 'average_invoice'): How to rank customers (default: total_amount)

  • period ('today' | ... | 'last_year'): Date period to analyze

  • from_date (string): Start date YYYY-MM-DD (ignored if period specified)

  • to_date (string): End date YYYY-MM-DD (ignored if period specified)

  • top_n (number): Number of customers to return, 1-50 (default: 10)

  • include_details (boolean): Include invoice breakdown per customer (default: false)

  • response_format ('markdown' | 'json'): Output format

Returns: For JSON: { metric, period, customers: [{ rank, customer_number, customer_name, value, invoice_count, ... }] } For Markdown: Ranked table of top customers

Examples:

  • Top 10 by revenue this year: period="this_year", top_n=10

  • Customers with most unpaid: metric="unpaid_amount"

  • Top 5 by invoice count last month: metric="invoice_count", period="last_month", top_n=5

Error Handling:

  • Returns truncation warning if >10,000 invoices analyzed

  • Returns "Error: ..." if API call fails

fortnox_unpaid_reportA

Generate an accounts receivable aging report for unpaid invoices.

Answers questions like:

  • "What invoices are overdue?"

  • "How much is owed by each customer?"

  • "Show me aging breakdown of receivables"

  • "Which invoices over 10,000 SEK are unpaid?"

Args:

  • min_amount (number): Only include invoices >= this amount

  • customer_number (string): Filter by specific customer

  • group_by ('customer' | 'age_bucket' | 'both'): How to group report (default: both)

  • include_details (boolean): Include individual invoice list (default: true)

  • response_format ('markdown' | 'json'): Output format

Returns: For JSON: { summary, by_customer?, by_age_bucket?, invoices? } For Markdown: Formatted aging report with totals

Age Buckets:

  • not_due: Due date is in the future

  • 1-30 days: Overdue 1-30 days

  • 31-60 days: Overdue 31-60 days

  • 61-90 days: Overdue 61-90 days

  • 90+ days: Overdue more than 90 days

Examples:

  • Full aging report: (use defaults)

  • Large unpaid invoices: min_amount=50000

  • Specific customer aging: customer_number="1001"

Error Handling:

  • Returns truncation warning if >10,000 invoices

  • Returns "Error: ..." if API call fails

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:

  • Revenue: account_range={from: 3000, to: 3999}

  • COGS: account_range={from: 4000, to: 4999}

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

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