Skip to main content
Glama
freeagent-mcp-server

freeagent-mcp-server

by samaxbytez

freeagent_list_invoices

Read-only

Lists FreeAgent invoices with optional filters for status view, sort order, contact, project, or updated date to support invoice review and tracking.

Instructions

List invoices from FreeAgent, optionally filtered by view, sort order, contact, project, or updated date

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "freeagent_list_invoices"
  }
}

Input Schema

NameRequiredDescriptionDefault
pageNoPage number to fetch (default 1)
sortNoSort order for results
viewNoFilter invoices by status view
contactNoFilter by contact URL
projectNoFilter by project URL
per_pageNoResults per page (default 25, max 100). Check pagination.next_page in the response for more results.
updated_sinceNoFilter invoices updated since this date (ISO 8601)
nested_invoice_itemsNoWhether to include nested invoice items in the response

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changedv3.0.0
    • removedInput schema / additionalProperties
      Removed value: -false
    • addedInput schema / properties / page
      Added value: +{
      +  "description": "Page number to fetch (default 1)",
      +  "maximum": 9007199254740991,
      +  "minimum": 1,
      +  "type": "integer"
      +}
    • addedInput schema / properties / per_page
      Added value: +{
      +  "description": "Results per page (default 25, max 100). Check pagination.next_page in the response for more results.",
      +  "maximum": 100,
      +  "minimum": 1,
      +  "type": "integer"
      +}
  2. First observedv1.3.0

TDQS

B3.2/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered, but the description adds nothing beyond them: no note on result volume, default page size, that results are paginated, or that invoices are scoped to the authenticated company. The only behavioral hints (pagination.next_page, defaults) live in the schema, not the description.

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?

A single front-loaded sentence with the resource stated first and filters trailing, with no filler or repetition. It is appropriately sized, though the trailing filter list is largely redundant with the schema and could have been spent on pagination or return-shape context instead.

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 an eight-parameter, all-optional read tool with full schema coverage and readOnly annotations, the description is enough to select and invoke it. It is thin on what comes back (a paginated invoice collection) and on whether filters combine with AND semantics, both of which an agent would want before issuing a call.

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 every one of the eight parameters is already documented in the schema, including the enum values for view and the ISO 8601 requirement for updated_since. The description merely restates the filter names at a coarser level and adds no syntax or semantics beyond the schema, so the baseline 3 applies.

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?

States a specific verb and resource ('List invoices from FreeAgent') plus the optional filter axes, which cleanly separates it from mutation siblings like freeagent_update_invoice or freeagent_create_invoice. It never names freeagent_get_invoice as the single-invoice alternative, so sibling differentiation is implicit rather than stated.

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 phrase 'optionally filtered by view, sort order, contact, project, or updated date' implies when the filters apply, but there is no explicit guidance on when to choose this list tool versus freeagent_get_invoice or freeagent_list_credit_notes, and no mention of prerequisites such as needing a contact or project URL rather than a name.

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

Deploy Server

Other Tools