使用说明
⏰ 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.DateTimeFormatAPI用于精确的时区转换 - 支持所有IANA时区标识符
- 自动处理夏令时转换
- 提供24小时格式以保持一致性
时间转换算法
时间转换过程包括几个步骤以确保准确性:
- 解析输入时间:将HH:MM字符串转换为数值
- 创建本地日期:为当前日期构建日期对象
- UTC转换:转换为UTC作为中间步骤
- 源验证:验证源时区中的输入时间
- 调整:对时区差异进行任何必要的更正
- 目标格式:在目标时区中格式化结果
错误处理
- 时间格式的全面输入验证
- 清除无效时区标识符的错误消息
- 妥善处理边缘情况和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时间戳转换为本地时区
- 监控:在适当的区域时区显示警报
- 部署:跨地区安排维护窗口
个人生产力
- 日历管理:转换旅行预约时间
- 沟通:跨时区查找最佳会议时间
- 规划:与国际同事和朋友协调
🤝 贡献
- 分叉存储库
- 创建要素分支:
git checkout -b feature-name - 使用正确的TypeScript类型进行更改
- 在不同时区和边缘情况下进行测试
- 确保错误处理正常工作
- 提交带有清晰描述的拉取请求
开发指南
- 保持TypeScript严格模式合规性
- 为新功能添加全面的错误处理
- 使用常见和模糊时区进行测试
- 记录任何新参数或返回格式
- 考虑夏令时边缘情况
📄 许可证
MIT许可证-请参阅 许可证 文件以获取详细信息。
⚖️ 数据和准确性
- 时区数据:使用浏览器/Node.js内置的IANA时区数据库
- 准确度:当前日期和标准转换的计算是准确的
- 更新:时区数据随JavaScript运行时更新而更新
- 局限性:可能无法完全支持历史时区更改
- 可靠性:适用于商务和个人日程安排应用程序
🙏 致谢
- 安娜用于维护综合时区数据库
- MCP社区:用于标准化协议
- JavaScript国际API:用于强大的国际化支持
- 贡献者:所有帮助改进这个项目的人
专为全球协调、日程安排和时区管理而构建 ⏰🌍