内容
# xero-expenses-mcp
Xero会计的MCP(模型上下文协议)服务器。支持发票、账单、费用(银行交易)和费用申报,带有PKCE身份验证。
## 功能
- **发票(ACCREC)** - 创建销售发票发送给客户
- **账单(ACCPAY)** - 创建稍后支付的账单
- **费用** - 创建已付费用的“支出资金”银行交易
- **费用申报** - 创建收据并提交费用申报以报销
- **附件** - 将PDF和图像附加到发票、账单、费用和收据
- **PKCE身份验证** - 桌面应用程序OAuth流程(无需客户端密钥)
## 安装
```bash
npx xero-expenses-mcp
```
或全局安装:
```bash
npm install -g xero-expenses-mcp
```
## Xero应用程序设置
1. 访问 [Xero开发者门户](https://developer.xero.com/app/manage)
2. 创建新应用程序:
- **应用程序名称**:您的选择(例如,“费用管理器”)
- **集成类型**:“移动或桌面应用程序”(使用PKCE,不需要密钥)
- **重定向URI**:`http://localhost:3000/callback`
3. 记录您的 **客户端ID**
## Claude Code配置
将以下内容添加到您的Claude Code MCP设置中:
```json
{
"mcpServers": {
"xero-expenses": {
"command": "npx",
"args": ["xero-expenses-mcp"],
"env": {
"XERO_CLIENT_ID": "您的客户端ID"
}
}
}
}
```
或使用CLI:
```bash
claude mcp add xero-expenses -- npx xero-expenses-mcp
```
然后在您的shell或`.env`文件中设置环境变量。
## 环境变量
| 变量 | 是否必需 | 描述 |
|----------|----------|-------------|
| `XERO_CLIENT_ID` | 是 | 您的Xero应用程序的客户端ID |
| `XERO_CLIENT_SECRET` | 否 | 仅适用于Web应用程序(非PKCE) |
| `XERO_REDIRECT_URI` | 否 | 默认:`http://localhost:3000/callback` |
## 身份验证
首次使用时,服务器将为Xero OAuth打开浏览器。身份验证后,令牌存储在 `~/.xero-mcp/token.json` 中。
## 可用工具
### 账户和联系人
- `xero_list_accounts` - 列出费用账户/类别
- `xero_list_bank_accounts` - 列出银行账户
- `xero_list_contacts` - 搜索供应商/联系人
- `xero_list_users` - 列出组织用户(用于费用申报)
### 发票(应收账款)
- `xero_create_invoice` - 创建销售发票发送给客户
- `xero_attach_file_to_invoice` - 将文件附加到发票
### 账单(应付账款)
- `xero_create_bill` - 创建未来付款的账单
- `xero_attach_file` - 将文件附加到账单
### 费用(银行交易)
- `xero_create_expense` - 创建“支出资金”交易
- `xero_attach_file_to_expense` - 将文件附加到费用
### 费用申报(2026年2月弃用)
- `xero_create_expense_claim` - 创建收据 + 费用申报
- `xero_attach_file_to_receipt` - 将文件附加到收据
## 示例用法
在Claude Code中:
```
"为2024-01-15在Cafe Example的45.50美元午餐创建费用,分类为商务餐费(账户620)"
```
Claude将使用 `xero_create_expense_claim` 工具,参数如下:
```json
{
"vendorName": "Cafe Example",
"amount": 45.50,
"description": "午餐",
"accountCode": "620",
"date": "2024-01-15"
}
```
## 令牌存储
令牌存储在 `~/.xero-mcp/token.json` 中。要重新身份验证,请删除此文件。
## 许可证
MIT