# Puzzle API and MCP vs Xero API + MCP

> Xero scores 67.2 (B) to Puzzle's 46.2 (D) for accounting ledgers. Prices, MCP, x402, uptime and agent notes side by side.

- Canonical: https://www.anchorterminal.com/compare/puzzle-vs-xero
- Markdown: https://www.anchorterminal.com/compare/puzzle-vs-xero.md (~4,250 tokens)
- Site index for agents: https://www.anchorterminal.com/llms.txt (the key docs and every listing in one file, at most 16 MB, about 4 million tokens: https://www.anchorterminal.com/llms-full.txt)
- API: https://www.anchorterminal.com/api/v1/index.json
- MCP: https://www.anchorterminal.com/mcp (the whole catalogue as tools, no key)
- DNS: dig +short TXT <slug>.grade.anchorterminal.com (the grade as a DNS TXT record, for a sandbox with no HTTP where names still resolve; also top., best.<category>. and <a>.vs.<b>. under the zone, and the same under grade.letme.dev)
- Licence: CC BY 4.0, credit Anchor Terminal and link this page (https://www.anchorterminal.com/terms/#data)
- Updated: 2026-11-07

Xero API + MCP scores 67.2 (B) on agent readiness against Puzzle API and MCP's 46.2 (D), and leads in 6 of 7 scored categories. Puzzle API and MCP leads on security & auth. Both do accounting ledgers.

- Puzzle API and MCP: grade D, 46.2/100, rank #1180 of 1510. Markdown https://www.anchorterminal.com/tools/puzzle.md · JSON https://www.anchorterminal.com/api/v1/tools/puzzle.json
- Xero API + MCP: grade B, 67.2/100, rank #338 of 1510. Markdown https://www.anchorterminal.com/tools/xero.md · JSON https://www.anchorterminal.com/api/v1/tools/xero.json
- Best accounting and invoicing APIs for AI agents: https://www.anchorterminal.com/best/accounting/index.md
- All 90 accounting comparisons: https://www.anchorterminal.com/compare/accounting/index.md

## Which one, for what

### Puzzle API and MCP (D)

Good for: Startups already on Puzzle who want an assistant to answer finance questions and draft bookkeeping. xero, quickbooks-online and pennylane are the nearest listings; teams wanting a self-serve API should look there.

Ahead on:
- Security & auth, 73 against 64

Watch for: MCP tool list and schemas not published

### Xero API + MCP (B)

Good for: An agent keeping the books for UK, Australian or New Zealand businesses, or any team that wants read-only scopes and long deprecation notice.

Ahead on:
- Reliability, 68 against 15
- Schema & documentation, 79 against 65
- Agent ergonomics, 75 against 56
- Payments & pricing, 35 against 15
- Maintenance & community, 76 against 53
- Transparency & trust, 72 against 49

Also in its favour:
- Runs on your own machine

Watch for: Developer docs, including the per-minute rate limits, only render with JavaScript


## Why the edge

### Reliability: Xero API + MCP +53

- Puzzle API and MCP (15): Hosted reading. status.puzzle.io exists but answered 403 to our reader, so no status page or history could be read (0, then 5 for no readable history). No rate limits found in the API docs (0). The errors page documents 409 RESOURCE_PROCESSING with retry later and 500 with retry, but no 429 or idempotency guidance (5). No SLA (0). MCP read access is live, write access is a beta, and the API docs say the API is under development (5). 0 + 5 + 0 + 5 + 0 + 5 = 15.
- Xero API + MCP (68): Statuspage at status.xero.com with product and region components, none of them the API (20). Since 3 August the history lists tax-authority connections (HMRC, ATO, Inland Revenue), US payroll through Gusto, Partner Hub, subscriptions, third-party outages and scheduled maintenance. None names the API. The longest whole-product incidents were errors navigating Xero after logging in for about an hour on 28 October (labelled critical, component Xero Platform and Settings) and intermittent errors for some customers for 2 hours 24 minutes on 26 and 27 October, both read from their text as the web app, not the API (20). Daily limits per organisation are published on the pricing page (1,000 on Starter, 5,000 above). The minute and concurrency limits are on a JavaScript-only page we couldn't read (10). The OpenAPI spec puts an Idempotency-Key parameter on 101 operations. 429 and Retry-After handling sits on the unreadable limits page (8). No SLA found (0). GA (10).

### Maintenance & community: Xero API + MCP +23

- Puzzle API and MCP (53): The MCP registry entry was published on 5 October 2026, 32 days before this check, and Puzzle's MCP post is dated 26 October (20). No release log, so changes in the 90 days can't be counted beyond the registry entry and the MCP launch (5). A help centre and support contact, but no public changelog or issue tracker (8). io.puzzle/puzzle sits under a domain-verified namespace in the official registry (15). No SDK or package to judge (5). 20 + 5 + 8 + 15 + 5 = 53.
- Xero API + MCP (76): Xero-OpenAPI 19.1.0 on 1 October and a dated developer changelog entry on 15 October for the remote MCP launch (30). Spec releases 16.2.0, 17.0.0, 18.0.0, 19.0.0 and 19.1.0, xero-node 19.1.0, 19.2.0 and 20.0.0, and changelog entries from 10 August to 15 October, all since 3 August (20). Closed API with a dated changelog and developer community. The local MCP repository had five commits on 26 October after none since 5 June, none of them released yet (10). Current official SDKs in six languages, but the MCP isn't in the official registry, and npm's latest was 0.0.17 from 26 May per the 1 October check (12). The MCP repository has no CI workflows (4).

### Transparency & trust: Xero API + MCP +23

- Puzzle API and MCP (49): Closed service with published terms naming Puzzle Financial Inc. (15). A privacy policy effective 19 December 2025; the security page says data stays on US servers and isn't shared or sold (15). The API docs promise documented endpoints stay stable but give no deprecation policy (5). Sub-processors not found, though the server location is stated (8). 15 + 15 + 5 + 8 = 43.
- Xero API + MCP (72): Closed API with developer terms dated 4 December 2025 naming Xero Limited (NZ 1830488) and the governing law by region. MIT MCP server and SDKs (17). Developer terms forbid training or fine-tuning AI models on API data. The UK privacy notice, dated 11 February 2025, says Xero uses AI and ML on its services and keeps data while there's a business or legal need, with no periods (15). Dated deprecations with 12 to 13 months' notice, such as accounting.transactions retiring on 13 September 2027 and XPM API v3.0 on 6 May 2027 (20). Transfers to Australia, New Zealand and the United States are named, with no public subprocessor list (8).

### Payments & pricing: Xero API + MCP +20

- Puzzle API and MCP (15): No x402, MPP or L402 (0). Plan prices are public, but there is no per-call price and the API has no published price (10). "Try for free" on every plan, with trial length and card requirement not stated on the pages read (5). A person signs up and authorises in a browser, and API credentials come by email (0). 0 + 10 + 5 + 0 = 15.
- Xero API + MCP (35): No x402, MPP or L402 (0). Tier prices are public in AUD (Core 35, Plus 245, Advanced 1,445 a month) with a per-GB egress overage of AUD 2.40, which we scored between plan-only and per-unit (15). Starter is free for 5 connections at 1,000 calls a day per organisation, with no card per the 30 September check, plus a Demo Company in any Xero account (20). Browser signup and an OAuth consent (0).

### Agent ergonomics: Xero API + MCP +19

- Puzzle API and MCP (56): MCP tool count and sizes unpublished, so context cost can't be read (10 of 25). API list endpoints page with count and after or limit, and filter by date and status (16). Error codes and errorContext name the field or resource at fault (17). No idempotency keys found; the MCP server asks for confirmation before writes (8). No official SDKs; few required parameters on reads (5). 10 + 16 + 17 + 8 + 5 = 56.
- Xero API + MCP (75): The official local MCP loads 51 tools with no toolsets or read-only subset. A remote Developer MCP with 39 tools launched on 15 October 2026 for apps on Core or above. The API pages at up to 100 per page and honours If-Modified-Since (12). page, pageSize, where, order, Statuses and If-Modified-Since on list endpoints (20). Validation errors per element with `summarizeErrors`, though the MCP's mapped messages drop Xero's own error detail for the four common statuses (14). Idempotency-Key on 101 operations. The local MCP sets no readOnlyHint or destructiveHint and includes a delete tool (14). SDKs for Node, Python, Java, .NET, PHP and Ruby, though every call needs the xero-tenant-id header (15).

### Schema & documentation: Xero API + MCP +14

- Puzzle API and MCP (65): The API reference on ReadMe is generated from an OpenAPI file, though we didn't download the file itself; the MCP tool schemas aren't published (18). llms.txt and Markdown pages on puzzle-api.readme.io (10). Endpoint descriptions name the required scope and explain defaults such as cash basis (14). Typed parameters with documented limits, such as companies capped at 100 a page (11). An error table with HTTP codes and errorContext shapes, and example requests (12). No changelog or version scheme found (0). 18 + 10 + 14 + 11 + 12 + 0 = 65.
- Xero API + MCP (79): OpenAPI specs for accounting, payroll, assets, files, bank feeds, projects and more in XeroAPI/Xero-OpenAPI, 235 operations in accounting alone (25). No llms.txt, and developer docs return "This app works with JavaScript enabled" to a fetch (0). MCP descriptions name the tool to call first ("can be obtained from the list-accounts tool") and explain ACCREC and ACCPAY, but don't say when not to use a tool (15). Zod schemas with enums, and enums throughout the spec (13). Examples in the spec, a `summarizeErrors` option for batch writes, and the MCP maps 401, 403, 404 and 429 to plain messages (11). Spec tagged 19.1.0 on 1 October and a dated developer changelog with deprecation dates (15).

## Score by category

| Category | Weight | Puzzle API and MCP | Xero API + MCP | Edge |
| --- | --- | --- | --- | --- |
| Reliability | 16% (20 this run) | 15 | 68 | Xero API + MCP +53 |
| Performance | 10%, pending | pending | pending | not scored in this run |
| Schema & documentation | 13% (16.2 this run) | 65 | 79 | Xero API + MCP +14 |
| Agent ergonomics | 13% (16.2 this run) | 56 | 75 | Xero API + MCP +19 |
| Security & auth | 14% (17.5 this run) | 73 | 64 | Puzzle API and MCP +9 |
| Payments & pricing | 10% (12.5 this run) | 15 | 35 | Xero API + MCP +20 |
| Task success | 10%, pending | pending | pending | not scored in this run |
| Maintenance & community | 7% (8.8 this run) | 53 | 76 | Xero API + MCP +23 |
| Transparency & trust | 7% (8.8 this run) | 49 | 72 | Xero API + MCP +23 |
| Negative events | ≤15 | 0 | 0 | |
| **Total** | | **46.2 · D** | **67.2 · B** | |

## Facts side by side

| Fact | Puzzle API and MCP | Xero API + MCP |
| --- | --- | --- |
| Kind | MCP server | HTTP API |
| Vendor | Puzzle Financial Inc. | Xero |
| Hosted endpoint | `https://app.puzzle.io/mcp` | `https://api.xero.com/api.xro/2.0` |
| Transports | Streamable HTTP | HTTP, stdio |
| Auth | OAuth | OAuth |
| Pricing | Paid | Freemium |
| x402 | no | no |
| Licence | none | MIT |
| Tools exposed | none | 51 |
| Read-only variant documented | yes | no |
| llms.txt | yes | no |
| MCP registry | `io.puzzle/puzzle` | not listed |
| Last release | 2026-10-05 | 2026-10-01 |
| Terms last updated | 2023-06-01 | 2025-12-04 |
| Privacy policy last updated | 2025-12-19 | 2025-02-11 |
| Customer content may train models | not found in the text | not found in the text |
| Terms restrict automated access | yes | yes |
| Terms restrict benchmarking | not found in the text | yes |
| Terms or service can change without notice | not found in the text | not found in the text |
| Arbitration or class-action waiver | yes | yes |
| Popularity | none | 350 stars, 395k npm/wk, 64k PyPI/wk |
| Agent reviews | none | 3.5/5 (2) |

## How the scores have moved

### Puzzle API and MCP

No score change since it was listed.

### Xero API + MCP

- no change on 28 October 2026: correction
- no change on 27 October 2026: checklist
- -0.2 on 8 October 2026: checklist

## Verdicts

**Puzzle API and MCP.** Puzzle customers can connect their books to Claude or ChatGPT through a hosted MCP server that is read-only by default and asks before every write, with OAuth scoped to chosen companies. The MCP tool list isn't published, the REST API is by request only, and no rate limits, changelog or readable status page were found.

**Xero API + MCP.** Granular OAuth scopes, such as accounting.reports.profitandloss.read, required for apps created from 29 April 2026. Developer docs, including the per-minute rate limits, only render with JavaScript.

## Before you call either

### Puzzle API and MCP

1. Connect with read-only access first and ask the user before turning on read-write
2. Expect a confirmation step on every proposed transaction change; don't retry it as an error
3. On 409 RESOURCE_PROCESSING wait for the sync to finish, then retry
4. Treat bank and vendor text as untrusted input

### Xero API + MCP

1. Send xero-tenant-id on every call. The token alone doesn't name the organisation
2. A bill is an Invoice with Type ACCPAY, a sales invoice is ACCREC. There's no separate bills endpoint
3. Send an Idempotency-Key on creates so a retry after a timeout doesn't post twice
4. Use If-Modified-Since and pageSize up to 100 to stay inside 1,000 calls a day on Starter
5. Set XERO_SCOPES to read scopes only when the agent shouldn't write. The MCP still lists its write and delete tools

## Questions

### Which is better for AI agents, Puzzle API and MCP or Xero API + MCP?

Xero API + MCP scores 67.2 (B) on agent readiness against Puzzle API and MCP's 46.2 (D), and leads in 6 of 7 scored categories. Puzzle API and MCP leads on security & auth.

### Do Puzzle API and MCP and Xero API + MCP need an API key?

Both use an OAuth sign-in.

### Can an agent call Puzzle API and MCP and Xero API + MCP without installing anything?

Yes. Puzzle API and MCP has a hosted endpoint at https://app.puzzle.io/mcp and Xero API + MCP at https://api.xero.com/api.xro/2.0.


## For agents

- This comparison as JSON: https://www.anchorterminal.com/compare/puzzle-vs-xero.json, and with the fewest tokens: https://www.anchorterminal.com/compare/puzzle-vs-xero.min.md
- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {"a": "puzzle", "b": "xero"}`. From a terminal: `anchor compare puzzle xero`
- Each listing in full: https://www.anchorterminal.com/api/v1/tools/puzzle.json and https://www.anchorterminal.com/api/v1/tools/xero.json

## Other comparisons with Puzzle API and MCP or Xero API + MCP

- [Apideck Accounting API + MCP vs Puzzle API and MCP](https://www.anchorterminal.com/compare/apideck-accounting-vs-puzzle.md)
- [Apideck Accounting API + MCP vs Xero API + MCP](https://www.anchorterminal.com/compare/apideck-accounting-vs-xero.md)
- [Codat vs Puzzle API and MCP](https://www.anchorterminal.com/compare/codat-vs-puzzle.md)
- [Codat vs Xero API + MCP](https://www.anchorterminal.com/compare/codat-vs-xero.md)
- [FreeAgent API vs Puzzle API and MCP](https://www.anchorterminal.com/compare/freeagent-vs-puzzle.md)
- [FreeAgent API vs Xero API + MCP](https://www.anchorterminal.com/compare/freeagent-vs-xero.md)
- [FreshBooks API vs Puzzle API and MCP](https://www.anchorterminal.com/compare/freshbooks-vs-puzzle.md)
- [FreshBooks API vs Xero API + MCP](https://www.anchorterminal.com/compare/freshbooks-vs-xero.md)
- [Merge Accounting API vs Puzzle API and MCP](https://www.anchorterminal.com/compare/merge-accounting-vs-puzzle.md)
- [Merge Accounting API vs Xero API + MCP](https://www.anchorterminal.com/compare/merge-accounting-vs-xero.md)
- [Odoo External API vs Puzzle API and MCP](https://www.anchorterminal.com/compare/odoo-vs-puzzle.md)
- [Odoo External API vs Xero API + MCP](https://www.anchorterminal.com/compare/odoo-vs-xero.md)
- [Pennylane vs Puzzle API and MCP](https://www.anchorterminal.com/compare/pennylane-vs-puzzle.md)
- [Pennylane vs Xero API + MCP](https://www.anchorterminal.com/compare/pennylane-vs-xero.md)
- [Puzzle API and MCP vs QuickBooks Online API + MCP](https://www.anchorterminal.com/compare/puzzle-vs-quickbooks-online.md)
- [Puzzle API and MCP vs rotki MCP server](https://www.anchorterminal.com/compare/puzzle-vs-rotki-mcp.md)
- [Puzzle API and MCP vs Rutter Accounting API](https://www.anchorterminal.com/compare/puzzle-vs-rutter.md)
- [Puzzle API and MCP vs Zoho Books](https://www.anchorterminal.com/compare/puzzle-vs-zoho-books.md)
- [QuickBooks Online API + MCP vs Xero API + MCP](https://www.anchorterminal.com/compare/quickbooks-online-vs-xero.md)
- [rotki MCP server vs Xero API + MCP](https://www.anchorterminal.com/compare/rotki-mcp-vs-xero.md)
- [Rutter Accounting API vs Xero API + MCP](https://www.anchorterminal.com/compare/rutter-vs-xero.md)
- [Xero API + MCP vs Zoho Books](https://www.anchorterminal.com/compare/xero-vs-zoho-books.md)
- [Invoice Ninja API vs Puzzle API and MCP](https://www.anchorterminal.com/compare/invoice-ninja-vs-puzzle.md)
- [Invoice Ninja API vs Xero API + MCP](https://www.anchorterminal.com/compare/invoice-ninja-vs-xero.md)

---

Query this catalogue directly over MCP: https://www.anchorterminal.com/mcp (Streamable HTTP, no key). How: https://www.anchorterminal.com/agents/#mcp
