Skip to main content
Glama
fortnox-mcp

fortnox-mcp

by Walma-Labs

List supplier invoices

list_supplier_invoices
Read-onlyIdempotent

Fetch supplier invoices from Fortnox to track payables, filtering by status (unpaid, overdue, cancelled), date range, or supplier number.

Instructions

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

Input Schema

NameRequiredDescriptionDefault
maxNoMax rows to return (default 100, up to 2000)
filterNo
to_dateNo
from_dateNo
supplier_numberNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description adds a useful clarification that 'authorizepending' means awaiting attest, but says nothing about pagination, default page size behavior, or result ordering.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two compact sentences, front-loaded with the resource and then the filtering capabilities. No filler, though the parenthetical enum list makes the second sentence dense and it could be tightened slightly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 5-parameter, no-required-arg list tool with no output schema, the description covers the main filtering axes and benefits from annotations covering safety. It leaves max/row-limit behavior and supplier_number semantics undocumented, which is a real but modest gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 20%, so the description carries weight here and does partially compensate: it enumerates the filter status values and explains the opaque 'authorizepending' enum. However, it says nothing about supplier_number, and the date-range parameter names (from_date/to_date) are only implied as 'date range'.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names the specific resource (supplier invoices, with the Swedish synonym leverantörsfakturor) and the filterable dimensions, which distinguishes it from the sibling list_invoices and get_supplier_invoice. It does not explicitly name those siblings, so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The mention of status, date range and supplier filtering implies when the tool is useful, but there is no explicit guidance on when to choose it over list_invoices or get_supplier_invoice, and no prerequisites or exclusions are stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.