Skip to main content
Glama
erp-mafia

Fortnox MCP Server

by erp-mafia

Accounts Payable Aging Report

fortnox_payables_report
Read-onlyIdempotent

Generate an accounts payable aging report that groups unpaid supplier invoices by overdue period and vendor. Filter by amount or supplier to pinpoint outstanding balances and overdue items.

Instructions

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"

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
group_byNoHow to group unpaid supplier invoices in the reportboth
min_amountNoOnly include invoices with balance >= this amount
include_detailsNoInclude list of individual unpaid invoices
response_formatNoOutput format: 'markdown' or 'json'markdown
supplier_numberNoFilter by specific supplier number
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is clear. The description adds useful behavioral details: the age bucket definitions, the return summary/breakdown structure, and the ability to filter by min_amount and supplier_number. This goes beyond annotations without contradicting them.

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

Conciseness5/5

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

The description is well-organized with clear sections: purpose, example questions, arguments, return value, age buckets, and examples. It is dense with useful information yet remains scannable and free of fluff. Every section contributes to understanding the tool.

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

Completeness4/5

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

Given the tool has 5 parameters and no output schema, the description covers the essential context: what it does, what parameters to use, what the report includes, age bucket definitions, and practical examples. It could be more explicit about the exact output structure (e.g., field names), but for a report tool this is reasonably complete.

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?

The input schema already provides 100% parameter descriptions (e.g., 'Only include invoices with balance >= this amount'). The description's 'Args' section mostly restates the schema, and the examples (min_amount=50000, supplier_number='1') add minor flavor but no new semantic meaning. It meets the baseline for full schema coverage but doesn't elevate it.

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

Purpose5/5

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

The description opens with 'Generate an accounts payable aging report for unpaid supplier invoices,' a specific verb and resource. The example questions (e.g., 'What supplier invoices are overdue?') further clarify the tool's scope and distinguish it from neighboring invoice and report tools.

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

Usage Guidelines4/5

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

The example questions effectively convey when to use the tool (e.g., 'Show me aging breakdown of payables'). However, it does not explicitly name alternatives or say when not to use it, though the context is clear enough from the questions.

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

Install Server

Other Tools

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