jp-dates MCP Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@jp-dates MCP Server来月の祝日はいつ?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
jp-dates MCP Server 🗾📅
日本の祝日・和暦・日付情報を Claude に提供する MCP (Model Context Protocol) サーバーです。
An MCP server that gives Claude accurate knowledge of Japanese national holidays, wareki (era) conversion, and date info. Works fully offline — no API keys required.
✨ できること / Features
Claude にこんな質問が正確に即答できるようになります:
「来月の祝日はいつ?」
「次の連休まであと何日?」
「令和6年って西暦何年?」「1989年1月7日は昭和?平成?」
「2026年のシルバーウィークはいつ?」
ツール | 説明 |
| 指定年(月)の祝日一覧。振替休日・国民の休日も含む |
| 日付の曜日・祝日判定・和暦表記 |
| 和暦⇔西暦の相互変換(明治〜令和) |
| 次の祝日と残り日数 |
✅ APIキー不要・完全オフライン(祝日はアルゴリズムで算出)
✅ 振替休日・国民の休日・2020/2021年の五輪特例に対応
✅ 対応範囲: 祝日 2020〜2099年 / 和暦 1868年(明治)以降
Related MCP server: JP Business Calendar MCP
🚀 セットアップ / Setup
1. インストール
Node.js 18 以上が必要です。
git clone https://github.com/h-kazuki-pixel/jp-dates-mcp-server.git
cd jp-dates-mcp-server
npm install
npm run buildnpm install の時点で prepare スクリプトによりビルドが実行されます。npm run build を省いても dist/ は生成されますが、明示的に実行しても問題ありません。
2. Claude Desktop に登録
claude_desktop_config.json に以下を追加します。
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"jp-dates": {
"command": "node",
"args": ["/absolute/path/to/jp-dates-mcp-server/dist/index.js"]
}
}
}Claude Desktop を再起動すると、🔌アイコンからツールが確認できます。
3. 使ってみる
Claude にそのまま話しかけるだけです:
「今年の残りの祝日を教えて」 「昭和58年は西暦何年?」
🧪 テスト / Tests
npm testテスト30件。追加の依存はありません(Node標準の node --test のみ)。
祝日の正しさは、内閣府の公表データそのものと突き合わせて検証しています。
照合元: 内閣府「国民の祝日について」の公表CSV(
test/fixtures/syukujitsu.csvとして同梱。文字コードのみ Shift_JIS → UTF-8 に変換し、内容は無改変) https://www8.cao.go.jp/chosei/shukujitsu/syukujitsu.csvCSVと本サーバーの対応範囲が重なる 2020年〜CSV最終年を全件・日付と名称の両方で照合します
CSVは振替休日と国民の休日をどちらも「休日」と記載するため、その1点のみ名称を読み替えて比較します
加えて境界ケースを個別に検証: 五輪特例(2020・2021の海の日/スポーツの日/山の日の移動)、日曜が祝日の場合の振替、翌日も祝日の場合の繰り下がり、国民の休日(敬老の日と秋分の日に挟まれた平日)、春分・秋分の変動、改元境界の和暦変換(1989-01-07/08、2019-04-30/05-01)
CSVが更新されたら差し替えるだけで、対象年が自動的に広がります。
MCP Inspector で対話的に試すこともできます:
npx @modelcontextprotocol/inspector node dist/index.js📝 祝日計算について / Notes
祝日は法律(国民の祝日に関する法律)のルールに基づきアルゴリズムで算出しています
春分・秋分は天文計算の近似式を使用(1980〜2099年で有効)
対応範囲は 2020〜2099年です。範囲外の年を指定した場合はエラーを返します(誤った値を返しません)
将来の法改正には追従が必要です。誤りを見つけたら Issue で教えてください!
🤝 コントリビュート / Contributing
Issue・Pull Request 歓迎です! 機能要望(六曜、旧暦、営業日計算など)もお待ちしています。
📄 License
MIT
Available Tools
4 toolsjp_convert_era和暦⇔西暦変換ARead-only
和暦と西暦を相互変換します。西暦→和暦: dateに日付を指定。和暦→西暦: eraとeraYearを指定(例: era='令和', eraYear=6 → 2024年)。元号はローマ字(Reiwa等)でも指定可能。
| Name | Required | Description | Default |
|---|---|---|---|
| era | No | 元号名(令和/平成/昭和/大正/明治、またはReiwa等) | |
| date | No | 西暦→和暦変換したい日付(YYYY-MM-DD) | |
| eraYear | No | 元号の年(例: 令和6年なら6) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the safety is established. The description adds behavioral context: the conversion direction depends on which parameters are provided, and era names support Romanized forms. It doesn't cover edge cases like conflicting parameters, but the core behavior is disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured: two sentences cover purpose, usage directions, an example, and romanization support. Every sentence carries relevant information without waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple converter with a read-only annotation and full schema coverage, the description is mostly complete. It gives a concrete output example for era→westward, but doesn't explicitly describe the return format for date→era. Still, the conversion concept is clear and the example implies the output form.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides 100% parameter descriptions, so the baseline is 3. The tool description adds value by showing how parameters combine (e.g., era='令和', eraYear=6 → 2024) and clarifying that date is for one direction while era/eraYear are for the other, which is beyond individual schema entries.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool performs bidirectional conversion between Japanese era (和暦) and Western calendar (西暦). It provides specific usage for both directions and distinguishes itself from sibling tools that handle holidays and date info, not era conversion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells which parameters to specify for each conversion direction (w→e: date; e→w: era and eraYear) and includes a concrete example. It doesn't mention when not to use or alternatives, but the tool's unique purpose is obvious.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jp_date_info日付の詳細情報ARead-only
指定した日付の曜日(日本語)・祝日かどうか・和暦表記を返します。日付を省略すると今日(日本時間)の情報を返します。
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | 日付(YYYY-MM-DD形式。例: 2026-07-20) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this as a read-only operation (readOnlyHint=true). The description adds valuable behavioral context by stating that omitting the date returns today's information in Japan time, which is not evident from the schema or annotations. It does not mention error handling or the exact return format, but these are minor for a read-only tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core purpose, and contains no redundant or unrelated information. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read-only tool, the description enumerates the three return components (weekday, holiday flag, era notation) and the default behavior. No output schema exists, so the description shoulders the burden of explaining return values, which it does sufficiently. Minor caveat: it does not specify the exact response structure or how 'holiday' is determined, but this is acceptable for a simple tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema documents the date parameter with format and example. The description adds the key semantic that the parameter is optional and defaults to today (Japan time), which is not present in the schema. This goes beyond the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns the weekday (in Japanese), whether the date is a holiday, and the Japanese era notation for a given date. This specific verb+resource combination distinguishes it from sibling tools like jp_list_holidays (list holidays) and jp_convert_era (convert eras).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for retrieving detailed information about a single date, but it does not explicitly mention when to use this tool over the sibling alternatives or provide any exclusions. Since there are sibling tools, the lack of explicit differentiation is a gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jp_list_holidays日本の祝日一覧ARead-only
指定した年(または年月)の日本の祝日一覧を返します。振替休日・国民の休日も含みます。対応範囲: 2020〜2099年。
| Name | Required | Description | Default |
|---|---|---|---|
| year | Yes | 西暦年(例: 2026) | |
| month | No | 月(省略時は年全体) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, and the description adds that the list includes substitute holidays and national holidays, plus the supported year range. This goes beyond the annotation by specifying scope and inclusion criteria, which helps the agent understand exactly what will be returned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short, front-loaded sentences with no redundancy. It efficiently conveys the main action, additional inclusions, and the valid range.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only holiday list tool, the description fully covers the input scope, output, and constraints. The annotations handle safety, and the schema covers parameters, so no further context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear descriptions for both year and month, so the description adds little beyond what the schema already provides. It does reinforce that month is optional via 'or year/month', which is already evident from the schema's required field list.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool 'returns a list of Japanese holidays for the specified year (or year/month)', using a specific verb and resource. It distinguishes itself from siblings like jp_next_holiday by focusing on listing holidays for a given period rather than finding the next holiday.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context on what the tool does and its supported range (2020-2099), making the use case obvious for holiday list retrieval. However, it does not explicitly mention alternatives or when not to use it, such as pointing to jp_next_holiday for single-next-holiday queries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jp_next_holiday次の祝日ARead-only
指定日(省略時は今日・日本時間)以降で最も近い祝日と、あと何日かを返します。
| Name | Required | Description | Default |
|---|---|---|---|
| from | No | 起点の日付(省略時は今日) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, covering the safety and scope profile. The description adds useful behavioral context: the timezone for the default date (Japan time) and the output contents (holiday date and days remaining). This aligns with the annotations and adds value beyond them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that efficiently conveys the essential behavior: the operation, the input, the default, and the output. Every word earns its place, with no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with one optional parameter and no output schema, the description fully explains the return value and input semantics. It does not need to describe return formatting or error handling given the straightforward nature, and the annotations already cover the safety profile.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema fully describes the 'from' parameter (start date, default today), so the baseline is 3. The tool description enhances this by specifying '日本時間' (Japan time) for the default, adding a meaningful detail not present in the schema description. Thus, it goes slightly beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns the nearest holiday on or after a specified date (default today) and the number of days remaining. This is a specific verb+resource combination that distinguishes it from sibling tools like jp_list_holidays (which lists holidays) and jp_date_info (which provides date details).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context: use it to find the next holiday from a starting date, with today (Japan time) as the default. However, it does not explicitly mention when not to use it or compare against alternatives such as jp_list_holidays, so it stops short of the highest bar.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
4 tool updates
v1.0.0- First observed
jp_convert_era - First observed
jp_date_info - First observed
jp_list_holidays - First observed
jp_next_holiday
TDQS
Each tool serves a clearly distinct function: listing holidays, getting date details, converting eras, and finding the next holiday. There is no overlap in their purposes.
All tools share the 'jp_' prefix and snake_case, but the pattern is not uniform: 'list_holidays' and 'convert_era' are verb_noun, while 'date_info' and 'next_holiday' are not. Minor deviation from a consistent verb_noun pattern.
Four tools is ideal for the narrow domain of Japanese date and holiday utilities. Each tool is essential and there is no bloat.
The tool set covers the main lifecycle of date queries: retrieving holiday lists, getting detailed date info, converting between calendars, and finding upcoming holidays. There are no obvious gaps for its stated purpose.
Maintenance
Related MCP Connectors
Japanese holiday and business-day calculations using official Japan Cabinet Office data.
39 Japanese locale APIs — wareki, NTA invoice, 法人番号, postal, romanization, kanji-kana (Workers AI).
Japan data tools for AI agents: calendar (rokuyo), address, name splitting, corporate number lookup
Public holiday data for 30+ countries. Check holidays, working days and calendars via AI assistants.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceJapanese calendar API for AI agents. Provides Rokuyo, Rekichu, Eto, 24 Solar Terms, and fortune judgments. MCP + REST API.5MIT
- AlicenseNot gradedqualityCmaintenanceEnables Japanese business calendar operations such as holiday checking, business day calculations, payment date calculation, fiscal year determination, and deadline tracking, all locally without external API.MIT
- AlicenseAqualityCmaintenanceEnables AI assistants to perform Japanese business calendar calculations including holiday detection, business day arithmetic, payment date settlement, and deadline management using local data.6MIT
- FlicenseNot gradedqualityDmaintenanceConverts between East Asian lunisolar calendars (Chinese, Japanese, Korean, Vietnamese) and Gregorian/Julian dates using Julian Day Numbers. Provides MCP tools for date conversion and era search.1-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/h-kazuki-pixel/jp-dates-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server