World Public Holidays
Server Details
Public holidays, business days and long weekends for about 250 countries, in each local time zone.
- Status
- Healthy
- Uptime
- 100.0% over 25 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 4 tools
Each tool has a distinct primary action: counting business days, classifying dates, listing holidays, and finding long weekends. There is some overlap because check_dates and list_holidays both surface holiday status, and business_days and check_dates both involve business-day logic, but the descriptions make the intended use cases reasonably clear.
All names use consistent snake_case: business_days, check_dates, find_long_weekends, list_holidays. Three follow a verb_noun pattern, while business_days is a noun phrase, but the overall convention remains predictable.
Four tools is well-scoped for a focused public-holiday API. Each tool covers a distinct common query pattern without redundant surface area.
The set covers listing holidays, checking specific dates, calculating business days, and finding long weekends. Together these address the main lifecycle of holiday-related queries, including make-up working days and Japan-specific holiday kinds.
Available Tools
4 toolsbusiness_daysBusiness daysARead-onlyIdempotentInspect
Count business days between start and end (inclusive), or find the date that is N business days after start (add=N; negative N goes backward; start itself is not counted). Uses the country's weekend days, public holidays and make-up working days. For Japan, set year_end_closed to also skip 12/29-1/3.
| Name | Required | Description | Default |
|---|---|---|---|
| add | No | Move this many business days from start. | |
| end | No | Count up to this date (inclusive). | |
| start | Yes | YYYY-MM-DD | |
| region | No | Outside Japan: state/province code (ISO 3166-2 suffix, e.g. CA for California) to include regional holidays. | |
| country | No | ISO 3166-1 alpha-2 country code (e.g. US, GB, DE, CN, JP). Defaults to JP (Japan) when omitted. | JP |
| year_end_closed | No | Japan only. | |
| include_government | No | Outside Japan: also treat days off only for government offices (e.g. Indonesia's cuti bersama, Canadian federal holidays) as days off. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so safety is covered; the description adds real behavioral context: weekend days, public holidays and make-up working days are factored in per country, and start is excluded from counts. It does not discuss return format or edge cases like range limits, but the added semantics are solid.
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?
Three dense sentences, front-loaded with the primary operation, with each clause (inclusive end, negative N, start not counted, Japan flag) carrying distinct information. Nothing is redundant.
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 7-parameter date tool with no output schema, the description covers both modes, country-specific holiday logic, and the one non-obvious flag. It leaves the exact return shape (count vs. date string) only implicit and does not explain region or include_government beyond the schema text.
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%, so parameters are already documented, and the description adds some meaning beyond it: the sign convention for add, the exclusion of start, and the concrete Japan year-end window (12/29-1/3) that the schema only labels 'Japan only'. Baseline 3 applies since the schema carries most of the load.
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?
States two specific verbs (count business days between start/end, or find the date N business days from start) on a named resource. This is clearly the counting/offset tool, distinguishable from siblings like list_holidays or find_long_weekends, though it never explicitly names those alternatives.
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?
Explains how to select each mode: end for counting, add=N for forward offset, negative N for backward, and start itself is not counted. It also gives a conditional instruction (For Japan, set year_end_closed), but does not state when to prefer this tool over the sibling date tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_datesCheck datesARead-onlyIdempotentInspect
For each date, tell whether it is a public holiday in the country (with its name and status), a weekend, and a business day, including make-up working days such as China's 调休. Also returns today in that country's time zone. For Japan, the kind is also given: 祝日 (national holiday) / 振替休日 (substitute holiday) / 国民の休日 (citizens' holiday).
| Name | Required | Description | Default |
|---|---|---|---|
| dates | Yes | ||
| region | No | Outside Japan: state/province code (ISO 3166-2 suffix, e.g. CA for California) to include regional holidays. | |
| country | No | ISO 3166-1 alpha-2 country code (e.g. US, GB, DE, CN, JP). Defaults to JP (Japan) when omitted. | JP |
| year_end_closed | No | Japan only: treat 12/29-1/3 as non-business days (common in Japanese companies). | |
| include_government | No | Outside Japan: also treat days off only for government offices (e.g. Indonesia's cuti bersama, Canadian federal holidays) as days off. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, non-destructive safety, but the description adds substantive behavior beyond them: per-date holiday name/status, weekend/business-day classification, make-up working days, today in local time zone, and Japan holiday kinds. It does not cover unsupported country/date errors, but adds clear return semantics.
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?
Three sentences, front-loaded with core function and no obvious filler; the Japan holiday-kind detail is useful but broadens scope. Could be slightly tighter, but appropriately sized.
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?
With no output schema, the description must carry return meaning; it does explain the key classifications and local 'today' return. It leaves output structure and edge-case handling unstated, so not fully complete.
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 80%, so the schema already documents most parameters. The description mentions country context and Japan-specific behavior, but does not explain region, year_end_closed, or include_government beyond what the schema provides.
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?
States a specific verb ('tell whether') and resource (each date) and enumerates outputs: holiday/weekend/business day, today in the country's time zone, and Japan-specific holiday kinds. Clear enough on its own, but does not name sibling tools like business_days or list_holidays to differentiate.
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?
No when-to-use or when-not-to-use guidance is provided, and it does not mention alternatives such as business_days, find_long_weekends, or list_holidays. Usage is only implied by the query it performs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_long_weekendsFind long weekendsARead-onlyIdempotentInspect
Find long weekends: 3+ consecutive days off made of weekends and public holidays in the country (e.g. Japan's Golden Week, China's National Day Golden Week). Give a year, or from (default today) to list upcoming ones.
| Name | Required | Description | Default |
|---|---|---|---|
| from | No | List long weekends ending on or after this date (default: today in the country). | |
| year | No | ||
| limit | No | ||
| region | No | Outside Japan: state/province code (ISO 3166-2 suffix, e.g. CA for California) to include regional holidays. | |
| country | No | ISO 3166-1 alpha-2 country code (e.g. US, GB, DE, CN, JP). Defaults to JP (Japan) when omitted. | JP |
| min_length | No | ||
| include_government | No | Outside Japan: also treat days off only for government offices (e.g. Indonesia's cuti bersama, Canadian federal holidays) as days off. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, so the safety profile is covered. The description adds valuable behavioral context: the 3+ day definition, that weekends and public holidays are combined, and that `from` defaults to today in the country. It does not mention pagination, ordering, or return format, but those are minor for a read-only lookup.
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?
Two tight sentences with the core definition front-loaded, followed by usage guidance. Examples are brief and illustrative; there is no wasted wording.
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 7-parameter read-only computation tool with good annotations and no output schema, the description covers the core concept, key inputs (year/from), and default behavior sufficiently. It could more fully address the optional parameters (region, min_length, include_government), but the schema carries enough of that burden.
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 description coverage is 57%, so some parameters (from, region, country, include_government) are already documented. The description adds meaning for `year` and `from` (default today) but says nothing about `limit`, `min_length`, `region`, or `include_government` beyond what the schema provides, leaving gaps for those parameters.
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?
States a specific verb and resource ('Find long weekends') and precisely defines the concept as '3+ consecutive days off made of weekends and public holidays in the country', with illustrative examples (Golden Week, National Day Golden Week). This distinguishes it from siblings like list_holidays or business_days without needing to name them.
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?
Gives clear input guidance ('Give a year, or from (default today) to list upcoming ones'), implicitly explaining how to get either a specific year's long weekends or a forward-looking list. However, it does not explicitly name alternative tools or state when not to use this one, leaving the agent to infer the distinction from sibling names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_holidaysList holidaysARead-onlyIdempotentInspect
List a country's public holidays for a year, or between from and to (and make-up working days, if any). With no year or range, lists the next 10 holidays from today in that country.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End date (inclusive). | |
| from | No | Start date (default: today in the country). | |
| year | No | ||
| limit | No | ||
| region | No | Outside Japan: state/province code (ISO 3166-2 suffix, e.g. CA for California) to include regional holidays. | |
| country | No | ISO 3166-1 alpha-2 country code (e.g. US, GB, DE, CN, JP). Defaults to JP (Japan) when omitted. | JP |
| include_government | No | Outside Japan: also treat days off only for government offices (e.g. Indonesia's cuti bersama, Canadian federal holidays) as days off. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description adds the useful default-mode behavior (next 10 from today), but says nothing about paging, ordering, or what 'make-up working days' means in the returned data. Solid but thin beyond the annotations.
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?
Two sentences, no filler, with the primary resource statement first and the no-argument default behavior second. Every clause carries information an agent needs.
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 7-parameter, all-optional read tool with no output schema, the description covers the core invocation modes and the default case well. The main residual gap is the undocumented 'limit' parameter, which leaves the agent unsure how result truncation interacts with the 'next 10' default.
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 71% and the description reinforces year, from/to and the make-up-day concept, but the 'limit' parameter has no description anywhere in the schema or the description beyond min/max bounds. Region and include_government semantics live only in the schema. That puts it near the baseline rather than adding meaning.
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?
States a specific verb and resource ('List a country's public holidays') plus the scope modes (year, or from/to range, plus make-up working days). It's clear what the tool returns, though it never names the siblings (business_days, find_long_weekends, check_dates) it should be distinguished from.
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?
Explicitly describes the three invocation modes and what happens when neither year nor range is supplied ('lists the next 10 holidays from today in that country'). It lacks a when-not clause pointing to business_days or find_long_weekends for related date queries, so routing depends on the agent inferring from names.
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.
4 tool updates
- Changed
business_days1 field changed- changed
Input schema / properties / country / descriptionPrevious value: -"ISO 3166-1 alpha-2 country code (e.g. JP, US, CN, GB). Default JP."New value: +"ISO 3166-1 alpha-2 country code (e.g. US, GB, DE, CN, JP). Defaults to JP (Japan) when omitted."
- Changed
check_dates1 field changed- changed
Input schema / properties / country / descriptionPrevious value: -"ISO 3166-1 alpha-2 country code (e.g. JP, US, CN, GB). Default JP."New value: +"ISO 3166-1 alpha-2 country code (e.g. US, GB, DE, CN, JP). Defaults to JP (Japan) when omitted."
- Changed
find_long_weekends2 fields changed- changed
Input schema / properties / country / descriptionPrevious value: -"ISO 3166-1 alpha-2 country code (e.g. JP, US, CN, GB). Default JP."New value: +"ISO 3166-1 alpha-2 country code (e.g. US, GB, DE, CN, JP). Defaults to JP (Japan) when omitted." - changed
Input schema / properties / from / descriptionPrevious value: -"List long weekends ending on or after this date (default: today in Japan)."New value: +"List long weekends ending on or after this date (default: today in the country)."
- Changed
list_holidays2 fields changed- changed
Input schema / properties / country / descriptionPrevious value: -"ISO 3166-1 alpha-2 country code (e.g. JP, US, CN, GB). Default JP."New value: +"ISO 3166-1 alpha-2 country code (e.g. US, GB, DE, CN, JP). Defaults to JP (Japan) when omitted." - changed
Input schema / properties / from / descriptionPrevious value: -"Start date (default: today in Japan)."New value: +"Start date (default: today in the country)."
4 tool updates
- Changed
business_days1 field changed- added
Input schema / properties / include_governmentAdded value: +{ + "default": false, + "description": "Outside Japan: also treat days off only for government offices (e.g. Indonesia's cuti bersama, Canadian federal holidays) as days off.", + "type": "boolean" +}
- Changed
check_dates1 field changed- added
Input schema / properties / include_governmentAdded value: +{ + "default": false, + "description": "Outside Japan: also treat days off only for government offices (e.g. Indonesia's cuti bersama, Canadian federal holidays) as days off.", + "type": "boolean" +}
- Changed
find_long_weekends1 field changed- added
Input schema / properties / include_governmentAdded value: +{ + "default": false, + "description": "Outside Japan: also treat days off only for government offices (e.g. Indonesia's cuti bersama, Canadian federal holidays) as days off.", + "type": "boolean" +}
- Changed
list_holidays1 field changed- added
Input schema / properties / include_governmentAdded value: +{ + "default": false, + "description": "Outside Japan: also treat days off only for government offices (e.g. Indonesia's cuti bersama, Canadian federal holidays) as days off.", + "type": "boolean" +}
4 tool updates
- Changed
business_days3 fields changed- added
Input schema / properties / countryAdded value: +{ + "default": "JP", + "description": "ISO 3166-1 alpha-2 country code (e.g. JP, US, CN, GB). Default JP.", + "pattern": "^[A-Za-z]{2}$", + "type": "string" +} - added
Input schema / properties / regionAdded value: +{ + "description": "Outside Japan: state/province code (ISO 3166-2 suffix, e.g. CA for California) to include regional holidays.", + "type": "string" +} - added
Input schema / properties / year_end_closed / descriptionAdded value: +"Japan only."
- Changed
check_dates3 fields changed- added
Input schema / properties / countryAdded value: +{ + "default": "JP", + "description": "ISO 3166-1 alpha-2 country code (e.g. JP, US, CN, GB). Default JP.", + "pattern": "^[A-Za-z]{2}$", + "type": "string" +} - added
Input schema / properties / regionAdded value: +{ + "description": "Outside Japan: state/province code (ISO 3166-2 suffix, e.g. CA for California) to include regional holidays.", + "type": "string" +} - changed
Input schema / properties / year_end_closed / descriptionPrevious value: -"Treat 12/29-1/3 as non-business days (common in Japanese companies)."New value: +"Japan only: treat 12/29-1/3 as non-business days (common in Japanese companies)."
- Changed
find_long_weekends2 fields changed- added
Input schema / properties / countryAdded value: +{ + "default": "JP", + "description": "ISO 3166-1 alpha-2 country code (e.g. JP, US, CN, GB). Default JP.", + "pattern": "^[A-Za-z]{2}$", + "type": "string" +} - added
Input schema / properties / regionAdded value: +{ + "description": "Outside Japan: state/province code (ISO 3166-2 suffix, e.g. CA for California) to include regional holidays.", + "type": "string" +}
- Changed
list_holidays2 fields changed- added
Input schema / properties / countryAdded value: +{ + "default": "JP", + "description": "ISO 3166-1 alpha-2 country code (e.g. JP, US, CN, GB). Default JP.", + "pattern": "^[A-Za-z]{2}$", + "type": "string" +} - added
Input schema / properties / regionAdded value: +{ + "description": "Outside Japan: state/province code (ISO 3166-2 suffix, e.g. CA for California) to include regional holidays.", + "type": "string" +}
4 tool updates
- First observed
business_days - First observed
check_dates - First observed
find_long_weekends - First observed
list_holidays
Related MCP Connectors
Public holidays for 150+ countries, business-day maths and timezone lookup
Business days, holidays and settlement dates for ACH, TARGET2, Bacs, 28 exchanges and 247 countries
Working days, ISDA conventions and deadlines for 250 countries and 30 financial markets.
Public holidays of about 200 countries: next holidays, is a given date a holiday. Free, no key.
Related MCP Servers
- AlicenseAqualityBmaintenanceProvides accurate time zone conversions, DST-safe scheduling, holidays for 200+ countries, business day calculations, and cross-zone meeting slot suggestions.51MIT
- AlicenseNot gradedqualityCmaintenancePublic holiday data for 30+ countries. Check holidays, working days, and full calendars via AI assistants like Claude and Cursor.MIT
- AlicenseNot gradedqualityDmaintenanceReal public/bank/school holiday lookup for 206 countries via a rule-based calendar engine (moveable holidays like Easter computed astronomically, not guessed). Priced per call via x402/USDC on Base.MIT
- AlicenseNot gradedqualityBmaintenanceProvides public holidays, long weekends, and country data for 202 countries via the Nager.Date API, with client-side filtering and timezone-aware checks.1BSD Zero Clause
Glama MCP Gateway
Add one secure layer between your agents and this server.