Skip to main content
Glama

Invio Xero MCP

get_xero_invoice

get_xero_invoice
Read-only

Full detail on one Xero invoice, including line items - invoiceId must be a Xero InvoiceID (a GUID) from list_xero_invoices, never an Invio invoice id. Read-only. The currency and every amount come straight from this invoice as Xero stored it - never restate them in a different currency or assume they match Invio's.

Input Schema

NameRequiredDescriptionDefault
invoiceIdYes
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.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • removedInput schema / additionalProperties
      Removed value: -false
    • addedInput schema / properties / invoiceId / 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})$"
  2. First observed

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and openWorldHint, so 'Read-only' is partly redundant. The description still adds real context beyond annotations: it specifies that currency and amounts are exactly as Xero stored them and must not be restated or assumed to match Invio's values, which is a meaningful data-fidelity caveat for an agent relaying numbers.

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?

Three short sentences, front-loaded with what is returned, then the id constraint, then the data-fidelity warning. Every sentence earns its place; only the 'Read-only' clause is slightly wasted given the annotation.

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?

With no output schema, the description does enough to set expectations: full invoice detail including line items, with currency/amounts as stored by Xero. For a two-parameter read tool with annotation coverage, the remaining gap (exact fields returned, error behavior for bad ids) is minor.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 50%: `organisation` is documented in the schema, but `invoiceId` carries only a uuid pattern with no prose. The description fills exactly that gap, insisting the value is a Xero InvoiceID GUID sourced from list_xero_invoices and not an Invio invoice id — critical disambiguation. It says nothing extra about `organisation`, but the schema already handles that.

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 and resource ('Full detail on one Xero invoice, including line items') and implicitly contrasts with list_xero_invoices by naming it as the source of the id. An agent can tell this is the single-record detail read versus the list sibling without inspecting either schema.

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?

Explicitly tells the agent to obtain `invoiceId` from list_xero_invoices and warns against an Invio invoice id, which routes usage clearly. It doesn't state exclusions against other siblings (e.g. get_xero_credit_note, get_xero_quote), so it stops short of full alternative coverage.

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