Bizdays

io.github.qinisolabs由 GitHub 账号 qinisolabs 发布v0.2.0更新于 Oct 24, 2026

Verified business-day math for AI agents: holidays + per-country weekends, not guesses.

已验证STDIO仅桌面效率与工作流数据与分析

概览

AI 生成的概览

为助手提供确定性的工作日计算:增减或统计工作日、判断某日是否为工作日,并查询各国周末规则。

可以做什么
提供六个工具:add_business_days、count_business_days、is_business_day、next_business_day、previous_business_day 和 country_rule。答案基于 206 个国家(及行政区)的公共假日日历和各国周末规则,每次结果都会说明星期几、周末规则及其来源、跳过了哪些具名假日,并给出置信标记。它只计算周末和公共假日,不含地区性或可选纪念日。
适用场景
适合助手需要真正推算工作日而非猜测的场景:安排截止日期、统计某月的工作日数,或判断某一天在特定国家是否为工作日。当答案需要考虑周末并非周六周日的国家,或需要考虑真实公共假日时,值得加入。
运行要求
以本地进程通过 stdio 运行,例如用 npx 运行 npm 包 @qinisolabs/bizdays。未声明任何账号、API 密钥、环境变量或请求头。参考数据已内置,库本身不发起网络请求;说明中还提到一个托管远程端点。
安装前请注意
说明称约 65 个国家属于已核验的第一梯队,其余国家可用但会标记为 unverified;在没有假日日历的地方仍会应用周末规则,并返回 holidaysApplied 为 false。它只计算公共假日,公司停业日或地区性假日需由调用方通过 extraHolidays 传入。说明称其不收集数据、不发起网络请求。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Bizdays,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

[Qiniso]

bizdays

Verified business-day math for AI agents — holidays + per-country weekends, not guesses.

Verified, trustworthy data tools for AI agents. "Qiniso" means "truth" in Zulu.

Website · npm · MCP endpoint · MCP Registry


LLMs answer "what date is 5 business days after Dec 22nd in the UK?", "how many working days are in this month?", and "is Friday a working day in Saudi Arabia?" confidently and often wrongly — they miscount, forget public holidays, and assume every country's weekend is Saturday/Sunday. bizdays gives an agent the deterministic answer from real public-holiday calendars and per-country weekend rules, showing the weekend rule and the exact holidays it skipped.

Two things break naive business-day math, and bizdays fixes both: weekends aren't Sat/Sun everywhere (Fri/Sat in Saudi Arabia, Egypt & Israel; Fri in Iran; Sun in India; Sat/Sun in the UAE since 2022), and "holiday" must mean a real day off — off-the-shelf data counts observances like Valentine's Day and Christmas Eve, which are not days off.

Counting the working days in a month, a frontier LLM with no tools is wrong 63% of the time, cold — and 23% across business-day questions overall. bizdays: 0%.

Add it to Claude

Settings → Connectors → Add custom connector, and paste — no login, no key:

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

Stateless, reads no user data, requires no secrets. Prefer to run it locally over stdio? Add { "command": "npx", "args": ["-y", "@qinisolabs/bizdays"] } under mcpServers in your client config.

Use it as a library

Every tool is also a typed function — no MCP required:

bash
npm i @qinisolabs/bizdays
ts
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 ArabiaisBusinessDay("2025-02-14", "US").isBusinessDay;      // true  — Valentine's Day is not a public holiday

Every function returns a rich result: the answer, the weekday, exactly which weekends and named holidays were skipped, the weekend rule and its source, and a confidence flag.

What it does — 6 tools

ToolWhat it answers
add_business_daysWhat date is N working days from a start date? (N may be negative)
count_business_daysHow many working days between two dates? (endpoints inclusive by default)
is_business_dayIs this date a working day? If not, why (weekend / public holiday with its name)?
next_business_dayFirst working day strictly after a date
previous_business_dayLast working day strictly before a date
country_ruleThe weekend rule + its source, whether holidays apply, and a confidence flag

Public holidays for 206 countries (and subdivisions) come from date-holidays, filtered to type: "public". Weekends come from Unicode CLDR via the runtime Intl API, plus a curated data/weekend-overrides.json correction layer (e.g. Bangladesh Fri/Sat, Nepal Sat-only) — the maintained data is the moat.

What it is not

  • Not all-holidays. It counts weekends and public holidays only — not regional or optional observances. Pass company shutdowns or regional days via extraHolidays.
  • Not uniformly verified. A Tier-1 set of ~65 countries is verified; others work but are flagged unverified. Where no holiday calendar exists (e.g. Qatar, Kuwait, Oman), the correct weekend still applies and the response says so (holidaysApplied: false).
  • Not a live service dependency. The library makes no network calls; dates are YYYY-MM-DD in UTC.

Architecture

A single TypeScript package exposing one MCP server over two transports — stdio (local / npx) and a Cloudflare Worker (the hosted edge endpoint) — both driven by the same core.ts tool definitions, which also power the importable library.

bash
npm installnpm run buildnpm test

Privacy

This tool runs locally on your machine and is built not to collect, store, or transmit your data — no analytics, no telemetry, no account. All reference data is bundled — no network calls, and nothing leaves your device. Full policy: https://qinisolabs.github.io/privacy.html.

License

Apache-2.0. Bundled holiday data is from date-holidays (ISC AND CC-BY-3.0); see NOTICE.

来源:README.md,提交 7712d8a

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

1
  1. v0.2.0最新Sep 16, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分