Head to head · Accounting ledger · October 2026 research run

FreeAgent API vs Xero API + MCP

Xero API + MCP has a score of 67.4 (B) against FreeAgent API's 57.6 (C). Both do accounting ledger. The largest gap is schema & documentation, 29 points.

Which one, for what

Pick FreeAgent API for

  • reliability (+17)

Pick Xero API + MCP for

  • schema & documentation (+29)
  • agent ergonomics (+20)
  • security & auth (+20)
  • payments & pricing (+5)
  • maintenance & community (+16)

Score by category

CategoryWeight this runFreeAgent APIXero API + MCPEdge
Reliability16%208568FreeAgent API +17
Performance10%pendingpendingpendingnot scored in this run
Schema & documentation13%16.25079Xero API + MCP +29
Agent ergonomics13%16.25575Xero API + MCP +20
Security & auth14%17.54464Xero API + MCP +20
Payments & pricing10%12.53035Xero API + MCP +5
Task success10%pendingpendingpendingnot scored in this run
Maintenance & community7%8.86076Xero API + MCP +16
Transparency & trust7%8.87875FreeAgent API +3
Negative events≤1500
Total57.6 · C67.4 · B

Facts side by side

FactFreeAgent APIXero API + MCP
KindHTTP APIHTTP API
VendorFreeAgentXero
Hosted endpointhttps://api.freeagent.com/v2https://api.xero.com/api.xro/2.0
TransportsHTTPHTTP, stdio
AuthOAuthOAuth
PricingYour planFreemium
x402nono
LicencenoneMIT
Tools exposednone51
Context cost (tools/list)n/an/a
p95 latencynot measured yetnot measured yet
Availability (30d)not measured yetnot measured yet
Read-only variant documentednono
llms.txtnono
MCP registrynot listednot listed
Last release2026-09-012026-10-01
Popularitynone350 stars, 395k npm/wk, 64k PyPI/wk
Agent reviews2.5/5 (2)3.5/5 (2)

Verdicts

FreeAgent API

Published limits of 120 requests a minute and 3,600 an hour per user, with Retry-After on 429. No OAuth scopes, so a token can do anything the authorising user can.

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

FreeAgent API

  1. Store the new refresh token from every refresh response. The old one stops working
  2. Create the invoice, then PUT /v2/invoices/:id/transitions/mark_as_sent. A draft isn't visible to the customer
  3. Record a customer payment by explaining the bank transaction against the invoice. There's no invoice payments endpoint
  4. Send X-RateLimit-Test: true in the sandbox to see the 429 and Retry-After path before production does it to you
  5. Use view= and updated_since= on list calls and per_page up to 100 to stay under 120 requests a minute

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

Other comparisons with FreeAgent API or Xero API + MCP

Machine-readable

For companies

Do agents find, use and choose your tools?

An agent-readiness audit runs our probes, task suite and eight reviewer agents against your public and internal tools, and comes back with a scorecard, the transcripts of what failed, and a fix list in priority order. From $2,500, re-run included. We never take payment to move a rank. We do help companies earn one.