Skip to main content
Glama

holidays-mcp

Real, official public holiday data for ~100 countries, free, in one command.

pip install holidays-mcp   # or: uvx holidays-mcp

Then 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

get_public_holidays(country_code, year)

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.

is_public_holiday(country_code, date)

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/mcp

Available Tools

2 tools
get_public_holidaysA
Read-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_holidayA
Read-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

    A4.6/5.0

    Scored across 2 tools

    Disambiguation5/5

    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.

    Naming Consistency5/5

    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.

    Tool Count3/5

    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.

    Completeness5/5

    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

    ActivityInactive
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers

    • F
      license
      Not graded
      quality
      D
      maintenance
      Provides 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.
      -
    • A
      license
      Not graded
      quality
      C
      maintenance
      Public holiday data for 30+ countries. Check holidays, working days, and full calendars via AI assistants like Claude and Cursor.
      MIT
    • A
      license
      Not graded
      quality
      F
      maintenance
      MCP 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 npm
      MIT