关于 delegacja
delegacja 是用于计算商务出差每日补贴的 MCP 服务,面向需要依据波兰、英国 HMRC 或美国 GSA 费率核算差旅的人。它使用随包发布的费率表,并保存行程记录。
主要功能
- 01查询各方案的费率及来源
- 02计算每日补贴与总额
- 03按规则扣除已提供的餐食
- 04保存、列出和删除行程
- 05生成费用跟踪器所需参数
适用场景
- 01核算波兰境内或境外出差补贴
- 02依据 HMRC 费率核算英国差旅
- 03按 GSA 标准估算美国差旅补贴
- 04将已保存行程整理为费用数据
MCP 相关
向 MCP 客户端提供费率查询、差旅计算、行程记录、报告和导出工具。trip_export 返回供 expense-tracker 使用的 expense_add 参数。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
mcp-per-diem
根据税务机关实际发布的费率表,计算商务差旅的每日津贴,并保存已核算的行程。提供目的地、出发和返回时间,以及由他人支付的餐食,就能得到每天的金额和总额,均使用对应方案的货币;部分日期规则和每项餐食扣减都会与计算结果一同显示。该工具包含三种方案:波兰派遣条例(国内及各国费率)、HMRC 英国境内旅行基准费率,以及美国 GSA CONUS 标准 M&IE 和住宿费率。费率表以文件形式打包,不是实时数据,因此同一行程重复核算会得到相同结果;每项费率都附有条例、来源 URL 和生效日期。所有数据都不会离开你的设备。
由 theluckystrike 构建。
已收录于官方 MCP Registry(io.github.theluckystrike/per-diem)。

安装
一键安装(.mcpb):从最新版本下载 per-diem.mcpb,然后在 Claude Desktop 中双击:
https://github.com/theluckystrike/mcp-servers/releases/latest
托管服务,无需安装:将基于 URL 的客户端指向 https://mcp.zovo.one/mcp/per-diem。GET https://mcp.zovo.one/mcp/connect 会生成令牌并打印可直接使用的 URL。
@theluckystrike/mcp-per-diem 的 npm 发布尚未完成,因此下面的 npx 命令目前会返回 404。
Claude Desktop(~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"per-diem": {
"command": "npx",
"args": ["-y", "@theluckystrike/mcp-per-diem"]
}
}
}
Claude Code:
claude mcp add per-diem -- npx -y @theluckystrike/mcp-per-diem
Cursor(~/.cursor/mcp.json 或 .cursor/mcp.json):使用与 Claude Desktop 相同的配置项。
工具
| 工具 | 功能 |
|---|---|
perdiem_rates | 列出某项方案打包的费率,包含主管机关、法规文件、来源 URL 和生效日期。可按国家或城市筛选。 |
perdiem_calc | 核算一趟行程:每日津贴和总额,以及部分日期的比例和该方案规则所规定的餐食扣减。 |
trip_record | 核算行程并以指定名称保存,同时使用共享商务资料中的旅行者信息。 |
trip_list | 列出已保存的行程,并按币种显示总额。 |
trip_delete | 删除尚未导出且未记入任何费用的已保存行程,并释放其占用的免费版名额。 |
trip_export | 为已保存的行程生成精确的 expense_add 参数,每种币种对应一个 payload,供费用跟踪服务使用。 |
perdiem_report | 按方案和日历月份汇总金额,使用各方案对应的货币。 |
license_status | 查看免费版或 Pro 版状态,以及升级方式。 |
license_activate | 激活 Pro 密钥。离线验证。 |
免费版与 Pro 版
| 免费版 | Pro 版 | |
|---|---|---|
perdiem_rates、perdiem_calc | 是,无限制 | 是 |
| 每个日历月保存的行程数 | 5,按开始日期计算 | 无限制 |
trip_list | 是,无限制 | 是 |
trip_delete | 是,无限制 | 是 |
trip_export | 否 | 是 |
perdiem_report | 否 | 是 |
获取 Pro:一次性支付 $19,或支付 $39 购买套装。
表格中有什么,以及刻意没有放入什么
src/tables/ 下的每张表都有一个 header,其中包含主管机构、法规、来源 URL、费率生效日期和读取日期。perdiem_rates 会在返回费率的同时返回该 header,因此费率的来源信息会伴随数值一起提供。
纳入表格的规则是:凡是无法根据公开法规文本有把握地确定的数值,都不会纳入,而不是靠猜测。 每日津贴金额最终会填入纳税申报表。一个看似权威却错误的金额比缺失金额更糟,因为缺失金额会明确告知你该金额不可用,你可以自行查找。
| 表格 | 已纳入 | 未纳入 |
|---|---|---|
| 波兰,国内 | 45.00 PLN 的每日津贴、150% 的住宿定额补贴,以及部分时段和餐食规则 | 列出了 20% 的本地交通定额补贴,但不会支付:它不属于生活津贴 |
| 波兰,国外 | 附录中的 34 个国家,以及每日津贴和对应货币 | 其余约 90 个国家,以及每个国家的住宿限额。缺少某个国家表示“此处未经核实”,而不是“不存在费率” |
| 英国,国内 | HMRC 的全部四档基准费率(5、10 和 15 小时档,以及深夜补贴) | 无 |
| 英国,海外 | **无。**该文件附带的费率列表为空,并在 header 中说明了这一点 | 完整的按城市划分的海外标准费率表:约 250 个城市,每个城市有 8 项金额,使用目的地货币。此构建无法有把握地给出这些金额,因此一个也未纳入。perdiem_calc {scheme:"uk"} 会明确拒绝海外目的地,并指向 HMRC 页面 |
| 美国,GSA | FY2025 和 FY2026 的 CONUS 标准 M&IE 和住宿上限,以及公布的餐食明细 | 约 300 个非标准地区(纽约市、旧金山等)。目的地若不在这些地区之列,仍适用标准费率;这正是此表提供的内容 |
费率会变化。请先查看任何答案中的 effective_date,再决定是否依赖该答案;如果行程时间较近,请阅读 source_url。
计算器采用的规则
- **开始和结束时间都是时间点,而不是墙上时钟时间。**请传入带时区偏移的 ISO 8601 格式(
2026-03-28T22:00:00+01:00),或本地日期时间加上 IANAtimezone。经过的小时数按 Unix 时间戳之差计算,因此跨越夏令时切换的行程可能是 23 或 25 小时,而不是 24 小时。 - 波兰从出发时间起按每 24 小时为一个时段计算。国内行程不足 24 小时:不足 8 小时不计,8 至 12 小时计半份,每日津贴超过 12 小时计一整份。超过 24 小时:每个时段计一整份,剩余时间不超过 8 小时计半份,超过 8 小时计一整份。国外行程按阶梯计算:不超过 8 小时计三分之一,超过 8 小时且不超过 12 小时计半份,超过 12 小时计一整份。免费餐食会使国内每日津贴扣减 25%/50%/25%,国外每日津贴扣减 15%/30%/30%。
- 英国按时长档支付:离开 5 小时支付 5.00 GBP,离开 10 小时支付 10.00 GBP,离开 15 小时且行程在晚上 8 点仍未结束时支付 25.00 GBP;不足 5 小时不支付。若提供了餐食,会按比例扣除对应档位的餐食份额。HMRC 说明了这一原则(“已提供的餐食不予支付相应费率”);按比例计算是此服务对此原则的解读,答案中也会说明这一点。
- 美国按目的地时区的日历日计算,首日和末日按 M&IE 的 75% 计。提供的餐食按其公布金额扣除,而 5.00 USD 的杂费永不扣除。住宿费用是有收据报销的上限,而不是直接支付的津贴;答案每次都会说明这一点。
- **不同货币绝不相加。**此服务没有汇率,因此 PLN 每日津贴和 EUR 每日津贴会分别保留为两个数值。
导出到费用跟踪器
trip_export 会返回 expense-tracker 服务所需的确切 expense_add 参数,每种货币对应一个负载,并且不会自行写入任何内容。这是有意为之:expense-tracker 没有提供库入口,其 ID 计数器、类别规则、增值税拆分和货币默认值都位于它自己的 expense_add 处理程序中,并受其自身的锁保护。直接向其 data.json 追加一行,会生成一笔未应用上述规则的费用:看起来是原生记录,实际上并非如此。返回这些参数,与 kanban 为 time-tracker 的 timer_start 返回参数遵循同一约定。
负载中不会设置 vat_rate。法定每日津贴是一种补助,而非购买,因此没有可申报抵扣的进项增值税。
一个值得留意的发现
通过子字符串匹配国家名称,会让每日津贴悄无声息地按另一个国家的费率计算。
第一个版本先按完全匹配的名称解析目的地,再匹配 ISO 代码,最后使用 country.includes(destination)。一次前往阿曼的行程返回了以欧元计价的结果,没有任何警告:"romania".includes("oman") 的结果是 true,所以它采用了罗马尼亚的 42.00 EUR 津贴。阿曼不在此版本内置的 34 个国家之列,因此正确做法应该是拒绝计算并指出缺失的国家。结果却是,调用方得到了一个看似可信、但币种错误且来自 3,000 km 外国家的数字。
修复只需一行代码,回退匹配改为至少匹配四个字符的前缀,并在 test/adversarial.test.mjs 中加入了断言。这个一般性原则比修复本身更值得注意:漏配后果轻微时,模糊匹配是安全的;漏配悄无声息时,代价就很高。这里的漏配会产生税务数字,因此回退机制必须在无法确定时拒绝计算。刻意只包含部分国家的费率表,正是子字符串回退如此危险的原因:费率表完整时,错误行只是一个近似匹配;费率表不完整时,它匹配到的行本不该被匹配到。
隐私
所有数据都保留在你的机器上。行程以 JSON 格式存储在 ${XDG_DATA_HOME:-~/.local/share}/mcp-servers/per-diem/ 下。费率表是软件包中的文件。此服务不会进行任何网络调用,无需账户或 API 密钥。许可证密钥会离线验证。
许可证
MIT。支持邮箱:[email protected]
将这些文档用作 MCP 服务
任何 MCP 客户端(Claude、Cursor、Windsurf、VS Code)都可以通过 GitMCP 直接读取此代码库的文档,无需安装:
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。