xero-mcp-server vs @xenarch/agent-mcp
Side-by-side comparison to help you choose.
| Feature | xero-mcp-server | @xenarch/agent-mcp |
|---|---|---|
| Type | MCP Server | MCP Server |
| UnfragileRank | 32/100 | 30/100 |
| Adoption | 0 | 0 |
| Quality | 0 | 0 |
| Ecosystem | 0 | 1 |
| Match Graph | 0 | 0 |
| Pricing | Free | Free |
| Capabilities | 11 decomposed | 12 decomposed |
| Times Matched | 0 | 0 |
Implements a Model Context Protocol (MCP) server that translates MCP tool calls into Xero REST API requests and formats responses back to MCP-compliant JSON. Uses stdio transport for bidirectional communication with MCP clients (Claude Desktop, etc.), abstracting away Xero's REST API complexity behind a standardized protocol interface. The server instantiates core components during initialization and registers 49+ tools before accepting client connections.
Unique: Implements a five-layer architecture (protocol → tool management → business logic → API integration) with strategy pattern authentication that selects between BearerTokenXeroClient and CustomConnectionsXeroClient based on environment variables, enabling both multi-tenant and single-org deployments from the same codebase
vs alternatives: Provides native MCP protocol support out-of-the-box (vs REST wrappers), enabling seamless integration with Claude Desktop and other MCP clients without custom adapter code
Implements a pluggable authentication system using the strategy pattern, selecting between two client implementations (BearerTokenXeroClient for OAuth tokens, CustomConnectionsXeroClient for client credentials) based on environment variables. Bearer token takes precedence when both credential types are present. The MCPXeroClient abstract base class defines the interface both implementations satisfy, allowing runtime credential selection without code changes.
Unique: Uses abstract base class MCPXeroClient with concrete implementations for each auth strategy, enabling compile-time type safety while maintaining runtime flexibility — bearer token precedence is baked into initialization logic rather than conditional checks throughout the codebase
vs alternatives: Cleaner than conditional auth checks scattered across handlers; more flexible than hard-coded single auth method; supports both OAuth (multi-tenant) and client credentials (development) without separate deployments
Manages organization context (tenant ID) throughout the request lifecycle, ensuring that all API calls are scoped to the correct Xero organization. The server extracts organization ID from authentication context (OAuth token or client credentials) and passes it to all tool handlers. This prevents cross-tenant data leakage and ensures that each request operates on the correct organization's data.
Unique: Extracts organization ID from authentication context at server initialization and threads it through all tool handlers via dependency injection, preventing accidental cross-tenant queries that would be easy to miss with manual parameter passing
vs alternatives: More secure than passing organization ID as tool parameter (cannot be overridden by client); more efficient than querying organization ID on each request; prevents entire classes of multi-tenant bugs
Provides 36+ tools for creating, reading, updating, and deleting core accounting entities through the Xero API. Each entity type (Invoice, Contact, Quote, CreditNote, BankTransaction, ManualJournal, Item, TrackingCategory) has dedicated handler functions that map MCP tool parameters to Xero REST endpoints, handle validation, and format responses. The handler layer abstracts entity-specific business logic (e.g., invoice line items, contact addresses) from the protocol layer.
Unique: Separates entity handlers into dedicated modules (src/tools/create, src/tools/update, src/tools/list, src/tools/delete, src/tools/get) with consistent parameter validation and error handling patterns, enabling easy addition of new entity types without modifying core protocol logic
vs alternatives: More granular than generic REST proxy (each entity has optimized parameters and validation); more maintainable than monolithic handler (entity-specific logic isolated); supports Xero-specific features like tracking categories and line item arrays that generic CRUD tools miss
Exposes 5 financial report tools that retrieve pre-calculated accounting reports from Xero's reporting engine. Reports are fetched via dedicated API endpoints and formatted into structured JSON with line items, subtotals, and period comparisons. The server handles date range filtering, currency conversion, and report-specific parameters (e.g., tracking category breakdown for P&L).
Unique: Leverages Xero's server-side report calculation engine rather than computing reports client-side, eliminating the need to fetch and aggregate raw transactions — reports are pre-calculated and formatted by Xero's reporting infrastructure
vs alternatives: Faster than transaction-level aggregation (no need to fetch 1000+ transactions); more accurate than client-side calculations (uses Xero's official GL); supports Xero-specific features like tracking category breakdowns that generic accounting tools don't expose
Provides 8 tools for managing payroll in New Zealand and United Kingdom regions only, covering employee master data, timesheet entry, and leave accrual/usage. Tools interact with Xero Payroll API endpoints that are region-specific and require payroll-enabled organizations. The server validates region context before executing payroll operations and returns region-specific error messages if payroll is not enabled.
Unique: Implements region-aware payroll operations with compile-time region validation, preventing execution of payroll tools in unsupported regions and returning clear error messages — payroll API endpoints are region-specific and require different authentication scopes than accounting API
vs alternatives: Tighter integration with Xero Payroll than generic HR APIs (understands NZ annual leave, UK statutory sick leave rules); prevents cross-region misconfiguration that would fail silently with generic REST clients
Generates clickable deep links to specific Xero UI pages (invoice detail, contact profile, report view) that users can follow to view or edit entities in the Xero web app. Links are constructed using entity IDs and organization context, enabling seamless handoff from AI agent to human user for manual review or editing. Helper utility functions format links based on entity type and Xero region.
Unique: Encapsulates Xero URL structure and region-specific routing in helper utilities, preventing hardcoded URLs scattered across handlers — supports multiple Xero regions (AU, NZ, UK, US) with correct domain and path formatting
vs alternatives: More maintainable than embedding URLs in handler logic; supports region-aware routing that generic URL builders miss; enables audit trails showing exactly which Xero UI page was linked for each AI action
Implements a centralized error handling layer that catches Xero API errors, maps them to human-readable messages, and returns structured error responses to MCP clients. Error handler translates Xero-specific error codes (e.g., 'INVALID_CONTACT_STATUS', 'DUPLICATE_INVOICE_NUMBER') into actionable messages with remediation suggestions. Errors are logged with full context (request parameters, API response) for debugging.
Unique: Maps Xero-specific error codes to remediation suggestions (e.g., 'INVALID_CONTACT_STATUS' → 'Contact must be in ACTIVE status; use update_contact to change status first'), enabling agents to self-correct without human intervention
vs alternatives: More actionable than raw API errors; better than generic HTTP status codes (distinguishes between validation errors, permission errors, and system errors); supports Xero-specific error semantics that generic error handlers miss
+3 more capabilities
Executes HTTP requests to APIs protected by HTTP 402 Payment Required status codes, automatically detecting payment requirements and routing requests through the MCP server's payment settlement layer. The server intercepts 402 responses, extracts payment metadata (amount, recipient, token), and initiates on-chain USDC micropayments on Base L2 before retrying the original request with proof-of-payment headers. This enables seamless agent-to-API interactions without manual payment handling or custodial intermediaries.
Unique: Implements transparent HTTP 402 payment interception at the MCP protocol layer, allowing any MCP-compatible agent (Claude, LangChain, CrewAI) to access paid APIs without SDK changes or wallet management code. Uses Base L2 for sub-cent settlement costs and non-custodial architecture where agents control their own signing keys rather than delegating to a payment processor.
vs alternatives: Unlike Cloudflare Pay-Per-Crawl (proprietary, Cloudflare-only) or Tollbit (requires API provider integration), works on any host and settles directly on-chain with zero platform fees, giving agents true ownership of payment flows.
Manages cryptographic signing and submission of USDC transfers to Base L2 blockchain without holding agent private keys or funds in escrow. The server accepts payment requests with recipient address and amount, constructs ERC-20 transfer transactions, signs them using the agent's provided key material (or external signer), and broadcasts to Base L2 RPC. Settlement completes on-chain with full transparency and auditability, with no platform-controlled custody or fee extraction.
Unique: Implements non-custodial payment settlement where the MCP server never holds or controls agent funds — only constructs and signs transactions using agent-provided key material. Uses Base L2 instead of mainnet Ethereum to achieve sub-cent transaction costs (~$0.001 per transfer) while maintaining full on-chain settlement and auditability.
Eliminates counterparty risk vs custodial payment processors (Stripe, PayPal) by settling directly on-chain; cheaper than mainnet Ethereum by 100-1000x due to Base L2 rollup architecture; more transparent than traditional APIs with hidden fees.
xero-mcp-server scores higher at 32/100 vs @xenarch/agent-mcp at 30/100. xero-mcp-server leads on adoption and quality, while @xenarch/agent-mcp is stronger on ecosystem.
Need something different?
Search the match graph →© 2026 Unfragile. Stronger through disorder.
Maintains immutable transaction history of all USDC payments and API calls, logging transaction hash, timestamp, amount, recipient, and HTTP request/response details. The server stores logs in a queryable format (JSON, database) accessible through MCP tools, enabling agents and operators to audit spending, debug failed payments, and reconstruct payment flows. Logs include both on-chain transaction data and off-chain HTTP metadata.
Unique: Maintains unified transaction history combining on-chain USDC transfers with off-chain HTTP metadata, enabling full-stack audit trails. Logs are queryable through MCP tools, allowing agents to access their own transaction history without external tools.
vs alternatives: More comprehensive than blockchain-only transaction history by including HTTP request/response details; more accessible than requiring manual blockchain queries.
Provides centralized configuration for payment parameters (USDC amount, recipient address, spending limits), API endpoint mappings, and RPC provider settings. Configuration is loaded from environment variables, JSON files, or environment-specific profiles, allowing operators to adjust payment rules without restarting the MCP server. Supports hot-reloading of configuration changes for zero-downtime updates.
Unique: Centralizes payment and RPC configuration in a single source of truth with support for environment-specific profiles and hot-reloading. Allows operators to adjust payment rules without code changes or server restarts.
vs alternatives: More flexible than hardcoded payment parameters; simpler than requiring agents to manage configuration themselves.
Exposes HTTP 402 payment handling and USDC settlement as MCP tools that Claude, Cursor, LangChain, and CrewAI can discover and invoke through the standard Model Context Protocol. The server implements MCP tool schema definitions for payment-gated requests and settlement operations, allowing agents to treat paid API access as first-class capabilities alongside native tools. Integration requires no agent-side SDK changes — agents interact via standard MCP tool-calling semantics.
Unique: Implements MCP as the primary integration surface, allowing agents to access paid APIs through standard tool-calling semantics without SDK-specific code. Supports multiple agent frameworks (Claude, Cursor, LangChain, CrewAI) through a single MCP server, reducing integration surface area and enabling cross-framework agent composition.
vs alternatives: More flexible than framework-specific SDKs because MCP is protocol-agnostic; agents can switch frameworks without rewriting payment logic. Simpler than building custom API wrappers for each agent framework.
Intercepts HTTP responses with 402 Payment Required status codes and extracts payment metadata from response headers (x402-amount, x402-recipient, x402-token) to determine payment requirements. The server parses metadata, validates format and values, and automatically initiates payment settlement without requiring the agent to manually inspect headers or construct payment requests. This enables transparent payment handling where agents see paid API access as a seamless extension of normal HTTP requests.
Unique: Implements automatic 402 detection at the HTTP layer with strict metadata parsing, allowing agents to treat payment-gated APIs identically to free APIs. Uses header-based metadata (x402-*) rather than response body parsing, enabling payment requirements to be communicated without changing API response schemas.
vs alternatives: More transparent than requiring agents to check response status codes manually; more flexible than hardcoding payment amounts per API endpoint.
Manages payment state and context across multiple agent frameworks (Claude, LangChain, CrewAI) executing in the same workflow, ensuring consistent wallet management, balance tracking, and transaction history. The server maintains a unified payment ledger accessible to all agents, preventing double-spending and enabling cross-agent payment coordination. Agents can query remaining balance, transaction history, and payment status through MCP tools without framework-specific code.
Unique: Implements a unified payment ledger that abstracts away framework differences, allowing Claude, LangChain, and CrewAI agents to coordinate on shared payment budgets without framework-specific integration code. Maintains consistent state across heterogeneous agent types through a single MCP interface.
vs alternatives: Simpler than building separate payment systems for each framework; enables true multi-agent coordination vs isolated per-framework payment handling.
Generates cryptographic proof-of-payment headers (e.g., transaction hash, signature) after successful USDC settlement and attaches them to retry requests, allowing target APIs to verify that payment was completed. The server constructs headers containing transaction hash, block number, and optional signature proof, which APIs can validate against Base L2 blockchain state. This enables APIs to trust that payment occurred without querying the blockchain themselves.
Unique: Generates lightweight proof-of-payment headers that APIs can validate without querying the blockchain, reducing latency for payment verification. Uses transaction hash and block number as proof, with optional cryptographic signatures for stronger guarantees.
vs alternatives: Faster than requiring APIs to query blockchain for every payment; more trustworthy than relying on MCP server claims alone if signatures are included.
+4 more capabilities