Holiday Calendar

com.modernmustardseed由 modernmustardseed.com 发布官方发布者v1.0.1更新于 Nov 2, 2026

U.S. federal holidays with observed dates and business-day math. Example from an open-source kit.

发布方自己的服务:AI Search Kit

已验证Streamable HTTP可网页运行效率与工作流开发者工具

概览

AI 生成的概览

远程 MCP 服务器,为助手提供 2021 至 2100 年美国联邦假日日期与工作日计算。

可以做什么
  • 列出某一年的十一个美国联邦假日,含实际日期、补休日期、星期与依据规则
  • 查找某日期当天或之后接下来的 1 至 11 个联邦假日及相距天数
  • 判断某日期是否为工作日,并给出星期、当日补休假日及前后最近的工作日
  • 在日期上向前或向后推算若干个工作日,跳过周末与补休假日
  • 统计两个日期之间的工作日数量,并列出其中的周末日与假日
适用场景
适合需要依据美国联邦假日和周末推算到期日、交付窗口、通知期限或排期问题的场景。
运行要求
需要一个远程 Streamable HTTP 端点;未声明账号、API 密钥、环境变量或请求头。示例本身不依赖任何环境变量,也不发起网络请求。
安装前请注意
工具均为只读的日期计算;README 称其不存储数据、不发起网络请求。仅覆盖 2021 至 2100 年的美国联邦假日,工作日跨度上限为 3,660 个日历日。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Holiday Calendar,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。

交给智能体安装

把这段提示词粘贴到 Claude Code、Codex、Cursor 等智能体,或 SourceWeft 对话中。智能体会读取该服务器的安装指南,先向你展示发布者、端点和登录方式,经你同意后再把它添加到你的客户端。密钥不会写进任何命令。

阅读 https://sourceweft.com/mcp/com.modernmustardseed%2Fholiday-calendar/install.md,并按其中说明把这个 MCP 服务器接入我的客户端。修改任何配置之前,先告诉我它的发布者、端点和登录方式,等我确认。不要把 API 密钥写进命令或我会提交的文件;问我密钥应从哪里获取。

查看智能体所依据的安装指南

其他 MCP 客户端

把它添加到你客户端的 mcpServers 配置中。

{
  "mcpServers": {
    "holiday-calendar": {
      "type": "http",
      "url": "https://starter.modernmustardseed.com/holidays"
    }
  }
}

README

Small Business MCP Starter Kit by Modern Mustard Seed

Ship a remote MCP connector for Claude that is built to pass Anthropic's directory review on the first try.

This kit is the set of patterns Modern Mustard Seed uses for the connectors it runs in production, pulled out into a clean Next.js project you can fork:

  • A route template on Next.js App Router and mcp-handler, serving Streamable HTTP at one URL per connector, with no redirect.
  • Tool conventions enforced at load time: a title, readOnlyHint or destructiveHint on every tool, snake_case names of 64 characters or fewer, and descriptions that describe instead of steer. Break a rule and pnpm test fails, long before a reviewer sees it.
  • Specific error messages instead of "Bad Request", and output size caps under Claude's limits.
  • Rate limiting built for Claude's shared egress range. Every claude.ai user arrives from 160.79.104.0/21, so nothing is keyed by IP and nothing returns HTTP 429.
  • An SSRF-safe fetch for any tool that reads a URL a user supplied, with tests that prove a listening loopback server receives zero requests.
  • An eval harness that runs real prompts against your live URL, with no model and no API key.
  • Docs, privacy, terms and support page templates plus /.well-known/security.txt, all driven by one config file.
  • A submission checklist mapped to the directory form's 10 steps and its seven policy acknowledgments, with every rule linked to Anthropic's documentation.
  • A worked example: a U.S. federal holiday and business-day calendar with five read-only tools that passes all 35 of its own evals.

MIT licensed. Built by Modern Mustard Seed.

Working demo

The example connector runs live, deployed from this repository with no changes:

Run the evals against it yourself: node eval/holidays.eval.mjs https://starter.modernmustardseed.com

Quickstart: 10 minutes

You need Node 22.6 or later, pnpm, and a Vercel account (any host that runs Next.js works).

1. Make your copy. (1 minute)

sh
gh repo create my-connector --template ModernMustardSeed/small-business-mcp-starter --public --clonecd my-connectorpnpm install

Or select Use this template on GitHub.

2. Run it and prove it works. (2 minutes)

sh
pnpm dev

In a second terminal:

sh
pnpm testpnpm evals http://localhost:3000

You should see 32 pass from the unit tests and 35 of 35 passed from the evals. Open http://localhost:3000/docs/holidays to see the docs page reviewers read.

3. Make it yours. (2 minutes)

Edit lib/site.ts: company name, location, website, support inbox, security inbox, and the policy date. Every public page and security.txt read from it. Replace app/icon.svg and app/apple-icon.png with your own mark; the directory listing asks for an icon.

4. Deploy. (3 minutes)

Import the repository at vercel.com/new, or from the terminal:

sh
vercel deploy --prod

Vercel sets VERCEL_PROJECT_PRODUCTION_URL, which the pages use for their links. Leave Attack Challenge Mode and any bot-protection rule off for your MCP paths: they answer Claude with a challenge page.

5. Check the deployment. (1 minute)

sh
pnpm preflight https://your-project.vercel.apppnpm evals https://your-project.vercel.appnpx @modelcontextprotocol/inspector --cli https://your-project.vercel.app/holidays --transport http --method tools/list

Preflight checks HTTPS, no redirect, no 403 or 429, every public page returning 200, the MCP handshake and the annotation rules.

6. Try it in Claude. (1 minute)

In Claude, open Customize > Connectors > Add custom connector and paste https://your-project.vercel.app/holidays. Ask: "An invoice dated 2026-11-20 is due in 10 business days. What date is that?" In Claude Code:

sh
claude mcp add --transport http holidays https://your-project.vercel.app/holidays

Build your own connector

  1. Copy lib/holidays/tools.ts to lib/<yours>/tools.ts. Declare each tool as a ToolSpec: name, title, description, zod input schema, annotations, a per-minute limit, optional global limits, the fields that are safe to log, and a run function that returns ok(data) or fail(code, sentence).
  2. Copy app/holidays/route.ts to app/<yours>/route.ts and point it at your tools.
  3. Copy app/docs/holidays/page.tsx to app/docs/<yours>/page.tsx. Keep the "For reviewers" section: you paste it into the form.
  4. Rewrite app/privacy/page.tsx so every sentence is true of your tools: what they receive, what they read, what you keep and for how long, who else touches it.
  5. Copy eval/holidays.eval.mjs. Write 20 to 50 cases from prompts real users type, with expected values from an authority outside your code. Include the error cases.
  6. If a tool fetches a URL a user gave you, use safeFetch from lib/mcp/safe-fetch.ts. Never fetch a user-supplied URL directly.
  7. Deploy, run pnpm preflight and pnpm evals against production, test every tool in Claude, then work through docs/SUBMISSION-CHECKLIST.md.

Why each pattern exists, with the rule it answers: docs/PATTERNS.md.

What is in the box

PathWhat it does
app/holidays/route.tsThe connector endpoint. One file per connector.
lib/mcp/tool.tsToolSpec, registerTools, runTool: conventions, limits, errors, size cap, logging.
lib/mcp/limits.tsPer-instance and global limits, never by IP; Redis with an in-memory fallback; a small cache.
lib/mcp/safe-fetch.tsSSRF-safe fetch: public addresses only, guarded DNS lookup, five checked redirects, byte cap, deadline.
lib/holidays/The example connector: the holiday engine and its five tools.
lib/site.tsCompany, support and security contacts, policy date. Edit first.
app/docs, app/privacy, app/terms, app/supportThe pages reviewers and users open.
app/.well-known/security.txtRFC 9116 security contact.
eval/Dependency-free MCP client and the example's 35 checks against a live URL.
scripts/preflight.mjsPre-submission checks against a deployed URL.
scripts/check-prose.mjsFails on em and en dashes in tracked files.
test/Unit tests for conventions, limits, SSRF guard and the example engine.
docs/The submission checklist and the pattern notes.

Environment

The example runs with no environment variables. Optional:

VariablePurpose
SITE_URLPublic origin, if you are not on Vercel or want a custom domain in page links.
UPSTASH_REDIS_REST_URL, UPSTASH_REDIS_REST_TOKENGlobal rate limits and cache shared across instances. The Vercel Marketplace integration sets KV_REST_API_URL and KV_REST_API_TOKEN instead; both are read. Without Redis, each instance limits itself in memory at one tenth of the global numbers.

Commands

CommandWhat it does
pnpm devLocal server on port 3000.
pnpm testUnit tests (Node's built-in runner).
pnpm evals <url>The example's evals against a running server.
pnpm preflight <url>Pre-submission checks against a deployed URL.
pnpm typecheck, pnpm lint, pnpm buildThe usual.
pnpm check:proseNo em or en dashes in tracked files.

About the example

The Holiday Calendar computes the eleven U.S. federal holidays from 5 U.S.C. 6103, a public-domain statute, with the observance rule federal offices follow: Saturday holidays move to the Friday before, Sunday holidays to the Monday after. It covers 2021 through 2100. Its tools list a year of holidays, find the next ones, check whether a date is a business day, add business days to a date, and count business days in a span. It makes no network calls and stores nothing. The evals check its answers against the Office of Personnel Management's published schedules.

Contributing and security

Issues and pull requests are welcome; see CONTRIBUTING.md. Report vulnerabilities privately as described in SECURITY.md.

This kit is not affiliated with or endorsed by Anthropic. "Claude" is a trademark of Anthropic, PBC. Directory rules change; the checklist links every rule to Anthropic's documentation so you can confirm it before you submit.

Built by Modern Mustard Seed

This kit comes from Modern Mustard Seed, an AI studio in Kalispell, Montana that builds websites, AI voice agents and custom software for small businesses, managed for you, end to end.

License

MIT, Copyright (c) 2026 Modern Mustard Seed LLC.

来源:README.md,提交 d51d601

工具

5

list_federal_holidays

List federal holidays

List the eleven U.S. federal holidays for one calendar year (2021 through 2100): each holiday's name, its actual date and weekday, the date it is observed when it falls on a weekend (Saturday moves to the Friday before, Sunday to the Monday after), and the rule that sets it, from 5 U.S.C. 6103. Use it to answer which days federal offices close in a year.

输入参数year必填

next_federal_holidays

Find the next federal holidays

Find the next one to eleven U.S. federal holidays observed on or after a date, with each one's observed date and how many calendar days away it is. Without from_date it starts from today's date in America/New_York and says which date it used.

输入参数countfrom_date

check_business_day

Check a business day

Check whether a date is a U.S. business day (a weekday that is not an observed federal holiday). Returns the weekday, the holiday observed that day if any, and the business days just before and just after it.

输入参数date必填

add_business_days

Add business days

Move a number of U.S. business days forward or backward from a date, skipping weekends and observed federal holidays, for due dates, delivery windows and notice periods. The start date is not counted: 1 business day after a Friday is the next Monday, or Tuesday when that Monday is a holiday. Returns the resulting date and every holiday it skipped. Up to 1,000 business days either way.

输入参数start_date必填business_days必填

count_business_days

Count business days

Count the U.S. business days between two dates, both dates included, leaving out weekends and observed federal holidays. Returns the business day count, the weekend days, and each holiday that fell in the span. Spans up to 3,660 calendar days.

输入参数end_date必填start_date必填

版本历史

2
  1. v1.0.1最新Oct 12, 2026
  2. v1.0.0Oct 12, 2026

评分

已满足适用检查项的 100%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通必需25 分
  • 已声明认证方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分

其他 Modernmustardseed 集成