Server data from the Official MCP Registry
Real public holiday lookup for 206 countries via a rule-based calendar engine. Paid via x402.
About
Real public holiday lookup for 206 countries via a rule-based calendar engine. Paid via x402.
Remote endpoints: streamable-http: https://lookup-holiday.encodari.workers.dev/mcp
Security Report
This is a well-architected MCP server for holiday lookup with appropriate security controls. The server implements proper authentication via x402 payment verification on Base mainnet, validates inputs with Zod schemas, and has no malicious patterns. Permissions are appropriately scoped to network calls for the payment facilitator and holiday data retrieval. Minor observations around error handling and logging do not significantly impact security posture. Supply chain analysis found 1 known vulnerability in dependencies (1 critical, 0 high severity).
3 files analyzed · 5 issues found
Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.
Permissions Required
This plugin requests these system permissions. Most are normal for its category.
How to Install & Connect
Available as Local & Remote
This plugin can run on your machine or connect to a hosted endpoint. during install.
Documentation
View on GitHubFrom the project's GitHub 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 their LICENSE file for the full per-country attribution list. Only the code in this repository is MIT; see LICENSE for the exact split.
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.
| Tool | Price |
|---|---|
lookup_holiday | $0.01 USDC |
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
src/
index.ts # registers the tool in the McpServer and exposes the MCP HTTP handler
payments.ts # x402 billing on Base mainnet via the CDP facilitator
tools/
holiday.ts # pure logic for lookup_holiday (testable without Workers)
holiday.test.ts
scripts/
dev-node.ts # dev server that runs the handler in plain Node, no wrangler
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
npm install
2. Run the unit tests
npm test
3a. If your wrangler dev works (macOS 13.5+, Linux, Windows)
npm run dev
3b. If wrangler dev fails because of the macOS version
npm run dev:node
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
# 1) initialize
curl -s -X POST http://localhost:8787/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"curl-test","version":"0.0.1"}}}'
# 2) tools/list
curl -s -X POST http://localhost:8787/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}'
# 3) tools/call — lookup_holiday
curl -s -X POST http://localhost:8787/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"lookup_holiday","arguments":{"country":"US","state":"TX","year":2026}}}'
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.
Reviews
No reviews yet
Be the first to review this server!
More Developer Tools MCP Servers
Fetch
Freeby Modelcontextprotocol · Developer Tools
Web content fetching and conversion for efficient LLM usage
Toleno
Freeby Toleno · Developer Tools
Toleno Network MCP Server — Manage your Toleno mining account with Claude AI using natural language.
mcp-creator-python
Freeby mcp-marketplace · Developer Tools
Create, build, and publish Python MCP servers to PyPI — conversationally.
MarkItDown
Freeby Microsoft · Content & Media
Convert files (PDF, Word, Excel, images, audio) to Markdown for LLM consumption
MCP Marketplace
Freeby mcp-marketplace · Developer Tools
Search and install MCP servers from inside your AI client.
FinAgent
Freeby mcp-marketplace · Finance
Free stock data and market news for any MCP-compatible AI assistant.
