Skip to main content
Glama

Invio Xero MCP

create_xero_contact

create_xero_contact

Proposes adding a new contact (customer or supplier) to this Xero organisation - it does NOT create anything in Xero itself, and never will on its own. This queues a pending change that a human must explicitly approve (your Xero MCP connector - the exact link is this response's own approvalUrl field) before Xero is touched at all; you have no way to approve it yourself. name is the only required field. Once approved and executed, the resulting contactId can be used with create_xero_invoice or update_xero_invoice - but only after this change has actually been approved, never before.

Input Schema

NameRequiredDescriptionDefault
nameYes
phoneNo
emailAddressNo
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 / emailAddress / pattern
      Added value: +"^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
  2. First observed

TDQS

A4.3/5.0
Behavior5/5

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

Goes well beyond annotations (readOnlyHint=false, openWorldHint=true, idempotentHint=false, destructiveHint=false): explains it never creates in Xero on its own, requires human approval, and that the agent cannot self-approve. This is critical behavioral context for a mutation tool.

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?

Front-loaded with the key caveat that this only queues a pending change. Slightly repetitive ('it does NOT create anything' / 'never will on its own' / 'you have no way to approve it yourself') but every sentence carries meaningful constraint.

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?

No output schema, but the description explains the approvalUrl response field and contactId result, plus downstream dependency ordering. Complete enough for a mutation tool; lacks detail on rejection behavior or what happens to queued changes.

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 coverage is only 25%; description compensates by stating name is the only required field, but phone and emailAddress remain undocumented in both schema and description. Partial compensation for the coverage gap; no format or syntax added.

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 object - 'Proposes adding a new contact (customer or supplier)' - and immediately clarifies it does not create in Xero directly. Distinguishable from create_xero_invoice (which consumes the resulting contactId).

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?

Explains the approval workflow clearly: queues a pending change requiring human approval via approvalUrl, and states contactId can feed create_xero_invoice or update_xero_invoice only after approval. No explicit guidance versus update_xero_contact, but the 'new contact' scope makes it inferable.

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