Mcp_time_workdays_node

by tanranv5

300 downloads
Not rated
GitHub

Description

# MCP Time & Workdays (Node) 提供一个基于 Model Context Protocol (MCP) 的 Node 服务器: - 获取指定时区的当前时间(可自定义格式) - 获取某年某月的官方工作日、假期与补班(多数据源) 默认在线数据源为 Timor 年聚合接口,额外支持 NateScarlet holiday-cn(GitHub Raw)作为免费备选,无需 API Key。 --- ## 特性 - 在线数据源(免费): - Timor 年聚合接口(默认) - NateScarlet holiday-cn(GitHub…

About

# MCP Time & Workdays (Node) 提供一个基于 Model Context Protocol (MCP) 的 Node 服务器: - 获取指定时区的当前时间(可自定义格式) - 获取某年某月的官方工作日、假期与补班(多数据源) 默认在线数据源为 Timor 年聚合接口,额外支持 NateScarlet holiday-cn(GitHub Raw)作为免费备选,无需 API Key。 --- ## 特性 - 在线数据源(免费): - Timor 年聚合接口(默认) - NateScarlet holiday-cn(GitHub Raw,内置 CDN 兜底) -…

Details

Author
tanranv5
Downloads
300
Categories
Productivity

- Two tools: get current time (any timezone, custom format) and query workdays/holidays by year/month
- Two free online data sources: Timor (default) and NateScarlet holiday-cn (with CDN fallback)
- Unified output as MCP text content for strict client compatibility
- Requires only Node 18+ and the MCP SDK; no API keys or extra dependencies

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name Mcp_time_workdays_node
    Command (node, npx, python, etc.)

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

Requires Node.js >= 18.17. Install globally via npm install -g mcp-time-workdays-node or run directly with npx mcp-time-workdays-node. Configure as an MCP server in your client's config (e.g., claude_desktop_config.json) using the command npx mcp-time-workdays-node. The server exposes two tools: get_current_time and get_workdays_from_api, both communicating via stdio.

get_current_time

获取指定时区的当前时间(支持自定义格式)

get_workdays_from_api

获取某月官方工作日与补班(支持 timor 与 nate 提供方)

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

{
    "mcpServers": {
        "mcp_time_workdays_node": {
            "time-and-workdays-node": {
                "command": "npx",
                "args": [
                    "mcp-time-workdays-node"
                ],
                "env": []
            }
        }
    }
}

McpServers

{
    "time-and-workdays-node": {
        "command": "npx",
        "args": [
            "mcp-time-workdays-node"
        ],
        "env": []
    }
}

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

2) get_workdays_from_api
- 输入:
- year:整数(默认当前年)
- month:1-12(默认当前月)
- tzlocal 或 IANA 时区名(默认 local,仅用于获取“当前年月”)
- providertimor(默认)或 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=falsename 包含“补班”视为补班

- 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:单位秒。网络波动时可适当增大。

致谢

- 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。

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.