施乐叶片mcp
Xero Accounting+Payroll AU MCP服务器,适用于Claude和其他LLM代理。令牌高效,安全第一,Sidereal原生。
53种工具,涵盖联系人、发票、账单、银行交易、付款、信用票据、采购订单、报价、手动日记账、会计科目表、财务报告、税率、货币、跟踪类别、工资单员工、时间表、工资单和webhook验证。
为什么选择另一个Xero MCP?
这 Xero MCP官方 是原始API传递。它返回完整的JSON有效负载(每个列表响应800多个令牌),没有写保护,没有凭据清理,也没有发布的测试套件。社区替代方案要么是仅收费的、只读的(SQL),要么仅限于4-16个工具。
xero blade mcp专为处理财务数据的LLM代理而设计:
- SecOps --强制写入门控、破坏性操作(无效、删除、存档)的确认门控、所有错误路径中的凭据清理、OAuth2令牌自动刷新、客户端_凭据模式的仅内存令牌(没有秘密写入磁盘)
- 代币效率 --管道分隔列表、字段选择、人类可读货币(150.00澳元)、空字段省略、日期格式、分页提示——不是原始JSON转储
- Sidereal生态系统 --
accounting-v1 合约、插件清单、用于调度集成的webhook HMAC-SHA256验证、用于守护进程路由的HTTP传输模式
比较
| 能力 | 施乐刀片mcp | 施乐API/施乐mcp服务器 | 张开发/施乐mcp |
|---|
| 工具 | 53 | 50+ | 16 |
| 令牌高效响应 | 管道分隔、字段选择、摘要 | 原始JSON(完整对象) | 原始JSON |
| 写门控 | 每操作环境变量门控 | 无 | 无 |
| 破坏性操作确认 | confirm=true 作废/删除/存档所需 | 无 | 无 |
| 凭证清理 | JWT、承载、十六进制令牌清理 | 无 | 无 |
| 速率限制 | 内置(60/min,5个并发,429次重试) | 无 | 无 |
| 工资单AU | 员工、时间表、工资单 | 索赔 | 无 |
| Webhook HMAC验证 | 内置工具(HMAC-SHA256) | 无 | 无 |
| 报告 | 损益表、资产负债表、试算表、账龄应收账款/应付账款 | 是 | 有限 |
| 多租户 | XERO_tenant_ID+发现工具 | 是 | 是 |
| 身份验证模式 | 自定义连接+PKCE+静态令牌 | 自定义连接+承载 | OAuth2 |
| 测试 | 414个单元测试 | 未公开 | 部分 |
| Sidereal集成 | accounting-v1合约,插件清单 | 无 | 无 |
| 运行时 | Python(uv) | Node.js(npx) | Node.js |
代币效率:前后
XeroAPI/xero-mcp服务器 (原始JSON,约1200个令牌):
{"Invoices":[{"InvoiceID":"a1b2c3d4-e5f6-7890-abcd-ef1234567890","InvoiceNumber":"INV-0001","Type":"ACCREC","Contact":{"ContactID":"f1e2d3c4-b5a6-7890-fedc-ba0987654321","Name":"Acme Corp","ContactStatus":"ACTIVE","EmailAddress":"billing@acme.com","IsCustomer":true,"IsSupplier":false},"DateString":"2026-03-15T00:00:00","DueDateString":"2026-04-14T00:00:00","Status":"AUTHORISED","SubTotal":1500.00,"TotalTax":150.00,"Total":1650.00,"AmountDue":1650.00,"AmountPaid":0.00,"CurrencyCode":"AUD","LineItems":[{"Description":"Consulting services - March 2026","Quantity":10.0,"UnitAmount":150.00,"LineAmount":1500.00,"AccountCode":"200","TaxType":"OUTPUT"}]}]}
施乐叶片mcp (管道分隔,约60个标记):
INV-0001 | Acme Corp | AUTHORISED | A$1,650.00 AUD | 2026-04-14 | due=A$1,650.00 AUD
代币数量减少16倍 对于相同的信息。对于损益报告,节省的金额甚至更大——结构化表输出与嵌套JSON数组相比。
快速开始
# Install
uv tool install xero-blade-mcp
# Configure (Custom Connection -- recommended)
export XERO_CLIENT_ID="your_client_id"
export XERO_CLIENT_SECRET="your_client_secret"
export XERO_TENANT_ID="your_tenant_id"
# Run
xero-blade-mcp
克劳德桌面/克劳德代码
{
"mcpServers": {
"xero": {
"command": "uvx",
"args": ["xero-blade-mcp"],
"env": {
"XERO_CLIENT_ID": "your_client_id",
"XERO_CLIENT_SECRET": "your_client_secret",
"XERO_TENANT_ID": "your_tenant_id"
}
}
}
}
HTTP传输(远程/隧道访问)
export XERO_MCP_TRANSPORT="http"
export XERO_MCP_HOST="127.0.0.1"
export XERO_MCP_PORT="8770"
export XERO_MCP_API_TOKEN="your-bearer-token" # optional, enables auth
xero-blade-mcp
认证
三种模式,按优先级顺序排列:
| 模式 | 环境变量 | 用例 |
|---|
| 静态令牌 | XERO_ACCESS_TOKEN | 测试,短期(30分钟到期) |
| 自定义连接 | XERO_CLIENT_ID + XERO_CLIENT_SECRET | 生产MCP(推荐,自动刷新) |
| 存储的令牌 | XERO_CLIENT_ID | 在初始PKCE流(令牌持续到 ~/.xero-blade-mcp/tokens.json 仅当存在refresh_token时) |
设置自定义连接
- 首选 developer.xero.com 并创建新应用程序
- 选择“自定义连接”作为应用程序类型
- 选择要连接的组织
- 资助范围:
accounting.transactions, accounting.contacts, accounting.settings, accounting.reports.read, payroll.employees, payroll.timesheets, payroll.payslips - 注意客户端ID和客户端密码
- 使用
xero_connections 查找租户ID的工具
安全模型
写入门
所有创建、更新、删除和作废操作都需要 XERO_WRITE_ENABLED=true。没有它,服务器是只读的。
确认登机口
难以逆转的破坏性操作需要 confirm=true 作为参数:
| 操作 | 闸门 |
|---|
xero_archive_contact | 写+确认 |
xero_void_invoice | 写+确认 |
xero_void_bill | 写+确认 |
xero_delete_payment | 写+确认 |
xero_void_credit_note | 写+确认 |
xero_approve_timesheet | 写+确认 |
凭证清除
所有错误消息都将被清除:
- JWT代币(
eyJ... 图案) - 承载授权标头
- 长十六进制字符串(OAuth令牌、机密)
速率限制
内置速率限制器遵守Xero的API限制:
- 每个租户每分钟60个API调用
- 5个并发请求
- 使用retry-After标头在429上自动重试
配置
| 变量 | 必填 | 描述 |
|---|
XERO_CLIENT_ID | 是\* | OAuth2客户端ID |
XERO_CLIENT_SECRET | 是\* | OAuth2客户端机密(自定义连接) |
XERO_TENANT_ID | 推荐 | 活动组织租户ID |
XERO_ACCESS_TOKEN | 否 | 预先获得的访问令牌(覆盖OAuth) |
XERO_WRITE_ENABLED | 否 | 设置为 true 启用写入操作 |
XERO_WEBHOOK_KEY | 否 | 用于HMAC验证的Webhook签名密钥 |
XERO_MCP_TRANSPORT | 没有 | stdio (默认)或 http |
XERO_MCP_HOST | 否 | HTTP主机(默认值: 127.0.0.1) |
XERO_MCP_PORT | 无 | HTTP端口(默认值: 8770) |
XERO_MCP_API_TOKEN | 否 | HTTP传输身份验证的承载令牌 |
\*要么 XERO_CLIENT_ID + XERO_CLIENT_SECRET 或 XERO_ACCESS_TOKEN 必修的。
工具
Meta(3个工具)
| 工具 | 描述 | R/W |
|---|
xero_info | 连接状态、活动租户、配置 | R |
xero_connections | 列出相关租户/组织 | R |
xero_organisation | 组织详细信息、货币、税务设置 | R |
联系人(5个工具)
| 工具 | 描述 | R/W |
|---|
xero_contacts | 使用搜索、状态筛选器列出联系人 | R |
xero_contact | 带字段选择的联系人详细信息 | R |
xero_create_contact | 创建联系人 | W |
xero_update_contact | 更新联系人字段 | W |
xero_archive_contact | 存档联系人(需要确认) | W+C |
发票(6个工具)
| 工具 | 描述 | R/W |
|---|
xero_invoices | 列出带过滤器的销售发票 | R |
xero_invoice | 发票明细,包括行项目、付款 | R |
xero_create_invoice | 创建销售发票 | W |
xero_update_invoice | 更新草稿/提交的发票 | W |
xero_void_invoice | 无效发票(需要确认) | W+C |
xero_email_invoice | 将发票通过电子邮件发送给联系人 | W |
账单(4个工具)
| 工具 | 描述 | R/W |
|---|
xero_bills | 列出采购账单 | R |
xero_bill | 含行项目的账单明细 | R |
xero_create_bill | 创建采购单 | W |
xero_void_bill | 作废票据(需要确认) | W+C |
银行交易(3种工具)
| 工具 | 描述 | R/W |
|---|
xero_bank_transactions | 列出银行交易记录 | R |
xero_bank_transaction | 交易明细 | R |
xero_create_bank_transaction | 创建支出/收款交易 | W |
付款(4种工具)
| 工具 | 描述 | R/W |
|---|
xero_payments | 列出付款 | R |
xero_payment | 付款明细 | R |
xero_create_payment | 根据发票/账单记录付款 | W |
xero_delete_payment | 删除付款(需要确认) | W+C |
信用票据(3种工具)
| 工具 | 描述 | R/W |
|---|
xero_credit_notes | 列出贷方票据 | R |
xero_create_credit_note | 创建贷记单 | W |
xero_void_credit_note | 作废贷记单(需要确认) | W+C |
采购订单(2个工具)
| 工具 | 描述 | R/W |
|---|
xero_purchase_orders | 列出采购订单 | R |
xero_create_purchase_order | 创建采购订单 | W |
报价(2个工具)
| 工具 | 描述 | R/W |
|---|
xero_quotes | 列出报价 | R |
xero_create_quote | 创建报价 | W |
账户(2个工具)
| 工具 | 描述 | R/W |
|---|
xero_accounts | 带有类型/类别过滤器的科目表 | R |
xero_account | 账户详细信息 | R |
手动日志(1个工具)
| 工具 | 描述 | R/W |
|---|
xero_manual_journals | 列出手动日记账分录 | R |
报告(5个工具)
| 工具 | 描述 | R/W |
|---|
xero_profit_loss | 损益报告,包括日期范围、期间 | R |
xero_balance_sheet | 截至日期的资产负债表 | R |
xero_trial_balance | 截至日期的试算表 | R |
xero_aged_receivables | 账龄应收账款明细 | R |
xero_aged_payables | 账龄应付账款明细 | R |
参考数据(4个工具)
| 工具 | 描述 | R/W |
|---|
xero_tax_rates | 税率和有效百分比 | R |
xero_currencies | 活跃货币 | R |
xero_tracking_categories | 跟踪类别和选项 | R |
xero_branding_themes | 文档的品牌主题 | R |
工资单AU(8个工具)
| 工具 | 描述 | R/W |
|---|
xero_employees | 列出工资单员工 | R |
xero_employee | 员工详细信息(税务、超级、休假) | R |
xero_timesheets | 列出时间表 | R |
xero_timesheet | 带线条的时间表详细信息 | R |
xero_create_timesheet | 创建时间表 | W |
xero_approve_timesheet | 批准时间表(需要确认) | W+C |
xero_payslips | 列出工资单 | R |
xero_payslip | 工资单详细信息(收入、扣除额、超级) | R |
Webhooks(1个工具)
| 工具 | 描述 | R/W |
|---|
xero_verify_webhook | HMAC-SHA256签名验证 | R |
发展
# Setup
git clone https://github.com/groupthink-dev/xero-blade-mcp.git
cd xero-blade-mcp
make install-dev
# Test
make test # 414 unit tests
make test-cov # with coverage report
# Quality
make lint # ruff linter
make format # ruff formatter
make type-check # mypy
make check # all of the above
Sidereal集成
实施 accounting-v1 服务合同。注册于 Sidereal插件注册表.
# sidereal-plugin.yaml
contract: accounting-v1
tier: certified
tools: 53
Xero API范围要求
| 范围 | 涵盖的API |
|---|
accounting.transactions | 发票、账单、银行交易、付款、贷记单、订单、报价 |
accounting.contacts | 联系人 |
accounting.settings | 账户、税率、货币、跟踪、品牌 |
accounting.reports.read | 损益表、资产负债表、试算表、账龄应收账款/应付账款 |
payroll.employees | 员工 |
payroll.timesheets | 时间表 |
payroll.payslips | 工资条、工资单 |
许可证
麻省理工学院