by john-zhang-dev
Provides a Model Context Protocol server enabling clients to interact with Xero accounting software via OAuth2, offering tools for authentication, managing contacts, invoices, bank transactions, and retrieving financial reports.
Enables client applications to communicate with Xero Accounting Software, performing actions such as authenticating via OAuth2, creating and listing contacts, invoices, bank transactions, and retrieving financial reports like balance sheets and journals.
claude_desktop_config.json
:{
"mcpServers": {
"xero-mcp": {
"command": "npx",
"args": ["-y", "xero-mcp@latest"],
"env": {
"XERO_CLIENT_ID": "YOUR_CLIENT_ID",
"XERO_CLIENT_SECRET": "YOUR_CLIENT_SECRET",
"XERO_REDIRECT_URI": "http://localhost:5000/callback"
}
}
}
}
Q: Do I need a real Xero company? A: For testing, use Xero’s Demo Company to avoid exposing real data.
Q: Where does my data go during the OAuth flow? A: After consent, data may pass through the LLM you use; ensure you are comfortable with this handling.
Q: Can the OAuth window close automatically? A: Not in the current version; you must close it manually after granting consent.
Q: Which command is recommended for installation?
A: Use npx -y xero-mcp@latest
as shown in the server configuration.
Q: What environment variables are required?
A: XERO_CLIENT_ID
, XERO_CLIENT_SECRET
, and XERO_REDIRECT_URI
.
This MCP server allows Clients to interact with Xero Accounting Software.
Make sure node and Claude Desktop are installed.
Create an OAuth 2.0 app in Xero to get a CLIENT_ID and CLIENT_SECRET.
http://localhost:5000/callback
Modify claude_desktop_config.json
file
{
"mcpServers": {
"xero-mcp": {
"command": "npx",
"args": ["-y", "xero-mcp@latest"],
"env": {
"XERO_CLIENT_ID": "YOUR_CLIENT_ID",
"XERO_CLIENT_SECRET": "YOUR_CLIENT_SECRET",
"XERO_REDIRECT_URI": "http://localhost:5000/callback"
}
}
}
}
Restart Claude Desktop
When the Client decides to access a Xero tool for the first time, a Xero login page will pop up to ask your consent. Complete the auth flow and manually close the web page (as the Xero page will not auto close in this version)
Privacy alert: after completing the Xero OAuth2 flow, your Xero data may go through the LLM that you use. If you are doing testing you should authorize to your Xero Demo Company.
authenticate
Authenticate with Xero using OAuth2
create_bank_transactions
Creates one or more spent or received money transaction
create_contacts
Creates one or multiple contacts in a Xero organisation
get_balance_sheet
Retrieves report for balancesheet
list_accounts
Retrieves the full chart of accounts
list_bank_transactions
Retrieves any spent or received money transactions
list_contacts
Retrieves all contacts in a Xero organisation
list_invoices
Retrieves sales invoices or purchase bills
list_journals
Retrieves journals
list_organisations
Retrieves Xero organisation details
list_payments
Retrieves payments for invoices and credit notes
list_quotes
Retrieves sales quotes
"Visualize my financial position over the last month"
"Track my spendings over last week"
"Add all transactions from the monthly statement into my revenue account (account code 201) as receive money"
MIT
Please log in to share your review and rating for this MCP.
{ "mcpServers": { "xero-mcp": { "command": "npx", "args": [ "-y", "xero-mcp@latest" ], "env": { "XERO_CLIENT_ID": "<YOUR_CLIENT_ID>", "XERO_CLIENT_SECRET": "<YOUR_CLIENT_SECRET>", "XERO_REDIRECT_URI": "http://localhost:5000/callback" } } } }