CCM
/MCP
SkillsMCPMarketplacesDigestToolsAdvertise

This week in Claude

Every Monday: Claude Code, Agent SDK, MCP, and the Anthropic platform moves worth your time.

Skills by Category
Frontend DevelopmentBackend & APIsTesting & QASecurityDevOps & CI/CDGit & Pull RequestsDocumentationCode Review & QualityAI & Agent BuildingSkill Development
MCP Servers by Category
Sales & MarketingWeb & Browser AutomationDatabasesAI & LLM ToolsCloud & InfrastructureCommunication & MessagingDeveloper ToolsDesign & CreativeDocuments & KnowledgeSearch & Web Crawling
Marketplaces by Category
AI Agents & OrchestrationLLM IntegrationDevelopment ToolsFrontend & UIBackend & APIsDatabasesTesting & Code QualityDevOps & CloudSecurity & ComplianceGit & Version Control

Claude Code Marketplaces

Discover Claude Code plugins, extensions, and tools. Automatically updated directory of Anthropic Claude AI marketplaces with development tools, productivity plugins, and integrations.

Resources

  • Browse Skills
  • Browse MCP Servers
  • Browse Marketplaces
  • Skill index
  • MCP index
  • Marketplace index
  • Plugins Reference

Community

  • About
  • Tools
  • Feedback
  • Privacy Policy
  • Advertise

Built for the Claude Code community with Claude Code by mertbuilds.com

Independent project, not affiliated with Anthropic
wyre-technology avatar

Xero

wyre-technology/xero-mcp
140 toolsauthSTDIOregistry active
Summary

Connects Claude to the Xero Accounting API for managing customers, suppliers, invoices, payments, and pulling financial reports. You get domain-organized tools for contacts, invoices, payments, accounts, and reports including P&L, balance sheet, and aged receivables. Supports both stdio for local Claude Desktop use and HTTP mode for multi-tenant deployments. Ships with gateway mode that accepts per-request credentials via headers, useful if you're building a proxy that handles OAuth tokens for multiple Xero organizations. Requires a Xero developer account and OAuth2 credentials. Reach for this when you need Claude to read or write accounting data directly instead of exporting CSV files.

CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
inference shell
inference shell
create and run specialised agents in minutes
build now →
MCP-ready Email SendingMCP-ready Email Sending
MCP-ready Email Sending
Plug Mailtrap into your AI workflow and let it handle the email.
Connect Mailtrap MCP →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Capacitor - Shared memory for your team’s coding agents.
Capacitor - Shared memory for your team’s coding agents.
Make coding agent sessions - Searchable, Shareable, Vendor-neutral & Scored.
Try For Free →
CodeScene MCP ServerCodeScene MCP Server
CodeScene MCP Server
Your agent targets a perfect 10 Code Health score. Deterministic. Every commit.
Try For Free →
Give your AI the whole web as clean markdownGive your AI the whole web as clean markdown
Give your AI the whole web as clean markdown
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
belt - the only tool your agent needs
belt - the only tool your agent needs
belt cli automatically finds the best tools and skills for your agent. image, video, music, tts...
one prompt install →
CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
inference shell
inference shell
create and run specialised agents in minutes
build now →
MCP-ready Email SendingMCP-ready Email Sending
MCP-ready Email Sending
Plug Mailtrap into your AI workflow and let it handle the email.
Connect Mailtrap MCP →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Capacitor - Shared memory for your team’s coding agents.
Capacitor - Shared memory for your team’s coding agents.
Make coding agent sessions - Searchable, Shareable, Vendor-neutral & Scored.
Try For Free →
CodeScene MCP ServerCodeScene MCP Server
CodeScene MCP Server
Your agent targets a perfect 10 Code Health score. Deterministic. Every commit.
Try For Free →
Give your AI the whole web as clean markdownGive your AI the whole web as clean markdown
Give your AI the whole web as clean markdown
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
belt - the only tool your agent needs
belt - the only tool your agent needs
belt cli automatically finds the best tools and skills for your agent. image, video, music, tts...
one prompt install →

Tools

Public tool metadata for what this MCP can expose to an agent.

40 tools
XERO_CREATE_BANK_TRANSACTIONCreate a bank transaction in Xero. Use SPEND for payments out or RECEIVE for money received.9 params

Create a bank transaction in Xero. Use SPEND for payments out or RECEIVE for money received.

Parameters* required
BankAccountCodestring
Bank account code (from chart of accounts).
ContactIDstring
Xero Contact ID for the transaction.
CurrencyCodestring
Currency code (e.g., USD, EUR).
Datestring
Transaction date in YYYY-MM-DD format.
LineItemsarray
List of line items for the bank transaction.
Referencestring
Reference or transaction description.
Statusstring
Transaction status: AUTHORISED or DELETED.
Typestring
Transaction type: SPEND (payment out) or RECEIVE (money in).
tenant_idstring
Xero tenant/organization ID. If not provided, uses the first connected tenant.
XERO_CREATE_CONTACTCreate a new contact in Xero. Contacts can be customers, suppliers, or both.14 params

Create a new contact in Xero. Contacts can be customers, suppliers, or both.

Parameters* required
AccountNumberstring
Account reference number for the contact.
BankAccountDetailsstring
Bank account details for the contact.
DefaultCurrencystring
Default currency code (e.g., USD, EUR).
EmailAddressstring
Email address of the contact.
FirstNamestring
First name of the contact person.
IsCustomerboolean
Mark as customer when true.
IsSupplierboolean
Mark as supplier when true.
LastNamestring
Last name of the contact person.
Namestring
Full name of the contact or organization.
TaxNumberstring
Tax number (VAT/ABN/GST number).
Websitestring
Website URL of the contact.
mobile_numberstring
Mobile phone number (will be added as MOBILE phone type).
phone_numberstring
Primary phone number (will be added as DEFAULT phone type).
tenant_idstring
Xero tenant/organization ID. If not provided, uses the first connected tenant.
XERO_CREATE_INVOICECreate a new invoice in Xero. Supports both sales invoices (ACCREC) and bills (ACCPAY).10 params

Create a new invoice in Xero. Supports both sales invoices (ACCREC) and bills (ACCPAY).

Parameters* required
ContactIDstring
Xero Contact ID for the invoice.
CurrencyCodestring
Currency code (e.g., USD, EUR).
Datestring
Invoice date in YYYY-MM-DD format.
DueDatestring
Due date in YYYY-MM-DD format.
InvoiceNumberstring
Invoice number (auto-generated if not provided).
LineItemsarray
List of line items for the invoice.
Referencestring
Reference or purchase order number.
Statusstring
Invoice status: DRAFT, SUBMITTED, or AUTHORISED.
Typestring
Invoice type: ACCREC (accounts receivable/sales) or ACCPAY (accounts payable/bills).
tenant_idstring
Xero tenant/organization ID. If not provided, uses the first connected tenant.
XERO_CREATE_ITEMCreate an inventory item in Xero. Items can be tracked for sales and/or purchases.9 params

Create an inventory item in Xero. Items can be tracked for sales and/or purchases.

Parameters* required
Codestring
Unique item code (SKU).
IsPurchasedboolean
Item can be purchased when true.
IsSoldboolean
Item can be sold when true.
Namestring
Item name/description.
PurchaseDetails.AccountCodestring
Account code for purchases.
PurchaseDetails.UnitPricenumber
Unit price for purchases.
SalesDetails.AccountCodestring
Account code for sales.
SalesDetails.UnitPricenumber
Unit price for sales.
tenant_idstring
Xero tenant/organization ID. If not provided, uses the first connected tenant.
XERO_CREATE_PAYMENTCreate a payment in Xero to link an invoice with a bank account transaction.7 params

Create a payment in Xero to link an invoice with a bank account transaction.

Parameters* required
AccountIDstring
Xero Account ID (bank account) for the payment.
Amountnumber
Payment amount.
CurrencyRatenumber
Exchange rate for foreign currency payments.
Datestring
Payment date in YYYY-MM-DD format.
InvoiceIDstring
Xero Invoice ID that this payment is for.
Referencestring
Payment reference or description.
tenant_idstring
Xero tenant/organization ID. If not provided, uses the first connected tenant.
XERO_CREATE_PURCHASE_ORDERCreate a purchase order in Xero to order goods/services from suppliers.7 params

Create a purchase order in Xero to order goods/services from suppliers.

Parameters* required
ContactIDstring
Xero Contact ID for the purchase order.
Datestring
Purchase order date in YYYY-MM-DD format.
DeliveryDatestring
Expected delivery date in YYYY-MM-DD format.
LineItemsarray
List of line items for the purchase order.
Referencestring
Reference or purchase order number.
Statusstring
Purchase order status: DRAFT, SUBMITTED, AUTHORISED, BILLED.
tenant_idstring
Xero tenant/organization ID. If not provided, uses the first connected tenant.
XERO_GET_ACCOUNTRetrieve a specific account from the chart of accounts by ID. Returns account code, name, type, and settings.2 params

Retrieve a specific account from the chart of accounts by ID. Returns account code, name, type, and settings.

Parameters* required
account_idstring
Xero Account ID to retrieve.
tenant_idstring
Xero tenant/organization ID. If not provided, uses the first connected tenant.
XERO_GET_ASSETRetrieve a specific asset by ID from Xero. Returns depreciation details and book value.2 params

Retrieve a specific asset by ID from Xero. Returns depreciation details and book value.

Parameters* required
asset_idstring
Xero Asset ID to retrieve.
tenant_idstring
Xero tenant/organization ID. If not provided, uses the first connected tenant.
XERO_GET_BALANCE_SHEET_REPORTRetrieve Balance Sheet report from Xero. Shows assets, liabilities, and equity at a specific date.7 params

Retrieve Balance Sheet report from Xero. Shows assets, liabilities, and equity at a specific date.

Parameters* required
datestring
Balance sheet as of this date in YYYY-MM-DD format.
paymentsOnlyboolean
Show only cash transactions when true (cash basis).
periodsinteger
Number of periods to compare.
standardLayoutboolean
Use standard layout when true.
tenant_idstring
Xero tenant/organization ID. If not provided, uses the first connected tenant.
timeframestring
Timeframe period: MONTH, QUARTER, or YEAR.
trackingOptionIDstring
Filter by tracking option ID.
XERO_GET_BUDGETRetrieve a budget from Xero. Budgets track planned vs actual spending by account.4 params

Retrieve a budget from Xero. Budgets track planned vs actual spending by account.

Parameters* required
DateFromstring
Start date for budget data in YYYY-MM-DD format.
DateTostring
End date for budget data in YYYY-MM-DD format.
budget_idstring
Xero Budget ID to retrieve.
tenant_idstring
Xero tenant/organization ID. If not provided, uses the first connected tenant.
XERO_GET_CONNECTIONSTool to list active Xero connections. Use when you need to retrieve all current tenant connections for the authenticated user.

Tool to list active Xero connections. Use when you need to retrieve all current tenant connections for the authenticated user.

No parameter schema in public metadata yet.

XERO_GET_CONTACTRetrieve a specific contact by ID from Xero. Returns full contact details including addresses and phone numbers.2 params

Retrieve a specific contact by ID from Xero. Returns full contact details including addresses and phone numbers.

Parameters* required
contact_idstring
Xero Contact ID to retrieve.
tenant_idstring
Xero tenant/organization ID. If not provided, uses the first connected tenant.
XERO_GET_CONTACTSTool to retrieve a list of contacts. Use when you need up-to-date contact information with filtering, paging, or incremental updates.10 params

Tool to retrieve a list of contacts. Use when you need up-to-date contact information with filtering, paging, or incremental updates.

Parameters* required
ContactIDstring
Xero ContactID. If provided, fetches a single contact at /Contacts/{ContactID}.
IDsarray
Comma-separated list of ContactIDs to filter by.
If-Modified-Sincestring
UTC timestamp (YYYY-MM-DDThh:mm:ss) to set as the If-Modified-Since header; returns only contacts created or modified since this timestamp.
includeArchivedboolean
Include archived contacts when true.
orderstring
Sort by field, e.g. UpdatedDateUTC DESC.
pageinteger
Page number for paginated results (requires pageSize).
pageSizeinteger
Number of contacts per page (requires page).
searchTermstring
Case-insensitive search across Name, FirstName, LastName, ContactNumber, CompanyNumber, EmailAddress.
summaryOnlyboolean
Return a lightweight summary-only response when true.
wherestring
OData-style filter on optimised fields, e.g. Name="ABC".
XERO_GET_INVOICERetrieve a specific invoice by ID from Xero. Returns full invoice details including line items and status.3 params

Retrieve a specific invoice by ID from Xero. Returns full invoice details including line items and status.

Parameters* required
invoice_idstring
Xero Invoice ID to retrieve.
tenant_idstring
Xero tenant/organization ID. If not provided, uses the first connected tenant.
unitdpinteger
Number of decimal places for unit amounts (default 4).
XERO_GET_ITEMRetrieve a specific item by ID from Xero. Returns item code, name, pricing, and tax details.2 params

Retrieve a specific item by ID from Xero. Returns item code, name, pricing, and tax details.

Parameters* required
item_idstring
Xero Item ID to retrieve.
tenant_idstring
Xero tenant/organization ID. If not provided, uses the first connected tenant.
XERO_GET_MANUAL_JOURNALRetrieve a specific manual journal by ID from Xero. Returns full details including journal lines.2 params

Retrieve a specific manual journal by ID from Xero. Returns full details including journal lines.

Parameters* required
manual_journal_idstring
Xero Manual Journal ID to retrieve.
tenant_idstring
Xero tenant/organization ID. If not provided, uses the first connected tenant.
XERO_GET_ORGANISATIONRetrieve organisation details from Xero. Returns company info, base currency, timezone, financial year settings, etc.1 params

Retrieve organisation details from Xero. Returns company info, base currency, timezone, financial year settings, etc.

Parameters* required
tenant_idstring
Xero tenant/organization ID. If not provided, uses the first connected tenant.
XERO_GET_PROFIT_LOSS_REPORTRetrieve Profit & Loss report from Xero. Shows income, expenses, and net profit for a specified period.11 params

Retrieve Profit & Loss report from Xero. Shows income, expenses, and net profit for a specified period.

Parameters* required
fromDatestring
Start date for the report in YYYY-MM-DD format.
paymentsOnlyboolean
Show only cash transactions when true (cash basis).
periodsinteger
Number of periods to compare (e.g., for month-on-month comparison).
standardLayoutboolean
Use standard layout when true.
tenant_idstring
Xero tenant/organization ID. If not provided, uses the first connected tenant.
timeframestring
Timeframe period: MONTH, QUARTER, or YEAR.
toDatestring
End date for the report in YYYY-MM-DD format.
trackingCategoryIDstring
Filter by tracking category ID.
trackingCategoryID2string
Filter by second tracking category ID.
trackingOptionIDstring
Filter by tracking option ID.
trackingOptionID2string
Filter by second tracking option ID.
XERO_GET_PROJECTRetrieve a specific project by ID from Xero. Returns project details, deadlines, and status.2 params

Retrieve a specific project by ID from Xero. Returns project details, deadlines, and status.

Parameters* required
project_idstring
Xero Project ID to retrieve.
tenant_idstring
Xero tenant/organization ID. If not provided, uses the first connected tenant.
XERO_GET_PURCHASE_ORDERRetrieve a specific purchase order by ID from Xero. Returns full details including line items and status.2 params

Retrieve a specific purchase order by ID from Xero. Returns full details including line items and status.

Parameters* required
purchase_order_idstring
Xero Purchase Order ID to retrieve.
tenant_idstring
Xero tenant/organization ID. If not provided, uses the first connected tenant.
XERO_GET_QUOTESTool to retrieve a list of quotes. Use when you need to list, filter, or page through sales quotes. Use after obtaining the tenant ID via connections.11 params

Tool to retrieve a list of quotes. Use when you need to list, filter, or page through sales quotes. Use after obtaining the tenant ID via connections.

Parameters* required
ContactIDstring
Filter for quotes belonging to a particular contact by ContactID.
DateFromstring
Filter for quotes on or after this date (YYYY-MM-DD).
DateTostring
Filter for quotes on or before this date (YYYY-MM-DD).
ExpiryDateFromstring
Filter for quotes expiring on or after this date (YYYY-MM-DD).
ExpiryDateTostring
Filter for quotes expiring on or before this date (YYYY-MM-DD).
If-Modified-Sincestring
Only return quotes modified after this UTC timestamp in RFC3339 format.
QuoteNumberstring
Filter by quote number.
Statusstring
Filter for quotes of a particular status.
orderstring
Order by any element, e.g., ExpiryDate ASC.
pageinteger
Page number for paginated results (1-based).
tenant_idstring
Xero Tenant ID. Optional - will auto-fetch from connections if not provided.
XERO_LIST_ACCOUNTSRetrieve chart of accounts from Xero. Returns all accounting codes used for categorizing transactions.3 params

Retrieve chart of accounts from Xero. Returns all accounting codes used for categorizing transactions.

Parameters* required
orderstring
Sort by field, e.g. Code ASC or Name DESC.
tenant_idstring
Xero tenant/organization ID. If not provided, uses the first connected tenant.
wherestring
OData-style filter, e.g. Status=="ACTIVE" AND Type=="EXPENSE"
XERO_LIST_ASSETSRetrieve fixed assets from Xero. Assets track depreciation and book value of capital equipment.6 params

Retrieve fixed assets from Xero. Assets track depreciation and book value of capital equipment.

Parameters* required
orderBystring
Sort field: AssetName, AssetNumber, PurchaseDate.
pageinteger
Page number for paginated results.
pageSizeinteger
Number of assets per page.
sortDirectionstring
Sort direction: ASC or DESC.
statusstring
Filter by asset status: DRAFT, REGISTERED, DISPOSED.
tenant_idstring
Xero tenant/organization ID. If not provided, uses the first connected tenant.
XERO_LIST_ATTACHMENTSList all attachments for a specific entity in Xero (invoice, contact, etc.).3 params

List all attachments for a specific entity in Xero (invoice, contact, etc.).

Parameters* required
entity_idstring
ID of the entity to list attachments for.
entity_typestring
Entity type: Invoices, Contacts, BankTransactions, CreditNotes, PurchaseOrders, etc.
tenant_idstring
Xero tenant/organization ID. If not provided, uses the first connected tenant.
XERO_LIST_BANK_TRANSACTIONSRetrieve bank transactions from Xero. Includes spend (payments) and receive (receipts) transactions.6 params

Retrieve bank transactions from Xero. Includes spend (payments) and receive (receipts) transactions.

Parameters* required
If-Modified-Sincestring
UTC timestamp to return only bank transactions modified since this date.
orderstring
Sort by field, e.g. Date DESC or UpdatedDateUTC ASC.
pageinteger
Page number for paginated results.
tenant_idstring
Xero tenant/organization ID. If not provided, uses the first connected tenant.
unitdpinteger
Decimal places for unit amounts (default 4).
wherestring
OData-style filter, e.g. Status=="AUTHORISED" AND Type=="SPEND"
XERO_LIST_CREDIT_NOTESRetrieve list of credit notes from Xero. Credit notes are issued to reduce amounts owed by customers.5 params

Retrieve list of credit notes from Xero. Credit notes are issued to reduce amounts owed by customers.

Parameters* required
If-Modified-Sincestring
UTC timestamp to return only credit notes modified since this date.
orderstring
Sort by field, e.g. Date DESC or CreditNoteNumber ASC.
pageinteger
Page number for paginated results.
tenant_idstring
Xero tenant/organization ID. If not provided, uses the first connected tenant.
wherestring
OData-style filter, e.g. Status=="AUTHORISED"
XERO_LIST_FILESRetrieve files from Xero Files. Lists documents stored in Xero's file management system.5 params

Retrieve files from Xero Files. Lists documents stored in Xero's file management system.

Parameters* required
folderIdstring
Filter files by folder ID.
pageinteger
Page number for paginated results.
pagesizeinteger
Number of files per page (max 100).
sortstring
Sort field: Name, Size, CreatedDateUTC.
tenant_idstring
Xero tenant/organization ID. If not provided, uses the first connected tenant.
XERO_LIST_FOLDERSRetrieve folders from Xero Files. Lists document folders in Xero's file management system.2 params

Retrieve folders from Xero Files. Lists document folders in Xero's file management system.

Parameters* required
sortstring
Sort field: Name, CreatedDateUTC.
tenant_idstring
Xero tenant/organization ID. If not provided, uses the first connected tenant.
XERO_LIST_INVOICESRetrieve a list of invoices from Xero. Supports filtering by status, contact, date range, and pagination.10 params

Retrieve a list of invoices from Xero. Supports filtering by status, contact, date range, and pagination.

Parameters* required
ContactIDsstring
Comma-separated list of Contact IDs to filter invoices by contact.
If-Modified-Sincestring
UTC timestamp to return only invoices modified since this date.
InvoiceIDsstring
Comma-separated list of Invoice IDs to filter by.
Statusesstring
Comma-separated list of invoice statuses to filter by (e.g., DRAFT, SUBMITTED, AUTHORISED, PAID).
createdByMyAppboolean
Filter to invoices created by your app when true.
includeArchivedboolean
Include archived invoices when true.
orderstring
Sort by field, e.g. Date DESC or InvoiceNumber ASC.
pageinteger
Page number for paginated results.
tenant_idstring
Xero tenant/organization ID. If not provided, uses the first connected tenant.
wherestring
OData-style filter, e.g. Status=="AUTHORISED" AND Total>100
XERO_LIST_ITEMSRetrieve items (inventory/products) from Xero. Items can be tracked for sales and/or purchases.4 params

Retrieve items (inventory/products) from Xero. Items can be tracked for sales and/or purchases.

Parameters* required
orderstring
Sort by field, e.g. Code ASC or Name DESC.
tenant_idstring
Xero tenant/organization ID. If not provided, uses the first connected tenant.
unitdpinteger
Number of decimal places for unit amounts (default 4).
wherestring
OData-style filter, e.g. IsSold==true AND IsPurchased==true
XERO_LIST_JOURNALSRetrieve journals from Xero. Journals show the accounting entries for all transactions.4 params

Retrieve journals from Xero. Journals show the accounting entries for all transactions.

Parameters* required
If-Modified-Sincestring
UTC timestamp to return only journals modified since this date.
offsetinteger
Offset for pagination.
paymentsOnlyboolean
Filter to payment journals only when true.
tenant_idstring
Xero tenant/organization ID. If not provided, uses the first connected tenant.
XERO_LIST_MANUAL_JOURNALSRetrieve manual journals from Xero. Manual journals are used for period-end adjustments and corrections.5 params

Retrieve manual journals from Xero. Manual journals are used for period-end adjustments and corrections.

Parameters* required
If-Modified-Sincestring
UTC timestamp to return only manual journals modified since this date.
orderstring
Sort by field, e.g. Date DESC.
pageinteger
Page number for paginated results.
tenant_idstring
Xero tenant/organization ID. If not provided, uses the first connected tenant.
wherestring
OData-style filter, e.g. Status=="POSTED"
XERO_LIST_PAYMENTSRetrieve list of payments from Xero. Payments link invoices to bank transactions.5 params

Retrieve list of payments from Xero. Payments link invoices to bank transactions.

Parameters* required
If-Modified-Sincestring
UTC timestamp to return only payments modified since this date.
orderstring
Sort by field, e.g. Date DESC or Amount ASC.
pageinteger
Page number for paginated results.
tenant_idstring
Xero tenant/organization ID. If not provided, uses the first connected tenant.
wherestring
OData-style filter, e.g. Status=="AUTHORISED"
XERO_LIST_PROJECTSRetrieve projects from Xero. Projects track time and costs for client work.6 params

Retrieve projects from Xero. Projects track time and costs for client work.

Parameters* required
contactIDstring
Filter projects by contact ID.
pageinteger
Page number for paginated results.
pageSizeinteger
Number of projects per page.
projectIdsstring
Comma-separated list of project IDs to filter by.
statesstring
Comma-separated project states: INPROGRESS, CLOSED.
tenant_idstring
Xero tenant/organization ID. If not provided, uses the first connected tenant.
XERO_LIST_PURCHASE_ORDERSRetrieve list of purchase orders from Xero. Purchase orders track goods/services ordered from suppliers.7 params

Retrieve list of purchase orders from Xero. Purchase orders track goods/services ordered from suppliers.

Parameters* required
DateFromstring
Filter by date from (YYYY-MM-DD).
DateTostring
Filter by date to (YYYY-MM-DD).
If-Modified-Sincestring
UTC timestamp to return only purchase orders modified since this date.
Statusstring
Filter by status: DRAFT, SUBMITTED, AUTHORISED, BILLED, DELETED.
orderstring
Sort by field, e.g. Date DESC or PurchaseOrderNumber ASC.
pageinteger
Page number for paginated results.
tenant_idstring
Xero tenant/organization ID. If not provided, uses the first connected tenant.
XERO_LIST_TAX_RATESRetrieve tax rates from Xero. Shows available tax codes and rates for the organization.4 params

Retrieve tax rates from Xero. Shows available tax codes and rates for the organization.

Parameters* required
TaxTypestring
Filter by specific tax type.
orderstring
Sort by field, e.g. Name ASC.
tenant_idstring
Xero tenant/organization ID. If not provided, uses the first connected tenant.
wherestring
OData-style filter, e.g. Status=="ACTIVE"
XERO_LIST_TRACKING_CATEGORIESRetrieve tracking categories from Xero. Tracking categories are used to segment data for reporting (e.g., departments, regions).4 params

Retrieve tracking categories from Xero. Tracking categories are used to segment data for reporting (e.g., departments, regions).

Parameters* required
includeArchivedboolean
Include archived tracking categories when true.
orderstring
Sort by field, e.g. Name ASC.
tenant_idstring
Xero tenant/organization ID. If not provided, uses the first connected tenant.
wherestring
OData-style filter, e.g. Status=="ACTIVE"
XERO_POST_INVOICE_UPDATETool to update an existing invoice. Use when you need to modify the details of an invoice after it's been created.4 params

Tool to update an existing invoice. Use when you need to modify the details of an invoice after it's been created.

Parameters* required
InvoiceIDstring
Unique identifier (UUID) of the invoice.
InvoiceNumberstring
Invoice number identifier.
Invoicesarray
List containing invoice update definitions (one item).
unitdpinteger
Number of decimal places for unit amounts.
XERO_UPDATE_CONTACTUpdate an existing contact in Xero. Only provided fields will be updated.12 params

Update an existing contact in Xero. Only provided fields will be updated.

Parameters* required
AccountNumberstring
Account reference number for the contact.
BankAccountDetailsstring
Bank account details for the contact.
DefaultCurrencystring
Default currency code (e.g., USD, EUR).
EmailAddressstring
Email address of the contact.
FirstNamestring
First name of the contact person.
LastNamestring
Last name of the contact person.
Namestring
Full name of the contact or organization.
TaxNumberstring
Tax number (VAT/ABN/GST number).
contact_idstring
Xero Contact ID to update.
mobile_numberstring
Mobile phone number (will update MOBILE phone type).
phone_numberstring
Primary phone number (will update DEFAULT phone type).
tenant_idstring
Xero tenant/organization ID. If not provided, uses the first connected tenant.
XERO_UPLOAD_ATTACHMENTUpload a file attachment to a Xero entity (invoice, contact, etc.). Supports PDF, images, and documents.6 params

Upload a file attachment to a Xero entity (invoice, contact, etc.). Supports PDF, images, and documents.

Parameters* required
entity_idstring
ID of the entity to attach the file to.
entity_typestring
Entity type to attach to: Invoices, Contacts, BankTransactions, CreditNotes, etc.
file_to_uploadstring
File to upload as attachment.
filenamestring
Filename for the attachment.
include_onlineboolean
Include online invoice in attachment.
tenant_idstring
Xero tenant/organization ID. If not provided, uses the first connected tenant.

Xero MCP Server

Model Context Protocol (MCP) server for the Xero Accounting API. Enables Claude and other MCP-compatible clients to manage Xero contacts, invoices, payments, accounts, and reports.

Features

  • Contacts, invoices, payments, chart of accounts, and financial reports over stdio, HTTP, or Cloudflare Workers transports
  • Interactive invoice card (MCP Apps, SEP-1865): xero_invoices_get renders as a rich, read-only card in MCP Apps hosts — neutral by default, brandable via window.__BRAND__ injection or MCP_BRAND_* env vars
  • Gateway mode for per-request, multi-tenant credentials

One-Click Deployment

Deploy to DO

Deploy to Cloudflare Workers

Note on registry auth: This server depends only on public npm packages, so the Cloudflare and DigitalOcean cloud builders install its dependencies anonymously — no token is required for one-click deploy. (If a future release adds a private @wyre-ai/* dependency, you would supply a GitHub PAT with read:packages as a build variable — NODE_AUTH_TOKEN for Cloudflare Workers, a build-time GITHUB_TOKEN secret for DigitalOcean.)

Installing the published package: The released package is published to the GitHub Packages npm registry, which requires authentication on every install (even for public packages). To install it, authenticate npm to npm.pkg.github.com with a GitHub PAT that has read:packages:

export NODE_AUTH_TOKEN=$(gh auth token)
npm install @wyre-ai/xero-mcp

Quick Start

Prerequisites

  • Node.js >= 20
  • Xero OAuth2 app credentials (requires a Xero developer account)

Install and Build

npm install
npm run build

Run (stdio mode)

XERO_ACCESS_TOKEN=your-access-token XERO_TENANT_ID=your-tenant-id npm start

Run (HTTP mode)

MCP_TRANSPORT=http XERO_ACCESS_TOKEN=your-access-token XERO_TENANT_ID=your-tenant-id npm start

The server listens on http://0.0.0.0:8080/mcp by default.

Docker

docker build -t xero-mcp .
docker run -p 8080:8080 \
  -e MCP_TRANSPORT=http \
  -e XERO_ACCESS_TOKEN=your-access-token \
  -e XERO_TENANT_ID=your-tenant-id \
  xero-mcp

Environment Variables

VariableRequiredDefaultDescription
XERO_ACCESS_TOKENYes (env mode)—Xero OAuth2 access token
XERO_TENANT_IDYes (env mode)—Xero tenant ID (organisation)
MCP_TRANSPORTNostdioTransport type: stdio or http
MCP_HTTP_PORTNo8080HTTP server port
MCP_HTTP_HOSTNo0.0.0.0HTTP server bind address
AUTH_MODENoenvAuth mode: env or gateway

Gateway Mode

When AUTH_MODE=gateway, credentials are passed per-request via HTTP headers instead of environment variables:

  • X-Xero-Access-Token — OAuth2 access token
  • X-Xero-Tenant-Id — Xero tenant ID

This allows a gateway/proxy to manage multi-tenant credentials.

Interactive Invoice Card (MCP Apps)

xero_invoices_get renders as an interactive card in MCP Apps hosts (Claude Desktop/web) showing status, contact, dates, amounts, and line items; plain-JSON behavior is unchanged in other hosts. The card is read-only — invoices are financial records, so no write actions are exposed from it. It is neutral by default and brandable via window.__BRAND__ injection or MCP_BRAND_* env vars (MCP_BRAND_NAME, MCP_BRAND_LOGO_URL, MCP_BRAND_PRIMARY_COLOR, MCP_BRAND_ACCENT_COLOR, MCP_BRAND_BG, MCP_BRAND_TEXT) — no rebuild needed.

Available Tools

Tools are organized into domains. Use xero_navigate to select a domain, then use the domain-specific tools.

Navigation

  • xero_navigate — Select a domain (contacts, invoices, payments, accounts, reports)
  • xero_back — Return to domain selection

Contacts

  • xero_contacts_list — List contacts with pagination and optional filtering
  • xero_contacts_get — Get detailed contact information by ID
  • xero_contacts_create — Create a new contact (customer or supplier)
  • xero_contacts_search — Search contacts by name

Invoices

  • xero_invoices_list — List invoices with optional status and type filters
  • xero_invoices_get — Get detailed invoice information by ID
  • xero_invoices_create — Create a new invoice (sales or bill)
  • xero_invoices_update_status — Update invoice status (submit, authorise, void)

Payments

  • xero_payments_list — List payments with optional status filter
  • xero_payments_get — Get detailed payment information by ID
  • xero_payments_create — Record a payment against an invoice

Accounts

  • xero_accounts_list — List chart of accounts with optional type/class filter
  • xero_accounts_get — Get detailed account information by ID

Reports

  • xero_reports_profit_and_loss — Profit and Loss (income statement) for a date range
  • xero_reports_balance_sheet — Balance Sheet as of a specific date
  • xero_reports_aged_receivables — Aged Receivables by contact
  • xero_reports_aged_payables — Aged Payables by contact

License

Apache-2.0

Featured
CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
inference shell
inference shell
create and run specialised agents in minutes
build now →
MCP-ready Email SendingMCP-ready Email Sending
MCP-ready Email Sending
Plug Mailtrap into your AI workflow and let it handle the email.
Connect Mailtrap MCP →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Capacitor - Shared memory for your team’s coding agents.
Capacitor - Shared memory for your team’s coding agents.
Make coding agent sessions - Searchable, Shareable, Vendor-neutral & Scored.
Try For Free →
CodeScene MCP ServerCodeScene MCP Server
CodeScene MCP Server
Your agent targets a perfect 10 Code Health score. Deterministic. Every commit.
Try For Free →
Give your AI the whole web as clean markdownGive your AI the whole web as clean markdown
Give your AI the whole web as clean markdown
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
belt - the only tool your agent needs
belt - the only tool your agent needs
belt cli automatically finds the best tools and skills for your agent. image, video, music, tts...
one prompt install →

Configuration

XERO_TENANT_ID*

Xero tenant ID (organisation). Required when AUTH_MODE is 'env'.

XERO_ACCESS_TOKEN*secret

Xero OAuth2 access token. Required when AUTH_MODE is 'env'.

MCP_TRANSPORTdefault: stdio

Transport mode for the server. Set to 'stdio' for local CLI use; the image defaults to 'http' for gateway hosting.

AUTH_MODEdefault: env

Credential source: 'env' reads vars locally, 'gateway' expects header injection from the WYRE MCP Gateway.

LOG_LEVELdefault: info

Log verbosity: debug, info, warn, error

Categories
Finance & Commerce
Registryactive
Packageghcr.io/wyre-technology/xero-mcp:v1.4.0
TransportSTDIO
AuthRequired
UpdatedJun 2, 2026
View on GitHub

More from wyre-technology

  • Huntress1
  • ThreatLocker1
  • Abnormal Security
  • Auvik
  • Avanan MSP (Legacy SmartAPI)
  • Blumira
  • Crewhu
  • Datto BCDR
  • Domotz
  • IQMS / DELMIA Apriso
  • Ironscales
  • Kaseya BMS
  • Kaseya Quote Manager
  • Kaseya VSA
  • KnowBe4
  • Liongard
  • Mimecast
  • Proofpoint
  • SpamTitan
  • TimeZest
  • Unitrends Backup
  • Atera
  • Blackpoint Cyber
  • Datto SaaS Protection

Related Finance & Commerce MCP Servers

View all →
bakyang2 avatar
Kr Crypto Intelligence

bakyang2/kr-crypto-intelligence

Korean crypto + news (kpop/semi), 17 tools, signed receipts. x402 Base+Polygon+Solana.
com.info-subscription avatar
INFO-Subscription

com.info-subscription/mcp-server

Exposes tools for querying subscriptions and billing data from the INFO-Subscription platform
stratalize avatar
Stratalize Crypto & DeFi

com.stratalize/crypto

Crypto and DeFi benchmarks: gas fees, chain TVL, stablecoin yields, options IV, and correlations.
com.thenextgennexus avatar
Crypto Mcp Server

com.thenextgennexus/crypto-mcp-server

CoinGecko-backed live prices, market caps, DeFi metrics — no per-user API key needed.
com.trackordernow avatar
Trakow Order Tracking

com.trackordernow/order-tracking

Real-time order tracking for Shopify merchants: look up, list, and refresh shipments.
crypto-goatz avatar
Rocket Plus Mcp

crypto-goatz/rocket-plus-mcp

56+ AI tools for CRM, content, workflows, SkillForge & marketing automation.