mcpField
B
bizdays

bizdays

本地服务
github.com/qinisolabs生产力118 周前更新

关于 bizdays

bizdays 是面向需要跨国工作日计算的 Agent 的 TypeScript 库和 MCP 服务。它依据公共假日历及各国周末规则计算,并说明排除了哪些日期。

主要功能

  1. 01增加或扣减工作日
  2. 02统计日期区间内的工作日
  3. 03检查某日是否为工作日
  4. 04查找下一个或上一个工作日
  5. 05查询国家的周末规则

适用场景

  1. 01计算跨越公共假日的截止日期
  2. 02统计日期范围内的工作日
  3. 03确认沙特阿拉伯的星期五是否为工作日

MCP 相关

通过 stdio 和托管的 Cloudflare Worker 端点,向 MCP 客户端提供六种工作日及国家规则工具。同一套工具定义也可作为 TypeScript 库使用。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"qinisolabs-bizdays": {
"command": "npx",
"args": [
"-y",
"@qinisolabs/bizdays"
]
}
}
}
启动命令npx -y @qinisolabs/bizdays

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@qinisolabs/bizdays0.2.0

工具

6

收录的工具列表 · 更新于 2 周前

参数类型必填说明
daysinteger是要增加的工作日数;负数表示减去。
startstring是开始日期,YYYY-MM-DD。
countrystring是ISO 3166-1 alpha-2 国家/地区代码,例如 US、GB、AE、SA、ZA。
extraHolidaysarray否可选的额外非工作日期(YYYY-MM-DD),例如公司停工日。

详细介绍

Qiniso

bizdays

为 AI Agent 提供经过验证的工作日计算——包含节假日和各国周末规则,而非猜测。

为 AI Agent 提供经过验证、值得信赖的数据工具。“Qiniso”在祖鲁语中意为“真相”。

网站 · npm · MCP 端点 · MCP Registry


大模型自信地回答“英国从 12 月 22 日起 5 个工作日后是几号?”“这个月有多少个工作日?”以及“沙特阿拉伯的星期五是工作日吗?”,但往往答错——它们会数错天数、忘记公共节假日,还会假设每个国家的周末都是星期六和星期日。bizdays 根据真实的公共节假日日历和各国周末规则,为 Agent 提供确定的答案,并列出周末规则以及跳过的具体节假日。

有两个问题会导致朴素的工作日计算出错,bizdays 会同时解决这两个问题:并非所有地方的周末都是星期六和星期日(沙特阿拉伯、埃及和以色列是星期五和星期六;伊朗是星期五;印度是星期日;阿联酋自 2022 年起是星期六和星期日),而且**“节假日”必须指真正的休息日**——现成数据会将情人节和圣诞前夜等并非休息日的纪念日也计算在内。

计算一个月中的工作日时,不使用工具的前沿大模型冷启动时有 63% 的概率答错;在所有工作日问题中,答错率为 23%。bizdays:0%。

添加到 Claude

设置 → 连接器 → 添加自定义连接器,然后粘贴以下内容——无需登录,无需密钥:

https://bizdays.qinisolabs.workers.dev/mcp

无状态,不读取用户数据,也不需要任何密钥。想通过 stdio 在本地运行?在客户端配置的 mcpServers 下添加 { "command": "npx", "args": ["-y", "@qinisolabs/bizdays"] }。

将其用作库

每个工具也都是一个带类型的函数——无需 MCP:

npm i @qinisolabs/bizdays
import { addBusinessDays, countBusinessDays, isBusinessDay } from "@qinisolabs/bizdays";

addBusinessDays("2025-12-22", 5, "GB").result;       // "2025-12-31" (skips Christmas + Boxing Day)
countBusinessDays("2025-12-01", "2025-12-31", "US"); // { businessDays: 22, ... }
isBusinessDay("2025-06-13", "SA").isBusinessDay;      // false — Friday is weekend in Saudi Arabia
isBusinessDay("2025-02-14", "US").isBusinessDay;      // true  — Valentine's Day is not a public holiday

每个函数都会返回丰富的结果:答案、星期几、具体跳过了哪些周末和命名节假日、周末规则及其来源,以及置信度标记。

功能 — 6 个工具

工具可回答的问题
add_business_days从起始日期起,N 个工作日后是哪一天?(N 可以为负数)
count_business_days两个日期之间有多少个工作日?(默认包含起止日期)
is_business_day该日期是工作日吗?如果不是,原因是什么(周末/公共节假日及其名称)?
next_business_day某日期之后严格意义上的第一个工作日
previous_business_day某日期之前严格意义上的最后一个工作日
country_rule周末规则及其来源、是否适用节假日,以及置信度标记

206 个国家(及其行政区划)的公共节假日数据来自 date-holidays,并筛选 type: "public"。周末数据来自运行时 Intl API 中的 Unicode CLDR,并通过精心整理的 data/weekend-overrides.json 修正层进行更正(例如孟加拉国为星期五和星期六,尼泊尔仅星期六)——持续维护的数据正是我们的护城河。

它不是什么

  • 并非包含所有节假日。 它只计算周末和公共节假日,不包括地区性或可选纪念日。公司停工日或地区性日期可通过 extraHolidays 传入。
  • 并非所有数据都经过同等验证。 约 65 个 Tier-1 国家已通过验证;其他国家也可用,但会标记为 unverified。如果某个国家没有节假日日历(例如卡塔尔、科威特、阿曼),仍会采用正确的周末规则,并在响应中说明(holidaysApplied: false)。
  • 不依赖在线服务。 该库不会发出网络请求;日期均为 UTC 时区下的 YYYY-MM-DD。

架构

一个 TypeScript 包通过两种传输方式提供同一个 MCP 服务——stdio(本地/npx)和 Cloudflare Worker(托管的边缘端点)——二者均由同一组 core.ts 工具定义驱动,这些定义也为可导入的库提供支持。

npm install
npm run build
npm test

隐私

此工具在您的设备上本地运行,设计上不会收集、存储或传输您的数据——没有分析、没有遥测,也无需账户。所有参考数据均已打包——不会发起网络请求,也不会有任何数据离开您的设备。完整政策:https://qinisolabs.github.io/privacy.html。

许可证

Apache-2.0。打包的节假日数据来自 date-holidays(ISC AND CC-BY-3.0);请参阅 NOTICE。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。