关于 Bexio MCP
Bexio MCP 是一个 MCP 服务,用于连接瑞士会计软件 Bexio,支持发票、联系人、项目、工时和会计等操作。适合在 Claude Desktop、n8n 或其他 MCP 客户端中处理瑞士企业账务的用户。
主要功能
- 01发票与报价全流程管理
- 02联系人与 CRM 管理
- 03项目与工时记录
- 04会计科目与日记账查询
- 05按类别限制可用工具
适用场景
- 01通过对话查询逾期发票
- 02在对话中创建发票草稿
- 03汇总项目工时并生成客户收入报表
MCP 相关
该项目是一个 MCP 服务,向 MCP 客户端暴露 Bexio 的大量工具,并支持 stdio 与 HTTP 两种传输方式。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
200收录的工具列表 · 更新于 3 周前
此工具无需参数。
详细介绍
@promptpartner/bexio-mcp-server
通过 Model Context Protocol (MCP) 与 Bexio 实现完整的瑞士会计集成。兼容 Claude Desktop、n8n 以及任何兼容 MCP 的客户端。
通过 AI 对话或工作流自动化管理发票、联系人、项目、时间跟踪等 300 多种工具。
⚠️ 早期发布软件
本项目仍在积极开发中。虽然目前已可正常使用并经过测试,但你可能会遇到错误或意外行为。我们会持续添加和改进功能。欢迎报告你发现的问题!
兼容性
| 客户端 | 传输方式 | 状态 |
|---|---|---|
| Claude Desktop | stdio | ✅ 完全支持 |
| n8n | HTTP | ✅ 完全支持 |
| 其他 MCP 客户端 | stdio/HTTP | ✅ 应该可用 |
快速开始
用于 Claude Desktop
选项 A:MCPB Bundle(最简单)
- 从 GitHub Releases 下载最新的
.mcpb文件 - 将其安装到 Claude Desktop 中,以下任一方式均可:
- 双击
.mcpb文件(或将其拖到 Claude Desktop 窗口中),或 - 前往 Settings → Extensions → Advanced settings,在 Extension Developer 下点击 Install Extension…,然后选择该文件
- 双击
- 按提示输入 Bexio API 令牌。令牌会存储在操作系统的钥匙串中。
- 可选:在扩展设置中开启 Interactive panels,以启用发票预览、联系人卡片和仪表板。
无需安装 Node.js:Claude Desktop 使用内置的 Node.js 运行扩展。 从 2.6.1 或更早版本升级?如果 Claude Desktop 提示,请重新输入令牌。
选项 B:npm(手动配置)
需要 Node.js(LTS)。在 Claude Desktop 中,打开 Settings → Developer → Edit Config 并添加:
{
"mcpServers": {
"bexio": {
"command": "npx",
"args": ["-y", "@promptpartner/bexio-mcp-server"],
"env": {
"BEXIO_API_TOKEN": "your-token-here"
}
}
}
}
配置文件位置:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
然后完全退出并重启 Claude Desktop。请注意,此文件会以纯文本形式保存令牌;扩展(选项 A)则会将其存储在钥匙串中。
用于 n8n 和其他 HTTP 客户端
以 HTTP 模式启动服务,并设置 bearer 令牌:
BEXIO_API_TOKEN=your-token BEXIO_HTTP_TOKEN=$(openssl rand -hex 32) \
npx @promptpartner/bexio-mcp-server --mode http --host 127.0.0.1 --port 8000
客户端随后应在每个请求中发送 Authorization: Bearer <BEXIO_HTTP_TOKEN>(健康检查 GET / 除外,该端点保持开放)。
**安全性:**每个工具都可以读取或更改你的账簿。如果没有设置
BEXIO_HTTP_TOKEN,HTTP 端点将不需要身份验证:在0.0.0.0(默认值)上运行时,任何能够访问端口的人都可以使用这些端点;由于 CORS 允许任意来源,即使服务器仅监听本地回环地址,也可以被浏览器中打开的网页调用。未设置令牌时,服务启动会发出警告。通过 HTTP 使用本地文件路径(upload_file的file_path、download_file的output_path)会被拒绝,除非BEXIO_FILE_DIR指定了用于限制访问范围的目录。
服务通过 HTTP 在 http://localhost:8000 提供 MCP。配置 MCP 客户端连接到此端点。
用于其他 stdio 客户端
BEXIO_API_TOKEN=your-token npx @promptpartner/bexio-mcp-server
或者从源代码构建:
git clone https://github.com/PromptPartner/bexio-mcp-server
cd bexio-mcp-server/src
npm install && npm run build
BEXIO_API_TOKEN=your-token node dist/index.js
获取 Bexio API 令牌
- 前往 developer.bexio.com
- 使用你的常规 Bexio 账户登录
- 前往 Personal Access Tokens
- 点击 Create New Token
- 复制令牌并在配置中使用
功能
此 MCP 服务在 Bexio 的所有领域中提供 315 种工具:
联系人和 CRM
- 创建、更新和搜索联系人
- 联系人群组、行业、称谓、头衔
- 管理联系人关系
发票和销售
- 完整的发票生命周期(创建、开具、发送、取消)
- 支持接受/拒绝工作流的报价
- 管理订单交付
- 跟踪收款
- 交互式发票预览(Claude Desktop)
银行与支付
- 支持瑞士 QR 账单付款(QR-IBAN)
- 标准 IBAN 付款(ISO 20022)
- 货币管理(CHF、EUR)
- 银行账户管理
项目与时间跟踪
- 项目管理(含类型和状态)
- 里程碑和工作包
- 工时表条目(含时长跟踪)
- 业务活动和沟通类型
会计
- 会计科目表
- 手动日记账分录,包括汇总分录(Sammelbuchung:一张凭证,多笔过账)
- 按日期范围和科目查询日记账;计算科目余额(Saldenliste)
- 会计年度和 VAT 期间
- 科目组
采购与费用
- 账单(应付账款发票)
- 费用和采购订单
- 对外付款
文件与文档
- 上传/下载文档;可直接从本地文件路径上传(无需通过聊天传输 base64)
- 文件管理
薪资(需要 Bexio Payroll 模块)
- 员工管理
- 缺勤跟踪
- 薪资文档
示例
以下是使用 Claude 和 Bexio MCP 服务的一些实际示例:
示例 1:查找逾期发票
提示词:
“显示所有逾期发票”
执行过程:
Claude 使用 get_overdue_invoices 工具查询 Bexio,获取所有已超过到期日的发票。
响应:
找到 3 张逾期发票:
发票编号 客户 金额 到期日 逾期天数 INV-2024-001 Acme AG CHF 2,450.00 2024-01-15 18 天 INV-2024-003 Tech GmbH CHF 890.50 2024-01-20 13 天 INV-2024-007 Swiss Corp CHF 5,200.00 2024-01-25 8 天 逾期总额:CHF 8,540.50
示例 2:创建发票
提示词:
“为联系人 ‘Sunrise AG’ 创建一张发票,包含两个项目:10 小时咨询服务,每小时 CHF 150;以及一份 CHF 500 的软件许可证”
执行过程:
Claude 使用 find_contact_by_name 查找客户,然后使用 create_invoice 创建发票,并填入指定的明细项目。
响应:
已为 Sunrise AG 创建发票 INV-2024-015:
- 10x 咨询小时 @ CHF 150.00 = CHF 1,500.00
- 1x 软件许可证 @ CHF 500.00 = CHF 500.00
小计:CHF 2,000.00 VAT(8.1%):CHF 162.00 总计:CHF 2,162.00
发票处于草稿状态。发送“签发发票 INV-2024-015”即可完成开票。
示例 3:项目工时汇总
提示词:
“这个月在项目 ‘Website Redesign’ 上记录了多少工时?”
执行过程:
Claude 使用 search_projects 查找项目,然后使用 search_timesheets 按项目和日期范围筛选工时条目。
响应:
“Website Redesign”上的记录工时(2024 年 1 月):
团队成员 工时 活动 Anna M. 24:30 设计、会议 Marco K. 18:15 开发 Lisa B. 8:00 内容撰写 总计:50 小时 45 分钟
已用预算:50.75 小时,共 80 小时(63%)
示例 4:客户收入报告
提示词:
“我今年从 ‘Tech Solutions GmbH’ 获得了多少收入?”
执行过程:
Claude 使用 find_contact_by_name 确认客户,然后使用 get_customer_revenue_report 计算已付款发票的总收入。
响应:
来自 Tech Solutions GmbH 的收入(2024 年):
- Q1:CHF 12,450.00(3 张发票)
- Q2:CHF 8,200.00(2 张发票)
- Q3:CHF 15,800.00(4 张发票)
- Q4:CHF 6,500.00(2 张发票,1 张待处理)
已收款总额:CHF 42,950.00 待收款:CHF 3,200.00
环境变量
| 变量 | 必需 | 默认值 | 描述 |
|---|---|---|---|
BEXIO_API_TOKEN | 是* | - | 你的 Bexio API 令牌(单家公司) |
BEXIO_API_TOKENS | 是* | - | 多家公司 — 参见多家公司 |
BEXIO_DEFAULT_COMPANY | 否 | first | 启动时处于活动状态的公司 |
BEXIO_BASE_URL | 否 | https://api.bexio.com/2.0 | API 端点 URL |
BEXIO_ENABLED_CATEGORIES | 否 | (全部) | 以逗号分隔的工具类别白名单 — 参见下文 |
BEXIO_HTTP_TOKEN | HTTP 推荐设置 | - | 每个 HTTP 端点都需要的 Bearer 令牌,GET / 除外 |
BEXIO_FILE_DIR | 否 | - | upload_file 的 file_path / download_file 的 output_path 所允许访问的目录。通过 HTTP 使用本地路径时必需;通过 stdio 使用时可选,用于额外限制访问范围 |
BEXIO_DOWNLOAD_INLINE_MAX_BYTES | 否 | 64000 | download_file 会以内联 base64 形式返回不超过此大小的文件;更大的文件会写入磁盘 |
* 提供 BEXIO_API_TOKEN(一家公司)或 BEXIO_API_TOKENS(多家公司)之一。
减少令牌用量 — 类别白名单
默认情况下会注册所有工具。对于专注型工作流或较小的模型,仅注册部分工具可减少系统提示词的令牌开销。将 BEXIO_ENABLED_CATEGORIES 设置为以逗号分隔的列表:
BEXIO_ENABLED_CATEGORIES=contacts,invoices,purchase,banking,quotes,projects
可用类别:reference、company、banking、projects、
timetracking、accounting、purchase、files、payroll、contacts、
invoices、orders、quotes、payments、reminders、deliveries、
items、reports、users、misc、notes、tasks、stock、docs、
positions。未知名称会被忽略(并记录到 stderr);为空或未设置时,将启用所有类别
(向后兼容)。
多家公司(Mandates)
Bexio 会将每个 API 令牌绑定到单家公司(mandate) — 不存在可跨公司使用的令牌。要使用多家公司,请为每家公司生成一个令牌(先在 Bexio 中切换到该公司,然后选择“Settings → API Tokens”),并将所有令牌配置在同一个服务实例上。两个新工具 — list_companies 和 select_company — 可让你在对话中切换当前公司(“在 Globex 中,列出未结发票”)。这样就无需为每家公司运行一个服务,也避免了由此产生的重复工具上下文。
将 BEXIO_API_TOKENS 设置为以逗号分隔的 label:token 键值对列表(或 JSON 对象),以替代或配合 BEXIO_API_TOKEN。BEXIO_DEFAULT_COMPANY 用于指定启动时处于活动状态的公司(默认为第一家公司):
{
"mcpServers": {
"bexio": {
"command": "npx",
"args": ["@promptpartner/bexio-mcp-server"],
"env": {
"BEXIO_API_TOKENS": "Acme:token-for-acme,Globex:token-for-globex",
"BEXIO_DEFAULT_COMPANY": "Acme"
}
}
}
}
然后,只需向 Claude 提出类似 “切换到 Globex 并显示本月的发票。” 这样的请求。list_companies 会显示已配置的公司以及当前处于活动状态的公司;在多公司模式下,每个响应也会注明 active_company,因此始终能明确结果来自哪家公司。令牌绝不会被记录或返回。只有在设置了 BEXIO_API_TOKENS 时,才会显示这两个控制工具,因此单公司配置不受影响。
HTTP/n8n 注意事项: 当前活动公司是进程级全局设置。对于并发的多租户 HTTP 部署,请为每家公司运行一个实例。
命令行选项
npx @promptpartner/bexio-mcp-server [options]
Options:
--mode <stdio|http> Transport mode (default: stdio)
--host <address> HTTP host (default: 0.0.0.0)
--port <number> HTTP port (default: 8000)
故障排查
“Invalid API token” 错误
- 在 developer.bexio.com > Personal Access Tokens 中验证令牌
- 确认令牌尚未过期
- 检查令牌是否具有所需权限
“Connection refused” 错误
- 检查互联网连接
- 确认 BEXIO_BASE_URL 正确(默认值:https://api.bexio.com/2.0)
工资工具返回 “module not available”
- 工资工具需要订阅 Bexio Payroll 模块
- 联系 Bexio 支持以启用该模块
Claude Desktop 看不到服务
- 完全退出 Claude Desktop(不只是关闭窗口),并在更改配置后重启
- 检查是否已连接:点击消息框中的 + → 连接器 → 管理连接器
- 对于 JSON 配置:检查适用于你操作系统的文件路径,并确认 JSON 有效
- 检查日志:
~/Library/Logs/Claude/mcp-server-*.log(macOS)或%APPDATA%\Claude\logs(Windows)
隐私政策
此 MCP 服务充当 Bexio API 的直通层,不存储任何数据。详情请参阅我们的隐私政策。
你的数据将按照 Bexio 的隐私政策进行处理。
支持
- 问题与错误报告: GitHub Issues
- 电子邮件: [email protected]
支持此项目
如果此项目为你节省了时间或帮助了你的业务,不妨请我喝杯咖啡!☕
你的支持有助于持续维护和改进此项目!
作者
由 PromptPartner.ai 的 Lukas Hertig 创建
致谢
此项目基于 bryner.tech 的 Sebastian Bryner 创建的原始 Bexio MCP 服务。其 v1.0 实现提供了基础架构和最初的 83 个工具,使扩展后的 v2.0 成为可能。
开发工具
从 83 个工具扩展到 314 个工具的开发使用了:
- GSD Framework - 用于结构化 AI 辅助开发工作流的 “Get Shit Done” 规划框架
这些工具帮助将预计需要 4 周的项目变成了 2 天即可完成的现实,展现了 AI 增强型软件开发的潜力。
免责声明
这是一个独立的社区驱动项目,与 Bexio AG 没有任何关联、未获其认可,也并非由其官方提供。“Bexio” 是 Bexio AG 的商标。此项目仅提供一个与公开提供的 Bexio API 对接的集成层。
使用本软件的风险由你自行承担。作者不对因将本软件与 Bexio 账户配合使用而产生的任何问题负责。
许可证
MIT - 详情请参阅 LICENSE。
Star 历史
链接
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。