Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
제작자가 쓴 설명(영어 원문)
中国节假日与调休(单日+年度聚合)、历史上的今天、随机诗词、身份证号校验(GB 11643,本地零网络)。零凭证。
이 세 가지는 절대 하나의 점수로 합치지 않아요. 의견, 측정, 인기는 서로 다른 것이니까요.
이 서버는 아직 쉬운 말로 된 요약을 쓰지 못했어요. 아래는 레지스트리에서 읽어 온 사실이에요.
쓰고 있는 AI 앱을 고른 다음 설정을 복사하세요.
필요한 것
어떤 앱을 쓰세요?
위에서 앱을 고르세요. 기억해 두었다가 다음부터는 버튼에 “…에 설치”라고 표시해요.
Claude Desktop → Settings → Developer → Edit Config를 열고 claude_desktop_config.json에 이 내용을 붙여 넣으세요
{
"mcpServers": {
"china-context": {
"command": "uvx",
"args": [
"china-context-mcp"
]
}
}
}터미널에서 이 명령어를 실행하세요
claude mcp add china-context -- uvx china-context-mcp프로젝트의 .cursor/mcp.json 또는 ~/.cursor/mcp.json에 붙여 넣으세요
{
"mcpServers": {
"china-context": {
"command": "uvx",
"args": [
"china-context-mcp"
]
}
}
}브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
프로젝트의 .vscode/mcp.json에 붙여 넣으세요
{
"servers": {
"china-context": {
"type": "stdio",
"command": "uvx",
"args": [
"china-context-mcp"
]
}
}
}브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
이 서버는 내 컴퓨터에서 실행되는데, ChatGPT는 인터넷에 있는 서버에만 연결할 수 있어요. 다른 앱을 고르세요.
선택한 앱은 이 기기의 쿠키에만 저장돼요. 계정은 필요 없어요.
이 설정은 제작자의 레지스트리 정보로 만들었어요. README와 다르면 README를 따르세요.
내 컴퓨터에서 실행돼요. 설치하면 AI 앱에 도구 목록이 나타나요.
누구나 볼 수 있는 정보를 점검했고, 코드는 읽지 않았어요. 해당하지 않는 항목은 개수에서 뺐어요. · 2026년 11월 8일 점검
레지스트리 이름이 GitHub 계정 mouseart2025 기준으로 확인되었고, 이 계정이 저장소를 소유하고 있어요
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
내 컴퓨터에서 실행되는 서버라 인터넷 엔드포인트가 없어요
내 컴퓨터에서 실행되며, 대신 로컬 설정을 사용해요
내 컴퓨터에서 실행돼요. 도구 목록은 인터넷 엔드포인트가 있는 서버에서만 읽을 수 있어요
레지스트리에서 이 카테고리의 활성 서버 전체와 비교했어요. 스타는 게시자가 저장소를 소유한 경우에만 세요.
해당하는 기본 점검 1개 중 1개를 통과했어요. 코드는 읽지 않았어요. 키나 토큰을 넣기 전에 서버가 어떤 권한을 요구하는지 확인하고, 꼭 필요한 권한만 있는 키를 쓰세요.
레지스트리에 필수 키가 나와 있지 않아요. 다만 처음 쓸 때 로그인을 요구하는 서버도 있어요.
내 컴퓨터에서 실행돼요. AI 앱이 필요할 때 실행하고, 데이터는 제작자의 서버를 거치지 않아요(서버 자체가 온라인 서비스를 호출하는 경우는 제외).
GitHub 저장소는 마지막으로 – 변경됐고, 최신 버전(0.1.5)은 42일 전 레지스트리에 올라왔어요.
Claude Desktop, Claude Code, Cursor, VS Code처럼 MCP를 지원하는 앱에서 쓸 수 있어요. 내 컴퓨터에 Python (uv)도 있어야 해요.
같은 카테고리에는: Spec Driven Development, Remote Desktop Commander, Happo
같은 카테고리에서 다른 제작자가 만든 서버예요. 스타 순으로 정렬했어요.
카드 보는 법:★ GitHub 스타i세 기둥: 리뷰 · 점검 · 사용 정도i업데이트 = 최신 버전을 레지스트리에 공개한 날i
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Review Happo's visual and accessibility diffs: inspect comparisons, accept or reject, report flakes.
제작자의 저장소에서 쓰인 그대로 가져왔어요. PopNx MCP가 검토하거나 보증한 내용이 아니에요. HTML, 이미지, 스크립트는 제거했어요. 링크를 누르면 이 사이트를 벗어나요.
把中文世界的数据源桥接成 AI 工具。零凭证、免交付、可验证。
🔎 已收录进官方 MCP Registry:io.github.mouseart2025/china-context-mcp —— 查看详情
mcp-name: io.github.mouseart2025/china-context-mcp
给 AI 提供工具/服务/资源,是未来需求的重要方向。但调研发现一个结构性缺口:
「<服务> mcp」 in:name,description,2026-09-25)缺口只在「广义中国服务→AI」这一层成立。本仓库是这条「桥接层」方向的最小可验证载体: 先把零凭证、公开 API、对中文 AI 真有用、且没被官方垄断的数据源接进来。
⚠️ 支付宝「支付 MCP」已被官方于 2025-04-15 发布,故本项目不重复造支付类 MCP,只接官方未覆盖的真空数据源。
| 工具 | 数据源 | 用途 |
|---|---|---|
random_poem | jinrishici.com | 随机一句中国古典诗词(作者/出处/分类),用于中文创作、文化问答、国学陪练 |
holiday_info(date) | timor.tech | 查询中国某日期是否为法定节假日、调休补班工作日、工资倍率 |
holiday_summary(year?) | timor.tech | 年度聚合摘要:连续假期区间与天数、法定 3 倍工资天数及具体是哪几天、调休补班清单、全年总休假天数。省略 year 用当年 |
history_today(date?) | 60s-api.viki.moe | 历史上的今天:某月某日的历史事件列表(标题/年份/简述);省略 date 用今天 |
idcard_check(id) | 本地算法(不联网) | 中国身份证号校验 + 解析:按 ISO 7064 MOD 11-2 验证校验位,输出出生日期、性别、省级行政区,回显做掩码 |
holiday_summary 为什么是差异化的一层timor 的两个接口都只给扁平数据:holiday_info 一次一天,holiday/year 一次给全年条目。但它们给不出下面这些结论——而这些恰恰是最容易算错的:
2026 年中国节假日与调休摘要
【假期区间】共 7 个,合计 33 天(不含补班) · 元旦 01-01 ~ 01-03 3天(3倍工资 1 天) 3倍 1 天:01-01 2倍 2 天:01-02、01-03 · 春节 02-15 ~ 02-23 9天(3倍工资 4 天) 3倍 4 天:02-16、02-17 初一、02-18 初二、02-19 初三 2倍 5 天:02-15、02-20 初四、02-21 初五、02-22 初六、02-23 初七 · 清明节 04-04 ~ 04-06 3天(3倍工资 1 天) 3倍 1 天:04-05 2倍 2 天:04-04、04-06 · 劳动节 05-01 ~ 05-05 5天(3倍工资 2 天) 3倍 2 天:05-01、05-02 2倍 3 天:05-03、05-04、05-05 · 端午节 06-19 ~ 06-21 3天(3倍工资 1 天) 3倍 1 天:06-19 2倍 2 天:06-20、06-21 · 中秋节 09-25 ~ 09-27 3天(3倍工资 1 天) 3倍 1 天:09-25 2倍 2 天:09-26、09-27 · 国庆节 10-01 ~ 10-07 7天(3倍工资 3 天) 3倍 3 天:10-01、10-02、10-03 2倍 4 天:10-04、10-05、10-06、10-07
【调休补班】共 6 天 · 01-04 元旦后补班(调休上班,非假日) · 02-14 春节前补班(调休上班,非假日) · 02-28 春节后补班(调休上班,非假日) · 05-09 劳动节后补班(调休上班,非假日) · 09-20 中秋节前补班(调休上班,非假日) · 10-10 国庆节后补班(调休上班,非假日)
【工资倍率】3倍 13 天 / 2倍 20 天
逐日明细为什么一眼就要看全:3 倍工资在多数小长假里只有 1 天(2026 年元旦 01-01、清明 04-05、端午 06-19、中秋 09-25 才是法定节假当日,其余是周末或调休)。任何「不足 2 天就省略」的省流写法,都会让区间标题里的「(3倍工资 1 天)」变成查不到对应日期的空话。明细组是区间的等价划分,两者必须逐日对齐——回归测试用结构断言锁死了这一点。
另外,「2026 年清明节的 3 倍是哪天」这个问题有个易错点:国务院通知写的是「4 月 4 日至 6 日放假」,但清明节气当天是 4 月 5 日(2026-04-05 02:39 交节),所以 3 倍工资落在 04-05,不是区间首日 04-04。只看「起止日期」会答错。
一处必须记住的坑:合并假期区间要按日期连续性,不能按名称。中国法定假常把「春节」拆成 除夕/初一/初二…(且假日条目的 target 字段恒为 -,无法用于分组),按同名合并会把春节拆成 9 个单日区间,与「春节放 9 天」的用户心智严重不符。
年度聚合的正确性不靠自测自说,已逐项对过公开口径:
| 口径 | 本项目输出 | 第三方来源 |
|---|---|---|
| 2026 全年放假天数合计 | 33 天 | 国务院办公厅《关于 2026 年部分节假日安排的通知》 |
| 其中 3 倍工资天数(法定节假日) | 13 天 | 济南市人民政府12345问答、腾讯新闻(引劳动法第 44 条)、工人日报 |
| 其中 2 倍工资天数(休息日) | 20 天 | 同上(= 33 − 13,官方口径一致) |
| 调休补班(须上班)日 | 6 天:1/4、2/14、2/28、5/9、9/20、10/10 | China Briefing《China Public Holiday Schedule 2026》同表 |
这四组数字每年都被地方政府与媒体重算发布一遍,说明它同时具备两个属性: 唯一正确答案的确定性问题 + 每年重做一次的手工劳动。 AI 直接给出确定答案,正落在工具的价值区间——这是本项目「编排层而非转述层」最实在的一处。
idcard_check 为什么值得单独一提这是本项目唯一不依赖第三方 API 的模块——纯本地算法,永远可用,不会被上游关停或 Cloudflare 拦截。
价值不在"算法稀缺"(Python 有现成库),而在于 AI 自己做 17 位加权求和 + 模 11 查表极容易算错:加权因子表错位、索引偏移、X 大小写处理,任何一个小错都会导致校验结论颠倒。把这件事从"AI 现场算"改成"AI 调用一次拿到确定答案",价值是实打实的。
[idcard] 11010519491231002X → 有效
校验位:X 正确(ISO 7064 MOD 11-2) 出生日期:1949-12-31 性别:女(顺序码 2 为偶) 省级行政区:北京市(11) 回显掩码:110105********X
隐私边界:只解析国标公开字段,不触姓名、住址等隐私项;回显中间掩码,避免明文回传。
io.github.mouseart2025/china-context-mcpactive / isLatest=true(2026-09-25 上线)server.json;改动后执行 mcp-publisher publish 重新发布description 有 100 字符硬上限,超了会返回 422同一批检索(Registry search=china,2026-09-25,命中 38 条)里已经有一批人真在做中国侧 MCP。 把位置摆清楚,比假装没有对手有用:
| 服务 | 定位 | 与本项目的关系 |
|---|---|---|
com.ainetcafe/netcafe-china | 远程 HTTP:中国大陆可达性、调休 holidays、身份证/手机号校验 | 功能有重叠。但它是把号码 POST 到 ainetcafe.com 的远端服务;本项目的 idcard_check 全程在本地进程内算完,号码不出机器。校验一个身份证还要过一遍别人的服务器,这层差别是隐私级别的 |
io.github.pipeworx-io/china-* | 中国金融数据家族(LPR / A股 / 海关 / 外汇 / 空气质量…),均零凭证 | 走远程 gateway;本项目走本地 stdio,数据面是「节日 / 史 / 诗词 / 证件」这类生活与文化语境,不抢同一批用户 |
io.github.bg7iuy/china-phone | 手机号归属(工信部号段数据) | 不同号码体系,无冲突 |
❗修正一条此前的判断:本项目早期做过一轮「天气 / 空气质量 MCP 真空」扫描,GitHub Search 结论是 0 个仓库。
但 Registry 里其实已有
cn.pianam.mcp/weather-mcp-china与io.github.pipeworx-io/china-air-quality——
只扫 GitHub Search 会漏掉已落地的实现,真空判据必须同时看 Registry。
一、被收录并不等于别人能连上。 2026-09-25 抽样了 Registry 上 40 个带远程端点的服务: 可连且能出工具 7 个(27%),19 个被站点主人拒绝(Cloudflare 1010),14 个因与本网络出口同形错误而无法判定。 Registry 的 remotes[].url 是提交者自己填的,没有任何存活校验。收录只是把地址写进一份名单。
二、目录面:逐条实测(2026-09-25 下午,带阳性/阴性对照)。
| 站点 | 实测结果 | 判定依据 |
|---|---|---|
| Glama | 已收录:glama.ai/mcp/servers/mouseart2025/china-context-mcp,可见 4 个工具(history_today / holiday_info / holiday_summary / random_poem),并带 Glama 自评 A 的 score badge | 直接 GET 详情页;对照一个假 slug 返回 404 |
| Smithery | 命中仅在 {"q":"?q=china-context-mcp"} 里 | 页面查询串自回显 |
| PulseMCP | 命中仅在 里 | 搜索框自回显 |
| mcp.so | 未收录;加急发布标 $39 one-time,免费走人工 review | mcp.so/submit 页原文;未登录态下表单 POST 只回到同一 SPA 页,拿不到任何提交回执 |
| LobeHub | 未收录;条目页对已收录项返回 200、对未收录项返回 500 | 阳性对照 upstash-context7 = 200;org 下只有 mcp-hello-world,无公开列表仓库,找不到自提交入口 |
这里推翻了先前「Glama / LobeHub 均为 SPA,HTML 里判不出」的说法:
Glama 用双段 slug `owner/repo`(不是单段
china-context-mcp),所以先前那轮扫到了一个 SPA 外壳页;
LobeHub 的条目页是服务端渲染的,200/500 本身就是可用的收录判别器。
一个意外收获:我们从未向 Glama 提交过。它是在官方 Registry 发布后
由 Glama 自己的爬虫抓过去的 —— 说明 Registry 的链接会外溢到第三方目录,提交 Registry 是有复利的动作。
三、已做、仍在自动生效的发行动作(无需人工,爬虫会自己抓):
mcp-server / model-context-protocol / china / holiday / idcard / pythonsmithery.yaml 与 .mcp.json —— Smithery 的 scanner 两者都要有,只有 `smithery.yaml` 会校验失败status=active;glama.json 已加在根目录,格式经 Glama 自家 https://glama.ai/mcp/schemas/server.json 校验通过(认领凭证,见下)四、已自动提交的收录申请(2026-09-25):
| 目标 | 形态 | 状态 |
|---|---|---|
| punkpeye/awesome-mcp-servers(95.5k★) | PR #15083,插入 Data Platforms 段字母序位 | 已开,标题带 🤖🤖🤖 走 CONTRIBUTING 里的 agent 快通道 |
| TensorBlock/awesome-mcp-servers(864★,当日有更新) | issue #2669,走其 add-mcp-server 表单,目标分类 Data Analysis & Business Intelligence | 已开,等待其机器人转 PR |
| Glama 认领 | 仓库根 glama.json → {"maintainers":["mouseart2025"]} | 已就位,下次同步生效 |
前一条「仍需人工的:Glama 认领、mcp.so / LobeHub 表单提交」作废。
Glama 那条其实只要一个 JSON 文件;mcp.so 的免费路径要先登录;LobeHub 压根没有自提交入口。
五、仍未打通的:mcp.so(付费或登录态)、LobeHub(无入口,只能等其运营收录或由人去提 PR)。 这两家规则不同、没有统一入口,且都不影响可运行性 —— 收录只影响被发现的概率。
已发布 PyPI(v0.1.4,Python ≥ 3.10):
pip install china-context-mcp
若用 uv,一行即可(自动解依赖):
uvx china-context-mcp
也可以直接从 GitHub 装(开发版,未经发布流程校验):
git clone https://github.com/mouseart2025/china-context-mcp.git
cd china-context-mcp pip install -e .
依赖:mcp、fastmcp(Python ≥ 3.10)。
在 Claude Desktop / Cursor / 任意支持 MCP 的客户端配置:
{
"mcpServers": { "china-context": { "command": "china-context-mcp" } } }
或指向模块:
{
"mcpServers": { "china-context": { "command": "python", "args": ["-m", "china_context_mcp"] } } }
python -m china_context_mcp # 启动 stdio 服务,由 MCP 客户端连接
python -m china_context_mcp --transport streamable-http --port 8791
⚠️ 默认只绑
127.0.0.1。要对外暴露需显式传--host,并自行承担鉴权 ——
本服务不带任何鉴权层,直接暴露在公网等于开放一个无限制的出站代理入口。
本仓库自身不提供托管端点。
holiday_info 在「上游无数据的年份」会给出自信的错误答案| 项 | 内容 |
|---|---|
| 受影响版本 | v0.1.0 – v0.1.3 |
| 受影响查询 | 查询上游尚未收录年份(如 2027、2028)的日期 |
| 错误表现 | 例如 holiday_info("2027-01-01") 返回「法定假日:否 / 是否工作日:是 / 工资倍率:1x」 |
| 为什么是错的 | 元旦(1/1)、劳动节(5/1–5/2)、国庆(10/1–10/3)是《全国年节及纪念日放假办法》直接规定的公历固定法定节假日,与年度调休、与年份都无关 —— 任何年份都必须是「是」 |
| 根因 | h = d.get("holiday") or {}:把「该年份无数据」与「这天确定是普通工作日」压成了同一种状态 |
| 附带矛盾 | 同一服务的 holiday_summary(2027) 会说「暂无收录」,两个工具互相打脸 |
| 已修复版本 | v0.1.4 |
| 修复方式 | 新增法规常量层(statutory.py + statutory_dates.json,离线、不联网、不引入农历库),holiday_info 改为三态判别:有数据 / 无数据但属固定法定日 / 无数据且未知 ⇒ 未知一律说「无法确定」,绝不说「否」;holiday_summary 同步回落到同一层 |
该缺陷是纯逻辑问题,与网络、部署地域无关,任何环境都会复现。
每年 11–12 月(查询次年假期的高峰)正是它的高发窗口。
MIT