Skip to main content
Glama

Billy MCP by usefulapi

List invoices

billy_list_invoices
Read-only

List sales invoices and credit notes (newest first by default): number, date, due date, state (draft/approved/voided), amount, tax, balance, isPaid, contactId, currency. Filter by state, customer, number, date, period, paid status or free text. Paged. GET /invoices.

Input Schema

NameRequiredDescriptionDefault
qNoFree-text search over invoice number, order number, contact name, line description, amount.
pageNoPage number, 1-based (default 1). Use next_page from the previous reply.
stateNoOnly invoices in this state.
is_paidNotrue = only paid invoices, false = only unpaid.
page_sizeNoRecords per page, 1-200 (default 50).
contact_idNoOnly invoices of this contact (from billy_list_contacts).
invoice_noNoExact invoice number.
max_due_dateNoDue date on or before (yyyy-mm-dd); with is_paid=false this finds overdue invoices.
min_due_dateNoDue date on or after (yyyy-mm-dd).
sort_propertyNoSort by (default entryDate).
max_entry_dateNoInvoice date on or before (yyyy-mm-dd).
min_entry_dateNoInvoice date on or after (yyyy-mm-dd).
sort_directionNoSort direction (default ASC).
entry_date_periodNoDate period: all, year:2026, month:2026-03, quarter:2026-2, dates:2026-01-01...2026-01-31 ...

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?

readOnlyHint=true already covers the safety profile, and the description adds useful context: default ordering, that results are paged, and the endpoint. One caveat: it claims 'newest first by default' while the schema defaults to entryDate ASC (oldest first), a minor internal inconsistency the description does not reconcile. It also does not describe how to page beyond 'Paged'.

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 dense, front-loaded sentences plus the HTTP path; the return-field list is long but genuinely informative. Nothing is wasted, though the field enumeration could be trimmed since no output schema exists to rely on.

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?

For a read-only list tool with no output schema, the enumerated return fields (number, date, due date, state, amount, tax, balance, isPaid, contactId, currency) usefully fill that gap, and paging is flagged. The only shortfall is not explaining pagination flow or reconciling the stated default sort with the schema.

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 carries parameter meaning and the baseline is 3. The description's filter list ('state, customer, number, date, period, paid status or free text') maps onto existing params but adds no format, default, or interaction detail beyond what the schema documents.

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 ('List') and resource ('sales invoices and credit notes'), then enumerates the returned fields. The 'sales' qualifier plus the field list cleanly separates it from billy_list_bills and billy_get_invoice, so an agent can pick it without opening sibling 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?

It lists what can be filtered (state, customer, number, date, period, paid status, free text), which implies the tool is for browsing/filtering invoice collections. However it never states when to use this over billy_get_invoice (single record) or billy_create_draft_invoice, and gives no exclusions or prerequisites.

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.