bizdays について
bizdaysは、国をまたぐ営業日計算を必要とするエージェント向けのTypeScriptライブラリ兼MCPサーバーです。祝日カレンダーと国ごとの週末ルールに基づいて計算し、除外した日付も示します。
主な機能
- 01営業日の加算・減算
- 02期間内の営業日数を計算
- 03指定日が営業日か確認
- 04次または前の営業日を検索
- 05国ごとの週末ルールを参照
活用シーン
- 01祝日を考慮した期限の計算
- 02期間内の営業日数の集計
- 03サウジアラビアで金曜が営業日か確認
MCP 対応
stdioとホスト型Cloudflare Workerエンドポイントを通じて、営業日計算と国別ルールの6つのツールをMCPクライアントに公開します。同じツール定義はTypeScriptライブラリとしても利用できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
6掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| days | integer | はい | 加算する営業日数。負の値は減算を表します。 |
| start | string | はい | 開始日、YYYY-MM-DD。 |
| country | string | はい | ISO 3166-1 alpha-2 国コード。例:US、GB、AE、SA、ZA。 |
| extraHolidays | array | いいえ | 追加の休日(YYYY-MM-DD)。例:会社の休業日。 |
詳細
bizdays
AI エージェント向けの検証済み営業日計算 — 推測ではなく、祝日と国ごとの週末ルールに基づきます。
AI エージェント向けの、検証済みで信頼できるデータツールです。「Qiniso」はズールー語で「真実」を意味します。
ウェブサイト · npm · MCP エンドポイント · MCP レジストリ
LLM は「英国で12月22日の5営業日後は何日ですか?」「今月の営業日は何日ありますか?」「サウジアラビアでは金曜日は営業日ですか?」といった質問に、自信たっぷりに、そしてしばしば間違って答えます。数え間違えたり、祝日を忘れたり、どの国でも週末は土曜日と日曜日だと思い込んだりします。bizdays は、実際の祝日カレンダーと国ごとの週末ルールからエージェントに確定的な答えを提供し、適用された週末ルールと除外した祝日を正確に示します。
単純な営業日計算を誤らせる要因は2つあり、bizdays はその両方を解決します。週末がどこでも土日とは限りません(サウジアラビア、エジプト、イスラエルでは金・土曜日、イランでは金曜日、インドでは日曜日、UAEでは2022年以降は土・日曜日)。そして、「祝日」は実際に休みとなる日を意味する必要があります。既製のデータには、バレンタインデーやクリスマスイブのように休みではない記念日が含まれていることがあります。
ある月の営業日数を数えるとき、ツールを持たない最先端の LLM は、何も情報を与えない状態では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 | 2つの日付の間に営業日は何日ありますか?(デフォルトでは両端の日付を含みます) |
| 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 パッケージが、2種類のトランスポートで1つの 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 を参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。