用途
bizdays 旨在为 AI 智能体提供经过验证的工作日数学计算能力。大语言模型在回答诸如“英国 12 月 22 日后的 5 个工作日是哪天?”“这个月有多少个工作日?”“沙特阿拉伯的周五是工作日吗?”等问题时,常常自信却错误——它们会算错、忘记公共假日,并默认所有国家的周末都是周六和周日。bizdays 通过真实的公共假日日历和各国周末规则,为智能体提供确定性的答案,并展示所采用的周末规则以及跳过的具体假日。
主要能力
bizdays 提供 6 个工具,覆盖以下功能:
- 工作日加减:在指定日期上增加或减少工作日数量。
- 工作日计数:计算某个月或某个日期区间内的工作日数量。
- 查找下一个工作日:根据国家规则找到下一个工作日。
- 判断某天是否为工作日:结合周末规则和公共假日进行判断。
每个函数返回丰富的结果:答案、星期几、跳过的周末和具名假日、周末规则及其来源,以及一个置信度标志。
数据来源方面,206 个国家(及行政区)的公共假日来自 date-holidays,并过滤为 type: "public"。周末规则来自 Unicode CLDR(通过运行时 Intl API),并辅以人工维护的 data/weekend-overrides.json 修正层(例如孟加拉国为周五/周六,尼泊尔仅周六)。
使用方式
接入 Claude
在 Claude 中,进入 Settings → Connectors → Add custom connector,粘贴 MCP 端点即可——无需登录,无需密钥。该服务无状态,不读取用户数据,不需要任何机密信息。
本地运行
如果偏好通过 stdio 在本地运行,可在客户端配置的 mcpServers 下添加:
{ "command": "npx", "args": ["-y", "@qinisolabs/bizdays"] }
作为库使用
每个工具同时也是类型化函数,无需 MCP 即可调用。
适用场景
- AI 智能体需要准确回答涉及工作日、公共假日、周末规则的问题。
- 跨国业务场景中,需要根据特定国家的周末和假日规则计算日期。
- 开发者在应用中集成工作日计算功能,避免自行维护假日数据。
限制
- 并非包含所有假日:仅计算周末和公共假日,不包括地区性或可选纪念日。公司停业日或地区性假日可通过 extraHolidays 传入。
- 并非全部经过验证:约 65 个国家属于 Tier-1 已验证集合;其他国家可用但会被标记为未验证。对于没有假日日历的国家(如卡塔尔、科威特、阿曼),仍会应用正确的周末规则,并在响应中说明(holidaysApplied: false)。
- 不是实时服务依赖:该库不进行网络调用;日期格式为 UTC 的 YYYY-MM-DD。
技术架构
单个 TypeScript 包,通过两种传输方式暴露一个 MCP 服务器:stdio(本地 / npx)和 Cloudflare Worker(托管边缘端点)。两者由相同的 core.ts 工具定义驱动,这些定义也支撑可导入的库。
隐私与许可
该工具在本地运行,不收集、存储或传输用户数据——无分析、无遥测、无账户。所有参考数据均已打包,无网络调用,数据不会离开设备。完整政策见 https://qinisolabs.github.io/privacy.html。
采用 Apache-2.0 许可。捆绑的假日数据来自 date-holidays(ISC AND CC-BY-3.0);详见 NOTICE。