mcpField
M
Mcp_time_workdays_node

Mcp_time_workdays_node

Local
github.com/tanranv5Productivity3Updated 59w ago

About Mcp_time_workdays_node

Mcp_time_workdays_node is a Node.js MCP server for clients that need time and official Chinese workday data. It supports time zone and format settings, and retrieves monthly holidays and makeup workdays from two online sources.

Key features

  1. 01Get current time by time zone
  2. 02Customize time output format
  3. 03Retrieve monthly workdays and holidays
  4. 04Choose between two online data sources

Use cases

  1. 01Check the current time across time zones
  2. 02Review official holidays and workdays for a month
  3. 03Identify weekend makeup workdays

MCP support

It exposes `get_current_time` and `get_workdays_from_api` to MCP clients over stdio, returning text or a JSON string.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"mcp_time_workdays_node": {
"command": "npx",
"args": [
"-y",
"mcp-time-workdays-node"
]
}
}
}
Run commandnpx -y mcp-time-workdays-node

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
npmmcp-time-workdays-node

Tools

2

Saved tool list · updated 3w ago

ParameterTypeRequiredDescription
tzstringNoIANA time zone name or 'local'
fmtstringNoTime format (%Y-%m-%d %H:%M:%S%z)

Details

From the project 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 暴露以下工具:

  1. get_current_time
  • 输入:
    • tz:IANA 时区名或 local(默认 local)
    • fmt:时间格式,默认%Y-%m-%d %H:%M:%S%z
  • 输出:text(字符串)
  • 示例输出:2025-09-10 10:30:45+08:00
  1. get_workdays_from_api
  • 输入:
    • year:整数(默认当前年)
    • month:1-12(默认当前月)
    • tz:local 或 IANA 时区名(默认 local,仅用于获取“当前年月”)
    • provider:timor(默认)或 nate
    • timeout:超时秒数(默认 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 若对应周末则视为补班

备注:不推荐用于“补班”判断的数据源(例如 Nager.Date)未内置。

常见问题

  • 输出是 text:为提升 MCP 客户端兼容性,本服务统一返回 text 类型内容(JSON 字符串或纯文本)。
  • 时区参数 tz:仅影响“默认年月”的判定,不影响工作日计算(工作日按本地/官方规则计算)。
  • 超时 timeout:单位秒。网络波动时可适当增大。

致谢


如需把 CLI 也加入 npm bin 或增加更多数据源(例如带 Key 的商业 API),欢迎提 Issue/PR。

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.