Xero MCP
MCPB · XERO-MCP.MCPB
Every Xero Accounting read plus a local SQLite ledger - aging, reconciliation, and GL tie-out
Available components
Last scanned (2 hours ago)
Scores higher than 82% of MCPB servers
Category Finance and Payments
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →
Supply Chain Security0
- No malware scan is available for this kind of package: the supply-chain vendors we use do not cover it. This is a permanent gap in our coverage, not a finding about the package.Unverified
- Known CVEs could not be checked: we found no dependency list to check in this bundle: either it runs a compiled binary, whose bundled manifests we do not read, or none of the package.json, requirements.txt, pyproject.toml or uv.lock files it ships for its runtime declares a dependency we can read (a requirements.txt that only points at a setup.py project, a local path, or a nested requirements file we cannot follow counts as none).Unverified
- Install-script risk not yet assessed.Unverified
- Dependency health could not be checked: we found no dependency list to check in this bundle: either it runs a compiled binary, whose bundled manifests we do not read, or none of the package.json, requirements.txt, pyproject.toml or uv.lock files it ships for its runtime declares a dependency we can read (a requirements.txt that only points at a setup.py project, a local path, or a nested requirements file we cannot follow counts as none).Unverified
Provenance & Transparency48
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
- Clear OSI-approved license (Apache-2.0).Pass
- Actively maintained (last published 12 days ago).Pass
- Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability54
- AI-judged instruction clarity (good).Pass
- Context-footprint check failed: tool/resource definitions use about 23307 tokens (~310/item across 75 items; 75 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management99
- Stability check failed: the tool surface changed between 0.1.5 and 0.1.9: 0 tool removals, 1 breaking changes, 0 additions. See how to fix → Fail
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- All 3 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
- An AI judge read all 75 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Unverified: 1 category
A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 31 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 93 to 96.
- 29 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 86 to 89.
- 28 Oct 26 0
- Package version: 0.1.5 → 0.1.9 functional
- 27 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 79 to 83.
- 24 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 69 to 73.
- 23 Oct 26 +2
- Provenance: fail → unverified ▼ security
- Stability: 0.67 → fail ▼ security
- Maintenance: unverified → pass ▲ functional
- Package version: 0.1.5 → 0.1.9 functional
- Package version: 0.1.7 → 0.1.9 functional
- Package version: 0.1.7 → 0.1.8 functional
- 22 Oct 26 −1
- Maintenance: pass → unverified ▼ functional
- Package version: 0.1.6 → 0.1.7 functional
- 21 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 60 to 63. That category is still filling its 30-day observation window: 18 days of observed history at the previous scan, 19 at this one. The score rises as the window fills, whether or not the server changes.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 5 Nov 2026 · Analysed mcpb/https://github.com/Servosity/msp-skills/releases/download/xero-v0.1.9/xero-mcp.mcpb@0.1.9
Provenance No attestation
The registry publishes no build provenance for this version, so there is nothing to verify.
| Result | No attestation |
|---|---|
| Ecosystem | mcpb |
| Reason | No attestation published |
Background: How many MCP packages publish verified provenance →
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
items_create ~99
Creates one or more items. Optional: summarizeErrors (default: false), unitdp, Items. Returns array of Item.
| Name | Type | Req | Description |
|---|---|---|---|
| Items | string | – | Items |
| summarizeErrors | boolean | – | If false return 200 OK and mix of successfully created objects and any with validation errors |
| unitdp | number | – | e.g. unitdp=4 – (Unit Decimal Places) You can opt in to use four decimal places for unit amounts |
No output schema declared.
No examples provided.
items_delete ~34
Deletes a specific item. Required: ItemID. Destructive.
| Name | Type | Req | Description |
|---|---|---|---|
| ItemID | string | yes | Unique identifier for an Item |
No output schema declared.
No examples provided.
items_get ~82
Retrieves items. Optional: where, order, unitdp. Returns array of Item.
| Name | Type | Req | Description |
|---|---|---|---|
| order | string | – | Order by an any element |
| unitdp | number | – | e.g. unitdp=4 – (Unit Decimal Places) You can opt in to use four decimal places for unit amounts |
| where | string | – | Filter by an any element |
No output schema declared.
No examples provided.
items_get-itemid ~81
Retrieves a specific item using a unique item Id. Required: ItemID. Optional: unitdp. Returns array of Item.
| Name | Type | Req | Description |
|---|---|---|---|
| ItemID | string | yes | Unique identifier for an Item |
| unitdp | number | – | e.g. unitdp=4 – (Unit Decimal Places) You can opt in to use four decimal places for unit amounts |
No output schema declared.
No examples provided.
items_history ~466
Get and create history for items
| Name | Type | Req | Description |
|---|---|---|---|
| agent | boolean | – | Set all agent-friendly defaults (--json --compact --no-input --no-color --yes) (default: false) |
| allow-partial-failure | boolean | – | Downgrade response-body partial-failure (e.g. partialFailureError) to a warning instead of a non-zero exit (default: false) |
| compact | boolean | – | Return only key fields (id, name, status, timestamps) for minimal token usage (default: false) |
| csv | boolean | – | Output as CSV (table and array responses) (default: false) |
| data-source | string | – | Data source for read commands: auto (live with local fallback), live (API only), local (synced data only) (default: auto) |
| dry-run | boolean | – | Show request without sending (default: false) |
| human-friendly | boolean | – | Enable colored output and rich formatting (default: false) |
| idempotent | boolean | – | Treat already-existing create results as a successful no-op (default: false) |
| ignore-missing | boolean | – | Treat missing delete targets as a successful no-op (default: false) |
| json | boolean | – | Output as JSON (default: false) |
| max-age | string | – | Maximum acceptable age of local-store data before a stderr hint suggests sync; 0 disables (default: 30m0s) |
| no-cache | boolean | – | Bypass response cache (default: false) |
| no-color | boolean | – | Disable colored output (default: false) |
| no-input | boolean | – | Disable all interactive prompts (for CI/agents) (default: false) |
| plain | boolean | – | Output as plain tab-separated text (default: false) |
| quiet | boolean | – | Bare output, one value per line (default: false) |
| rate-limit | number | – | Max requests per second (0 to disable) (default: 0) |
| select | string | – | Comma-separated fields to include in output (e.g. --select id,name,status) |
| timeout | string | – | Request timeout (default: 1m0s) |
| yes | boolean | – | Skip confirmation prompts (for agents and scripts) (default: false) |
No output schema declared.
No examples provided.
items_history_create-item ~58
Creates a history record for a specific item. Required: ItemID. Optional: HistoryRecords. Returns array of HistoryRecord.
| Name | Type | Req | Description |
|---|---|---|---|
| HistoryRecords | string | – | History records |
| ItemID | string | yes | Unique identifier for an Item |
No output schema declared.
No examples provided.
items_history_get-item ~41
Retrieves history for a specific item. Required: ItemID. Returns array of HistoryRecord.
| Name | Type | Req | Description |
|---|---|---|---|
| ItemID | string | yes | Unique identifier for an Item |
No output schema declared.
No examples provided.
items_update ~84
Updates a specific item. Required: ItemID. Optional: unitdp, Items. Returns array of Item.
| Name | Type | Req | Description |
|---|---|---|---|
| ItemID | string | yes | Unique identifier for an Item |
| Items | string | – | Items |
| unitdp | number | – | e.g. unitdp=4 – (Unit Decimal Places) You can opt in to use four decimal places for unit amounts |
No output schema declared.
No examples provided.
items_update-or-create ~103
Updates or creates one or more items. Optional: summarizeErrors (default: false), unitdp, Items. Returns array of Item.
| Name | Type | Req | Description |
|---|---|---|---|
| Items | string | – | Items |
| summarizeErrors | boolean | – | If false return 200 OK and mix of successfully created objects and any with validation errors |
| unitdp | number | – | e.g. unitdp=4 – (Unit Decimal Places) You can opt in to use four decimal places for unit amounts |
No output schema declared.
No examples provided.
journals ~463
Manage journals command groups
| Name | Type | Req | Description |
|---|---|---|---|
| agent | boolean | – | Set all agent-friendly defaults (--json --compact --no-input --no-color --yes) (default: false) |
| allow-partial-failure | boolean | – | Downgrade response-body partial-failure (e.g. partialFailureError) to a warning instead of a non-zero exit (default: false) |
| compact | boolean | – | Return only key fields (id, name, status, timestamps) for minimal token usage (default: false) |
| csv | boolean | – | Output as CSV (table and array responses) (default: false) |
| data-source | string | – | Data source for read commands: auto (live with local fallback), live (API only), local (synced data only) (default: auto) |
| dry-run | boolean | – | Show request without sending (default: false) |
| human-friendly | boolean | – | Enable colored output and rich formatting (default: false) |
| idempotent | boolean | – | Treat already-existing create results as a successful no-op (default: false) |
| ignore-missing | boolean | – | Treat missing delete targets as a successful no-op (default: false) |
| json | boolean | – | Output as JSON (default: false) |
| max-age | string | – | Maximum acceptable age of local-store data before a stderr hint suggests sync; 0 disables (default: 30m0s) |
| no-cache | boolean | – | Bypass response cache (default: false) |
| no-color | boolean | – | Disable colored output (default: false) |
| no-input | boolean | – | Disable all interactive prompts (for CI/agents) (default: false) |
| plain | boolean | – | Output as plain tab-separated text (default: false) |
| quiet | boolean | – | Bare output, one value per line (default: false) |
| rate-limit | number | – | Max requests per second (0 to disable) (default: 0) |
| select | string | – | Comma-separated fields to include in output (e.g. --select id,name,status) |
| timeout | string | – | Request timeout (default: 1m0s) |
| yes | boolean | – | Skip confirmation prompts (for agents and scripts) (default: false) |
No output schema declared.
No examples provided.
journals_get ~80
Retrieves journals. Optional: offset, paymentsOnly. Returns the Journals.
| Name | Type | Req | Description |
|---|---|---|---|
| offset | number | – | Offset by a specified journal number. e.g. journals with a JournalNumber greater than the offset will be returned |
| paymentsOnly | boolean | – | Filter to retrieve journals on a cash basis. Journals are returned on an accrual basis by default. |
No output schema declared.
No examples provided.
journals_get-by-number ~42
Retrieves a specific journal using a unique journal number. Required: JournalNumber. Returns the Journals.
| Name | Type | Req | Description |
|---|---|---|---|
| JournalNumber | number | yes | Number of a Journal |
No output schema declared.
No examples provided.
journals_get-journalid ~44
Retrieves a specific journal using a unique journal Id. Required: JournalID. Returns the Journals.
| Name | Type | Req | Description |
|---|---|---|---|
| JournalID | string | yes | Unique identifier for a Journal |
No output schema declared.
No examples provided.
ledger ~528
Replay the immutable general-ledger journal feed for a single account code as an ordered running-balance statement (date, journal number, description, net, running balance), computed locally from the synced journals + accounts. Run `sync` first.
| Name | Type | Req | Description |
|---|---|---|---|
| agent | boolean | – | Set all agent-friendly defaults (--json --compact --no-input --no-color --yes) (default: false) |
| allow-partial-failure | boolean | – | Downgrade response-body partial-failure (e.g. partialFailureError) to a warning instead of a non-zero exit (default: false) |
| args | string | – | Additional positional arguments or raw CLI flags to append to the command. |
| compact | boolean | – | Return only key fields (id, name, status, timestamps) for minimal token usage (default: false) |
| csv | boolean | – | Output as CSV (table and array responses) (default: false) |
| data-source | string | – | Data source for read commands: auto (live with local fallback), live (API only), local (synced data only) (default: auto) |
| dry-run | boolean | – | Show request without sending (default: false) |
| human-friendly | boolean | – | Enable colored output and rich formatting (default: false) |
| idempotent | boolean | – | Treat already-existing create results as a successful no-op (default: false) |
| ignore-missing | boolean | – | Treat missing delete targets as a successful no-op (default: false) |
| json | boolean | – | Output as JSON (default: false) |
| max-age | string | – | Maximum acceptable age of local-store data before a stderr hint suggests sync; 0 disables (default: 30m0s) |
| no-cache | boolean | – | Bypass response cache (default: false) |
| no-color | boolean | – | Disable colored output (default: false) |
| no-input | boolean | – | Disable all interactive prompts (for CI/agents) (default: false) |
| plain | boolean | – | Output as plain tab-separated text (default: false) |
| quiet | boolean | – | Bare output, one value per line (default: false) |
| rate-limit | number | – | Max requests per second (0 to disable) (default: 0) |
| select | string | – | Comma-separated fields to include in output (e.g. --select id,name,status) |
| timeout | string | – | Request timeout (default: 1m0s) |
| yes | boolean | – | Skip confirmation prompts (for agents and scripts) (default: false) |
No output schema declared.
No examples provided.
payments ~466
Get, create, and delete payments
| Name | Type | Req | Description |
|---|---|---|---|
| agent | boolean | – | Set all agent-friendly defaults (--json --compact --no-input --no-color --yes) (default: false) |
| allow-partial-failure | boolean | – | Downgrade response-body partial-failure (e.g. partialFailureError) to a warning instead of a non-zero exit (default: false) |
| compact | boolean | – | Return only key fields (id, name, status, timestamps) for minimal token usage (default: false) |
| csv | boolean | – | Output as CSV (table and array responses) (default: false) |
| data-source | string | – | Data source for read commands: auto (live with local fallback), live (API only), local (synced data only) (default: auto) |
| dry-run | boolean | – | Show request without sending (default: false) |
| human-friendly | boolean | – | Enable colored output and rich formatting (default: false) |
| idempotent | boolean | – | Treat already-existing create results as a successful no-op (default: false) |
| ignore-missing | boolean | – | Treat missing delete targets as a successful no-op (default: false) |
| json | boolean | – | Output as JSON (default: false) |
| max-age | string | – | Maximum acceptable age of local-store data before a stderr hint suggests sync; 0 disables (default: 30m0s) |
| no-cache | boolean | – | Bypass response cache (default: false) |
| no-color | boolean | – | Disable colored output (default: false) |
| no-input | boolean | – | Disable all interactive prompts (for CI/agents) (default: false) |
| plain | boolean | – | Output as plain tab-separated text (default: false) |
| quiet | boolean | – | Bare output, one value per line (default: false) |
| rate-limit | number | – | Max requests per second (0 to disable) (default: 0) |
| select | string | – | Comma-separated fields to include in output (e.g. --select id,name,status) |
| timeout | string | – | Request timeout (default: 1m0s) |
| yes | boolean | – | Skip confirmation prompts (for agents and scripts) (default: false) |
No output schema declared.
No examples provided.
payments_create ~4,462
Creates a single payment for invoice or credit notes. Optional: Account, Amount, BankAccountNumber (plus 25 more). Returns the new Payments.
| Name | Type | Req | Description |
|---|---|---|---|
| Amount | number | – | The amount of the payment. Must be less than or equal to the outstanding amount owing on the invoice e.g. 200.00 |
| BankAccountNumber | string | – | The suppliers bank account number the payment is being made to |
| BankAmount | number | – | The amount of the payment in the currency of the bank account. |
| BatchPaymentID | string | – | Present if the payment was created as part of a batch. |
| Code | string | – | Code of account you are using to make the payment e.g. 001 (note- not all accounts have a code value) |
| CreditNoteNumber | string | – | Number of invoice or credit note you are applying payment to e.g. INV-4003 |
| CurrencyRate | number | – | Exchange rate when payment is received. Only used for non base currency invoices and credit notes e.g. 0.7500 |
| Date | string | – | Date the payment is being made (YYYY-MM-DD) e.g. 2009-09-06 |
| Details | string | – | The information to appear on the supplier's bank account |
| HasAccount | boolean | – | A boolean to indicate if a contact has an validation errors |
| HasValidationErrors | boolean | – | A boolean to indicate if a contact has an validation errors |
| InvoiceNumber | string | – | Number of invoice or credit note you are applying payment to e.g.INV-4003 |
| IsReconciled | boolean | – | An optional parameter for the payment. |
| Particulars | string | – | The suppliers bank account number the payment is being made to |
| PaymentID | string | – | The Xero identifier for an Payment e.g. 297c2dc5-cc47-4afd-8ec8-74990b8761e9 |
| PaymentType | string | – | See Payment Types. |
| Reference | string | – | An optional description for the payment e.g. Direct Debit |
| Status | string | – | The status of the payment. |
| StatusAttributeString | string | – | A string to indicate if a invoice status |
| UpdatedDateUTC | string | – | UTC timestamp of last update to the payment |
| ValidationErrors | string | – | Displays array of validation error messages from the API |
| Warnings | string | – | Displays array of warning messages from the API |
| account-account-id | string | – | The Xero identifier for an account – specified as a string following the endpoint name e.g. |
| account-add-to-watchlist | boolean | – | Boolean – describes whether the account is shown in the watchlist widget on the dashboard |
| account-bank-account-number | string | – | For bank accounts only (Account Type BANK) |
| account-bank-account-type | string | – | For bank accounts only. See Bank Account types |
| account-class | string | – | See Account Class Types |
| account-code | string | – | Customer defined alpha numeric account code e.g 200 or SALES (max length = 10) |
| account-currency-code | string | – | 3 letter alpha code for the currency – see list of currency codes |
| account-description | string | – | Description of the Account. Valid for all types of accounts except bank accounts (max length = 4000) |
| account-enable-payments-to-account | boolean | – | Boolean – describes whether account can have payments applied to it |
| account-has-attachments | boolean | – | boolean to indicate if an account has an attachment (read only) |
| account-name | string | – | Name of account (max length = 150) |
| account-reporting-code | string | – | Shown if set |
| account-reporting-code-name | string | – | Shown if set |
| account-show-in-expense-claims | boolean | – | Boolean – describes whether account code is available for use with expense claims |
| account-status | string | – | Accounts with a status of ACTIVE can be updated to ARCHIVED. See Account Status Codes |
| account-system-account | string | – | If this is a system account then this element is returned. See System Account types. |
| account-tax-type | string | – | The tax type from taxRates |
| account-type | string | – | See Account Types |
| account-updated-date-utc | string | – | Last modified date UTC format |
| account-validation-errors | string | – | Displays array of validation error messages from the API |
| batch-payment-account-account-id | string | – | The Xero identifier for an account – specified as a string following the endpoint name e.g. |
| batch-payment-account-add-to-watchlist | boolean | – | Boolean – describes whether the account is shown in the watchlist widget on the dashboard |
| batch-payment-account-bank-account-number | string | – | For bank accounts only (Account Type BANK) |
| batch-payment-account-bank-account-type | string | – | For bank accounts only. See Bank Account types |
| batch-payment-account-class | string | – | See Account Class Types |
| batch-payment-account-code | string | – | Customer defined alpha numeric account code e.g 200 or SALES (max length = 10) |
| batch-payment-account-currency-code | string | – | 3 letter alpha code for the currency – see list of currency codes |
| batch-payment-account-description | string | – | Description of the Account. Valid for all types of accounts except bank accounts (max length = 4000) |
| batch-payment-account-enable-payments-to-account | boolean | – | Boolean – describes whether account can have payments applied to it |
| batch-payment-account-has-attachments | boolean | – | boolean to indicate if an account has an attachment (read only) |
| batch-payment-account-name | string | – | Name of account (max length = 150) |
| batch-payment-account-reporting-code | string | – | Shown if set |
| batch-payment-account-reporting-code-name | string | – | Shown if set |
| batch-payment-account-show-in-expense-claims | boolean | – | Boolean – describes whether account code is available for use with expense claims |
| batch-payment-account-status | string | – | Accounts with a status of ACTIVE can be updated to ARCHIVED. See Account Status Codes |
| batch-payment-account-system-account | string | – | If this is a system account then this element is returned. See System Account types. |
| batch-payment-account-tax-type | string | – | The tax type from taxRates |
| batch-payment-account-type | string | – | See Account Types |
| batch-payment-account-updated-date-utc | string | – | Last modified date UTC format |
| batch-payment-account-validation-errors | string | – | Displays array of validation error messages from the API |
| batch-payment-amount | number | – | The amount of the payment. Must be less than or equal to the outstanding amount owing on the invoice e.g. 200.00 |
| batch-payment-batch-payment-id | string | – | The Xero generated unique identifier for the bank transaction (read-only) |
| batch-payment-code | string | – | (NZ Only) Optional references for the batch payment transaction. |
| batch-payment-date | string | – | Date the payment is being made (YYYY-MM-DD) e.g. 2009-09-06 |
| batch-payment-date-string | string | – | Date the payment is being made (YYYY-MM-DD) e.g. 2009-09-06 |
| batch-payment-details | string | – | (Non-NZ Only) These details are sent to the org’s bank as a reference for the batch payment transaction. |
| batch-payment-is-reconciled | boolean | – | Booelan that tells you if the batch payment has been reconciled (read-only) |
| batch-payment-narrative | string | – | (UK Only) Only shows on the statement line in Xero. Max length =18 |
| batch-payment-particulars | string | – | (NZ Only) Optional references for the batch payment transaction. |
| batch-payment-payments | string | – | An array of payments |
| batch-payment-reference | string | – | (NZ Only) Optional references for the batch payment transaction. |
| batch-payment-status | string | – | AUTHORISED or DELETED (read-only). New batch payments will have a status of AUTHORISED. |
| batch-payment-total-amount | number | – | The total of the payments that make up the batch (read-only) |
| batch-payment-type | string | – | PAYBATCH for bill payments or RECBATCH for sales invoice payments (read-only) |
| batch-payment-updated-date-utc | string | – | UTC timestamp of last update to the payment |
| batch-payment-validation-errors | string | – | Displays array of validation error messages from the API |
| credit-note-allocations | string | – | See Allocations |
| credit-note-applied-amount | number | – | The amount of applied to an invoice |
| credit-note-branding-theme-id | string | – | See BrandingThemes |
| credit-note-cis-deduction | number | – | CIS deduction for UK contractors |
| credit-note-cis-rate | number | – | CIS Deduction rate for the organisation |
| credit-note-contact-account-number | string | – | A user defined account number. This can be updated via the API and the Xero UI (max length = 50) |
| credit-note-contact-accounts-payable-tax-type | string | – | The tax type from TaxRates |
| credit-note-contact-accounts-receivable-tax-type | string | – | The tax type from TaxRates |
| credit-note-contact-addresses | string | – | Store certain address types for a contact – see address types |
| credit-note-contact-attachments | string | – | Displays array of attachments from the API |
| credit-note-contact-bank-account-details | string | – | Bank account number of contact |
| credit-note-contact-batch-payments | string | – | Bank details for use on a batch payment stored with each contact |
| credit-note-contact-company-number | string | – | Company registration number (max length = 50) |
| credit-note-contact-contact-groups | string | – | Displays which contact groups a contact is included in |
| credit-note-contact-contact-id | string | – | Xero identifier |
| credit-note-contact-contact-number | string | – | This can be updated via the API only i.e. |
| credit-note-contact-contact-persons | string | – | See contact persons |
| credit-note-contact-contact-status | string | – | Current status of a contact – see contact status types |
| credit-note-contact-default-currency | string | – | 3 letter alpha code for the currency – see list of currency codes |
| credit-note-contact-discount | number | – | The default discount rate for the contact (read only) |
| credit-note-contact-email-address | string | – | Email address of contact person (umlauts not supported) (max length = 255) |
| credit-note-contact-first-name | string | – | First name of contact person (max length = 255) |
| credit-note-contact-has-attachments | boolean | – | A boolean to indicate if a contact has an attachment |
| credit-note-contact-has-validation-errors | boolean | – | A boolean to indicate if a contact has an validation errors |
| credit-note-contact-is-customer | boolean | – | true or false – Boolean that describes if a contact has any AR invoices entered against them. |
| credit-note-contact-is-supplier | boolean | – | true or false – Boolean that describes if a contact that has any AP invoices entered against them. |
| credit-note-contact-last-name | string | – | Last name of contact person (max length = 255) |
| credit-note-contact-merged-to-contact-id | string | – | ID for the destination of a merged contact. |
| credit-note-contact-name | string | – | Full name of contact/organisation (max length = 255) |
| credit-note-contact-phones | string | – | Store certain phone types for a contact – see phone types |
| credit-note-contact-purchases-default-account-code | string | – | The default purchases account code for contacts |
| credit-note-contact-purchases-default-line-amount-type | string | – | The default purchases line amount type for a contact Only available when summaryOnly parameter or paging is used |
| credit-note-contact-purchases-tracking-categories | string | – | The default purchases tracking categories for contacts |
| credit-note-contact-sales-default-account-code | string | – | The default sales account code for contacts |
| credit-note-contact-sales-default-line-amount-type | string | – | The default sales line amount type for a contact. |
| credit-note-contact-sales-tracking-categories | string | – | The default sales tracking categories for contacts |
| credit-note-contact-status-attribute-string | string | – | Status of object |
| credit-note-contact-tax-number | string | – | Tax number of contact – this is also known as the ABN (Australia), GST Number (New Zealand), VAT Number (UK) |
| credit-note-contact-tax-number-type | string | – | Identifier of the regional type of tax number, such as US, UK, or other regional tax identifiers |
| credit-note-contact-tracking-category-name | string | – | The name of the Tracking Category assigned to the contact under SalesTrackingCategories and PurchasesTrackingCategories |
| credit-note-contact-tracking-category-option | string | – | The name of the Tracking Option assigned to the contact under SalesTrackingCategories and PurchasesTrackingCategories |
| credit-note-contact-updated-date-utc | string | – | UTC timestamp of last update to contact |
| credit-note-contact-validation-errors | string | – | Displays validation errors returned from the API |
| credit-note-contact-website | string | – | Website address for contact (read only) |
| credit-note-contact-xero-network-key | string | – | Store XeroNetworkKey for contacts. |
| credit-note-credit-note-id | string | – | Xero generated unique identifier |
| credit-note-credit-note-number | string | – | ACCRECCREDIT – Unique alpha numeric code identifying credit note (when missing will auto-generate from your |
| credit-note-currency-code | string | – | 3 letter alpha code for the currency – see list of currency codes |
| credit-note-currency-rate | number | – | The currency rate for a multicurrency invoice. If no rate is specified, the XE.com day rate is used |
| credit-note-date | string | – | The date the credit note is issued YYYY-MM-DD. |
| credit-note-due-date | string | – | Date invoice is due – YYYY-MM-DD |
| credit-note-fully-paid-on-date | string | – | Date when credit note was fully paid(UTC format) |
| credit-note-has-attachments | boolean | – | boolean to indicate if a credit note has an attachment |
| credit-note-has-errors | boolean | – | A boolean to indicate if a credit note has an validation errors |
| credit-note-invoice-addresses | string | – | An array of addresses used to auto calculate sales tax |
| credit-note-line-amount-types | string | – | Line amounts are exclusive of tax by default if you don’t specify this element. See Line Amount Types |
| credit-note-line-items | string | – | See Invoice Line Items |
| credit-note-payments | string | – | See Payments |
| credit-note-reference | string | – | ACCRECCREDIT only – additional reference number |
| credit-note-remaining-credit | number | – | The remaining credit balance on the Credit Note |
| credit-note-sent-to-contact | boolean | – | Boolean to set whether the credit note in the Xero app should be marked as “sent”. |
| credit-note-status | string | – | See Credit Note Status Codes |
| credit-note-status-attribute-string | string | – | A string to indicate if a invoice status |
| credit-note-sub-total | number | – | The subtotal of the credit note excluding taxes |
| credit-note-total | number | – | The total of the Credit Note(subtotal + total tax) |
| credit-note-total-tax | number | – | The total tax on the credit note |
| credit-note-type | string | – | See Credit Note Types |
| credit-note-updated-date-utc | string | – | UTC timestamp of last update to the credit note |
| credit-note-validation-errors | string | – | Displays array of validation error messages from the API |
| credit-note-warnings | string | – | Displays array of warning messages from the API |
| invoice-amount-credited | number | – | Sum of all credit notes, over-payments and pre-payments applied to invoice |
| invoice-amount-due | number | – | Amount remaining to be paid on invoice |
| invoice-amount-paid | number | – | Sum of payments received for invoice |
| invoice-attachments | string | – | Displays array of attachments from the API |
| invoice-branding-theme-id | string | – | See BrandingThemes |
| invoice-cis-deduction | number | – | CIS deduction for UK contractors |
| invoice-cis-rate | number | – | CIS Deduction rate for the organisation |
| invoice-contact-account-number | string | – | A user defined account number. This can be updated via the API and the Xero UI (max length = 50) |
| invoice-contact-accounts-payable-tax-type | string | – | The tax type from TaxRates |
| invoice-contact-accounts-receivable-tax-type | string | – | The tax type from TaxRates |
| invoice-contact-addresses | string | – | Store certain address types for a contact – see address types |
| invoice-contact-attachments | string | – | Displays array of attachments from the API |
| invoice-contact-bank-account-details | string | – | Bank account number of contact |
| invoice-contact-batch-payments | string | – | Bank details for use on a batch payment stored with each contact |
| invoice-contact-company-number | string | – | Company registration number (max length = 50) |
| invoice-contact-contact-groups | string | – | Displays which contact groups a contact is included in |
| invoice-contact-contact-id | string | – | Xero identifier |
| invoice-contact-contact-number | string | – | This can be updated via the API only i.e. |
| invoice-contact-contact-persons | string | – | See contact persons |
| invoice-contact-contact-status | string | – | Current status of a contact – see contact status types |
| invoice-contact-default-currency | string | – | 3 letter alpha code for the currency – see list of currency codes |
| invoice-contact-discount | number | – | The default discount rate for the contact (read only) |
| invoice-contact-email-address | string | – | Email address of contact person (umlauts not supported) (max length = 255) |
| invoice-contact-first-name | string | – | First name of contact person (max length = 255) |
| invoice-contact-has-attachments | boolean | – | A boolean to indicate if a contact has an attachment |
| invoice-contact-has-validation-errors | boolean | – | A boolean to indicate if a contact has an validation errors |
| invoice-contact-is-customer | boolean | – | true or false – Boolean that describes if a contact has any AR invoices entered against them. |
| invoice-contact-is-supplier | boolean | – | true or false – Boolean that describes if a contact that has any AP invoices entered against them. |
| invoice-contact-last-name | string | – | Last name of contact person (max length = 255) |
| invoice-contact-merged-to-contact-id | string | – | ID for the destination of a merged contact. |
| invoice-contact-name | string | – | Full name of contact/organisation (max length = 255) |
| invoice-contact-phones | string | – | Store certain phone types for a contact – see phone types |
| invoice-contact-purchases-default-account-code | string | – | The default purchases account code for contacts |
| invoice-contact-purchases-default-line-amount-type | string | – | The default purchases line amount type for a contact Only available when summaryOnly parameter or paging is used |
| invoice-contact-purchases-tracking-categories | string | – | The default purchases tracking categories for contacts |
| invoice-contact-sales-default-account-code | string | – | The default sales account code for contacts |
| invoice-contact-sales-default-line-amount-type | string | – | The default sales line amount type for a contact. |
| invoice-contact-sales-tracking-categories | string | – | The default sales tracking categories for contacts |
| invoice-contact-status-attribute-string | string | – | Status of object |
| invoice-contact-tax-number | string | – | Tax number of contact – this is also known as the ABN (Australia), GST Number (New Zealand), VAT Number (UK) |
| invoice-contact-tax-number-type | string | – | Identifier of the regional type of tax number, such as US, UK, or other regional tax identifiers |
| invoice-contact-tracking-category-name | string | – | The name of the Tracking Category assigned to the contact under SalesTrackingCategories and PurchasesTrackingCategories |
| invoice-contact-tracking-category-option | string | – | The name of the Tracking Option assigned to the contact under SalesTrackingCategories and PurchasesTrackingCategories |
| invoice-contact-updated-date-utc | string | – | UTC timestamp of last update to contact |
| invoice-contact-validation-errors | string | – | Displays validation errors returned from the API |
| invoice-contact-website | string | – | Website address for contact (read only) |
| invoice-contact-xero-network-key | string | – | Store XeroNetworkKey for contacts. |
| invoice-credit-notes | string | – | Details of credit notes that have been applied to an invoice |
| invoice-currency-code | string | – | 3 letter alpha code for the currency – see list of currency codes |
| invoice-currency-rate | number | – | The currency rate for a multicurrency invoice. If no rate is specified, the XE.com day rate is used. (max length = [18]. |
| invoice-date | string | – | Date invoice was issued – YYYY-MM-DD. |
| invoice-due-date | string | – | Date invoice is due – YYYY-MM-DD |
No output schema declared.
No examples provided.
payments_create-endpoint ~134
Creates multiple payments for invoices or credit notes. Optional: summarizeErrors (default: false), Payments, Warnings (plus 1 more). Returns the updated Payments.
| Name | Type | Req | Description |
|---|---|---|---|
| Payments | string | – | Payments |
| Warnings | string | – | Displays array of warning messages from the API |
| pagination-item-count | number | – | Item count |
| pagination-page | number | – | Page |
| pagination-page-count | number | – | Page count |
| pagination-page-size | number | – | Page size |
| summarizeErrors | boolean | – | If false return 200 OK and mix of successfully created objects and any with validation errors |
No output schema declared.
No examples provided.
payments_delete ~60
Updates a specific payment for invoices and credit notes. Required: PaymentID, Status (default: DELETED). Returns the new Payments.
| Name | Type | Req | Description |
|---|---|---|---|
| PaymentID | string | yes | Unique identifier for a Payment |
| Status | string | yes | The status of the payment. |
No output schema declared.
No examples provided.
payments_get ~92
Retrieves payments for invoices and credit notes. Optional: where, order, page (plus 1 more). Returns the Payments.
| Name | Type | Req | Description |
|---|---|---|---|
| order | string | – | Order by an any element |
| page | number | – | Up to 100 payments will be returned in a single API call |
| pageSize | number | – | Number of records to retrieve per page |
| where | string | – | Filter by an any element |
No output schema declared.
No examples provided.
payments_get-paymentid ~47
Retrieves a specific payment for invoices and credit notes using a unique payment Id. Required: PaymentID. Returns the Payments.
| Name | Type | Req | Description |
|---|---|---|---|
| PaymentID | string | yes | Unique identifier for a Payment |
No output schema declared.
No examples provided.
payments_history ~466
Get and create history for payments
| Name | Type | Req | Description |
|---|---|---|---|
| agent | boolean | – | Set all agent-friendly defaults (--json --compact --no-input --no-color --yes) (default: false) |
| allow-partial-failure | boolean | – | Downgrade response-body partial-failure (e.g. partialFailureError) to a warning instead of a non-zero exit (default: false) |
| compact | boolean | – | Return only key fields (id, name, status, timestamps) for minimal token usage (default: false) |
| csv | boolean | – | Output as CSV (table and array responses) (default: false) |
| data-source | string | – | Data source for read commands: auto (live with local fallback), live (API only), local (synced data only) (default: auto) |
| dry-run | boolean | – | Show request without sending (default: false) |
| human-friendly | boolean | – | Enable colored output and rich formatting (default: false) |
| idempotent | boolean | – | Treat already-existing create results as a successful no-op (default: false) |
| ignore-missing | boolean | – | Treat missing delete targets as a successful no-op (default: false) |
| json | boolean | – | Output as JSON (default: false) |
| max-age | string | – | Maximum acceptable age of local-store data before a stderr hint suggests sync; 0 disables (default: 30m0s) |
| no-cache | boolean | – | Bypass response cache (default: false) |
| no-color | boolean | – | Disable colored output (default: false) |
| no-input | boolean | – | Disable all interactive prompts (for CI/agents) (default: false) |
| plain | boolean | – | Output as plain tab-separated text (default: false) |
| quiet | boolean | – | Bare output, one value per line (default: false) |
| rate-limit | number | – | Max requests per second (0 to disable) (default: 0) |
| select | string | – | Comma-separated fields to include in output (e.g. --select id,name,status) |
| timeout | string | – | Request timeout (default: 1m0s) |
| yes | boolean | – | Skip confirmation prompts (for agents and scripts) (default: false) |
No output schema declared.
No examples provided.
payments_history_create-payment ~58
Creates a history record for a specific payment. Required: PaymentID. Optional: HistoryRecords. Returns array of HistoryRecord.
| Name | Type | Req | Description |
|---|---|---|---|
| HistoryRecords | string | – | History records |
| PaymentID | string | yes | Unique identifier for a Payment |
No output schema declared.
No examples provided.
payments_history_get-payment ~42
Retrieves history records of a specific payment. Required: PaymentID. Returns array of HistoryRecord.
| Name | Type | Req | Description |
|---|---|---|---|
| PaymentID | string | yes | Unique identifier for a Payment |
No output schema declared.
No examples provided.
reconcile ~514
Surface the gap between the invoice ledger and applied cash: AUTHORISED receivable invoices still owed (with the payments the store can see applied to each), and payments referencing an invoice not present locally. Computed from the synced invoices + payments — no live API call.
| Name | Type | Req | Description |
|---|---|---|---|
| agent | boolean | – | Set all agent-friendly defaults (--json --compact --no-input --no-color --yes) (default: false) |
| allow-partial-failure | boolean | – | Downgrade response-body partial-failure (e.g. partialFailureError) to a warning instead of a non-zero exit (default: false) |
| compact | boolean | – | Return only key fields (id, name, status, timestamps) for minimal token usage (default: false) |
| csv | boolean | – | Output as CSV (table and array responses) (default: false) |
| data-source | string | – | Data source for read commands: auto (live with local fallback), live (API only), local (synced data only) (default: auto) |
| dry-run | boolean | – | Show request without sending (default: false) |
| human-friendly | boolean | – | Enable colored output and rich formatting (default: false) |
| idempotent | boolean | – | Treat already-existing create results as a successful no-op (default: false) |
| ignore-missing | boolean | – | Treat missing delete targets as a successful no-op (default: false) |
| json | boolean | – | Output as JSON (default: false) |
| max-age | string | – | Maximum acceptable age of local-store data before a stderr hint suggests sync; 0 disables (default: 30m0s) |
| no-cache | boolean | – | Bypass response cache (default: false) |
| no-color | boolean | – | Disable colored output (default: false) |
| no-input | boolean | – | Disable all interactive prompts (for CI/agents) (default: false) |
| plain | boolean | – | Output as plain tab-separated text (default: false) |
| quiet | boolean | – | Bare output, one value per line (default: false) |
| rate-limit | number | – | Max requests per second (0 to disable) (default: 0) |
| select | string | – | Comma-separated fields to include in output (e.g. --select id,name,status) |
| timeout | string | – | Request timeout (default: 1m0s) |
| yes | boolean | – | Skip confirmation prompts (for agents and scripts) (default: false) |
No output schema declared.
No examples provided.
search ~64
Full-text search across all synced data. Faster than paginating list endpoints. Requires sync first.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | number | – | Max results (default 25) |
| query | string | yes | Search query (supports FTS5 syntax: AND, OR, NOT, quotes for phrases) |
No output schema declared.
No examples provided.
since ~574
List records across all synced entities whose UpdatedDateUTC is newer than <when> — read entirely from the local store, zero API calls. <when> is a YYYY-MM-DD date or a duration ago (e.g. 24h, 7d, 1w). The org delta an agent can poll cheaply between syncs.
| Name | Type | Req | Description |
|---|---|---|---|
| agent | boolean | – | Set all agent-friendly defaults (--json --compact --no-input --no-color --yes) (default: false) |
| allow-partial-failure | boolean | – | Downgrade response-body partial-failure (e.g. partialFailureError) to a warning instead of a non-zero exit (default: false) |
| args | string | – | Additional positional arguments or raw CLI flags to append to the command. |
| compact | boolean | – | Return only key fields (id, name, status, timestamps) for minimal token usage (default: false) |
| csv | boolean | – | Output as CSV (table and array responses) (default: false) |
| data-source | string | – | Data source for read commands: auto (live with local fallback), live (API only), local (synced data only) (default: auto) |
| dry-run | boolean | – | Show request without sending (default: false) |
| human-friendly | boolean | – | Enable colored output and rich formatting (default: false) |
| idempotent | boolean | – | Treat already-existing create results as a successful no-op (default: false) |
| ignore-missing | boolean | – | Treat missing delete targets as a successful no-op (default: false) |
| json | boolean | – | Output as JSON (default: false) |
| max-age | string | – | Maximum acceptable age of local-store data before a stderr hint suggests sync; 0 disables (default: 30m0s) |
| max-ids | number | – | Maximum changed IDs to list per resource in JSON output (default: 50) |
| no-cache | boolean | – | Bypass response cache (default: false) |
| no-color | boolean | – | Disable colored output (default: false) |
| no-input | boolean | – | Disable all interactive prompts (for CI/agents) (default: false) |
| plain | boolean | – | Output as plain tab-separated text (default: false) |
| quiet | boolean | – | Bare output, one value per line (default: false) |
| rate-limit | number | – | Max requests per second (0 to disable) (default: 0) |
| select | string | – | Comma-separated fields to include in output (e.g. --select id,name,status) |
| timeout | string | – | Request timeout (default: 1m0s) |
| yes | boolean | – | Skip confirmation prompts (for agents and scripts) (default: false) |
No output schema declared.
No examples provided.
snapshot ~540
Compose a one-shot offline summary of the org: total receivable and payable outstanding, overdue receivable count, unreconciled bank-transaction count, per-entity row counts, and per-table sync staleness — one structured object an agent can read instead of fanning out across list endpoints.
| Name | Type | Req | Description |
|---|---|---|---|
| agent | boolean | – | Set all agent-friendly defaults (--json --compact --no-input --no-color --yes) (default: false) |
| allow-partial-failure | boolean | – | Downgrade response-body partial-failure (e.g. partialFailureError) to a warning instead of a non-zero exit (default: false) |
| as-of | string | – | Overdue cutoff date (YYYY-MM-DD); defaults to today |
| compact | boolean | – | Return only key fields (id, name, status, timestamps) for minimal token usage (default: false) |
| csv | boolean | – | Output as CSV (table and array responses) (default: false) |
| data-source | string | – | Data source for read commands: auto (live with local fallback), live (API only), local (synced data only) (default: auto) |
| dry-run | boolean | – | Show request without sending (default: false) |
| human-friendly | boolean | – | Enable colored output and rich formatting (default: false) |
| idempotent | boolean | – | Treat already-existing create results as a successful no-op (default: false) |
| ignore-missing | boolean | – | Treat missing delete targets as a successful no-op (default: false) |
| json | boolean | – | Output as JSON (default: false) |
| max-age | string | – | Maximum acceptable age of local-store data before a stderr hint suggests sync; 0 disables (default: 30m0s) |
| no-cache | boolean | – | Bypass response cache (default: false) |
| no-color | boolean | – | Disable colored output (default: false) |
| no-input | boolean | – | Disable all interactive prompts (for CI/agents) (default: false) |
| plain | boolean | – | Output as plain tab-separated text (default: false) |
| quiet | boolean | – | Bare output, one value per line (default: false) |
| rate-limit | number | – | Max requests per second (0 to disable) (default: 0) |
| select | string | – | Comma-separated fields to include in output (e.g. --select id,name,status) |
| timeout | string | – | Request timeout (default: 1m0s) |
| yes | boolean | – | Skip confirmation prompts (for agents and scripts) (default: false) |
No output schema declared.
No examples provided.
sql ~93
Run read-only SQL against local database. Use for ad-hoc analysis, aggregations, and joins across synced resources. Requires sync first.
| Name | Type | Req | Description |
|---|---|---|---|
| query | string | yes | SQL query (SELECT or WITH...SELECT). Synced records live in resources(resource_type, id, data); filter by resource_type and use json_extract on data, e.g. SELECT json_extract(data,'$.name') FROM reso… |
No output schema declared.
No examples provided.
sync ~1,164
Sync data from the API into a local SQLite database. Supports resumable incremental sync (only fetches new data since last sync) and full resync. Once synced, use the 'search' command for instant full-text search. Exit codes & warnings: Resources the API denies access to (HTTP 403, or HTTP 400 with an access-policy body) are reported as warnings rather than failing the run. In --json mode each is emitted as a {"event":"sync_warning",...} line carrying status, reason, and message fields, and a final {"event":"sync_summary",...} aggregates the run. Exit 0 when at least one resource synced and no resource flagged in the spec as critical (x-critical: true) failed; non-critical failures emit {"event":"sync_warning","reason":"exit_policy_default_changed", ...} so callers can detect that a partial failure was tolerated. Pass --strict to exit non-zero on any per-resource failure. Exit is always non-zero when every selected resource failed, regardless of --strict. Resource scoping: --resources runs the named top-level resources, plus any parent-keyed dependent whose own name is listed OR whose parent table is listed. Naming a parent therefore cascades to its dependents (so "sync this parent and its children" works without listing every nested resource by hand). There is no flag today to suppress the cascade for a named parent. To run a dependent without re-syncing its parent, list only the dependent by name; the parent table must already be populated from a prior sync.
| Name | Type | Req | Description |
|---|---|---|---|
| agent | boolean | – | Set all agent-friendly defaults (--json --compact --no-input --no-color --yes) (default: false) |
| allow-partial-failure | boolean | – | Downgrade response-body partial-failure (e.g. partialFailureError) to a warning instead of a non-zero exit (default: false) |
| compact | boolean | – | Return only key fields (id, name, status, timestamps) for minimal token usage (default: false) |
| concurrency | number | – | Number of parallel sync workers (default: 4) |
| csv | boolean | – | Output as CSV (table and array responses) (default: false) |
| data-source | string | – | Data source for read commands: auto (live with local fallback), live (API only), local (synced data only) (default: auto) |
| dry-run | boolean | – | Show request without sending (default: false) |
| full | boolean | – | Full resync (ignore previous checkpoint) (default: false) |
| global-param | string | – | Extra query param to inject into every sync request including dependent path-scoped calls (repeatable, key=value). Use when an API requires a scope on every call regardless of path nesting. |
| human-friendly | boolean | – | Enable colored output and rich formatting (default: false) |
| idempotent | boolean | – | Treat already-existing create results as a successful no-op (default: false) |
| ignore-missing | boolean | – | Treat missing delete targets as a successful no-op (default: false) |
| json | boolean | – | Output as JSON (default: false) |
| latest-only | boolean | – | Refresh head of each resource only; clears resume cursor and caps pages at 1. Mutually exclusive with --since (--since wins). (default: false) |
| max-age | string | – | Maximum acceptable age of local-store data before a stderr hint suggests sync; 0 disables (default: 30m0s) |
| max-pages | number | – | Maximum pages to fetch per resource (0 = unlimited; cap-hit emits a sync_warning event) (default: 0) |
| no-cache | boolean | – | Bypass response cache (default: false) |
| no-color | boolean | – | Disable colored output (default: false) |
| no-input | boolean | – | Disable all interactive prompts (for CI/agents) (default: false) |
| param | string | – | Extra query param to inject into flat-list sync requests (repeatable, key=value). Skipped on path-scoped dependent requests so a top-level scope like workspace=<id> does not double up on /parents/<id… |
| plain | boolean | – | Output as plain tab-separated text (default: false) |
| quiet | boolean | – | Bare output, one value per line (default: false) |
| rate-limit | number | – | Max requests per second (0 to disable) (default: 0) |
| resource-param | string | – | Per-resource extra query param (repeatable, resource:key=value). Wins over --param and --global-param when keys conflict. |
| resources | string | – | Comma-separated resource types to sync. Naming a parent also runs its parent-keyed dependents (see Long help for scoping). |
| select | string | – | Comma-separated fields to include in output (e.g. --select id,name,status) |
| since | string | – | Incremental sync duration (e.g. 7d, 24h, 1w, 30m) |
| strict | boolean | – | Exit non-zero on any per-resource failure (default: only critical failures or all-resource failure exit non-zero). (default: false) |
| timeout | string | – | Request timeout (default: 1m0s) |
| yes | boolean | – | Skip confirmation prompts (for agents and scripts) (default: false) |
No output schema declared.
No examples provided.
tail ~586
Tail streams live data changes by polling the API at configurable intervals. Events are emitted as NDJSON to stdout for piping to other tools. Gracefully shuts down on SIGTERM/SIGINT. Note: For APIs with WebSocket or SSE support, a future version will use native streaming instead of polling.
| Name | Type | Req | Description |
|---|---|---|---|
| agent | boolean | – | Set all agent-friendly defaults (--json --compact --no-input --no-color --yes) (default: false) |
| allow-partial-failure | boolean | – | Downgrade response-body partial-failure (e.g. partialFailureError) to a warning instead of a non-zero exit (default: false) |
| args | string | – | Additional positional arguments or raw CLI flags to append to the command. |
| compact | boolean | – | Return only key fields (id, name, status, timestamps) for minimal token usage (default: false) |
| csv | boolean | – | Output as CSV (table and array responses) (default: false) |
| data-source | string | – | Data source for read commands: auto (live with local fallback), live (API only), local (synced data only) (default: auto) |
| dry-run | boolean | – | Show request without sending (default: false) |
| follow | boolean | – | Keep running (set --follow=false for single poll) (default: true) |
| human-friendly | boolean | – | Enable colored output and rich formatting (default: false) |
| idempotent | boolean | – | Treat already-existing create results as a successful no-op (default: false) |
| ignore-missing | boolean | – | Treat missing delete targets as a successful no-op (default: false) |
| interval | string | – | Poll interval (default: 10s) |
| json | boolean | – | Output as JSON (default: false) |
| max-age | string | – | Maximum acceptable age of local-store data before a stderr hint suggests sync; 0 disables (default: 30m0s) |
| no-cache | boolean | – | Bypass response cache (default: false) |
| no-color | boolean | – | Disable colored output (default: false) |
| no-input | boolean | – | Disable all interactive prompts (for CI/agents) (default: false) |
| plain | boolean | – | Output as plain tab-separated text (default: false) |
| quiet | boolean | – | Bare output, one value per line (default: false) |
| rate-limit | number | – | Max requests per second (0 to disable) (default: 0) |
| resource | string | – | Resource type to tail |
| select | string | – | Comma-separated fields to include in output (e.g. --select id,name,status) |
| timeout | string | – | Request timeout (default: 1m0s) |
| yes | boolean | – | Skip confirmation prompts (for agents and scripts) (default: false) |
No output schema declared.
No examples provided.
tie_out ~529
Sum the immutable journal lines by account code for the receivable and payable control accounts and compare each against the sum of outstanding invoice amounts, reporting the variance. The general ledger is the independent oracle the documents are checked against — variance of zero is the tie. Computed from synced journals + invoices + accounts. Run `sync` first.
| Name | Type | Req | Description |
|---|---|---|---|
| agent | boolean | – | Set all agent-friendly defaults (--json --compact --no-input --no-color --yes) (default: false) |
| allow-partial-failure | boolean | – | Downgrade response-body partial-failure (e.g. partialFailureError) to a warning instead of a non-zero exit (default: false) |
| compact | boolean | – | Return only key fields (id, name, status, timestamps) for minimal token usage (default: false) |
| csv | boolean | – | Output as CSV (table and array responses) (default: false) |
| data-source | string | – | Data source for read commands: auto (live with local fallback), live (API only), local (synced data only) (default: auto) |
| dry-run | boolean | – | Show request without sending (default: false) |
| human-friendly | boolean | – | Enable colored output and rich formatting (default: false) |
| idempotent | boolean | – | Treat already-existing create results as a successful no-op (default: false) |
| ignore-missing | boolean | – | Treat missing delete targets as a successful no-op (default: false) |
| json | boolean | – | Output as JSON (default: false) |
| max-age | string | – | Maximum acceptable age of local-store data before a stderr hint suggests sync; 0 disables (default: 30m0s) |
| no-cache | boolean | – | Bypass response cache (default: false) |
| no-color | boolean | – | Disable colored output (default: false) |
| no-input | boolean | – | Disable all interactive prompts (for CI/agents) (default: false) |
| plain | boolean | – | Output as plain tab-separated text (default: false) |
| quiet | boolean | – | Bare output, one value per line (default: false) |
| rate-limit | number | – | Max requests per second (0 to disable) (default: 0) |
| select | string | – | Comma-separated fields to include in output (e.g. --select id,name,status) |
| timeout | string | – | Request timeout (default: 1m0s) |
| yes | boolean | – | Skip confirmation prompts (for agents and scripts) (default: false) |
No output schema declared.
No examples provided.
How do I install the Xero MCP server?
Xero MCP ships as an MCPB bundle, a single file you download and open in an MCP host that supports MCPB bundles, such as Claude Desktop. The host reads the launch command from the bundle's own manifest, so there is no command to copy. Before opening it, check the file's SHA-256 matches the one the MCP registry declares for it, 0f76db6c0f3b84be5dc85cc050ed0d18b2bf625f137660739eae0b9b9df87fb9; the commands to do that are on this page. If it does not match, do not open it.
mcpb · xero-mcp.mcpb
Download bundleCheck the download matches the SHA-256 the MCP registry declares before you open it. If it does not match, do not open the file.
SHA-256
0f76db6c0f3b84be5dc85cc050ed0d18b2bf625f137660739eae0b9b9df87fb9
macOS / Linux
echo "0f76db6c0f3b84be5dc85cc050ed0d18b2bf625f137660739eae0b9b9df87fb9 xero-mcp.mcpb" | shasum -a 256 -c
Windows (PowerShell)
(Get-FileHash -Algorithm SHA256 .\xero-mcp.mcpb).Hash -eq "0f76db6c0f3b84be5dc85cc050ed0d18b2bf625f137660739eae0b9b9df87fb9"
Run it in the folder you saved the bundle to, then open the file with an MCPB-capable host such as Claude Desktop.
What is the Xero MCP server?
Xero MCP is listed in the public MCP registry as io.github.Servosity/xero-mcp. Every Xero Accounting read plus a local SQLite ledger - aging, reconciliation, and GL tie-out. This page covers its MCPB bundle (https://github.com/Servosity/msp-skills/releases/download/xero-v0.1.9/xero-mcp.mcpb).
Is the Xero MCP server safe to use?
Xero MCP scores 51 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the Xero MCP server expose?
Xero MCP exposes 75 tools: accounts, accounts_create, accounts_delete, accounts_get, accounts_get-accountid, and 70 more. Their descriptions and schemas cost roughly 23,307 tokens of context every time the server is loaded.
What licence is the Xero MCP server under?
Xero MCP declares the Apache-2.0 licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.