Skip to main content
Glama
HalloSouf

moneybird-mcp

by HalloSouf

List sales invoices

list_sales_invoices
Read-onlyIdempotent

Retrieve sales invoices from Moneybird with filters for status, period, contact, and reference. Pass a period to look beyond the current financial year and paginate through results.

Instructions

List sales invoices. Defaults to the current financial year, so pass an explicit period in the filter to look further back.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
pageNo1-based page number.
filterNoComma-separated `key:value` filter. Keys: state (all|draft|open|scheduled|pending_payment|late|reminded|paid|uncollectible, pipe-separated for several), period (this_week|prev_week|next_week|this_month|prev_month|next_month|this_quarter|prev_quarter|next_quarter|this_year|prev_year|next_year, or a range like 20130101..20130131), reference, contact_id, recurring_sales_invoice_id, workflow_id, created_after, updated_after. A filter replaces Moneybird's default of `period:this_year` entirely. Several states can be combined with a pipe (`state:draft|scheduled`). A draft without an `invoice_date` is only matched by a period containing today, so list drafts with `state:draft` and no period.
per_pageNoRecords per page (max 100, Moneybird defaults to 50).
administration_idNoAdministration to act on. Defaults to the administration this server was configured with; call list_administrations to discover the available ids.
Behavior5/5

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

Beyond the annotations, the definition reveals several non-obvious behaviors: the current-financial-year default, that any filter replaces Moneybird's default entirely, and that drafts without an invoice_date are only matched by a period containing today. These are exactly the kinds of edge cases that prevent incorrect calls.

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 main description is two sentences with the purpose front-loaded and the behavioral caveat immediately after. The long filter description is warranted because the filter has many keys and special matching rules; it is organized and readable.

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

Completeness5/5

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

For a read-only, idempotent list operation, the definition covers the default period, filter replacement behavior, draft edge case, pagination, and administration selection. No output schema is provided, but the return shape of a list endpoint is evident from the tool name and sibling patterns.

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?

All parameters are fully documented in the schema (100% coverage), including the complex `filter` syntax, keys, examples, and pagination bounds. The main description only adds the hint to pass an explicit `period`, which is already implied by the schema's filter documentation, so it contributes little semantic value beyond the schema.

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?

The description opens with the precise verb-resource pair 'List sales invoices' and adds a meaningful default-scope qualifier. It does not explicitly differentiate from sibling tools like get_sales_invoice or find_sales_invoice_by_invoice_id, though the list-vs-singular naming largely conveys that.

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 description gives a clear within-tool rule: because it defaults to the current financial year, callers needing older data must pass an explicit `period`. However, it does not say when to prefer this tool over alternatives such as get_sales_invoice or find_sales_invoice_by_invoice_id, so cross-tool routing guidance is missing.

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/HalloSouf/moneybird-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server