Config is the same across clients — only the file and path differ.
{
"mcpServers": {
"io-github-solvohq-openworkdays": {
"args": [
"-y",
"vercel"
],
"command": "npx"
}
}
}Are you the author?
Add this badge to your README to show your security score and help users find safe servers.
A zero-signup business-day / working-day date-arithmetic API. No account, no API key — one GET request.
Run this in your terminal to verify the server starts. Then let us know if it worked — your result helps other developers.
npx -y 'vercel' 2>&1 | head -1 && echo "✓ Server started successfully"
After testing, let us know if it worked:
Five weighted categories — click any category to see the underlying evidence.
Vercel: Non-interactive mode includes CLI arguments in suggested command output
# Summary When the Vercel CLI runs in non-interactive mode (`--non-interactive` or auto-detected AI agent), commands that cannot complete autonomously emit JSON payloads with suggested follow-up commands. If the user authenticated via `--token` or `-t` on the command line, the token value is included verbatim in those suggestions. # Conditions All three must be true for the token to appear in output: 1. Token passed as a CLI argument (`--token` / `-t`). The `VERCEL_TOKEN` environment variabl
Click any tool to inspect its schema.
Be the first to review
Have you used this server?
Share your experience — it helps other developers decide.
Sign in to write a review.
Others in other
Compress tool outputs, logs, files, and RAG chunks before they reach the LLM. 60-95% fewer tokens, same answers. Library, proxy, MCP server.
Pi Coding Agent extension (CLI-first) — routes bash/read/grep/find/ls through lean-ctx CLI for strong token savings. Optional MCP bridge can register advanced tools.
AI travel agent — 1 smart MCP tool plus 62 compatibility aliases for flights, hotels, ground transport, price alerts. No API keys required.
Research graph MCP for hypotheses, goals, runs, source quality, audits, and generated maps.
MCP Security Weekly
Get CVE alerts and security updates for io.github.SolvoHQ/openworkdays and similar servers.
Start a conversation
Ask a question, share a tip, or report an issue.
Sign in to join the discussion.
A zero-signup business-day / working-day date-arithmetic API. No account, no API key — one GET request.
Add or subtract working days, count business days between two dates, or test whether a date is a business day — with your own holiday list. Pure UTC date math, returned as JSON. Built so autonomous AI agents get a deterministic date endpoint — an agent has no human to do a signup, and LLMs are measurably unreliable at date arithmetic.
Live: https://openworkdays.vercel.app
curl "https://openworkdays.vercel.app/api/businessdays?start=2026-05-15&days=5"
Sample response:
{
"mode": "add",
"start": "2026-05-15",
"days": 5,
"result": "2026-05-22",
"resultWeekday": "fri",
"startIsBusinessDay": true,
"weekend": ["sat", "sun"],
"holidaysApplied": 0,
"engine": "date-utc-v0.1",
"computedAt": "2026-05-17T00:00:00.000Z"
}
Any error returns JSON with an error key and an appropriate HTTP status
(400 bad params, 429 rate limited, 405 wrong method).
The endpoint is always GET /api/businessdays. The mode is inferred from the
params you pass.
add — add/subtract working daysParams: start=YYYY-MM-DD, days=N (integer, +/- ok, |N| <= 10000),
optional weekend=, optional holidays=.
curl "https://openworkdays.vercel.app/api/businessdays?start=2026-05-15&days=5"
N=0 returns start unchanged (even if start is itself non-working).
diff — count business days between two datesParams: start=YYYY-MM-DD, end=YYYY-MM-DD, optional weekend=, optional
holidays=. Inclusive of both endpoints. Result is negative if
end < start.
curl "https://openworkdays.vercel.app/api/businessdays?start=2026-05-15&end=2026-06-15&holidays=2026-05-25"
is — is this date a business day?Params: date=YYYY-MM-DD, optional weekend=, optional holidays=.
curl "https://openworkdays.vercel.app/api/businessdays?date=2026-05-16"
Returns isBusinessDay plus a reason of "weekend", "holiday", or null.
weekend (default sat,sun) — comma list. Tokens are case-insensitive
from {sun,mon,tue,wed,thu,fri,sat}, or numeric 0-6 where 0=Sunday …
6=Saturday (matches JS getUTCDay()). Cannot mark all 7 days as weekend.holidays — comma list of YYYY-MM-DD dates treated as non-working
(max 1000). Strictly validated.Errors are JSON with an error key:
400 — bad/missing params (missing start, invalid days (must be integer),
invalid weekend token, invalid holiday date, invalid date,
specify a mode (includes a usage object), …)429 — rate limited (Retry-After header + retryAfterSec)405 — wrong HTTP method (only GET/OPTIONS allowed)const base = "https://openworkdays.vercel.app";
const r = await fetch(
base + "/api/businessdays?start=2026-05-15&days=5"
);
const out = await r.json(); // { mode:"add", result:"2026-05-22", resultWeekday:"fri", ... }
OpenWorkdays is also a remote MCP server, so an agent can call it as a tool with no signup, no API key, no OAuth.
https://openworkdays.vercel.app/api/mcpapplication/json response — no sessions, no SSE)businessdays — the mode (add / diff /
is) is inferred from which args you pass, returning the same JSON as the
REST endpoint (also as structuredContent)Drop this into any MCP client config (Claude Desktop, Cursor, or any client that speaks the Streamable HTTP transport):
{ "mcpServers": { "openworkdays": { "url": "https://openworkdays.vercel.app/api/mcp" } } }
Quick smoke test:
curl -s -X POST https://openworkdays.vercel.app/api/mcp \
-H 'Conten
... [View full README on GitHub](https://github.com/solvohq/openworkdays#readme)