
lookup-holiday
io.github.encodiPublished by GitHub account encodiv1.0.0Updated Sep 30, 2026
Real public holiday lookup for 206 countries via a rule-based calendar engine. Paid via x402.
Overview
Remote MCP server with one tool that looks up real public holidays for 206 countries by country, subdivision and year, billed per call in USDC.
- What you can do
- Look up public holidays for a country, optionally narrowed by state/subdivision and region, for a given year
- Get holiday names and dates computed by a rule-based calendar engine, including moveable holidays such as Easter and lunar-calendar dates
- Receive a payment request in the error response when a call is unpaid, then retry with payment
- When to use it
- Useful when an assistant needs accurate holiday dates for scheduling, planning deadlines, or answering questions about public holidays in a specific country and year, especially near-term years.
- Requirements
- Remote streamable HTTP endpoint; no account or API key declared. Each tool call costs $0.01 USDC on Base mainnet via x402, so the client must be able to pay and retry. Network access required.
Installation
In SourceWeft
- Open lookup-holiday in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.
Use with an agent
Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.
Read https://sourceweft.com/mcp/io.github.encodi%2Flookup-holiday/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.Other MCP clients
Add this to your client's mcpServers config.
{
"mcpServers": {
"lookup-holiday": {
"type": "http",
"url": "https://lookup-holiday.encodari.workers.dev/mcp"
}
}
}README
lookup-holiday
Remote MCP server (Cloudflare Workers) with one tool that looks up real public holidays:
lookup_holiday— real holidays for a country (and optionally a state/subdivision and region) and year, from a rule-based calendar engine covering 206 countries. Moveable holidays (Easter, lunar calendars, "nth weekday of month" rules, etc.) are computed with real date arithmetic, not guessed by the model.
No database, no persistent state: each call builds a fresh McpServer (see createServer() in src/index.ts). The calendar engine is date-holidays, bundled directly into the Worker.
Data attribution
The holiday data (which dates are holidays, their names) comes from the date-holidays project and is licensed CC BY-SA 3.0, since it's compiled from Wikipedia articles — see NOTICE and their LICENSE file for the full per-country attribution list. Only the code in this repository is MIT; see LICENSE.
Billing (x402)
Charges per call via x402 — real USDC payment on Base mainnet, against the Coinbase Developer Platform (CDP) facilitator. The payment travels inside the MCP JSON-RPC itself (_meta), not as an HTTP header; see src/payments.ts.
An unpaid tools/call returns isError: true with the accepts (network, amount, payTo) the client needs to pay and retry — not an unexplained exception.
Structure
Running it locally
⚠️ Note on wrangler dev: the real Cloudflare Workers runtime (workerd) requires macOS 13.5+. If your Mac has an older version, wrangler dev (and npm run dev) will fail. This project includes a plain-Node shim that runs the exact same fetch() handler without needing workerd.
1. Install dependencies
2. Run the unit tests
3a. If your wrangler dev works (macOS 13.5+, Linux, Windows)
3b. If wrangler dev fails because of the macOS version
Starts at http://localhost:8787/mcp, reading CDP credentials from ~/.mcp-tools-factory-credentials.env (shared across all tools in this factory).
4. Test with curl
Responses come as Server-Sent Events (event: message + data: {...}); the data: line is the usual JSON-RPC response.
Deploy and listings
Deployed at https://lookup-holiday.encodari.workers.dev/mcp (Cloudflare Workers). Published on the official MCP registry, Smithery, mcp.so, Glama, and with an open PR to awesome-mcp-servers.
What it doesn't do (yet)
- Charges on Base mainnet with real money. To switch back to testnet (Base Sepolia,
eip155:84532) during development, changeNETWORKinsrc/payments.ts. - No database or persistent state between calls (beyond the billing config, cached in memory per isolate — see
src/payments.ts). - Doesn't model when a holiday was first introduced — a rule like "3rd Monday in January" is applied to any requested year even if the holiday didn't exist yet historically. Fine for scheduling near-term years; not a historical record.
Source: README.md at commit 7f7163f
Tools
0Version history
1- v1.0.0LatestSep 16, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 daysRequired25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declaredRequired10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts