WorkdayAPI

Business-day and public-holiday math for 29 countries: add business days, days between, holidays.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
86%
Naming quality
92%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~2,139Tokens (tool definitions)
~3.8 KBTypical response size
Moderate attention impact (1.67% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "workdayapi": {
      "url": "https://workdayapi.mike-tusa.workers.dev/mcp"
    }
  }
}

Remote endpoints

https://workdayapi.mike-tusa.workers.dev/mcpstreamable-http

What it can do

Tool inventory

Tools (5)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢get_holidays(country, year, region, types)

List the public (and optionally bank/observance) holidays for one country (and region) in one year, 2020-2035, with local names, types and official source links. Read-only. Same data, cache and limits as GET /v1/holidays.

Input Schema

{
  "type": "object",
  "properties": {
    "country": {
      "type": "string",
      "description": "ISO 3166-1 alpha-2 country code, e.g. US, DE, GB. See list_countries.",
      "pattern": "^[A-Za-z]{2}$",
      "minLength": 2,
      "maxLength": 2
    },
    "year": {
      "type": "integer",
      "minimum": 2020,
      "maximum": 2035,
      "description": "Year, 2020-2035."
    },
    "region": {
      "type": "string",
      "description": "Optional region/state code for countries with regional holidays, e.g. DE-BY, US-CA (or just BY).",
      "maxLength": 10
    },
    "types": {
      "type": "string",
      "description": "Optional comma list of public, bank, observance, or \"all\" (default: all).",
      "maxLength": 40
    }
  },
  "required": [
    "country",
    "year"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "country": {
      "type": "string"
    },
    "country_name": {
      "type": "string"
    },
    "region": {
      "type": "string"
    },
    "region_name": {
      "type": "string"
    },
    "year": {
      "type": "integer"
    },
    "scope": {
      "type": "string"
    },
    "count": {
      "type": "integer"
    },
    "holidays": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "date": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "local_name": {
            "type": "string"
          },
          "type": {
            "type": "string"
          }
        }
      }
    },
    "notes": {
      "type": "string"
    },
    "sources": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "data_version": {
      "type": "string"
    }
  },
  "required": [
    "country",
    "year",
    "count",
    "holidays"
  ]
}
🟢is_business_day(country, date, region, weekend, types)

Check whether a date is a business day in a country (and region), considering weekends and public holidays. Returns the reason (weekend or holiday name) plus the previous and next business days. Read-only. Same engine, cache and limits as GET /v1/is-business-day.

Input Schema

{
  "type": "object",
  "properties": {
    "country": {
      "type": "string",
      "description": "ISO 3166-1 alpha-2 country code, e.g. US, DE, GB. See list_countries.",
      "pattern": "^[A-Za-z]{2}$",
      "minLength": 2,
      "maxLength": 2
    },
    "date": {
      "type": "string",
      "description": "Date to check, YYYY-MM-DD (2020-2035).",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "maxLength": 10
    },
    "region": {
      "type": "string",
      "description": "Optional region/state code for countries with regional holidays, e.g. DE-BY, US-CA (or just BY).",
      "maxLength": 10
    },
    "weekend": {
      "type": "string",
      "description": "Optional weekend days, comma list of day names like \"sat,sun\" (default) or \"fri,sat\", or \"none\".",
      "maxLength": 40
    },
    "types": {
      "type": "string",
      "description": "Optional holiday types that close business days: comma list of public, bank (default: public; \"all\" = public,bank).",
      "maxLength": 40
    }
  },
  "required": [
    "country",
    "date"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "date": {
      "type": "string"
    },
    "weekday": {
      "type": "string"
    },
    "country": {
      "type": "string"
    },
    "region": {
      "type": "string"
    },
    "weekend": {
      "type": "string"
    },
    "holiday_types": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "business_day": {
      "type": "boolean"
    },
    "reason": {
      "type": "string"
    },
    "holiday": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "type": {
          "type": "string"
        },
        "actual_date": {
          "type": "string"
        },
        "predicted": {
          "type": "boolean"
        }
      }
    },
    "previous_business_day": {
      "type": "string"
    },
    "next_business_day": {
      "type": "string"
    }
  },
  "required": [
    "date",
    "business_day",
    "reason"
  ]
}
🟢add_business_days(country, date, days, region, weekend, ...)

Add (or, with a negative number, subtract) business days to a date, skipping weekends and public holidays of the country (and region). Returns the result date and the holidays skipped. Read-only. Same engine, cache and limits as GET /v1/add.

Input Schema

{
  "type": "object",
  "properties": {
    "country": {
      "type": "string",
      "description": "ISO 3166-1 alpha-2 country code, e.g. US, DE, GB. See list_countries.",
      "pattern": "^[A-Za-z]{2}$",
      "minLength": 2,
      "maxLength": 2
    },
    "date": {
      "type": "string",
      "description": "Start date, YYYY-MM-DD (2020-2035).",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "maxLength": 10
    },
    "days": {
      "type": "integer",
      "minimum": -2500,
      "maximum": 2500,
      "description": "Business days to add; negative counts backwards."
    },
    "region": {
      "type": "string",
      "description": "Optional region/state code for countries with regional holidays, e.g. DE-BY, US-CA (or just BY).",
      "maxLength": 10
    },
    "weekend": {
      "type": "string",
      "description": "Optional weekend days, comma list of day names like \"sat,sun\" (default) or \"fri,sat\", or \"none\".",
      "maxLength": 40
    },
    "types": {
      "type": "string",
      "description": "Optional holiday types that close business days: comma list of public, bank (default: public; \"all\" = public,bank).",
      "maxLength": 40
    }
  },
  "required": [
    "country",
    "date",
    "days"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "date": {
      "type": "string"
    },
    "days": {
      "type": "integer"
    },
    "country": {
      "type": "string"
    },
    "region": {
      "type": "string"
    },
    "weekend": {
      "type": "string"
    },
    "holiday_types": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "result": {
      "type": "string"
    },
    "result_weekday": {
      "type": "string"
    },
    "calendar_days": {
      "type": "integer"
    },
    "skipped_holidays": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "date": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "local_name": {
            "type": "string"
          },
          "type": {
            "type": "string"
          }
        }
      }
    },
    "skipped_holidays_truncated": {
      "type": "boolean"
    }
  },
  "required": [
    "date",
    "days",
    "result"
  ]
}
🟢business_days_between(country, from, to, inclusive, region, ...)

Count business days between two dates in a country (and region), excluding weekends and public holidays. The end date is excluded unless inclusive is true. Returns business, weekend and holiday day counts and the holidays in the range. Read-only. Same engine, cache and limits as GET /v1/between.

Input Schema

{
  "type": "object",
  "properties": {
    "country": {
      "type": "string",
      "description": "ISO 3166-1 alpha-2 country code, e.g. US, DE, GB. See list_countries.",
      "pattern": "^[A-Za-z]{2}$",
      "minLength": 2,
      "maxLength": 2
    },
    "from": {
      "type": "string",
      "description": "Start date, YYYY-MM-DD (2020-2035).",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "maxLength": 10
    },
    "to": {
      "type": "string",
      "description": "End date, YYYY-MM-DD (2020-2035).",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "maxLength": 10
    },
    "inclusive": {
      "type": "boolean",
      "default": false,
      "description": "Count the end date too (default false)."
    },
    "region": {
      "type": "string",
      "description": "Optional region/state code for countries with regional holidays, e.g. DE-BY, US-CA (or just BY).",
      "maxLength": 10
    },
    "weekend": {
      "type": "string",
      "description": "Optional weekend days, comma list of day names like \"sat,sun\" (default) or \"fri,sat\", or \"none\".",
      "maxLength": 40
    },
    "types": {
      "type": "string",
      "description": "Optional holiday types that close business days: comma list of public, bank (default: public; \"all\" = public,bank).",
      "maxLength": 40
    }
  },
  "required": [
    "country",
    "from",
    "to"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "from": {
      "type": "string"
    },
    "to": {
      "type": "string"
    },
    "inclusive": {
      "type": "boolean"
    },
    "country": {
      "type": "string"
    },
    "region": {
      "type": "string"
    },
    "weekend": {
      "type": "string"
    },
    "holiday_types": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "business_days": {
      "type": "integer"
    },
    "calendar_days": {
      "type": "integer"
    },
    "weekend_days": {
      "type": "integer"
    },
    "holiday_days": {
      "type": "integer"
    },
    "holidays": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "date": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "local_name": {
            "type": "string"
          },
          "type": {
            "type": "string"
          }
        }
      }
    },
    "holidays_truncated": {
      "type": "boolean"
    }
  },
  "required": [
    "from",
    "to",
    "business_days"
  ]
}
🟢list_countries

List the supported countries (ISO codes), their regions and the supported year range. Read-only. Same data and limits as GET /v1/countries.

Input Schema

{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "count": {
      "type": "integer"
    },
    "years": {
      "type": "object",
      "properties": {
        "from": {
          "type": "integer"
        },
        "to": {
          "type": "integer"
        }
      }
    },
    "data_version": {
      "type": "string"
    },
    "countries": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "regions": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      }
    }
  },
  "required": [
    "count",
    "countries"
  ]
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded5 tools