Head to head · Accounting ledgers · October 2026 research run
Puzzle API and MCP vs 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. Both do accounting ledgers.
Best accounting and invoicing APIs for AI agents · All 90 accounting comparisons
Which one, for what
Best 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
Best 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
Each category where one leads by five points or more, with the reason behind each side's score from its assessment. The numbers are in the table below; this is what they stand for.
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 this run | Puzzle API and MCP | Xero API + MCP | Edge |
|---|---|---|---|---|
| Reliability | 16%20 | 15 | 68 | Xero API + MCP +53 |
| Performance | 10%pending | pending | pending | not scored in this run |
| Schema & documentation | 13%16.2 | 65 | 79 | Xero API + MCP +14 |
| Agent ergonomics | 13%16.2 | 56 | 75 | Xero API + MCP +19 |
| Security & auth | 14%17.5 | 73 | 64 | Puzzle API and MCP +9 |
| Payments & pricing | 10%12.5 | 15 | 35 | Xero API + MCP +20 |
| Task success | 10%pending | pending | pending | not scored in this run |
| Maintenance & community | 7%8.8 | 53 | 76 | Xero API + MCP +23 |
| Transparency & trust | 7%8.8 | 49 | 72 | Xero API + MCP +23 |
| Negative events | ≤15 | 0 | 0 | |
| Total | D 46.2/100 | B 67.2/100 |
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.
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
- Connect with read-only access first and ask the user before turning on read-write
- Expect a confirmation step on every proposed transaction change; don't retry it as an error
- On 409 RESOURCE_PROCESSING wait for the sync to finish, then retry
- Treat bank and vendor text as untrusted input
Xero API + MCP
- Send xero-tenant-id on every call. The token alone doesn't name the organisation
- A bill is an Invoice with Type ACCPAY, a sales invoice is ACCREC. There's no separate bills endpoint
- Send an Idempotency-Key on creates so a retry after a timeout doesn't post twice
- Use If-Modified-Since and pageSize up to 100 to stay inside 1,000 calls a day on Starter
- 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.
Other comparisons with Puzzle API and MCP or Xero API + MCP
- Apideck Accounting API + MCP vs Puzzle API and MCP
- Apideck Accounting API + MCP vs Xero API + MCP
- Codat vs Puzzle API and MCP
- Codat vs Xero API + MCP
- FreeAgent API vs Puzzle API and MCP
- FreeAgent API vs Xero API + MCP
- FreshBooks API vs Puzzle API and MCP
- FreshBooks API vs Xero API + MCP
- Merge Accounting API vs Puzzle API and MCP
- Merge Accounting API vs Xero API + MCP
- Odoo External API vs Puzzle API and MCP
- Odoo External API vs Xero API + MCP
- Pennylane vs Puzzle API and MCP
- Pennylane vs Xero API + MCP
- Puzzle API and MCP vs QuickBooks Online API + MCP
- Puzzle API and MCP vs rotki MCP server
- Puzzle API and MCP vs Rutter Accounting API
- Puzzle API and MCP vs Zoho Books
- QuickBooks Online API + MCP vs Xero API + MCP
- rotki MCP server vs Xero API + MCP
- Rutter Accounting API vs Xero API + MCP
- Xero API + MCP vs Zoho Books
- Invoice Ninja API vs Puzzle API and MCP
- Invoice Ninja API vs Xero API + MCP
Machine-readable
- This page as Markdown
/compare/puzzle-vs-xero.md· slim.min.md· JSON.json(or sendAccept: text/markdown) - Each listing in full
/api/v1/tools/puzzle.json·/api/v1/tools/xero.json - From a terminal
anchor compare puzzle xero(the CLI) - Over MCP
compare_tools {"a": "puzzle", "b": "xero"}at/mcp, no key