PH假期MCP服务器
A. 模型上下文协议 向LLM提供菲律宾国定假日数据的服务器。基于Cloudflare Workers和KV存储构建。
公共、只读、无需身份验证。数据来源于《华盛顿邮报》发布的总统官方公告 官方公报。缓存在Cloudflare KV中,以实现可靠性和低延迟全局访问。
工具
| 工具 | 说明 |
|---|---|
get_holidays | 获取给定年份的所有假期,可选择按类型筛选 |
get_holiday_by_date | 查询特定日期是否为假期 |
get_upcoming_holidays | 从给定日期获取下一个N个假期 |
is_working_day | 根据公告数据检查特定日期是否为工作日 |
get_long_weekends | 获得一年的所有长周末窗口 |
假期类型
| 类型 | 价值 | 薪酬行为 |
|---|---|---|
| 常规假期 | regular | 工作时为200%,休息日为260% |
| 特殊非工作 | special_non_working | 没有工作,就没有报酬。如果工作,则为130% |
| 特殊工作 | special_working | 普通工作日。无保险费 |
| 伊斯兰节日 | islamic | 与常规规则相同。单独公告。 |
薪酬规则只是信息元数据。此服务器不计算工资。
响应格式
所有数据响应都封装在一个标准信封中:
{
"_meta": {
"year": 2026,
"tier": "current",
"proclamation": "No. 1006",
"eid_fitr_status": "pending",
"eid_adha_status": "pending",
"last_updated": "2026-03-08",
"source": "Official Gazette of the Republic of the Philippines"
},
"data": { ... }
}错误响应(isError: true)以无换行的纯文本形式返回。
假期记录
| 字段 | 类型 | 描述 | |
|---|---|---|---|
date | string | ISO 8601日期: YYYY-MM-DD | |
name | string | 法定节假日名称 | |
type | string | regular, special_non_working, special_working, islamic | |
day_of_week | string | 全天名称(例如“星期四”) | |
movable | boolean | 日期是否由一周中的某一天规则定义 | |
double_holiday | boolean | 两个假期是否共享此日期 | |
double_holiday_names | `string[] \ | null` | 双重假期的名称 |
long_weekend | object | 长周末窗口信息(见下文) | |
source | object | 公告参考 | |
notes | `string \ | null` | 附加上下文 |
所有字段始终存在。没有数据的字段是 null,从未遗漏。
伊斯兰节日记录
伊斯兰节日包括其他字段:
| 字段 | 类型 | 描述 | |
|---|---|---|---|
eid_confirmed | boolean | 日期是否已得到NCMF的确认 | |
estimated_date | string | 确认前的天文估计 | |
confirmed_date | `string \ | null` | 确认后实际公布日期 |
proclamation_ref | `string \ | null` | 单独的公告编号 |
长周末窗口
| 字段 | 类型 | 描述 | |
|---|---|---|---|
is_part_of | boolean | 这个假期是否是长周末的一部分 | |
window_start | `string \ | null` | 窗口的第一个日期 |
window_end | `string \ | null` | 窗口的最后日期 |
days | number | 窗口中的总天数 | |
leave_days_needed | number | 所需的过桥假天数(0=自然) | |
dates | string[] | 窗口中的所有日期 |
is_working_day 响应
{
"_meta": { ... },
"data": {
"date": "2026-02-25",
"is_working_day": true,
"reason": "Special Working Day: EDSA People Power Revolution Anniversary",
"holiday_type": "special_working"
}
}连接
添加到MCP客户端配置中:
{
"mcpServers": {
"ph-holidays": {
"url": "https://ph-holidays.godmode.ph/mcp"
}
}
}快速测试
curl -X POST https://ph-holidays.godmode.ph/mcp \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_upcoming_holidays",
"arguments": { "limit": 3 }
}
}'怪癖
- 伊斯兰节日有两个阶段的生命周期。 开斋节和宰牲节在主公告中显示为“待宣布”。日期稍后在NCMF建议后通过单独的公告确认。这
eid_fitr_status和eid_adha_status字段在_meta信号"pending"或"confirmed"当等待时,estimated_date包含在内,但不具有权威性。
- 特殊工作日是违反直觉的。 EDSA人民力量周年纪念日(2026年2月25日)出现在公告中,但 *工作* 一天没有保费。
is_working_day回报true.holiday_type回报"special_working"示例:
is_working_day("2026-02-25") -> true, reason: "Special Working Day: EDSA..."is_working_day不包括周末。 仅检查公告数据。周六/周日的处理由来电者负责。休息日时间表因雇主而异,不在此服务器的范围内。
- 双休假日很少见,但很常见。 当两个假期落在同一天时,
double_holiday: true被记录在案。支付堆叠规则适用,但此服务器不处理计算。
- 待定的开斋节日期不应用于硬性安排。 当
eid_confirmed是false,estimated_date是基于天文估计的。实际公布日期可能相差1天。
- 当地假期不在范围内。 市级假期(奎松市日、马尼拉日、宿务市包机日等)不包括在内。通过psgc-mcp交叉引用保留用于v2集成。
next年份数据可能不可用。 该指数仅包括公告下降后的明年(通常是10月)。get_upcoming_holidays如果明年还没有装载,进入明年的过境将在12月31日停止。
数据源
| 来源 | 用于 |
|---|---|
| 官方公报 | 权威公告文本 |
| 总统公告(马拉卡南) | 年度假期列表 |
| DOLE劳工咨询 | 薪酬规则参考(信息性) |
| NCMF | 开斋节日期确认 |
本年度:2026年(第1006号公告,2025年9月3日签署)。
年份覆盖范围
| 级别 | 年份 | 备注 |
|---|---|---|
current | 2026年 | 积极维护。开斋节在确认后就结束了。 |
next | -- | 10月公告发布时装载。 |
在任何给定时间,KV最多保持2年。没有历史数据。
数据管道
scripts/
data/
2026/ proclamation-source.json
seed.ts -- full KV load for a given year
rollover.ts -- promote next to current, drop old current
patch-eid.ts -- targeted Eid date update
patch-holiday.ts -- ad hoc single holiday patch
validate.ts -- schema validation before deploy种子一年
npm run seed -- --year=2026部署前验证
npm run validate -- --year=2026NCMF确认后的补丁Eid
npm run patch-eid -- --year=2026 --holiday=fitr --date=2026-03-21 --proclamation="No. 1234"年度滚动(1月1日)
npm run rollover发展
npm install
npm run seed -- --year=2026
npm run dev开发服务器启动时间 http://localhost:8787。将您的MCP客户端连接到 http://localhost:8787/mcp.
设置
在首次部署之前,创建KV命名空间:
npx wrangler kv namespace create HOLIDAYS_KV更新 wrangler.jsonc 使用返回的命名空间ID。
相关项目
菲律宾公共数据MCP服务器套件的一部分:
所有服务器都是免费的、公共的、只读的。数据来自菲律宾政府官方消息来源。
贡献和问题
发现数据错误或错过了假期?打开一个问题。菲律宾的假期可以通过年中公告来改变,问题清单是标记它们的最佳地点。
开斋节日期每年单独确认。当NCMF宣布确认日期时,打开一个带有公告参考的问题或PR。
建造于
亚伦·扎拉 -CTO分数 Godmode数码
对于企业SLA、自定义集成或其他PH数据源: -> godmode.ph
许可证
麻省理工学院
