Skip to main content
Glama
aweher

invoiceninja-mcp

by aweher

invoiceninja_list_records

Read-onlyIdempotent

List Invoice Ninja reference records such as tax rates, payment terms, tags, and users to resolve IDs on other records or browse the activity log.

Instructions

List reference/secondary records: tax_rates, payment_terms, expense_categories, task_statuses, group_settings, designs, documents, bank_transactions, activities, tags, locations, subscriptions, recurring_quotes, users. Use it to resolve ids found on other records (e.g. category_id, status ids, tax names) or to browse the activity log.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
pageNoPage number, starting at 1
sortNoSort as 'column|asc' or 'column|desc', e.g. 'date|desc'
entityYesWhich kind of record to list
fieldsNoJSON format only: return just these top-level fields (id is always included), e.g. ['number', 'client_name', 'balance', 'due_date']
filterNoFree-text search across the main columns (number, name, contacts, notes…)
statusNoLifecycle filter, comma separated: active, archived, deleted (e.g. 'active' to skip archived and deleted records)
per_pageNoRecords per page (1-100)
extra_filtersNoAdditional API query filters as name -> value (see the tool description)
response_formatNo'markdown' (default) for a readable summary, 'json' for complete machine-readable data (empty fields removed)markdown

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is covered. The description adds the resolution/browsing intent but says nothing about pagination behavior, default page size, or result volume, and it leaves the referenced extra_filters behavior entirely unexplained. With annotations carrying the safety burden, a 3 is fair.

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 sentences, front-loaded with the entity list then the use case, with no filler. The long inline enum largely duplicates the schema enum, which is mild redundancy rather than bloat.

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 9-parameter tool with no output schema, the description covers purpose and use case but leaves a real hole: extra_filters' schema says to consult the tool description, and the description never mentions it. Nothing on pagination limits or result shape either. Adequate but with a concrete, self-referenced 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 100%, so the schema already documents page, sort, filter, status, per_page, fields and response_format in detail, making the 3 baseline appropriate. The description adds no parameter meaning beyond duplicating the entity enum, and it fails to supply the 'extra_filters' documentation that the schema explicitly defers to it ('see the tool description').

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 states a specific verb (list) plus an explicit enumeration of the reference record types covered, so the agent knows exactly what resource set this tool serves. It implicitly distinguishes itself from the sibling list_invoices/list_clients/etc. tools by scoping to 'reference/secondary records', but it never names those siblings as the alternative for primary entities.

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?

It gives concrete usage contexts: 'resolve ids found on other records (e.g. category_id, status ids, tax names)' and 'browse the activity log'. That is a real when-to-use signal. It offers no explicit when-not or routing to a sibling, keeping it short of a 5.

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