Xero MCP Server

官方

使用我们的官方MCP服务器与您企业中的会计数据进行交互。

文档

Xero MCP 服务器

这是一个针对 Xero 的模型上下文协议 (MCP) 服务器实现。它在 MCP 协议和 Xero 的 API 之间架起了一座桥梁,允许标准化地访问 Xero 的会计和业务功能。

功能特性

  • 支持自定义连接的 Xero OAuth2 认证
  • 联系人管理
  • 会计科目表管理
  • 发票创建与管理
  • MCP 协议合规

先决条件

  • Node.js(v18 或更高版本)
  • npm 或 pnpm
  • 拥有 API 凭证的 Xero 开发者账户

文档与链接

设置

创建 Xero 账户

如果你还没有 Xero 账户和组织,可以通过免费试用在此处注册创建一个。

我们建议从演示公司开始,因为它预装了一些示例数据。登录后,使用左上角的下拉菜单切换到“演示公司”。你可以随时通过左上角的下拉菜单导航到我的 Xero来重置演示公司的数据或更改国家/地区。

注意:要使用特定于工资单的查询,地区应为新西兰或英国。

认证

Xero MCP 服务器支持两种认证模式:

1. 自定义连接

这是测试和开发的更好选择,允许你为特定组织指定客户端 ID 和密钥。 如果你将其集成到第三方 MCP 客户端(如 Claude Desktop),这也是推荐的方法。

配置你的 Xero 开发者账户

按照以下说明设置自定义连接:https://developer.xero.com/documentation/guides/oauth2/custom-connections/

所需范围

自定义连接根据其创建时间需要不同的范围。相关列表中的所有范围都必须添加到你的自定义连接中:

自定义连接创建时间所需范围
2026 年 4 月 29 日之前SCOPES_V1(捆绑权限)
2026 年 4 月 29 日起SCOPES_V2(细粒度权限)

注意: MCP 服务器会自动先尝试 V1 范围,如果需要则回退到 V2。

你可以通过将 XERO_SCOPES 环境变量设置为以空格分隔的范围列表来覆盖这些设置。

将 MCP 服务器与 Claude Desktop 集成

要将 MCP 服务器添加到 Claude,请前往“设置”>“开发者”>“编辑配置”,并将以下内容添加到你的 claude_desktop_config.json 文件中:

{
  "mcpServers": {
    "xero": {
      "command": "npx",
      "args": ["-y", "@xeroapi/xero-mcp-server@latest"],
      "env": {
        "XERO_CLIENT_ID": "your_client_id_here",
        "XERO_CLIENT_SECRET": "your_client_secret_here",
        "XERO_SCOPES": "accounting.invoices accounting.contacts accounting.settings"
      }
    }
  }
}

XERO_SCOPES 变量是可选的。如果省略,将使用上面列出的默认范围。

注意:如果你正在使用 Node 版本管理器,请将 "command": "npx" 部分更改为可执行文件的完整路径,即:Mac / Linux 上为 your_home_directory/.nvm/versions/node/v22.14.0/bin/npx,Windows 上为 "your_home_directory\\.nvm\\versions\\node\\v22.14.0\\bin\\npx"

2. 持有者令牌

如果你要在运行时支持多个 Xero 账户,并允许 MCP 客户端根据需要执行认证流程(如 PKCE),这是更好的选择。 在这种情况下,请使用以下配置:

{
  "mcpServers": {
    "xero": {
      "command": "npx",
      "args": ["-y", "@xeroapi/xero-mcp-server@latest"],
      "env": {
        "XERO_CLIENT_BEARER_TOKEN": "your_bearer_token"
      }
    }
  }
}

注意:如果定义了 XERO_CLIENT_BEARER_TOKEN,它将优先于 XERO_CLIENT_ID

持有者令牌所需范围

获取持有者令牌时,你必须请求适当的范围。你应请求的范围是:

注意: 一些范围正被弃用,转而使用更细粒度的范围。有关弃用时间表的详细信息,请参阅 Xero OAuth 2.0 范围文档

accounting.transactions (Deprecated)
accounting.transactions.read (Deprecated)
accounting.invoices
accounting.invoices.read
accounting.payments
accounting.payments.read
accounting.banktransactions
accounting.banktransactions.read
accounting.manualjournals
accounting.manualjournals.read
accounting.reports.read (Deprecated)
accounting.reports.aged.read
accounting.reports.balancesheet.read
accounting.reports.profitandloss.read
accounting.reports.trialbalance.read
accounting.contacts 
accounting.settings 
payroll.settings 
payroll.employees 
payroll.timesheets

可用的 MCP 命令

  • list-accounts:检索账户列表
  • list-contacts:从 Xero 检索联系人列表
  • list-credit-notes:检索贷项通知单列表
  • list-invoices:检索发票列表
  • list-items:检索项目列表
  • list-manual-journals:检索手动日记账列表
  • list-organisation-details:检索组织详情
  • list-profit-and-loss:检索损益报告
  • list-quotes:检索报价列表
  • list-tax-rates:检索税率列表
  • list-payments:检索付款列表
  • list-trial-balance:检索试算平衡表报告
  • list-bank-transactions:检索银行账户交易列表
  • list-payroll-employees:检索工资单员工列表
  • list-report-balance-sheet:检索资产负债表报告
  • list-payroll-employee-leave:检索工资单员工的休假记录
  • list-payroll-employee-leave-balances:检索工资单员工的休假余额
  • list-payroll-employee-leave-types:检索工资单休假类型列表
  • list-payroll-leave-periods:检索工资单员工的休假期间列表
  • list-payroll-leave-types:检索 Xero 工资单中所有可用休假类型的列表
  • list-timesheets:检索工资单考勤表列表
  • list-aged-receivables-by-contact:检索联系人的应收账款账龄
  • list-aged-payables-by-contact:检索联系人的应付账款账龄
  • list-contact-groups:检索联系人组列表
  • list-tracking-categories:检索跟踪类别列表
  • create-bank-transaction:创建新的银行交易
  • create-contact:创建新的联系人
  • create-credit-note:创建新的贷项通知单
  • create-invoice:创建新的发票
  • create-item:创建新的项目
  • create-manual-journal:创建新的手动日记账
  • create-payment:创建新的付款
  • create-quote:创建新的报价
  • create-payroll-timesheet:创建新的工资单考勤表
  • create-tracking-category:创建新的跟踪类别
  • create-tracking-option:创建新的跟踪选项
  • update-bank-transaction:更新现有的银行交易
  • update-contact:更新现有的联系人
  • update-invoice:更新现有的草稿发票
  • update-item:更新现有的项目
  • update-manual-journal:更新现有的手动日记账
  • update-quote:更新现有的草稿报价
  • update-credit-note:更新现有的草稿贷项通知单
  • update-tracking-category:更新现有的跟踪类别
  • update-tracking-options:更新跟踪选项
  • update-payroll-timesheet-line:更新现有工资单考勤表上的行
  • approve-payroll-timesheet:批准工资单考勤表
  • revert-payroll-timesheet:撤销已批准的工资单考勤表
  • add-payroll-timesheet-line:在现有工资单考勤表上添加新行
  • delete-payroll-timesheet:删除现有的工资单考勤表
  • get-payroll-timesheet:检索现有的工资单考勤表

有关详细的 API 文档,请参阅 MCP 协议规范

面向开发者

安装

# Using npm
npm install

# Using pnpm
pnpm install

运行构建

# Using npm
npm run build

# Using pnpm
pnpm build

与 Claude Desktop 集成

要将开发中的 Xero MCP 服务器链接到 Claude Desktop,请前往“设置”>“开发者”>“编辑配置”,并将以下内容添加到你的 claude_desktop_config.json 文件中:

注意:对于 Windows,请确保 args 路径在文件夹之间转义 \,即 "C:\\projects\xero-mcp-server\\dist\\index.js"

{
  "mcpServers": {
    "xero": {
      "command": "node",
      "args": ["insert-your-file-path-here/xero-mcp-server/dist/index.js"],
      "env": {
        "XERO_CLIENT_ID": "your_client_id_here",
        "XERO_CLIENT_SECRET": "your_client_secret_here"
      }
    }
  }
}

许可证

MIT

安全

请不要将你的 .env 文件或任何敏感凭证提交到版本控制中(它已作为安全默认设置包含在 .gitignore 中)。