holidays-mcp
Click on "Deploy 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., "@holidays-mcp what are the public holidays in the US in 2026?"
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.
holidays-mcp
Real, official public holiday data for ~100 countries, free, in one command.
pip install holidays-mcp # or: uvx holidays-mcpThen ask your agent: "what are the public holidays in the US in 2026?" or "is December 25th 2026 a holiday in the US?"
No API key. No signup. Free.
Tools
Tool | What the model sees it for |
| Full list of a country's public holidays for a given year. "What are the holidays in Germany in 2026?", planning around a holiday calendar. |
| Whether one specific date is a public holiday, and its name if so. "Is Dec 25 2026 a holiday in the US?", "is the office closed on this date?" |
Country codes are 2-letter ISO (US, GB, DE, FR, JP, ...) — Nager.Date covers roughly 100 countries with official holiday calendars, not every country worldwide. Dates are YYYY-MM-DD.
Related MCP server: inday-api
Example
> is_public_holiday("US", "2026-12-25")
{
"date": "2026-12-25",
"country_code": "US",
"country_name": "United States",
"is_holiday": true,
"holiday": {
"local_name": "Christmas Day",
"name": "Christmas Day",
"types": ["Public", "Bank"]
},
"attribution": "Public holiday data by Nager.Date (date.nager.at)"
}> get_public_holidays("US", 2026)
{
"country_code": "US",
"country_name": "United States",
"year": 2026,
"count": 17,
"holidays": [
{"date": "2026-01-01", "local_name": "New Year's Day", "name": "New Year's Day", "types": ["Public", "Bank"]},
{"date": "2026-01-19", "local_name": "Martin Luther King, Jr. Day", "name": "Martin Luther King, Jr. Day", "types": ["Public", "Bank"]},
...
],
"attribution": "Public holiday data by Nager.Date (date.nager.at)"
}How it's free
This server is part of the Lulu Ads network:
tool results may carry one clearly labeled, disclosed sponsored data field
(never instructions, never hidden). That sponsorship pays the hosting, so the
lookup stays free. Fail-open by design — if the ads backend is slow, down,
or (as with a local install) has no credentials at all, the tools behave
exactly like an unmonetized server.
Run your own MCP? The same one-line integration is open to every publisher — getlulu.dev/publishers, 70% rev share.
Data
Public holiday data by Nager.Date, a free, keyless, community-maintained holiday calendar API. This project is not affiliated with Nager.Date.
Self-hosting over HTTP
pip install fastmcp lulu-ads httpx uvicorn
MCP_TRANSPORT=http HOLIDAYS_LOCAL_DEV=1 python server.py # serves http://localhost:8080/holidays/mcpAvailable Tools
2 toolsget_public_holidaysARead-only
Full list of official public holidays for a country in a given
year. Use for "what are the holidays in Germany in 2026", planning
around a country's holiday calendar, or any "list the holidays for X"
question. country_code is a 2-letter ISO code (US, GB, DE, FR, JP,
...) -- roughly 100 countries are covered, not every country
worldwide. Returns each holiday's date, local name, English name, and
type (e.g. Public, Bank, Observance).
Inputs: year (required), country_code (required). Returns: object
is_public_holidayARead-only
Checks whether one specific date is a public holiday in a country,
and names it if so. Use for "is Dec 25 2026 a holiday in the US",
"is the office closed on this date", or any single-date holiday check
-- prefer this over get_public_holidays when the question is about
just one day. country_code is a 2-letter ISO code; date is
YYYY-MM-DD. Returns whether it's a holiday and, if so, its name.
Inputs: date (required), country_code (required). Returns: object
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 2 tools
The two tools have completely distinct purposes: one lists all holidays for a country and year, the other checks a single date. There is no overlap or ambiguity between them.
Both names follow a consistent verb_noun pattern with lower_snake_case. 'get_public_holidays' and 'is_public_holiday' are clear and predictable, even though they use different verbs appropriate to their actions.
With only two tools, the server feels thin, falling into the 'borderline' category. However, the count is reasonable for the narrow domain of public holiday lookups.
The domain is fully covered with the two core operations: listing all holidays and checking a specific date. As a read-only service, there are no obvious gaps or missing operations.
Maintenance
Related MCP Connectors
Public holidays for 100+ countries — by year, or the next ones coming up. Via Nager.Date.
Public holidays of about 200 countries: next holidays, is a given date a holiday. Free, no key.
Free, keyless public holidays lookup for any country and year, plus single-date holiday checks.
Public holiday data for 30+ countries. Check holidays, working days and calendars via AI assistants.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceProvides access to the Nager.Date Public Holiday API for querying global holiday information through the Model Context Protocol. It enables AI agents to interact with standardized tools for holiday-related date calculations and country-specific lookups.-
- AlicenseNot gradedqualityCmaintenancePublic holiday data for 30+ countries. Check holidays, working days, and full calendars via AI assistants like Claude and Cursor.MIT
- AlicenseNot gradedqualityFmaintenanceMCP server for accessing Nager.Date public holidays data. It provides tools to query and retrieve holiday information for various countries through natural language or direct tool calls.2 npmMIT
- 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