关于 Business Days & SLA
Business Days & SLA 是面向支持、计费和运营团队的离线日期计算 MCP 服务,处理节假日相关的工作日和 SLA 时限,也可解析 cron 与 RFC 5545 重复规则;不会调度或运行任务。
主要功能
- 01查询工作日和节假日
- 02计算工作日偏移与区间
- 03计算工作时段内的 SLA 截止时间
- 04验证并解释 cron 表达式
- 05解析重复规则并列出发生时间
适用场景
- 01查找节假日后的下一个工作日
- 02按营业时段计算 SLA 截止时间
- 03检查 cron 表达式的下次触发时间
- 04展开 RFC 5545 规则以查看后续日期
MCP 相关
它通过 MCP 工具提供日期、SLA、cron 和重复规则计算。服务使用内置公共节假日规则离线运行;cron 和重复规则解析不会调度或执行任务。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://vessark.com/mcpclaude mcp add --transport http vessark-business-days https://vessark.com/mcp{"mcpServers":{"vessark-business-days":{"type":"http","url":"https://vessark.com/mcp"}}}在 Cursor 中打开{"servers":{"vessark-business-days":{"type":"http","url":"https://vessark.com/mcp"}}}在 VS Code 中打开{"mcpServers":{"vessark-business-days":{"type":"http","url":"https://vessark.com/mcp"}}}{"mcpServers":{"vessark-business-days":{"serverUrl":"https://vessark.com/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
详细介绍
business-days-mcp
一个用于处理日期计算的 MCP 服务,满足支持、计费和运营团队的实际需求:某天是否为工作日、这个 SLA 何时到期、银行假日后的下一个工作日是哪天——此外,还支持 cron 和重复规则解析,以处理同类工作的重复性部分。
它可离线运行。不会发起网络请求、存储数据或调用模型——所有答案都根据内置的公共假日规则计算得出。
功能
工作日和 SLA——支持约 150 个国家及其下属地区的假日规则(英格兰和苏格兰有所不同;美国各州也有所不同),由 holidays 软件包提供。
| 工具 | 回答的问题 |
|---|---|
is_business_day | 这天是工作日吗?如果不是,是周末还是某个命名假日? |
next_business_day / previous_business_day | 某个日期前后的下一个/上一个工作日 |
add_business_days | 从某个日期起前进或后退 ±N 个工作日 |
business_days_between | 两个日期之间有多少个工作日(左闭右开) |
first_business_day_of_month / last_business_day_of_month | 月初和月末的边界日期 |
sla_due_time | 只计算开放时段时,N 个工作小时的 SLA 何时到期? |
Cron 和重复规则——仅解析。 不会安排、存储或执行任何任务;没有计时器,也没有任务存储。如果你想要某项任务按计划运行,这就不是你要找的工具。
| 工具 | 回答的问题 |
|---|---|
validate_cron_expression / explain_cron_expression | 这个 cron 表达式有效吗?用英语来说是什么意思? |
next_cron_occurrences | 接下来会在什么时候触发? |
validate_recurrence_rule / explain_recurrence_rule | 对 RFC 5545 RRULE 进行同样的验证和解释 |
next_recurrence_occurrences | 展开 RRULE,获取接下来的发生时间 |
安装和运行
托管端点无需安装——请参阅客户端配置。如果要自行运行,uvx 会获取并运行它:
uvx --from git+https://github.com/Vessark/business-days-mcp business-days-mcp
从克隆的仓库运行:
git clone https://github.com/Vessark/business-days-mcp
cd business-days-mcp
uv sync && uv run business-days-mcp
uv run pytest # the tests are the documentation
客户端配置
托管版本——无需安装
最快的接入方式。工具相同,无需安装,也无需凭据:
{
"mcpServers": {
"vessark": {
"url": "https://vessark.com/mcp"
}
}
}
自行运行
如果你不想依赖他人的服务可用性,可以在本地运行——代码完全相同,而且绝不会访问网络:
{
"mcpServers": {
"business-days": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/Vessark/business-days-mcp",
"business-days-mcp"
]
}
}
}
示例
// is_business_day — 2026-12-28, UK
{"date": "2026-12-28", "country": "GB"}
→ {"is_business_day": false, "reason": "holiday: Boxing Day (substitute day)"}
// sla_due_time — 8 business hours from Monday 16:00
{"start": "2026-07-27T16:00", "business_hours": 8}
→ {"due": "2026-07-28T16:00:00", "started_within_business_hours": true}
// explain_cron_expression
{"expression": "30 9 * * MON-FRI"}
→ {"explanation": "At 09:30, on Monday through Friday."}
设计说明
每个工具都是其参数的纯函数,因此测试套件大多由表格构成。无效输入会作为常规的类型化结果返回,绝不会抛出异常——如果模型传入了错误参数,会收到易读的原因说明并能自行修正。所有可由调用方影响的循环都有执行上限,因此任何请求都无法触发高成本计算。错误消息绝不会复述你发送的内容,因此该服务无法被用来向他人的 Agent 转发文本。
明确说明而不加掩饰的已知限制:默认工作周为周一至周五,因此按周日到周四为工作日的国家在这一假设下会得到错误结果;假日数据仅覆盖底层数据集已知的年份,超出该范围的日期会被拒绝,而不会被默默当作普通工作日处理。
相关项目
fbdo/business-day-mcp 已支持工作日和假日计算,且早于本服务。如果这就是你的全部需求,请使用它——它还提供时区感知的“今天”及假日列表功能,而本服务不提供这些功能。
本服务的设计重点不同:计算仅包含工作时间的 SLA 计时,以及处理同类工作重复性部分的 cron / RRULE 解析。工作日工具确有重叠,名称也都是惯用叫法;两个服务均采用 MIT 许可证,且都基于出色的 holidays 软件包构建。
发布
在 pyproject.toml 和 server.json 中更新版本号,然后推送匹配的标签:
git tag v0.2.0 && git push origin v0.2.0
这会运行测试套件,检查标签与两个版本字段是否一致,发布到 PyPI,并重新发布到 MCP registry。两者都使用 GitHub OIDC——PyPI 通过 Trusted Publishing 实现——因此此仓库、密钥存储或任何机器上都没有 API 令牌。
关于
由 Vessark 构建并维护。本仓库中的工具属于免费层,并以 MIT 许可证开源。Vessark 的工作区工具——也就是在已连接的工作区中运行的工具——是商业产品,不开源。
欢迎提交问题和拉取请求。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。