Skip to main content
Glama

Invio Xero MCP

list_xero_quotes

list_xero_quotes
Read-only

List quotes from Xero for the current organisation, optionally filtered by status, by one contact, by an exact quote number, or by issue-date range (fromDate/toDate) or expiry-date range (expiryFromDate/expiryToDate) - all inclusive. Read-only; nothing is created or changed. Each quote carries its OWN currency straight from Xero - never assume it matches this user's Invio business currency. Returns up to 100 quotes for the requested page. Xero does NOT report a total page or item count for this endpoint (unlike invoices and credit notes) - if this call returns exactly 100 quotes, say there may be more and ask for the next page rather than treating 100 as the whole list; a shorter result IS the complete list for whatever filters were applied. The result always echoes back exactly which filters were applied (appliedFilters) - relay that, not just your own memory of what you asked for. Use get_xero_quote for full line-item detail on one quote.

Input Schema

NameRequiredDescriptionDefault
pageNo1-based page number - Xero returns up to 100 quotes per page. Omit for page 1.
statusNoFilter to one Xero quote status (e.g. DRAFT, SENT, ACCEPTED). Omit for every status.
toDateNoOnly include quotes issued ON OR BEFORE this date, YYYY-MM-DD (inclusive).
fromDateNoOnly include quotes issued ON OR AFTER this date, YYYY-MM-DD (inclusive). Filters the issue date, never the expiry date.
contactIdNoFilter to quotes for one specific contact.
quoteNumberNoFilter to an exact quote number (e.g. "QU-0001").
expiryToDateNoOnly include quotes expiring ON OR BEFORE this date, YYYY-MM-DD (inclusive).
organisationNoThe Xero organisation to use, by its display name. Only needed if this connection reaches more than one organisation - omit it when there is only one.
expiryFromDateNoOnly include quotes expiring ON OR AFTER this date, YYYY-MM-DD (inclusive).

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed11 schema fields changed
    • removedInput schema / additionalProperties
      Removed value: -false
    • addedInput schema / properties / contactId / pattern
      Added value: +"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$"
    • removedInput schema / properties / expiryFromDate / $ref
      Removed value: -"#/properties/fromDate"
    • addedInput schema / properties / expiryFromDate / pattern
      Added value: +"^\\d{4}-\\d{2}-\\d{2}$"
    • addedInput schema / properties / expiryFromDate / type
      Added value: +"string"
    • removedInput schema / properties / expiryToDate / $ref
      Removed value: -"#/properties/fromDate"
    • addedInput schema / properties / expiryToDate / pattern
      Added value: +"^\\d{4}-\\d{2}-\\d{2}$"
    • addedInput schema / properties / expiryToDate / type
      Added value: +"string"
    • removedInput schema / properties / toDate / $ref
      Removed value: -"#/properties/fromDate"
    • addedInput schema / properties / toDate / pattern
      Added value: +"^\\d{4}-\\d{2}-\\d{2}$"
    • addedInput schema / properties / toDate / type
      Added value: +"string"
  2. First observed

TDQS

A4.7/5.0
Behavior5/5

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

Beyond the readOnlyHint and openWorldHint annotations, the description adds important behavioral details: quotes carry their own currency from Xero, the endpoint does not report total counts, exactly 100 results may mean more pages exist, and appliedFilters is echoed in the response.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with purpose and filters, then moves into critical behavioral caveats around currency and pagination. Every sentence carries useful operational information, and the structure makes the important warnings easy to find.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 9-parameter list tool with no output schema, the description is complete enough to use correctly. It covers filtering, pagination ambiguity, returned currency behavior, appliedFilters echoing, and the sibling tool for detail.

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 parameter meanings are already fully documented in the schema. The description summarizes the filter groups and inclusive date behavior, but it does not add significant semantic detail beyond what the schema already provides.

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?

The description states a specific verb and resource: list Xero quotes for the current organisation, with optional filters. It also distinguishes this tool from the sibling get_xero_quote by explaining that the sibling is for full line-item detail on one quote.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It clearly explains when to use this tool, which filters are available, and when to switch to get_xero_quote for single-quote detail. It also gives explicit pagination guidance for the ambiguous case where exactly 100 quotes are returned.

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