时区管理服务器

一个全面的MCP服务器,提供全球时区管理和时间转换功能,适用于全球业务协调、旅行规划和开发运维。

  • by SzeMeng76
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 szemeng76/mcp-time-server

使用说明

⏰ MCP时间服务器

中文版 | 英语

用于时区管理和时间转换的综合MCP服务器

🎯 概述

一种模型上下文协议(MCP)服务器,提供强大的时区实用程序,包括跨不同时区的当前时间检索和区域之间的无缝时间转换。使用TypeScript构建,具有可靠性,可与任何兼容MCP的客户端配合使用。

✨ 特性

  • 🌍 全球时区:获取全球任何时区的当前时间
  • 🔄 时间转换:精确转换不同时区之间的时间
  • ⚡ 快速性能:使用原生JavaScript API进行高效的时间计算
  • 🔧 TypeScript:具有全面错误处理功能的全类型安全
  • 🌐 多平台:支持本地MCP客户端和Cloudflare Workers
  • 📡 HTTP支持:用于web集成的其他HTTP和SSE端点
  • 🎨 友善:带有时区信息的清晰、格式化的时间输出

📦 安装

npm install mcp-time-server

或者直接与npx一起使用:

npx mcp-time-server

🔧 配置

克劳德桌面

{
  "mcpServers": {
    "time": {
      "command": "npx",
      "args": ["mcp-time-server"]
    }
  }
}

光标IDE

{
  "mcpServers": {
    "time": {
      "command": "npx",
      "args": ["mcp-time-server"]
    }
  }
}

VS代码与GitHub Copilot

{
  "mcp.servers": {
    "time": {
      "command": "npx",
      "args": ["mcp-time-server"],
      "transport": "stdio"
    }
  }
}

地方发展

{
  "mcpServers": {
    "time": {
      "command": "node",
      "args": ["path/to/mcp-time-server/dist/cli.js"]
    }
  }
}

🛠️ 可用工具

get_current_time

获取指定时区的当前时间。

参数:

  • timezone (可选):时区标识符(例如,“美洲/纽约”、“亚洲/东京”、“欧洲/伦敦”)
    • 默认值:“UTC”(如果未指定)
    • 支持所有标准IANA时区名称

示例用法:

"What time is it now in Tokyo?"
"Get current time in New York"
"Show me the current UTC time"
"What's the time in London right now?"

退货:

  • 指定时区的格式化日期和时间
  • 用于确认的时区标识符
  • 24小时制(HH:MM:SS)
  • 完整日期(YYYY/MM/DD)

示例响应:

2025/7/26 14:30:45 (Asia/Tokyo)

convert_time

在不同时区之间转换时间。

参数:

  • source_timezone (必填):源时区标识符
  • time (必填):转换为HH:MM格式的时间(24小时)
  • target_timezone (必填):目标时区标识符

示例用法:

"Convert 14:30 from Tokyo time to New York time"
"What is 09:00 London time in Los Angeles?"
"Convert 18:45 from UTC to Sydney time"

退货:

  • 原始时间与源时区
  • 转换为目标时区的时间
  • 清晰的转换声明

示例响应:

14:30 在 Asia/Tokyo 相当于 01:30 在 America/New_York

🎮 使用示例

全球业务协调

"What time is it now in our offices in London, Tokyo, and San Francisco?"
"Convert our 10:00 AM meeting time from EST to all other office time zones"

旅行计划

"If it's 3:00 PM in Paris, what time is it in my destination city Bangkok?"
"Convert my flight departure time 08:30 from LAX timezone to arrival timezone in Dubai"

开发和运营

"Get current UTC time for logging"
"Convert server maintenance time 02:00 UTC to all regional offices"

进度安排和协调

"Convert 15:30 CET to Pacific Standard Time for our team call"
"What's 9:00 AM Monday in Sydney equivalent to in London?"

🌍 支持的时区

此服务器支持所有标准IANA时区标识符,包括:

主要地区

  • 美洲:美国/纽约,美国/洛杉矶,美国/芝加哥,美国/多伦多
  • 欧洲:欧洲/伦敦,欧洲/巴黎,欧洲/柏林,欧洲/罗马
  • 亚洲:亚洲/东京、亚洲/上海、亚洲/香港、亚洲/新加坡
  • 澳大利亚:澳大利亚/澳大利亚悉尼/澳大利亚墨尔本/珀斯
  • 其他:UTC、GMT和所有其他IANA区域

常见示例

UTC                    # Coordinated Universal Time
America/New_York       # Eastern Time (US)
America/Los_Angeles    # Pacific Time (US)
Europe/London          # Greenwich Mean Time
Europe/Paris           # Central European Time
Asia/Tokyo             # Japan Standard Time
Asia/Shanghai          # China Standard Time
Australia/Sydney       # Australian Eastern Time

🏗️ 发展

本地设置

# Clone the repository
git clone https://github.com/SzeMeng76/mcp-time-server.git
cd mcp-time-server

# Install dependencies
npm install

# Build the project
npm run build

# Start the server
npm start

项目结构

mcp-time-server/
├── src/
│   ├── index.ts          # Main MCP server implementation
│   └── cli.ts            # CLI and HTTP server setup
├── dist/                 # Compiled JavaScript files
├── package.json          # Dependencies and scripts
├── tsconfig.json         # TypeScript configuration
└── README.md            # Documentation

核心依赖关系

  • @模型上下文协议/sdk:官方MCP服务器框架
  • 动物圈:运行时类型验证和架构定义
  • 超文本传输协议:用于web端点的Node.js HTTP服务器

🔧 技术细节

时区处理

  • 使用JavaScript的原生 Intl.DateTimeFormat API用于精确的时区转换
  • 支持所有IANA时区标识符
  • 自动处理夏令时转换
  • 提供24小时格式以保持一致性

时间转换算法

时间转换过程包括几个步骤以确保准确性:

  1. 解析输入时间:将HH:MM字符串转换为数值
  2. 创建本地日期:为当前日期构建日期对象
  3. UTC转换:转换为UTC作为中间步骤
  4. 源验证:验证源时区中的输入时间
  5. 调整:对时区差异进行任何必要的更正
  6. 目标格式:在目标时区中格式化结果

错误处理

  • 时间格式的全面输入验证
  • 清除无效时区标识符的错误消息
  • 妥善处理边缘情况和DST转换
  • 使用Zod模式进行类型安全的参数处理

多平台支持

  • MCP客户端:用于MCP兼容性的标准stdio传输
  • HTTP服务器:用于web集成的REST端点
  • SSE支持:服务器发送实时更新事件
  • Cloudflare员工:云部署支持

🌐 HTTP端点

当作为HTTP服务器运行时,可以使用其他端点:

/mcp

  • 方法:获取
  • 描述:服务器状态和可用工具
  • 响应:带有服务器信息的JSON

/sse

  • 方法:获取
  • 描述:服务器发送事件终结点
  • 响应:用于实时更新的事件流

⚠️ 重要提示

时区准确性

  • 所有计算均使用IANA官方时区数据
  • 夏令时转换是自动处理的
  • 当前日期计算结果准确
  • 过去的日期可能不会反映历史时区的变化

输入格式

  • 时间必须以24小时格式提供(HH:MM)
  • 前导零不是必需的(例如,“9:30”或“09:30”)
  • 输入中不支持秒,但输出中显示秒

性能注意事项

  • 实时执行时区计算
  • 未实现缓存以获得最大精度
  • 通过高效算法实现最小内存占用

🚀 常见用例

业务运营

  • 全球团队:协调跨多个时区的会议
  • 客户支持:将支持时间转换为客户当地时间
  • 发布管理:安排全球基础设施的部署

旅行和物流

  • 飞行计划:转换出发区和到达区之间的航班时间
  • 活动策划:安排国际活动和网络研讨会
  • 旅游行程:计划目的地时区的活动

开发与DevOps

  • 日志分析:将UTC时间戳转换为本地时区
  • 监控:在适当的区域时区显示警报
  • 部署:跨地区安排维护窗口

个人生产力

  • 日历管理:转换旅行预约时间
  • 沟通:跨时区查找最佳会议时间
  • 规划:与国际同事和朋友协调

🤝 贡献

  1. 分叉存储库
  2. 创建要素分支: git checkout -b feature-name
  3. 使用正确的TypeScript类型进行更改
  4. 在不同时区和边缘情况下进行测试
  5. 确保错误处理正常工作
  6. 提交带有清晰描述的拉取请求

开发指南

  • 保持TypeScript严格模式合规性
  • 为新功能添加全面的错误处理
  • 使用常见和模糊时区进行测试
  • 记录任何新参数或返回格式
  • 考虑夏令时边缘情况

📄 许可证

MIT许可证-请参阅 许可证 文件以获取详细信息。

⚖️ 数据和准确性

  • 时区数据:使用浏览器/Node.js内置的IANA时区数据库
  • 准确度:当前日期和标准转换的计算是准确的
  • 更新:时区数据随JavaScript运行时更新而更新
  • 局限性:可能无法完全支持历史时区更改
  • 可靠性:适用于商务和个人日程安排应用程序

🙏 致谢

  • 安娜用于维护综合时区数据库
  • MCP社区:用于标准化协议
  • JavaScript国际API:用于强大的国际化支持
  • 贡献者:所有帮助改进这个项目的人

专为全球协调、日程安排和时区管理而构建 ⏰🌍