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 Developer帐户
按照以下说明设置自定义连接:https://developer.xero.com/documentation/guides/oauth2/custom-connections/
所需范围
自定义连接需要不同的作用域,具体取决于创建时间。 相关列表中的所有作用域都必须添加到您的自定义连接中:
注: 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 变量是可选的。如果省略,将使用上面列出的默认范围。
注意:如果您正在使用 "command": "npx" 部分将其更改为可执行文件的完整路径,即: your_home_directory/.nvm/versions/node/v22.14.0/bin/npx 在Mac/Linux或 "your_home_directory\\.nvm\\versions\\node\\v22.14.0\\bin\\npx" 在Windows上
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 Payroll中所有可用休假类型的列表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"
}
}
}
}许可证
麻省理工学院
安全
请不要承诺你的 .env 文件或任何敏感凭据到版本控制(它包含在 .gitignore 作为安全默认值。)
