Skip to main content
Glama

iFirma: List invoices

ifirma_list_invoices
Read-only

iFirma: Sales invoices for a date range, with totals, payment and KSeF status. Returns invoices issued in the range you choose. Each item has number, buyer, issue and due date, gross amount, currency, amount paid, draft and sent flags, and the KSeF number and status. Without date_to the range is 30 days from date_from. Pages hold 20 results unless you set per_page. Needs the user's Cotlet API key with access to this app.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nipNoBuyer tax number (NIP).
pageNoPage number. Default: 1.
statusNooverdue, unpaid, partly_paid or paid. Several values can be joined with commas.
date_toNoYYYY-MM-DD. Default: 30 days after date_from.
per_pageNoResults per page. Default: 20.
date_fromYesYYYY-MM-DD, the first issue date.
max_amountNoLargest document value.
min_amountNoSmallest document value.
contractor_idNoContractor ID from list_contractors.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnly/openWorld/non-destructive, so the bar is lower, and the description still adds useful behavior: default date window (30 days from date_from), default page size of 20, and an auth/key-access requirement. It stops short of describing pagination traversal or rate limits.

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?

Purpose and scope are front-loaded, and the default-behavior details are useful. The second sentence ('Returns invoices issued in the range you choose') largely repeats the opening and could be dropped, but overall it is efficient.

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?

With no output schema, the description helpfully enumerates the returned fields (number, buyer, dates, amount, currency, paid, flags, KSeF number/status) and covers the pagination and date defaults. Complete enough to call correctly for a 9-param list tool, though it omits sorting and how to page through all results.

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 100%, so the schema already documents all 9 parameters. The description restates the date_to and per_page defaults rather than adding new syntax or semantics, so baseline 3 is appropriate.

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?

States a specific verb and resource ('List'... 'Sales invoices') plus scope (date range). 'Sales' distinguishes it from the sibling ifirma_list_ksef_purchase_invoices, and 'history over a range' distinguishes it from ifirma_get_invoice, so an agent can route correctly without opening schemas.

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?

Usage is implied by the date-range framing and a prerequisite is given ('Needs the user's Cotlet API key with access to this app'), but there is no explicit when-to-use/when-not or named alternative (e.g. get_invoice for a single invoice). Adequate but leaves selection to inference.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources