MCP servers for the Australian business stack: Xero, Shopify, Gmail and more
Which MCP servers actually work for Australian small business, Xero, Shopify, Gmail, Notion, Slack, with config snippets and the gotchas we hit.
MCP (Model Context Protocol) gives Claude Code typed, structured access to external tools. For Australian small business, the four MCP servers that earn their keep day one are Xero, Shopify, Gmail and Notion. Configure them in .mcp.json (project-scoped) or ~/.claude/mcp.json (global). Auth is OAuth or token; always start read-only.
MCP is the thing that takes Claude Code from “smart code editor” to “actually runs my business.” Once Claude can read your Xero invoices, write to your Shopify product catalog, summarise your Gmail inbox and update your Notion docs, you stop manually shuttling data between tabs.
What MCP actually is
Model Context Protocol is Anthropic’s open standard for AI tool integrations. An MCP server exposes a service (Xero, GitHub, your database) as a set of typed tools Claude can call. Claude Code (and Claude Desktop, Cursor, Continue, etc) speak MCP natively.
You don’t have to write servers, most exist already. You just configure which ones to connect.
Configuring MCP in Claude Code
The config file is .mcp.json in your project root (or ~/.claude/mcp.json for global). Here’s the shape:
{
"mcpServers": {
"xero": {
"command": "npx",
"args": ["-y", "@xero/mcp-server@latest"],
"env": {
"XERO_CLIENT_ID": "your-id",
"XERO_CLIENT_SECRET": "your-secret",
"XERO_TENANT_ID": "your-tenant"
}
}
}
}
Each server is a process Claude Code spawns. The command runs locally on your machine and talks to the cloud service on your behalf.
Verify it loaded with /mcp inside a Claude session. You’ll see the server status and the tools it exposes.
The four MCP servers worth setting up first
Xero
Xero shipped a hosted MCP endpoint early 2026. Setup:
- In Xero, go to Settings → Connected apps → API explorer and create a custom connection.
- Grant scopes, start with
accounting.reports.read+accounting.transactions.read. Add write scopes only when you trust the workflow. - Save the client ID, secret and tenant ID into
.mcp.jsonas above.
What Claude can do once it’s wired up: pull aged receivables reports, summarise this month’s expense categories, flag invoices missing payment due dates, draft invoice descriptions from a project brief. All without you logging in.
Gotcha: Xero tokens expire every 30 minutes. The MCP server refreshes automatically as long as you have offline_access in your scope list. Make sure that scope is granted.
Shopify
"shopify": {
"command": "npx",
"args": ["-y", "@shopify/mcp-server-storefront"],
"env": {
"SHOPIFY_STORE_DOMAIN": "yourstore.myshopify.com",
"SHOPIFY_ACCESS_TOKEN": "shpat_..."
}
}
Generate the token from your Shopify admin → Apps → “Develop apps” → create a custom app. Scope to read_products, read_orders, read_inventory for starters.
Useful prompts once connected: “Find all products with no description longer than 50 words.” “List orders from the last 7 days where shipping address is in Australia but billing isn’t.” “Show me which collections have fewer than 3 products.”
Gotcha: Shopify rate limits API calls aggressively. If you ask Claude to “describe every product,” it’ll churn through your rate limit. Always scope queries to a specific subset.
Gmail
"gmail": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-gmail"],
"env": {
"GOOGLE_CLIENT_ID": "...",
"GOOGLE_CLIENT_SECRET": "..."
}
}
First-run, this triggers a browser OAuth flow. Approve at your Google account.
Read-only Gmail access from Claude is genuinely life-changing for ops. “Pull every email from a major retailer in the last 90 days and summarise their concerns.” “Find every audit-form lead I haven’t replied to.” “Draft replies to the three oldest in my inbox.”
Gotcha: Google’s OAuth flow for Gmail considers anything beyond gmail.readonly a “sensitive” scope, which means your app needs Google verification before more than 100 users can grant it. For personal/team use you can skip verification by adding test users; for a public agent you have to verify.
Notion
"notion": {
"command": "npx",
"args": ["-y", "@notionhq/notion-mcp-server"],
"env": {
"NOTION_TOKEN": "secret_..."
}
}
Get the token by creating an integration at notion.so/my-integrations, then sharing the relevant Notion pages with the integration.
Claude can now read and write your Notion. “Update the project status page with this week’s progress.” “Find every page tagged ‘client-active’ and pull the action items.” “Create a meeting notes page using the template.”
Gotcha: Notion requires you to explicitly share every page or database with the integration. Pages it can’t see don’t show up. The “share” step is easy to forget, if Claude says “no Notion pages found,” start there.
Other MCP servers worth knowing
- Slack, for posting summaries, reading channel history
- GitHub, for issues, PRs, releases (Claude Code already has good git/gh support without this, but the MCP version is cleaner for non-git work)
- Postgres, for direct database queries
- Playwright, for browser automation
- Filesystem (built-in), Claude Code’s native filesystem access; no MCP needed
- Linear, for ticket workflows
The official MCP catalogue is at modelcontextprotocol.io/servers and adds a new server most weeks.
Permissions strategy: start read-only
Every single MCP server here can be scoped read-only. Do that first. Spend a week or two letting Claude analyse your data without being able to change it. You’ll learn:
- Which queries Claude actually fires (helps you scope writes later)
- Where Claude misinterprets your schema (corrects via CLAUDE.md notes)
- Which workflows you actually want automated vs supervised
Then promote one workflow at a time to write-scoped. Never grant blanket write to every MCP server up front, even if you trust the agent, the audit trail when something goes wrong is exponentially harder to follow.
Australian-specific gotchas
- Xero is the only MCP server with first-class AU GST handling. Be aware that “tax type” semantics differ between AU, NZ and UK Xero, Claude generally gets this right but always double-check before posting a journal.
- Gmail timestamps are UTC; Claude needs an explicit “I’m in Melbourne, AEST/AEDT” reminder in your CLAUDE.md if you’re asking for date-based queries. Otherwise it can be off by 8-10 hours.
- Shopify AUD pricing is straightforward when your store currency is AUD; if you sell in multiple currencies, ask Claude to always quote the AUD column.
What to build first
Wire up Xero + Gmail and ask Claude to draft your monthly client-progress reports from email + invoice data. That single workflow saves us about 3 hours a month at DotVA. It’s also the cheapest way to see whether MCP is going to be useful to you specifically, if it doesn’t deliver, you’ve burned a couple of hours of setup with no further cost.
Common questions
Is there an official Xero MCP server?
Do I need to be a developer to set up MCP?
What's the difference between an MCP server and a Claude Code plugin?
Want this built for your business?
Book a free 30-minute AI audit. We'll map your business and show you exactly which systems we'd build first. No pitch deck, no scoping fee.
Book my free AI audit