Skip the install. Get this working in under 2 minutes.
Start a free trial on cloud.anythingmcp.com, add the Xero in one click, then point your AI client (Claude, ChatGPT, Copilot or Cursor) at the generated MCP endpoint. No Docker, no git clone, zero engineering experience required.
Summary
Let your AI read your Xero books: sales invoices and supplier bills, customer and supplier contacts, the chart of accounts, the Trial Balance and the Profit and Loss with period comparisons, on an accrual or cash basis. Read-only, with your own Xero OAuth2 app and a sign-in through Authorize with Provider.
Try asking
Example prompts for Xero
Click any prompt to copy it. Paste into Claude, ChatGPT, Cursor, Gemini, Copilot or OpenClaw to run it against this connector.
Claude is AI and can make mistakes. Please double-check responses.
💡 No install? Use cloud.anythingmcp.com directly. Sign in, click Connectors → Xero, paste your credentials, mint an MCP API key and you're done. No Docker, no
git clone, no local server.
Xero + Microsoft Copilot
Let your AI read your Xero books: sales invoices and supplier bills, customer and supplier contacts, the chart of accounts, the Trial Balance and the Profit and Loss with period comparisons, on an accrual or cash basis. Read-only, with your own Xero OAuth2 app and a sign-in through Authorize with Provider.
Prerequisites
See the full setup instructions baked into the connector (visible in the in-app store when you select the connector). The required environment variables for this connector are:
XERO_CLIENT_ID, XERO_CLIENT_SECRET
Step 1 — Get credentials
- Sign in at developer.xero.com/app/manage (My Apps) and create an OAuth2 app of type Web app (authorization code flow).
- As redirect URI, enter
https://cloud.anythingmcp.com/api/mcp-oauth/callbackfor AnythingMCP Cloud, or<your AnythingMCP URL>/api/mcp-oauth/callbackif you host AnythingMCP yourself. It must match exactly. - On the app's Configuration page, copy the Client ID into
XERO_CLIENT_ID, then generate a client secret and paste it intoXERO_CLIENT_SECRET. - Leave
XERO_TENANT_IDandXERO_REFRESH_TOKENempty and install the connector. On the connector page, click Authorize with Provider, sign in to Xero and connect the organisation the AI should read. - Run
xero_list_connections. Pick the entry with the righttenantNameand thetenantTypeORGANISATION, and copy itstenantIdintoXERO_TENANT_ID. Don't use the connection'sidorauthEventId: those are different values. UntilXERO_TENANT_IDis set, the other tools stop before calling Xero and name the missing variable. - Run
xero_get_organisationand check the organisation name before the AI reads any figures. One connector reads one organisation; install it again for a second one.
Staying signed in: access tokens last 30 minutes and are renewed automatically, and AnythingMCP stores every new refresh token Xero hands out. A refresh token that is not renewed for 60 days expires; then click Authorize with Provider again. Fill in XERO_REFRESH_TOKEN only if you already hold a current refresh token for the same app with the same read-only consent, and don't share a refresh token with another integration: Xero replaces it on every renewal, so one of the two would be left with an invalid one.
Read-only by design: all ten tools only read (GET); none of them creates, changes or deletes accounting data. The connector asks for the read-only scopes openid offline_access accounting.invoices.read accounting.contacts.read accounting.settings.read accounting.reports.trialbalance.read accounting.reports.profitandloss.read. Xero adds consent rather than replacing it: if this app was authorised with write scopes before, the token keeps them. To narrow it down, revoke the old connection in Xero and click Authorize with Provider again. The AI also sees only what the Xero user who signs in may see; the reports need a user with access to reports.
Invoices, contacts and accounts: xero_list_invoices returns sales invoices (ACCREC) and supplier bills (ACCPAY) together. Filter with where, for example Type=="ACCREC", and sort with order, for example InvoiceNumber ASC. Invoices and contacts come in pages of up to 100; the AI keeps paging until a page comes back empty or short. xero_list_contacts searches names, contact numbers and email addresses and includes archived contacts on request. The chart of accounts comes in one piece. xero_get_invoice, xero_get_contact and xero_get_account need the UUID from the matching list, not an invoice number, contact name or account code.
Reports: xero_get_trial_balance takes one date, xero_get_profit_and_loss takes fromDate and toDate (format YYYY-MM-DD). Both run on an accrual basis unless you ask for the cash basis (paymentsOnly). The Profit and Loss can compare 1 to 12 periods by month, quarter or year (periods and timeframe).
Common errors: 401 or 403 means missing consent, an expired authorisation, a Xero user without the needed permissions, or an organisation that is not connected to this app: check XERO_TENANT_ID against xero_list_connections, then click Authorize with Provider again. 429 means Xero's rate limit for the organisation was hit: the AI waits the seconds given in Retry-After before trying again, and the X-Rate-Limit-Problem header says which limit it was. The limits depend on your app's tier, see Xero's API limits.
The connector does not create, change or delete anything in Xero, and it does not read bank transactions, the Balance Sheet, payroll, files or attachments.
Step 2 — Install the adapter
curl -fsSL https://raw.githubusercontent.com/HelpCode-ai/anythingmcp/main/docker-compose.quickstart.yml -o docker-compose.yml
printf 'JWT_SECRET=%s\nENCRYPTION_KEY=%s\n' "$(openssl rand -hex 32)" "$(openssl rand -hex 32)" > .env
docker compose up -d
Step 3 — Add the connector in Microsoft Copilot
Your server URL: in AnythingMCP, open MCP Servers → the server this connector is on, and copy its URL (
https://cloud.anythingmcp.com/mcp/…). Use it wherever this guide showsYOUR_SERVER_ID.
Microsoft Copilot uses MCP servers through agents built in Copilot Studio: you add AnythingMCP to an agent as a tool, then publish the agent to Microsoft 365 Copilot and Teams. Copilot Studio connects from Microsoft's cloud over Streamable HTTP, which AnythingMCP supports.
- In Copilot Studio, open your agent (or create one), go to Tools and choose Add a tool → New tool → Model Context Protocol.
- Enter a Server name (for example
AnythingMCP), a Server description that says what the connector does, and the Server URLhttps://cloud.anythingmcp.com/mcp/YOUR_SERVER_ID. Copilot Studio uses the description to decide when to call the server. - Under authentication, choose API key, set Type to Header and the header name to
X-API-Key, then select Create. - In Add tool, choose Create a new connection, paste an MCP API key from AnythingMCP (MCP Servers → your server → API keys) and select Add to agent.
- Try it in the agent's Test pane: ask for something that needs the
Xerotools. - Select Publish, then Channels → Microsoft 365 and Microsoft Teams, keep Make agent available in Microsoft Copilot selected and choose Add channel. See agent in Teams installs it for you; in Microsoft 365 Copilot, type @ and pick the agent.
Prefer per-user sign-in? Choose OAuth 2.0 → Dynamic discovery instead of an API key: each user then signs in to AnythingMCP the first time the agent calls it.
Self-hosting? Use your instance's public HTTPS address instead of https://cloud.anythingmcp.com. Copilot Studio connects from Microsoft's cloud, so localhost does not work.
Available tools
| Tool | What it does |
|---|---|
xero_list_connections | List the Xero organisations this authorisation can read, with tenantId, tenantName and tenantType |
xero_get_organisation | Read the configured organisation's name, base currency and settings |
xero_list_invoices | List sales invoices and purchase bills with totals, status and line items, one page at a time |
xero_get_invoice | Read one invoice or bill with its line items, amounts and payment details |
xero_list_contacts | List customer and supplier contacts one page at a time |
xero_get_contact | Read one customer or supplier contact, including its addresses, contact people and balances |
xero_list_accounts | Read the chart of accounts with account codes, names, types, tax types and status |
xero_get_account | Read one account's code, name, type, tax type and status |
xero_get_trial_balance | Read the Trial Balance as at a specified date, including debit, credit and year-to-date values |
xero_get_profit_and_loss | Read income, expenses and profit for a date range |
Example prompts
- "Which sales invoices are still unpaid, and how much does each customer owe us in total?"
- "Show me the Profit and Loss for last quarter compared with the three quarters before."
- "Which supplier bills fall due in the next 14 days, and for what amounts?"
- "Find Acme Ltd in our contacts and show me their email address, billing address and outstanding balance."
FAQ
Which Copilot is this for? Microsoft 365 Copilot at work, through agents built in Copilot Studio. The Microsoft Copilot app for personal accounts has no option to add your own MCP server.
What do I need? A work account with access to Copilot Studio (a license or a trial) to build the agent. People who use it in Microsoft 365 Copilot or Teams need access to the agent: share it with them, or ask an admin to publish it to the organization. If your organization applies data policies to Power Platform connectors, they cover MCP servers too.
The agent doesn't call the tools. Check that the header name is exactly X-API-Key and that the key belongs to the same MCP server as the URL, and make the server description specific: Copilot Studio uses it to decide when to call the server. Publish the agent again after each change; in an open chat, type "start over" to get the new version.
Next steps
- Connector landing page
- Connect to Claude
- Connect to ChatGPT
- Connect to Cursor
- Connect to Gemini
- Connect to Meta Muse
Was this guide helpful?