Xero Integration
Manage Xero organisations, accounts, contacts, invoices, and bank transactions
The Xero integration provides access to manage Xero organisations, accounts, contacts, invoices, and bank transactions through the Integrate MCP server.
Installation
The Xero integration is included with the SDK:
import { xeroIntegration } from "integrate-sdk/server";Setup
1. Create a Xero OAuth App
- Go to Login Developer Portal
- Create a new OAuth application
- Configure your redirect URI
- Note your Client ID and Client Secret
2. Configure the Integration on Your Server
Add the Xero integration to your server configuration. The integration automatically reads XERO_CLIENT_ID and XERO_CLIENT_SECRET from your environment variables:
import { createMCPServer, xeroIntegration } from "integrate-sdk/server";
export const { client: serverClient } = createMCPServer({
apiKey: process.env.INTEGRATE_API_KEY,
integrations: [
xeroIntegration({
scopes: ["openid", "profile", "email", "offline_access", "accounting.settings", "accounting.transactions", "accounting.contacts", "accounting.attachments"], // Optional
}),
],
});You can override the environment variables by passing explicit values:
xeroIntegration({
clientId: process.env.CUSTOM_XERO_ID,
clientSecret: process.env.CUSTOM_XERO_SECRET,
scopes: ["openid", "profile", "email", "offline_access", "accounting.settings", "accounting.transactions", "accounting.contacts", "accounting.attachments"], // Optional
});3. Client-Side Usage
The default client automatically includes all integrations. You can use it directly:
import { client } from "integrate-sdk";
await client.authorize("xero");
const result = await client.xero.listConnections({});
console.log(result);If you're using a custom client, add the integration to the integrations array:
import { createMCPClient, xeroIntegration } from "integrate-sdk";
const customClient = createMCPClient({
integrations: [xeroIntegration()],
});Configuration Options
Prop
Type
Default Scopes
These defaults are applied unless you override scopes in the integration config:
openidprofileemailoffline_accessaccounting.settingsaccounting.transactionsaccounting.contactsaccounting.attachments
Tools
xero_list_connections
List connections
No parameters.
xero_get_organisation
Get organisation
Prop
Type
xero_list_accounts
List accounts
Prop
Type
xero_list_contacts
List contacts
Prop
Type
xero_get_contact
Get contact
Prop
Type
xero_create_contact
Create contact
Prop
Type
xero_list_invoices
List invoices
Prop
Type
xero_get_invoice
Get invoice
Prop
Type
xero_create_invoice
Create invoice
Prop
Type
xero_list_bank_transactions
List bank transactions
Prop
Type
Notes
- Category: Accounting
- Authentication mode: OAuth