Overview
What is Xero MCP Server?
Xero MCP Server is a Model Context Protocol (MCP) server implementation that provides a bridge between the MCP protocol and Xero’s API, enabling standardized access to Xero’s accounting and business features. It targets developers integrating Xero with MCP‑compatible clients.
How to use Xero MCP Server?
Install Node.js v18+ and run via npx: npx -y @xeroapi/xero-mcp-server@latest. Configure authentication in claude_desktop_config.json using either Xero OAuth2 custom connections (with XERO_CLIENT_ID and XERO_CLIENT_SECRET) or a bearer token (XERO_CLIENT_BEARER_TOKEN). Supported MCP commands include list-accounts, create-invoice, update-contact, and many more listed in the README.
Key features of Xero MCP Server
- Xero OAuth2 authentication with custom connections
- Contact management (list, create, update)
- Chart of Accounts management (list accounts)
- Invoice creation and management
- MCP protocol compliance
Use cases of Xero MCP Server
- Automate invoice creation from a chat interface
- Retrieve and update Xero contacts via natural language
- Generate accounting reports (profit & loss, trial balance) on demand
- Manage payroll timesheets and employee leave records
FAQ from Xero MCP Server
What prerequisites are needed?
Node.js v18 or higher, npm/pnpm, and a Xero developer account with API credentials. A Xero organisation (free trial available) is required for testing.
How are authentication modes different?
Custom connections use a client ID and secret for a specific organisation, ideal for testing and third‑party MCP clients. Bearer token mode supports multiple Xero accounts at runtime and works with PKCE auth flows; the token takes precedence if both are set.
Where can I find API documentation?
Refer to the Xero Public API Documentation, Xero API Explorer, Xero‑Node SDK docs, and the MCP Protocol Specification. Links are provided in the README.
Are there known limitations?
Payroll‑specific queries require a New Zealand or UK organisation region. Custom connections require scopes defined in src/clients/xero-client.ts. The README notes npx path adjustments for Node Version Manager users.