business-day-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tasks | {
"list": {},
"cancel": {},
"requests": {
"tools": {
"call": {}
},
"prompts": {
"get": {}
},
"resources": {
"read": {}
}
}
} |
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| is_business_dayA | Check whether a date is a business day for a given country (optionally a subdivision). Use this when an agent needs to know if a specific calendar date is a working day — i.e. NOT a weekend and NOT a public holiday — under a country's official calendar. Args: date: ISO 8601 date string (YYYY-MM-DD), e.g. "2026-04-21". country: ISO 3166-1 alpha-2 country code. Case-insensitive (normalized to upper). subdiv: Optional country-specific subdivision code (state/province/region). Case-sensitive — pass it exactly as returned by get_supported_countries (e.g. "BY" for Bavaria, "CA" for California). When omitted, only nation-wide holidays are considered. Example: country="DE", subdiv="BY" treats Epiphany (Jan 6) as a holiday because it is observed only in Bavaria. Category filtering (e.g. catholic vs evangelical) is not currently supported. Returns: dict with keys: date, country, subdiv (only if provided), is_business_day, is_weekend, is_holiday, holiday_name (str or None). Raises:
ValueError: if |
| get_current_dateA | Return the current date in the given IANA timezone. Use this when an agent needs a stable, server-computed "today" — for example before calling other tools that require a concrete date. Does NOT consult any holiday calendar. Args: timezone: IANA timezone name (e.g. "UTC", "Europe/Berlin", "America/New_York", "Asia/Tokyo"). Defaults to "UTC". Returns: dict with keys: date (YYYY-MM-DD), timezone, day_of_week (full weekday name), iso_week (1-53). Raises:
ValueError: if |
| next_business_dayA | Return the next business day on/after (inclusive) or strictly after Use this to move forward to the soonest working day — skipping weekends and public holidays. Args:
date: ISO 8601 date string (YYYY-MM-DD) to start from.
country: ISO 3166-1 alpha-2 code (case-insensitive, normalized to upper).
inclusive: When True, Returns: dict with keys: input_date, next_business_day, country, subdiv (only if provided), skipped_days (number of non-business days traversed). Raises: ValueError: on invalid date, unknown country/subdiv, or if no business day is found within ~10 years. |
| previous_business_dayA | Return the previous business day on/before (inclusive) or strictly before Use this to move backward to the most recent working day — skipping weekends and public holidays. Args:
date: ISO 8601 date string (YYYY-MM-DD) to start from.
country: ISO 3166-1 alpha-2 code (case-insensitive, normalized to upper).
inclusive: When True, Returns: dict with keys: input_date, previous_business_day, country, subdiv (only if provided), skipped_days. Raises: ValueError: on invalid date, unknown country/subdiv, or if no business day is found within ~10 years. |
| last_business_day_of_monthA | Return the last business day of a given month for a country. Use this for end-of-month billing, reporting, or settlement dates that must land on a working day. Walks backward from the last calendar day, skipping weekends and holidays. Args: year: Four-digit year (e.g. 2026). month: Month 1-12. country: ISO 3166-1 alpha-2 code (case-insensitive, normalized to upper). subdiv: Optional country-specific subdivision code (case-sensitive; see get_supported_countries). When omitted, only nation-wide holidays are considered. Returns: dict with keys: year, month, country, subdiv (only if provided), last_business_day (YYYY-MM-DD), last_calendar_day (YYYY-MM-DD). Raises: ValueError: on invalid month, unknown country/subdiv. |
| business_days_betweenA | Count business days and list weekday holidays between two dates. Use this to measure working-day spans for SLAs, delivery windows, or payroll
periods. Weekend holidays are NOT listed in Args: start_date: ISO 8601 date string (YYYY-MM-DD). Must be <= end_date. end_date: ISO 8601 date string (YYYY-MM-DD). country: ISO 3166-1 alpha-2 code (case-insensitive, normalized to upper). inclusive: When True, both endpoints count toward the range. When False (default), end_date is excluded (half-open interval). subdiv: Optional country-specific subdivision code (case-sensitive; see get_supported_countries). When omitted, only nation-wide holidays are considered. Returns: dict with keys: start_date, end_date, country, subdiv (only if provided), inclusive, business_days (int), calendar_days (int), holidays_in_range (list of {date, name} for weekday holidays only). Raises:
ValueError: if |
| list_holidaysA | List all holidays for a given year and country, sorted by date. Use this to enumerate the full holiday calendar — for display, planning, or cross-referencing. Includes holidays that fall on weekends. Args: year: Four-digit year (e.g. 2026). country: ISO 3166-1 alpha-2 code (case-insensitive, normalized to upper). subdiv: Optional country-specific subdivision code (case-sensitive; see get_supported_countries). When omitted, only nation-wide holidays are returned. Example: country="DE", subdiv="BY" adds Bavarian regional holidays such as Epiphany (Jan 6) and All Saints' Day (Nov 1). Category filtering (e.g. catholic vs evangelical) is not currently supported; the union of applicable categories is returned. Returns: dict with keys: year, country, subdiv (only if provided), holidays (list of {date: YYYY-MM-DD, name: str}, sorted ascending by date). Raises: ValueError: on unknown country/subdiv. |
| get_supported_countriesA | List all countries supported by the holidays library, with subdivisions. Use this as the discovery tool before calling any country-aware tool. It tells
the agent which ISO country codes are valid AND which subdivision codes may be
passed as the optional IMPORTANT: Subdivision codes are case-sensitive — use them verbatim as returned here. Country codes are case-insensitive. Returns:
dict with keys:
- countries: list of {code: 2-letter ISO code, name: str,
subdivisions: list[str]}, sorted by code. |
| get_supported_subdivisionsA | List subdivision codes and aliases for a country's holiday calendar. Use this to discover valid IMPORTANT: Subdivision codes are case-sensitive and must be passed through
Example: Args: country: ISO 3166-1 alpha-2 code (case-insensitive, normalized to upper). Returns: dict with keys: - country: normalized uppercase code. - subdivisions: list of canonical subdivision codes (empty if the country has no regional variants, e.g. JP). - aliases: dict mapping alias (mixed-case, verbatim) → canonical code (empty dict if the country exposes no aliases). Raises:
ValueError: if |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
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/fbdo/business-day-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server