节假日数据服务

一个提供菲律宾国家节假日数据的MCP服务器,基于Cloudflare Workers和KV存储,无需认证,数据来源官方公告。

  • by GodModeArch
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 GodModeArch/ph-holidays-mcp

使用说明

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 }
    }
  }'

怪癖

  1. 伊斯兰节日有两个阶段的生命周期。 开斋节和宰牲节在主公告中显示为“待宣布”。日期稍后在NCMF建议后通过单独的公告确认。这 eid_fitr_status 和 eid_adha_status 字段在 _meta 信号 "pending" 或 "confirmed"当等待时, estimated_date 包含在内,但不具有权威性。

  2. 特殊工作日是违反直觉的。 EDSA人民力量周年纪念日(2026年2月25日)出现在公告中,但 工作 一天没有保费。 is_working_day 回报 true. holiday_type 回报 "special_working"示例:

    is_working_day("2026-02-25") -> true, reason: "Special Working Day: EDSA..."
    
  3. is_working_day 不包括周末。 仅检查公告数据。周六/周日的处理由来电者负责。休息日时间表因雇主而异,不在此服务器的范围内。

  4. 双休假日很少见,但很常见。 当两个假期落在同一天时, double_holiday: true 被记录在案。支付堆叠规则适用,但此服务器不处理计算。

  5. 待定的开斋节日期不应用于硬性安排。 当 eid_confirmed 是 false, estimated_date 是基于天文估计的。实际公布日期可能相差1天。

  6. 当地假期不在范围内。 市级假期(奎松市日、马尼拉日、宿务市包机日等)不包括在内。通过psgc-mcp交叉引用保留用于v2集成。

  7. 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=2026

NCMF确认后的补丁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服务器套件的一部分:

  • PSGC-MCP -菲律宾标准地理代码
  • ts MCP -DHSUD销售许可证验证
  • PH假期MCP (此回购)
  • BSP银行目录MCP ->即将推出

所有服务器都是免费的、公共的、只读的。数据来自菲律宾政府官方消息来源。

贡献和问题

发现数据错误或错过了假期?打开一个问题。菲律宾的假期可以通过年中公告来改变,问题清单是标记它们的最佳地点。

开斋节日期每年单独确认。当NCMF宣布确认日期时,打开一个带有公告参考的问题或PR。

建造于

亚伦·扎拉 -CTO分数 Godmode数码

对于企业SLA、自定义集成或其他PH数据源: -> godmode.ph

许可证

麻省理工学院