Skip to main content
Glama

FreeAgent MCP by usefulapi

List bills

freeagent_list_bills
Read-only

List supplier bills (purchases), optionally by date range, contact or project, filtered by status. FreeAgent: GET /v2/bills.

Input Schema

NameRequiredDescriptionDefault
pageNoPage number, starting at 1.
viewNoFilter by status.
contactNoOnly for this contact — its numeric id or full FreeAgent URL.
projectNoOnly for this project — its numeric id or full FreeAgent URL.
to_dateNoBills dated on or before (YYYY-MM-DD).
per_pageNoItems per page, 1-100 (default 25).
from_dateNoBills dated on or after (YYYY-MM-DD).
updated_sinceNoOnly records updated since this ISO 8601 timestamp, e.g. 2026-01-01T00:00:00Z.
nested_bill_itemsNoInclude each bill's line items.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

B3.4/5.0
Behavior3/5

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

readOnlyHint=true already tells the agent this is a safe read, so the bar is lower; the description adds the upstream endpoint (GET /v2/bills) and confirms that all filters are optional. It omits anything about pagination behavior, result size, or defaults, which matter for a list endpoint with 9 params.

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 short sentences, front-loaded with the resource and filters, with the API reference trailing as a secondary detail. Nothing is padded, though the endpoint string adds little for tool selection.

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 parameter-rich list tool with no output schema, the description does not describe what comes back (fields, pagination envelope, totals) or the default page size. The schema fully covers inputs, so the gap is limited but real.

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 parameter including the 'view' enum, date formats, and nested_bill_items is already documented in the schema. The description only restates the broad filter categories and adds no syntax or semantics beyond them.

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 ('List') and resource ('supplier bills'), and the parenthetical '(purchases)' disambiguates it from sales invoices among the many list_* siblings. It does not, however, name any sibling tool to route against, so an agent must infer the bills-vs-invoices distinction on its own.

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 conveys the available filter axes (date range, contact, project, status) which implies when the tool is useful, but gives no when-to-use vs. when-not guidance, no prerequisites, and no hint about which filter combination is typical. Usage is implied rather than prescribed.

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.