← Back to search

fortnox-mcp-server

jakobwennberg Scanned 30d ago

MCP server for Fortnox Swedish accounting API integration

C
69.9 / 100

Versions

1.0.1latest
Apr 8, 2026
1.0.0
Jan 25, 2026
PermissionsTool SafetyAuthAnnotationsCode QualityStabilitySpecVuln HistoryAuthorTransparencyCommunity

Tools 51

fortnox_list_accounts
annotations: verified low

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

readOnlyHint true openWorldHint true idempotentHint true destructiveHint false
fortnox_get_account
annotations: verified low

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.

readOnlyHint true openWorldHint true idempotentHint true destructiveHint false
fortnox_create_account
annotations: verified low

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.

readOnlyHint false openWorldHint true idempotentHint false destructiveHint false
fortnox_update_account
annotations: verified low

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.

readOnlyHint false openWorldHint true idempotentHint true destructiveHint false
fortnox_delete_account
annotations: verified low

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.

readOnlyHint false openWorldHint true idempotentHint false destructiveHint true
fortnox_list_customers
annotations: verified low

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"

readOnlyHint true openWorldHint true idempotentHint true destructiveHint false
fortnox_get_customer
annotations: verified low

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.

readOnlyHint true openWorldHint true idempotentHint true destructiveHint false
fortnox_create_customer
annotations: verified low

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.

readOnlyHint false openWorldHint true idempotentHint false destructiveHint false
fortnox_update_customer
annotations: verified low

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.

readOnlyHint false openWorldHint true idempotentHint true destructiveHint false
fortnox_delete_customer
annotations: verified low

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.

readOnlyHint false openWorldHint true idempotentHint false destructiveHint true
fortnox_list_suppliers
annotations: verified low

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.

readOnlyHint true openWorldHint true idempotentHint true destructiveHint false
fortnox_get_supplier
annotations: verified low

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.

readOnlyHint true openWorldHint true idempotentHint true destructiveHint false
fortnox_create_supplier
annotations: verified low

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.

readOnlyHint false openWorldHint true idempotentHint false destructiveHint false
fortnox_update_supplier
annotations: verified low

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.

readOnlyHint false openWorldHint true idempotentHint true destructiveHint false
fortnox_delete_supplier
annotations: verified low

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.

readOnlyHint false openWorldHint true idempotentHint false destructiveHint true
fortnox_get_company_info
annotations: verified low

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.

readOnlyHint true openWorldHint true idempotentHint true destructiveHint false
fortnox_list_financial_years
annotations: verified low

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.

readOnlyHint true openWorldHint true idempotentHint true destructiveHint false
fortnox_list_orders
annotations: verified low

List sales orders with filtering by status, customer, date range. Filter: cancelled, expired, invoicecreated, invoicenotcreated.

readOnlyHint true openWorldHint true idempotentHint true destructiveHint false
fortnox_list_offers
annotations: verified low

List sales offers/quotes with filtering by status, customer, date range. Filter: cancelled, expired, ordercreated, ordernotcreated.

readOnlyHint true openWorldHint true idempotentHint true destructiveHint false
fortnox_list_supplier_invoices
annotations: verified low

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"

readOnlyHint true openWorldHint true idempotentHint true destructiveHint false
fortnox_get_supplier_invoice
annotations: verified low

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.

readOnlyHint true openWorldHint true idempotentHint true destructiveHint false
fortnox_approve_supplier_invoice
annotations: verified low

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.

readOnlyHint false openWorldHint true idempotentHint false destructiveHint false
fortnox_payables_report
annotations: verified low

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"

readOnlyHint true openWorldHint true idempotentHint true destructiveHint false
fortnox_invoice_summary
annotations: verified low

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

readOnlyHint true openWorldHint true idempotentHint true destructiveHint false
fortnox_top_customers
annotations: verified low

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

readOnlyHint true openWorldHint true idempotentHint true destructiveHint false
fortnox_unpaid_report
annotations: verified low

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

readOnlyHint true openWorldHint true idempotentHint true destructiveHint false
fortnox_list_vouchers
annotations: verified low

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

readOnlyHint true openWorldHint true idempotentHint true destructiveHint false
fortnox_get_voucher
annotations: verified low

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.

readOnlyHint true openWorldHint true idempotentHint true destructiveHint false
fortnox_create_voucher
annotations: verified low

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" } ] }

readOnlyHint false openWorldHint true idempotentHint false destructiveHint false
fortnox_list_voucher_series
annotations: verified low

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.

readOnlyHint true openWorldHint true idempotentHint true destructiveHint false
fortnox_account_activity
annotations: verified low

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

readOnlyHint true openWorldHint true idempotentHint true destructiveHint false
fortnox_search_vouchers
annotations: verified low

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"

readOnlyHint true openWorldHint true idempotentHint true destructiveHint false
fortnox_cash_flow_forecast
annotations: verified low

Generate cash flow forecast from unpaid receivables and payables. Shows expected inflows, outflows, net flow, and running balance grouped by week or month.

readOnlyHint true openWorldHint true idempotentHint true destructiveHint false
fortnox_order_pipeline
annotations: verified low

Analyze order pipeline and backlog. Shows pending vs invoiced orders grouped by status, customer, or month.

readOnlyHint true openWorldHint true idempotentHint true destructiveHint false
fortnox_sales_funnel
annotations: verified low

Analyze sales funnel from offers to orders to invoices. Shows counts, values, and conversion rates at each stage.

readOnlyHint true openWorldHint true idempotentHint true destructiveHint false
fortnox_product_performance
annotations: verified low

Analyze product/customer sales performance. Returns top performers ranked by revenue, quantity, or invoice count.

readOnlyHint true openWorldHint true idempotentHint true destructiveHint false
fortnox_period_comparison
annotations: verified low

Compare business metrics (revenue, invoice count, etc.) between two time periods with percentage changes.

readOnlyHint true openWorldHint true idempotentHint true destructiveHint false
fortnox_customer_growth
annotations: verified low

Identify growing and declining customers by comparing revenue across periods. Shows growth rates and trends.

readOnlyHint true openWorldHint true idempotentHint true destructiveHint false
fortnox_project_profitability
annotations: verified low

[LIMITED] Analyze profitability by project. Returns project list only. For actual project financials, use fortnox_account_activity with project filtering on vouchers.

readOnlyHint true openWorldHint true idempotentHint true destructiveHint false
fortnox_cost_center_analysis
annotations: verified low

[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.

readOnlyHint true openWorldHint true idempotentHint true destructiveHint false
fortnox_expense_analysis
annotations: verified low

[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}.

readOnlyHint true openWorldHint true idempotentHint true destructiveHint false
fortnox_yearly_comparison
annotations: verified low

Compare revenue and metrics across multiple years (2-5). Shows year-over-year growth trends.

readOnlyHint true openWorldHint true idempotentHint true destructiveHint false
fortnox_gross_margin_trend
annotations: verified low

[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}

readOnlyHint true openWorldHint true idempotentHint true destructiveHint false
fortnox_list_invoices
annotations: verified low

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

readOnlyHint true openWorldHint true idempotentHint true destructiveHint false
fortnox_get_invoice
annotations: verified low

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.

readOnlyHint true openWorldHint true idempotentHint true destructiveHint false
fortnox_create_invoice
annotations: verified low

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 }]

readOnlyHint false openWorldHint true idempotentHint false destructiveHint false
fortnox_update_invoice
annotations: verified low

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.

readOnlyHint false openWorldHint true idempotentHint true destructiveHint false
fortnox_bookkeep_invoice
annotations: verified low

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.

readOnlyHint false openWorldHint true idempotentHint false destructiveHint false
fortnox_cancel_invoice
annotations: verified low

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.

readOnlyHint false openWorldHint true idempotentHint false destructiveHint true
fortnox_credit_invoice
annotations: verified low

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.

readOnlyHint false openWorldHint true idempotentHint false destructiveHint false
fortnox_send_invoice_email
annotations: verified low

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.

readOnlyHint false openWorldHint true idempotentHint false destructiveHint false

Permissions 3

network medium
Server uses network capabilities via: fetch()
filesystem low
Server uses filesystem capabilities via: pathlib
env_vars low
Server uses env_vars capabilities via: process.env

Scan Findings 158

info
Tool 'fortnox_delete_customer' annotations are consistent annotation_checker · 80%
info
Tool 'fortnox_list_suppliers' annotations are consistent annotation_checker · 80%
info
Tool 'fortnox_get_supplier' annotations are consistent annotation_checker · 80%
info
Tool 'fortnox_list_accounts' annotations are consistent annotation_checker · 80%
info
Tool 'fortnox_get_account' annotations are consistent annotation_checker · 80%
info
Tool 'fortnox_create_account' annotations are consistent annotation_checker · 80%
info
Tool 'fortnox_update_account' annotations are consistent annotation_checker · 80%
info
Tool 'fortnox_delete_account' annotations are consistent annotation_checker · 80%
info
Tool 'fortnox_list_customers' annotations are consistent annotation_checker · 80%
info
Tool 'fortnox_get_customer' annotations are consistent annotation_checker · 80%
info
Tool 'fortnox_create_customer' annotations are consistent annotation_checker · 80%
info
Tool 'fortnox_update_customer' annotations are consistent annotation_checker · 80%
info
Tool 'fortnox_create_supplier' annotations are consistent annotation_checker · 80%
info
Tool 'fortnox_update_supplier' annotations are consistent annotation_checker · 80%
info
Tool 'fortnox_delete_supplier' annotations are consistent annotation_checker · 80%
info
Tool 'fortnox_get_company_info' annotations are consistent annotation_checker · 80%
info
Tool 'fortnox_list_financial_years' annotations are consistent annotation_checker · 80%
info
Tool 'fortnox_list_orders' annotations are consistent annotation_checker · 80%
info
Tool 'fortnox_list_offers' annotations are consistent annotation_checker · 80%
info
Tool 'fortnox_list_supplier_invoices' annotations are consistent annotation_checker · 80%
info
Tool 'fortnox_get_supplier_invoice' annotations are consistent annotation_checker · 80%
info
Tool 'fortnox_approve_supplier_invoice' annotations are consistent annotation_checker · 80%
info
Tool 'fortnox_payables_report' annotations are consistent annotation_checker · 80%
info
Tool 'fortnox_invoice_summary' annotations are consistent annotation_checker · 80%
info
Tool 'fortnox_top_customers' annotations are consistent annotation_checker · 80%
info
Tool 'fortnox_unpaid_report' annotations are consistent annotation_checker · 80%
info
Tool 'fortnox_list_vouchers' annotations are consistent annotation_checker · 80%
info
Tool 'fortnox_get_voucher' annotations are consistent annotation_checker · 80%
info
Tool 'fortnox_create_voucher' annotations are consistent annotation_checker · 80%
info
Tool 'fortnox_list_voucher_series' annotations are consistent annotation_checker · 80%
info
Tool 'fortnox_account_activity' annotations are consistent annotation_checker · 80%
info
Tool 'fortnox_search_vouchers' annotations are consistent annotation_checker · 80%
info
Tool 'fortnox_cash_flow_forecast' annotations are consistent annotation_checker · 80%
info
Tool 'fortnox_order_pipeline' annotations are consistent annotation_checker · 80%
info
Tool 'fortnox_sales_funnel' annotations are consistent annotation_checker · 80%
info
Tool 'fortnox_product_performance' annotations are consistent annotation_checker · 80%
info
Tool 'fortnox_period_comparison' annotations are consistent annotation_checker · 80%
info
Tool 'fortnox_customer_growth' annotations are consistent annotation_checker · 80%
info
Tool 'fortnox_project_profitability' annotations are consistent annotation_checker · 80%
info
Tool 'fortnox_cost_center_analysis' annotations are consistent annotation_checker · 80%
info
Tool 'fortnox_expense_analysis' annotations are consistent annotation_checker · 80%
info
Tool 'fortnox_yearly_comparison' annotations are consistent annotation_checker · 80%
info
Tool 'fortnox_gross_margin_trend' annotations are consistent annotation_checker · 80%
info
Tool 'fortnox_list_invoices' annotations are consistent annotation_checker · 80%
info
Tool 'fortnox_get_invoice' annotations are consistent annotation_checker · 80%
info
Tool 'fortnox_create_invoice' annotations are consistent annotation_checker · 80%
info
Tool 'fortnox_update_invoice' annotations are consistent annotation_checker · 80%
info
Tool 'fortnox_bookkeep_invoice' annotations are consistent annotation_checker · 80%
info
Tool 'fortnox_cancel_invoice' annotations are consistent annotation_checker · 80%
info
Tool 'fortnox_credit_invoice' annotations are consistent annotation_checker · 80%
info
Tool 'fortnox_send_invoice_email' annotations are consistent annotation_checker · 80%
info
Sandbox failed to start for behavioral verification behavioral_verifier · 100%
medium
Vulnerable dependency: @modelcontextprotocol/sdk@1.6.1 (GHSA-8r9q-7v3j-jr4g) dependency_analyzer · 95%
medium
Vulnerable dependency: @modelcontextprotocol/sdk@1.6.1 (GHSA-w48q-cv73-mx4w) dependency_analyzer · 95%
medium
Vulnerable dependency: axios@1.7.9 (GHSA-35jp-ww65-95wh) dependency_analyzer · 95%
medium
Vulnerable dependency: axios@1.7.9 (GHSA-3g43-6gmg-66jw) dependency_analyzer · 95%
medium
Vulnerable dependency: axios@1.7.9 (GHSA-3p68-rc4w-qgx5) dependency_analyzer · 95%
medium
Vulnerable dependency: axios@1.7.9 (GHSA-3w6x-2g7m-8v23) dependency_analyzer · 95%
medium
Vulnerable dependency: axios@1.7.9 (GHSA-42h9-826w-cgv3) dependency_analyzer · 95%
medium
Vulnerable dependency: axios@1.7.9 (GHSA-43fc-jf86-j433) dependency_analyzer · 95%
medium
Vulnerable dependency: axios@1.7.9 (GHSA-445q-vr5w-6q77) dependency_analyzer · 95%
medium
Vulnerable dependency: axios@1.7.9 (GHSA-4hjh-wcwx-xvwj) dependency_analyzer · 95%
medium
Vulnerable dependency: axios@1.7.9 (GHSA-5c9x-8gcm-mpgx) dependency_analyzer · 95%
medium
Vulnerable dependency: axios@1.7.9 (GHSA-62hf-57xw-28j9) dependency_analyzer · 95%
medium
Vulnerable dependency: axios@1.7.9 (GHSA-6chq-wfr3-2hj9) dependency_analyzer · 95%
medium
Vulnerable dependency: axios@1.7.9 (GHSA-777c-7fjr-54vf) dependency_analyzer · 95%
medium
Vulnerable dependency: axios@1.7.9 (GHSA-7q8q-rj6j-mhjq) dependency_analyzer · 95%
medium
Vulnerable dependency: axios@1.7.9 (GHSA-898c-q2cr-xwhg) dependency_analyzer · 95%
medium
Vulnerable dependency: axios@1.7.9 (GHSA-fvcv-3m26-pcqx) dependency_analyzer · 95%
medium
Vulnerable dependency: axios@1.7.9 (GHSA-hfxv-24rg-xrqf) dependency_analyzer · 95%
medium
Vulnerable dependency: axios@1.7.9 (GHSA-j5f8-grm9-p9fc) dependency_analyzer · 95%
medium
Vulnerable dependency: axios@1.7.9 (GHSA-jqh4-m9w3-8hp9) dependency_analyzer · 95%
medium
Vulnerable dependency: axios@1.7.9 (GHSA-jr5f-v2jv-69x6) dependency_analyzer · 95%
medium
Vulnerable dependency: axios@1.7.9 (GHSA-m7pr-hjqh-92cm) dependency_analyzer · 95%
medium
Vulnerable dependency: axios@1.7.9 (GHSA-mmx7-hfxf-jppx) dependency_analyzer · 95%
medium
Vulnerable dependency: axios@1.7.9 (GHSA-p92q-9vqr-4j8v) dependency_analyzer · 95%
medium
Vulnerable dependency: axios@1.7.9 (GHSA-pf86-5x62-jrwf) dependency_analyzer · 95%
medium
Vulnerable dependency: axios@1.7.9 (GHSA-pmv8-rq9r-6j72) dependency_analyzer · 95%
medium
Vulnerable dependency: axios@1.7.9 (GHSA-pmwg-cvhr-8vh7) dependency_analyzer · 95%
medium
Vulnerable dependency: axios@1.7.9 (GHSA-q8qp-cvcw-x6jj) dependency_analyzer · 95%
medium
Vulnerable dependency: axios@1.7.9 (GHSA-vf2m-468p-8v99) dependency_analyzer · 95%
medium
Vulnerable dependency: axios@1.7.9 (GHSA-w9j2-pvgh-6h63) dependency_analyzer · 95%
medium
Vulnerable dependency: axios@1.7.9 (GHSA-xhjh-pmcv-23jw) dependency_analyzer · 95%
medium
Vulnerable dependency: axios@1.7.9 (GHSA-xx6v-rp6x-q39c) dependency_analyzer · 95%
medium
Vulnerable dependency: mcp@1.1.0 (GHSA-3qhf-m339-9g5v) dependency_analyzer · 95%
medium
Vulnerable dependency: mcp@1.1.0 (GHSA-9h52-p55h-vw2f) dependency_analyzer · 95%
medium
Vulnerable dependency: mcp@1.1.0 (GHSA-j975-95f5-7wqh) dependency_analyzer · 95%
medium
Vulnerable dependency: mcp@1.1.0 (GHSA-jpw9-pfvf-9f58) dependency_analyzer · 95%
medium
Vulnerable dependency: mcp@1.1.0 (GHSA-vj7q-gjh5-988w) dependency_analyzer · 95%
medium
Vulnerable dependency: mcp@1.1.0 (PYSEC-2026-1616) dependency_analyzer · 95%
medium
Vulnerable dependency: mcp@1.1.0 (PYSEC-2026-1617) dependency_analyzer · 95%
medium
Vulnerable dependency: mcp@1.1.0 (PYSEC-2026-1618) dependency_analyzer · 95%
medium
Vulnerable dependency: mcp@1.1.0 (PYSEC-2026-3482) dependency_analyzer · 95%
medium
Vulnerable dependency: mcp@1.1.0 (PYSEC-2026-3483) dependency_analyzer · 95%
info
package.json metadata manifest_parser · 100%
info
Tool: fortnox_list_accounts manifest_parser · 85%
info
Tool: fortnox_get_account manifest_parser · 85%
info
Tool: fortnox_create_account manifest_parser · 85%
info
Tool: fortnox_update_account manifest_parser · 85%
info
Tool: fortnox_delete_account manifest_parser · 85%
info
Tool: fortnox_list_customers manifest_parser · 85%
info
Tool: fortnox_get_customer manifest_parser · 85%
info
Tool: fortnox_create_customer manifest_parser · 85%
info
Tool: fortnox_update_customer manifest_parser · 85%
info
Tool: fortnox_delete_customer manifest_parser · 85%
info
Tool: fortnox_list_suppliers manifest_parser · 85%
info
Tool: fortnox_get_supplier manifest_parser · 85%
info
Tool: fortnox_approve_supplier_invoice manifest_parser · 85%
info
Tool: fortnox_create_supplier manifest_parser · 85%
info
Tool: fortnox_update_supplier manifest_parser · 85%
info
Tool: fortnox_delete_supplier manifest_parser · 85%
info
Tool: fortnox_get_company_info manifest_parser · 85%
info
Tool: fortnox_list_financial_years manifest_parser · 85%
info
Tool: fortnox_list_orders manifest_parser · 85%
info
Tool: fortnox_list_offers manifest_parser · 85%
info
Tool: fortnox_list_supplier_invoices manifest_parser · 85%
info
Tool: fortnox_get_supplier_invoice manifest_parser · 85%
info
Tool: fortnox_payables_report manifest_parser · 85%
info
Tool: fortnox_invoice_summary manifest_parser · 85%
info
Tool: fortnox_top_customers manifest_parser · 85%
info
Tool: fortnox_unpaid_report manifest_parser · 85%
info
Tool: fortnox_gross_margin_trend manifest_parser · 85%
info
Tool: fortnox_list_vouchers manifest_parser · 85%
info
Tool: fortnox_get_voucher manifest_parser · 85%
info
Tool: fortnox_create_voucher manifest_parser · 85%
info
Tool: fortnox_list_voucher_series manifest_parser · 85%
info
Tool: fortnox_account_activity manifest_parser · 85%
info
Tool: fortnox_list_invoices manifest_parser · 85%
info
Tool: fortnox_search_vouchers manifest_parser · 85%
info
Tool: fortnox_cash_flow_forecast manifest_parser · 85%
info
Tool: fortnox_order_pipeline manifest_parser · 85%
info
Tool: fortnox_sales_funnel manifest_parser · 85%
info
Tool: fortnox_product_performance manifest_parser · 85%
info
Tool: fortnox_period_comparison manifest_parser · 85%
info
Tool: fortnox_customer_growth manifest_parser · 85%
info
Tool: fortnox_project_profitability manifest_parser · 85%
info
Tool: fortnox_cost_center_analysis manifest_parser · 85%
info
Tool: fortnox_expense_analysis manifest_parser · 85%
info
Tool: fortnox_yearly_comparison manifest_parser · 85%
info
Tool: fortnox_get_invoice manifest_parser · 85%
info
Tool: fortnox_create_invoice manifest_parser · 85%
info
Tool: fortnox_update_invoice manifest_parser · 85%
info
Tool: fortnox_bookkeep_invoice manifest_parser · 85%
info
Tool: fortnox_cancel_invoice manifest_parser · 85%
info
Tool: fortnox_credit_invoice manifest_parser · 85%
info
Tool: fortnox_send_invoice_email manifest_parser · 85%
info
Transport: streamable-http manifest_parser · 80%
info
Required env vars (15) manifest_parser · 80%
info
Sandbox failed to start for output poisoning scan output_poisoning · 100%
medium
Permission: network access detected permission_analyzer · 70%
low
Permission: filesystem access detected permission_analyzer · 70%
low
Permission: env_vars access detected permission_analyzer · 90%
critical
Tool poisoning in 'fortnox_list_financial_years': Cross-tool prerequisite: 'use X tool first' poisoning · 85%
critical
Tool poisoning in 'fortnox_list_vouchers': Cross-tool prerequisite: 'first call/use' poisoning · 85%
critical
Tool poisoning in 'fortnox_account_activity': Cross-tool prerequisite: 'first call/use' poisoning · 85%
critical
Tool poisoning in 'fortnox_search_vouchers': Cross-tool prerequisite: 'first call/use' poisoning · 85%
info
SBOM generated: 317 components sbom_generator · 100%
medium
No build provenance detected (SLSA L0) slsa_assessor · 90%