# WorkdayAPI

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

- name: dev.workers.mike-tusa.workdayapi/workdayapi
- version: 0.2.0
- connection class: R0 (autonomous)
- trust: 83/100 flags: no-repository
- quality: 100/100 (strong)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/dev.workers.mike-tusa.workdayapi%2Fworkdayapi
- tools: https://api.protogrid.dev/v1/servers/dev.workers.mike-tusa.workdayapi%2Fworkdayapi/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "workdayapi": {
      "type": "http",
      "url": "https://workdayapi.mike-tusa.workers.dev/mcp",
      "headers": {
        "Authorization": "Bearer ${WORKDAYAPI_TOKEN}"
      }
    }
  }
}
```

Placeholders to fill: `${WORKDAYAPI_TOKEN}`.

## Trust

- hygiene: 80
- liveness: 100
- freshness: 100
- provenance: 55
- drivers: +dns-namespace +website +reachable +uptime-100% +updated-8d-ago -no-repository
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 100/100 (strong)

### protocol: 100 (weight 25)

- pass `protocol.modern`: supports 2026-07-28 (server/discover)
- pass `protocol.stateless`: answers without a session
- pass `protocol.transport`: streamable HTTP
- pass `protocol.list_ttl`: tool list is cacheable (ttlMs 3600000)

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 100 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 5 of 5 tools declare readOnlyHint or destructiveHint
- pass `tools.directory_hints`: every tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
- pass `tools.token_cost`: about 1,379 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: 100 (weight 15)

- pass `stability.changes`: no tool changes in 30 days
- pass `stability.rug_pull`: no tool changed its meaning under the same name

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 5, about 1,379 tokens to load them all
- tool set hash: 28e5a4575a7d38a0ddba912be5e405a5
- badge: [![protogrid quality](https://protogrid.dev/badge/dev.workers.mike-tusa.workdayapi/workdayapi.svg)](https://protogrid.dev/servers/dev.workers.mike-tusa.workdayapi/workdayapi)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

_No tool definition changes recorded._

## Remotes

- https://workdayapi.mike-tusa.workers.dev/mcp (streamable-http, auth none, reachable true, uptime30d 1)

## Packages

_none_

## Tools (5)

- `add_business_days`: 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.
- `business_days_between`: 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.
- `get_holidays`: 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.
- `is_business_day`: 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.
- `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.
