About Time Workdays Node
Time Workdays Node is an MCP server published by tanranv5 in the AI category: 提供一个基于 Model Context Protocol (MCP) 的 Node 服务器: - 获取指定时区的当前时间(可自定义格式) - 获取某年某月的官方工作日、假期与补班(多数据源).
The repository has 3 stars and 1 forks, with the last commit a year ago. Six months or more without a commit doesn't mean the server is broken, but check the open issues before depending on it in production.
Install
git clone https://github.com/tanranv5/mcp_time_workdays_nodeThis server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.
Ask AI
Ask AI about Time Workdays Node
Powered by Claude · Grounded in docs
Security checks
Static checks derived from the repository 5 days ago. Heuristics on the source, not an audit.
- ✓README presentThe repository ships documentation.
- !License declaredNo license file. Legally you have no right to use it in a product.
- !Tests presentNo tests found. Behaviour changes may go unnoticed between versions.
- !Dependencies pinnedNo lockfile. Installs can pull different code over time.
- ✓No dynamic code executionSource scan found no eval, dynamic Function, or shell execution.
- !Scoped permissionsDoesn't declare a permission scope. Assume it can do anything its process can.
README
MCP Time & Workdays (Node)
提供一个基于 Model Context Protocol (MCP) 的 Node 服务器:
- 获取指定时区的当前时间(可自定义格式)
- 获取某年某月的官方工作日、假期与补班(多数据源)
默认在线数据源为 Timor 年聚合接口,额外支持 NateScarlet holiday-cn(GitHub Raw)作为免费备选,无需 API Key。
特性
- 在线数据源(免费):
- Timor 年聚合接口(默认)
- NateScarlet holiday-cn(GitHub Raw,内置 CDN 兜底)
- 统一输出:工作日(
workdays)、假期(holidays)、补班(makeup_workdays) - 工具输出统一封装为 MCP
text内容,兼容严格客户端 - Node 18+ 原生运行,无需额外依赖(除 MCP SDK)
环境与安装
- 要求:Node.js >= 18.17
方式一:NPX(推荐)
# 全局安装
npm install -g mcp-time-workdays-node
# 或直接使用 npx
npx mcp-time-workdays-node
方式二:本地开发
# 克隆项目
git clone https://github.com/tanranv5/mcp_time_workdays_node.git
cd mcp-time-workdays-node
# 安装依赖
npm install
# 运行服务器
node mcp_time_workdays_node.mjs
# 或
npm start
提示:本项目
package.json已设定type: module与最小依赖@modelcontextprotocol/sdk。
MCP 工具
服务器启动后会通过 stdio 暴露以下工具:
get_current_time
- 输入:
tz:IANA 时区名或local(默认local)fmt:时间格式,默认%Y-%m-%d %H:%M:%S%z
- 输出:
text(字符串) - 示例输出:
2025-09-10 10:30:45+08:00
get_workdays_from_api
- 输入:
year:整数(默认当前年)month:1-12(默认当前月)tz:local或 IANA 时区名(默认local,仅用于获取“当前年月”)provider:timor(默认)或natetimeout:超时秒数(默认8.0)
- 输出:
text(JSON 字符串):provider, year, month, workdays[], holidays[], makeup_workdays[]
- 逻辑:
- 工作日 = “当月所有周一至周五 - 官方假期 + 官方补班周末”
例:手动调用(模拟 MCP 客户端逻辑)
以下展示从命令行模拟调用的方式(仅示例):
# 获取 2025-10 月(Timor)
node -e "(async()=>{const s=await import('./mcp_time_workdays_node.mjs');})();" \
| echo '{"method":"tools/call","params":{"name":"get_workdays_from_api","arguments":{"year":2025,"month":10,"provider":"timor"}}}'
实际使用中,请让 MCP 兼容的客户端(如 Claude Desktop)通过 stdio 连接。
客户端配置示例(Claude Desktop)
NPX 方式(推荐)
在 claude_desktop_config.json(或等效位置)中添加:
{
"mcpServers": {
"time-and-workdays-node": {
"command": "npx",
"args": ["mcp-time-workdays-node"],
"env": {}
}
}
}
本地开发方式
{
"mcpServers": {
"time-and-workdays-node": {
"command": "node",
"args": ["/absolute/path/to/mcp_time_workdays_node.mjs"],
"env": {}
}
}
}
数据源说明
-
timor(默认):- 年聚合接口:
https://timor.tech/api/holiday/year/{year} - 响应字段包含
holiday映射:{ 'MM-DD': { date, holiday, name, ... } } - 使用方式:从映射中过滤当月项;
holiday=true视为放假;holiday=false且name包含“补班”视为补班
- 年聚合接口:
-
nate:- 年文件(GitHub Raw):
https://raw.githubusercontent.com/NateScarlet/holiday-cn/master/{year}.json - 内置 CDN 兜底:
https://cdn.jsdelivr.net/gh/NateScarlet/holiday-cn@master/{year}.json days[]内isOffDay=true为放假;isOffDay=false若对应周末则视为补班
- 年文件(GitHub Raw):
备注:不推荐用于“补班”判断的数据源(例如 Nager.Date)未内置。
常见问题
- 输出是
text:为提升 MCP 客户端兼容性,本服务统一返回text类型内容(JSON 字符串或纯文本)。 - 时区参数
tz:仅影响“默认年月”的判定,不影响工作日计算(工作日按本地/官方规则计算)。 - 超时
timeout:单位秒。网络波动时可适当增大。
致谢
- Timor 年聚合接口:https://timor.tech/
- NateScarlet holiday-cn:https://github.com/NateScarlet/holiday-cn
- Model Context Protocol:https://github.com/modelcontextprotocol
如需把 CLI 也加入 npm bin 或增加更多数据源(例如带 Key 的商业 API),欢迎提 Issue/PR。
README fetched from the repository 5 days ago. The original is authoritative.