MCP server for business-day, SLA, cron and recurrence calculations — offline, holiday-aware, no network.
claude mcp add business-days-mcp -- uvx --from{
"mcpServers": {
"business-days-mcp": {
"command": "uvx",
"args": ["--from"]
}
}
}Resumen de MCP Servers
# business-days-mcp
An MCP server for the date arithmetic that support, billing and operations
teams actually do: **is this a working day, when is this SLA due, what is the
next working day after a bank holiday** — plus cron and recurrence-rule
parsing for the recurring side of the same job.
It runs offline. No network calls, no stored data, no model calls — every
answer is computed from bundled public-holiday rules.
## What it does
**Business days and SLAs** — holiday-aware for ~150 countries and their
subdivisions (England and Scotland differ; so do US states), via the
[`holidays`](https://pypi.org/project/holidays/) package.
| Tool | Answers |
| --- | --- |
| `is_business_day` | Is this a working day? If not, is it a weekend or a named holiday? |
| `next_business_day` / `previous_business_day` | The next/last working day around a date |
| `add_business_days` | Move ±N working days from a date |
| `business_days_between` | How many working days between two dates (half-open) |
| `first_business_day_of_month` / `last_business_day_of_month` | Month boundaries |
| `sla_due_time` | When does an N-business-hour SLA fall due, counting only open hours? |
**Cron and recurrence — parsing only.** Nothing is scheduled, stored, or
executed; there are no timers and no job store. If you want something *run* on
a schedule, this is deliberately not that tool.
| Tool | Answers |
| --- | --- |
| `validate_cron_expression` / `explain_cron_expression` | Is this cron valid, and what does it mean in English? |
| `next_cron_occurrences` | When would it next fire? |
| `validate_recurrence_rule` / `explain_recurrence_rule` | Same, for an RFC 5545 RRULE |
| `next_recurrence_occurrences` | Expand an RRULE to its next occurrences |
## Install and run
No install step needed — `uvx` fetches and runs it:
```sh
uvx --from git+https://github.com/Vessark/business-days-mcp business-days-mcp
```
From a clone:
```sh
git clone https://github.com/Vessark/business-days-mcp
cd business-days-mcp
uv sync && uv run business-days-mcp
uv run pytest # the tests are the documentation
```
## Client configuration
Add to your MCP client's config (Claude Desktop, or anything that speaks MCP):
```json
{
"mcpServers": {
"business-days": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/Vessark/business-days-mcp",
"business-days-mcp"
]
}
}
}
```
### Hosted
If you'd rather not run it, the same tools are available as a managed HTTP
endpoint at `https://vessark.com/mcp` — no credentials needed for these:
```json
{
"mcpServers": {
"vessark": {
"url": "https://vessark.com/mcp"
}
}
}
```
## Examples
```jsonc
// is_business_day — 2026-12-28, UK
{"date": "2026-12-28", "country": "GB"}
→ {"is_business_day": false, "reason": "holiday: Boxing Day (substitute day)"}
// sla_due_time — 8 business hours from Monday 16:00
{"start": "2026-07-27T16:00", "business_hours": 8}
→ {"due": "2026-07-28T16:00:00", "started_within_business_hours": true}
// explain_cron_expression
{"expression": "30 9 * * MON-FRI"}
→ {"explanation": "At 09:30, on Monday through Friday."}
```
## Design notes
Every tool is a pure function of its arguments, which is why the test suite is
mostly tables. Invalid input is an ordinary typed result, never an exception —
a model that gets an argument wrong gets a readable reason and can correct
itself. Every loop that a caller can influence is bounded, so no request can
buy an expensive computation. Error messages never echo what you sent, so the
server can't be used to relay text into someone else's agent.
Known limits, stated rather than hidden: a working week is Monday–Friday, so
countries with Sunday–Thursday weeks are wrong under this assumption; holiday
data covers only the years the underlying dataset knows about, and a date
outside that range is refused rather than silently answered as an ordinary
working day.
## Releasing
Bump the version in both `pyproject.toml` and `server.json`, then push a
matching tag:
```sh
git tag v0.2.0 && git push origin v0.2.0
```
That runs the test suite, checks the tag agrees with both version fields, and
republishes to the MCP registry. Authentication is GitHub OIDC, so no token is
stored anywhere.
## About
Built and maintained by [Vessark](https://vessark.com). The tools in this
repository are the free tier and are open source under the MIT licence.
Vessark's workspace tools — the ones that operate on a connected workspace —
are the commercial product and are not open source.
Issues and pull requests welcome.
Lo que la gente pregunta sobre business-days-mcp
¿Qué es Vessark/business-days-mcp?
+
Vessark/business-days-mcp es mcp servers para el ecosistema de Claude AI. MCP server for business-day, SLA, cron and recurrence calculations — offline, holiday-aware, no network. Tiene 0 estrellas en GitHub y se actualizó por última vez today.
¿Cómo se instala business-days-mcp?
+
Puedes instalar business-days-mcp clonando el repositorio (https://github.com/Vessark/business-days-mcp) o siguiendo las instrucciones del README en GitHub. ClaudeWave también te ofrece bloques de instalación rápida en esta misma página.
¿Es seguro usar Vessark/business-days-mcp?
+
Vessark/business-days-mcp aún no ha sido auditado por nuestro agente de seguridad. Revisa el repositorio original en GitHub antes de usarlo en producción.
¿Quién mantiene Vessark/business-days-mcp?
+
Vessark/business-days-mcp es mantenido por Vessark. La última actividad registrada en GitHub es de today, con 0 issues abiertos.
¿Hay alternativas a business-days-mcp?
+
Sí. En ClaudeWave puedes explorar mcp servers similares en /categories/mcp, ordenados por popularidad o actividad reciente.
Despliega business-days-mcp en tu cloud
Lleva este repo a producción en minutos. Cada plataforma genera su propio entorno con variables de entorno editables.
¿Mantienes este repo? Añade un badge a tu README
Pega el badge en tu README de GitHub para mostrar que está auditado por ClaudeWave. Cada badge enlaza de vuelta a esta página y muestra el Trust Score actual.
[](https://claudewave.com/repo/vessark-business-days-mcp)<a href="https://claudewave.com/repo/vessark-business-days-mcp"><img src="https://claudewave.com/api/badge/vessark-business-days-mcp" alt="Featured on ClaudeWave: Vessark/business-days-mcp" width="320" height="64" /></a>Más MCP Servers
Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.
User-friendly AI Interface (Supports Ollama, OpenAI API, ...)
An open-source AI agent that brings the power of Gemini directly into your terminal.
The fastest path to AI-powered full stack observability, even for lean teams.
Real-time global intelligence dashboard. AI-powered news aggregation, geopolitical monitoring, and infrastructure tracking in a unified situational awareness interface
🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl!