mcp-jp-paid-leave について
mcp-jp-paid-leaveは、日本の法定年次有給休暇を計算するMCPサーバーで、人事や休暇計算を行うクライアント向けです。労働基準法に基づき、付与、出勤率、比例付与、繰越、5日取得義務を計算し、根拠や適用日のメタデータも返します。
主な機能
- 01休暇の付与日と日数を計算
- 02出勤率と分類根拠を確認
- 03パートタイム労働者の比例付与を計算
- 04繰越、失効、残日数を算出
- 055日取得義務を確認
- 06会社規定と法定最低日数を比較
活用シーン
- 01従業員の法定休暇付与を算出
- 02出勤率の要件を満たすか確認
- 03短時間勤務者の比例日数を把握
- 04繰越残日数と5日取得状況を確認
MCP 対応
互換性のあるクライアントに、年次有給休暇計算用の7つのツールを提供します。実行時にネットワークへアクセスせず、ルールの出典、適用日、データの古さに関する警告などを応答に含めます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
7掲載時のツール一覧 · 3 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| hireDate | string | はい | 入社日 (YYYY-MM-DD形式、例: 2026-08-15) |
| grantNumber | integer | はい | 付与回数(第何回目の付与か)。1=第1回(雇入れ後6ヶ月時点), 2=第2回(1年6ヶ月時点)... 7以降は第7回以降(6年6ヶ月以上)としてすべて同じ日数上限になる |
| annualScheduledDays | number | いいえ | 1年間の所定労働日数(週所定労働日数が不定の場合に指定。指定するとweeklyScheduledDaysより優先される) |
| referenceDateMethod | enum | いいえ | 基準日の算定方式。"individual"=原則どおり労働者ごとに個別付与(省略時のデフォルト)。"uniform"=斉一的取扱い(全労働者共通の基準日に統一して前倒し付与)individual | uniform |
| weeklyScheduledDays | integer | いいえ | 週所定労働日数(比例付与を計算したい場合に指定。1〜4日で比例付与対象、5日以上は通常の労働者扱い) |
| weeklyScheduledHours | number | いいえ | 週所定労働時間(任意。30時間以上の場合は比例付与の対象外であることの検証に使う) |
| uniformBasisMonthDays | array | いいえ | 斉一的取扱い(uniform)で使う、会社共通の基準日候補("MM-DD"形式の配列。例: ["04-01"] や ["04-01","10-01"])。referenceDateMethodが"uniform"の場合は必須 |
詳細
mcp-jp-paid-leave
労働基準法に基づき、日本の法定年次有給休暇(「年休」)を計算する MCP(Model Context Protocol)サーバーです。付与日と付与日数、出勤率の確認、パートタイム労働者への比例付与、繰り越し・時効、および5日間の取得義務に対応しています。Claude Desktop などの MCP 対応クライアントから、これらの計算を直接実行できます。
実行時にネットワークアクセスは使用しません。法定ルールはすべて、コード内の定数として組み込まれています。
中核となる設計原則
- このサーバーが返す数値と判定は、すべて労働基準法上の最低基準です。
- 法定の最低基準を上回る会社の規定は、
apply_company_policyの引数として明示的に渡す必要があります。 - すべてのツールの応答には
basisフィールドが含まれます。"legal_minimum":法定の最低基準値"company_policy_applied":会社の規定を適用した後の値(apply_company_policyからのみ返されます)
- 会社の規定値が法定の最低基準を下回る場合、
apply_company_policyは自動的に最低基準まで補正し、warningを返します。 - 法改正への対応:標準付与日数表など、特定の施行日を境に変更されたことが確認されているルールは、「施行日付きのルール世代」として保存され、計算対象日に有効な世代が自動的に選択されます。過去の期間を計算する場合も、当時有効だったルールが使用されます。すべてのツールの応答には
metaフィールドが含まれ、実際に使用された各ルールの施行日と出典 URL、データの最終確認日(dataVerifiedOn)、該当する場合はデータの古さに関する警告が記載されます。以下のバージョン管理ポリシーとメンテナンスポリシーをご覧ください。
免責事項
- このツールは、労働基準法上の最低基準を計算します。出力の正確性は保証されません。
- 就業規則が従業員にとってより有利な条件を定めている場合は、常にこのツールの出力より就業規則が優先されます。
- 懲戒、解雇、給与に関わる事項を含め、重要な労務・人事上の判断を行う際は、必ず有資格の専門家(例:社会保険労務士)に確認してください。
ツール(全7種)
| ツール | 説明 |
|---|---|
calculate_entitlement | 入社日と基準日の算定方法に基づき、指定された付与回の付与日と付与日数を計算します |
check_attendance_rate | 分子・分母の内訳とともに、出勤率要件の80%を満たしているか確認します |
list_grant_schedule | 入社日から指定年数分の付与スケジュールを一覧表示します |
proportional_entitlement | 週または年間の所定労働日数に基づき、パートタイム労働者への比例付与を計算します |
calculate_carryover | 繰り越し、2年の時効期間による消滅、および残日数を計算します |
check_mandatory_five_days | 従業員が5日間の取得義務の対象かどうかを判定し、遵守状況を報告します |
apply_company_policy | 法定の最低基準に会社の規定を適用します。規定が最低基準に満たない場合は補正し、警告を返します |
1. calculate_entitlement
採用日(hireDate)と、計算する付与回数(grantNumber:1 =勤続6か月時点の初回付与、2 =勤続1年6か月時点の2回目の付与、など)を指定します。
referenceDateMethod:「individual」(法定のデフォルト。従業員ごとの基準日)または「uniform」(会社全体で統一された基準日、つまり「斉一的取扱い」)uniformBasisMonthDays:「uniform」を使用する場合は必須です。基準日の候補を「MM-DD」形式で指定する配列です(例:["04-01"]または["04-01","10-01"])weeklyScheduledDays/annualScheduledDays/weeklyScheduledHours:任意項目です。比例付与(パートタイム労働者)の場合に使用します。
「uniform」方式では、サーバーは繰り返しの基準日を正しく計算します。初回の前倒し基準日が決まると、その後の各付与は毎年同じ月日になります。前倒しによって短縮された期間は shortenedPeriod として返されます。また、出勤率の計算ではこの期間を全期間出勤したものとして扱う必要がある旨の注記も返されます(check_attendance_rate を呼び出す際は、欠勤として扱わず、actualWorkedDays などで通常の労働日数として数えてください。未出勤期間として切り分けないでください)。
法定基準日(採用日ではなく statutoryBasisDate)が2001-04-01より前の場合、エラーを返します。現行の付与日数表(1998年法律第112号により導入)は、ほとんどの目的において1999-04-01に施行されましたが、特定の勤続期間区分について付与日数を少なく定めた経過措置が2001-03-31まで適用されていました。このツールはその経過措置を実装していないため、経過措置が完全に終了した2001-04-01を確認済みの下限としています(バージョン管理ポリシーおよびCHANGELOG.mdを参照)。
この下限は、採用日ではなく各付与の基準日に適用されます。 採用日がどれだけ古くても、個々の付与の基準日が2001-04-01以降であれば、その付与は問題なく計算できます。たとえば、1995年採用の従業員について「2026年時点で直近の付与」(第31回付与、基準日2025-10-01)を計算すると、成功します。エラーが返されるのは、各付与の基準日が2001-04-01より前の場合のみです(例:同じ従業員の初回付与、基準日1995-10-01)。
2. check_attendance_rate
休暇の権利を得るための「全労働日の80%」要件を確認します。
設計原則:特定の日を分子に含めるか、分母から除外するかを判断することこそ、このツールが提供すべき価値であり、人間や AI の呼び出し元が最も誤りやすい部分でもあります。そのため、呼び出し元が日数を分類する必要はありません。期間を以下の11の日数フィールドに分解し、そのまま渡してください(asOfDate 以外はすべて必須です。該当するカテゴリがない場合は、明示的に 0 を渡してください。フィールドを省略するとエラーになり、ゼロとはみなされません)。
| 引数 | 意味 |
|---|---|
scheduledWorkingDays | 期間内の所定労働日数の合計(労働義務のある日数。所定休日を除く) |
actualWorkedDays | 実際に勤務した日数 |
paidLeaveTakenDays | 取得した年次有給休暇の日数 |
workInjuryOrIllnessLeaveDays | 業務上の負傷または疾病による休業日数 |
maternityLeaveDays | 産前産後休業の日数(労働基準法第65条) |
childcareOrFamilyCareLeaveDays | 育児休業または介護休業の日数 |
employerCausedSuspensionDays | 使用者の責に帰すべき事由による休業日数(使用者に起因する経営上の理由や操業上の障害による休業を含む) |
lawfulLaborDisputeDays | 適法なストライキまたは労働争議により労務の提供がなかった日数 |
forceMajeureSuspensionDays | 不可抗力による休業日数 |
workedOnScheduledDayOffDays | 当初は所定休日だった日に勤務した日数 — scheduledWorkingDays には含めません |
otherAbsenceDays | 上記のいずれのカテゴリにも該当しない通常の欠勤(無断欠勤、私傷病など) |
scheduledWorkingDays は、他の9つのフィールド(workedOnScheduledDayOffDays 以外)の合計と一致する必要があります。一致しない場合はエラーとなり、ツールが整合する数値を推測することはありません。
労働基準法第39条第10項/第65条、昭和22年9月13日付け基発第17号、および平成25年7月10日付け基発0710第3号に基づき、ツールは各フィールドを内部で次の4種類の扱いに分類します。
- 分子に加算:
actualWorkedDays、paidLeaveTakenDays、workInjuryOrIllnessLeaveDays、maternityLeaveDays、childcareOrFamilyCareLeaveDays - 通常の欠勤(分母に含め、分子には加算しない):
otherAbsenceDays - 総労働日数(分母)から除外:
employerCausedSuspensionDays、lawfulLaborDisputeDays、forceMajeureSuspensionDays(基発0710第3号、第1項第3号) - 一切カウントしない(日数の算定時点で所定労働日ではない):
workedOnScheduledDayOffDays(基発0710第3号、第1項第1号)
結果の breakdown.classification には、各フィールドの日数、適用される扱い、およびその扱いの具体的な法的根拠(法令または通達)が常に含まれます。
3. list_grant_schedule
calculate_entitlement と同じ引数に、numberOfYears(一覧に表示する付与回数)を加えたものです。
勤続年数が長く、初期の付与日の根拠日が確認済みの下限(2001-04-01)より前になる従業員の場合、呼び出し全体が失敗することはありません。該当する付与は、付与日数を示さない supported: false のプレースホルダーとして返され、それ以外の付与は supported: true として通常どおり計算されます。各項目の supported フィールドを確認してください。
4. proportional_entitlement
週所定労働日数(1~4日)または年間所定労働日数に基づき、比例付与される休暇日数を計算します。週所定労働時間が30時間以上、または週所定労働日数が5日以上の場合はエラーを返します(そのような労働者には標準表を使用します)。
5. calculate_carryover
grants:付与記録の配列(grantDate、grantedDays)usageRecords:使用記録の配列(date、days)asOfDate:評価の基準日
各付与分は、付与日から2年後に失効します(労働基準法第115条)。使用日数は最も古い付与分から順に消化されます(これは一般的な慣行であり、明文の法定ルールではありません。就業規則で別途定められている場合は、そちらに従ってください)。
6. check_mandatory_five_days
年次有給休暇が10日以上付与された従業員について、付与日から1年以内に5日を取得させる使用者の義務を遵守しているかを判定します(労働基準法第39条第7項・第8項)。従業員本人の希望による取得日数や、計画的付与制度による取得日数も、5日の要件に算入されます。
この義務は、2019年4月1日に施行された改正によって導入されました。付与日(grantDate)がそれより前の場合は、付与日数にかかわらず、この義務の対象外として従業員を報告します。これは、その時点では義務自体が存在していなかったためです。
7. apply_company_policy
legalMinimumDays(別のツールで算出した法定最低日数)と、companyPolicyDays(任意。会社の規定日数)を渡します。会社の規定日数が法定最低日数に満たない場合、結果は自動的に法定最低日数に修正され、warningが付与されます。
各レスポンスのmetaフィールド
すべてのツールレスポンスには、法定計算とは別にmetaブロックが含まれます。
"meta": {
"dataVerifiedOn": "2026-07-28",
"rulesUsed": [
{
"rule": "Standard grant-days table (Labor Standards Act Article 39)",
"effectiveFrom": "2001-04-01",
"sources": [{ "label": "...", "url": "https://..." }]
}
],
"staleWarning": null
}
dataVerifiedOn:このサーバーのデータを一次資料と照合して最後に確認した日付です。rulesUsed:このレスポンスの計算に実際に使用したルールです。確認済みの場合に限り、その施行日と出典URLも含まれます。staleWarning:次のいずれかに該当する場合の日本語と英語による警告メッセージです(該当しない場合はnull)。dataVerifiedOnから6か月を超えて経過している(実際の現在時刻と比較)、または- 計算対象日が確認日から2年を超えて先の日付である(それまでに法改正が行われている可能性があります)。
バージョン管理ポリシー
- 法定データの更新(付与日数表、比例付与表、適用要件など)は、すべてマイナーバージョンを上げます(例:1.1.0 → 1.2.0)。パッチバージョンはバグ修正とドキュメントの更新に限られます。
- ツールの引数に対する破壊的変更(既存の呼び出し元に影響するパラメーターの追加・削除・意味の変更)は、すべてメジャーバージョンを上げます(例:1.3.0 → 2.0.0)。
- 法定データと仕様の変更は、対応した改正または変更の時期と内容を記載し、CHANGELOG.mdに記録します。
- 過去の法改正は、施行日を持つ「ルール世代」として蓄積します。既存の世代は書き換えず、新たな世代を追加することで、過去の期間に対する結果に影響しないようにします。
保守ポリシー
- 保守担当者は、労働基準法、その施行規則、または関連する厚生労働省の通達・指針が改正された場合に、
src/leaveRules.tsを更新する予定です。このサーバーは実行時にネットワーク接続を行わないため、改正を反映するには手動での更新が必要です。 - 法改正(施行日と変更内容)をご存じの場合は、GitHub Issuesからお知らせください:https://github.com/skypier-jp-works/mcp-jp-paid-leave/issues
- 重要な労務・人事上の判断を行う前に、
meta.dataVerifiedOnとmeta.staleWarningを確認し、必要に応じて最新の法令または有資格者にご相談ください。
出典(一次資料)
法定ルールは、記憶に頼るのではなく、以下の一次資料を実際に取得して確認したうえで実装しています
(最終確認日:2026-07-28)。法改正によって数値が変更された場合は、
src/leaveRules.ts を手動で更新する必要があります(このサーバーは実行時にネットワーク通信を行いません)。
- 労働基準法の現行条文(第39条第1項、第2項、第3項、第7項、第8項、第10項、第13条、第115条、 第120条):e-Gov法令検索 https://laws.e-gov.go.jp/law/322AC0000000049
- 標準付与日数表の導入、施行日(1999-04-01)、経過措置のスケジュール(2001-03-31まで):労働基準法の一部を改正する法律(1998年法律第112号)附則第1条、第135条 https://www.shugiin.go.jp/internet/itdb_housei.nsf/html/housei/h143112.htm
- 比例付与の要件と表(別表第1):労働基準法施行規則第24条の3 https://laws.e-gov.go.jp/law/322M40000100023
- 年次有給休暇の取得日の出勤みなしの扱い:昭和22年9月13日付け基発第17号 https://www.mhlw.go.jp/web/t_doc?dataId=00tb1896&dataType=1&pageNo=1
- 全労働日から除外される日:平成25年7月10日付け基発0710第3号 https://www.mhlw.go.jp/web/t_doc?dataId=00tb9536&dataType=1&pageNo=1
- 基準日の一律化(「斉一的取扱い」)/分割付与の要件:平成6年1月4日付け基発第1号 https://www.mhlw.go.jp/web/t_doc?dataId=00tb1911&dataType=1&pageNo=1
- 年5日取得義務の導入と施行日(2019-04-01):働き方改革を推進するための関係法律の整備に関する法律(2018年法律第71号)附則第1条、第4条 https://www.shugiin.go.jp/internet/itdb_housei.nsf/html/housei/19620180706071.htm (参考資料として、厚生労働省の解説リーフレットも掲載しています) https://www.mhlw.go.jp/content/001140963.pdf
未確認事項(正確な情報開示)
- 比例付与表が現在の形式になった時期は確認できていません。数値は現行のe-Gov条文と一致していますが、施行日は明示していません(
src/leaveRules.tsのPROPORTIONAL_GRANT_TABLEを参照)。 - 出勤率80%の要件または2年間の消滅時効期間が制定以降に変更されたことがあるかどうかは確認していません。現行の法令本文と一致することのみ確認しています。
- 2年間の消滅時効期間(労働基準法第115条)の条文には「年次有給休暇」と明記されていません。 一般規定(「賃金以外の請求権:2年」)であり、有給休暇の請求権がこれに該当することは、明文の法令上の記載ではなく、行政解釈と確立した実務に基づいています。
- 2001-04-01より前に適用されていた正確な付与日数(1999~2001年の経過措置期間中を含む)は確認できていません。この期間の計算はエラーを返します。
セットアップ
1. 必要条件
- Node.js(LTSを推奨)
node --version
2. 依存関係をインストールする
npm install
3. ビルドする
npm run build
これにより、build/index.js が生成されます。
Claude Desktopから使用する
以下をClaude Desktopの設定ファイル(claude_desktop_config.json)に追加します。
{
"mcpServers": {
"jp-paid-leave": {
"command": "node",
"args": ["/absolute/path/mcp-jp-paid-leave/build/index.js"]
}
}
}
設定ファイルの場所:
- Windows:
%APPDATA%\Claude\claude_desktop_config.json - macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
その後、Claude Desktopを再起動すると、calculate_entitlement などのツールを利用できるようになります。
テストの実行
38件の自動テストですべての機能を網羅しています。
npm test
すべての行に ✔(成功)が表示されるはずです。
プロジェクト構成
mcp-jp-paid-leave/
├── src/
│ ├── leaveRules.ts … statutory rule constants (generations with effective dates), source citations
│ ├── dataMeta.ts … rule-generation selection + staleness-warning infrastructure
│ ├── errors.ts … shared validation error class
│ ├── dateUtil.ts … shared date-arithmetic utilities
│ ├── leaveCalc.ts … core calculation logic (entitlement, attendance rate, carryover, etc.)
│ └── index.ts … the MCP server itself (exposes the 7 tools)
├── tests/
│ ├── leaveCalc.test.ts … automated tests
│ └── dataMeta.test.ts … tests for rule-generation selection and staleness warnings
├── package.json
├── tsconfig.json
├── CHANGELOG.md … record of statutory-data updates and spec changes
├── LICENSE
├── README.md … this file
└── README.ja.md … Japanese version
関連ツール
同じ作者によるその他の MCP サーバー:
- mcp-jp-calendar — 日本の営業日、祝日、五十日(ごとうび)の決済日、会計四半期を計算します
- mcp-jp-corporate-id — 日本の法人番号と適格請求書発行事業者の登録番号を検証し、正規化します
ライセンス
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。