关于 MCP 时间服务器
MCP 时间服务器为需要处理跨时区时间的用户提供当前时间查询与时区转换。它支持标准 IANA 时区,并可通过 MCP 客户端、HTTP 和 SSE 使用。
主要功能
- 01查询任意 IANA 时区当前时间
- 02转换不同时区间的时间
- 03自动处理夏令时
- 04提供 HTTP 与 SSE 端点
适用场景
- 01协调跨时区团队会议
- 02规划跨时区行程与航班
- 03将维护时间转换为各地时间
MCP 相关
该 MCP 服务向兼容客户端提供当前时间查询和时区转换工具。也支持 HTTP 与 SSE 端点。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
2收录的工具列表 · 更新于 3 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| timezone | string | 否 |
详细介绍
⏰ MCP Time Server
中文版 | English
一款功能全面的 MCP 服务,用于时区管理和时间转换
🎯 概述
一款 Model Context Protocol (MCP) 服务,提供强大的时区实用工具,包括获取不同时区的当前时间,以及在不同时区之间无缝转换时间。采用 TypeScript 构建,可靠性高,并且适用于任何兼容 MCP 的客户端。
✨ 功能特性
- 🌍 全球时区:获取全球任意时区的当前时间
- 🔄 时间转换:精准转换不同时区之间的时间
- ⚡ 高性能:使用原生 JavaScript API 高效计算时间
- 🔧 TypeScript:全面的类型安全保障和完善的错误处理
- 🌐 多平台:支持本地 MCP 客户端和 Cloudflare Workers
- 📡 HTTP 支持:提供额外的 HTTP 和 SSE 端点,以便集成到 Web 应用
- 🎨 易于使用:清晰易读的格式化时间输出,包含时区信息
📦 安装
npm install mcp-time-server
或直接使用 npx:
npx mcp-time-server
🔧 配置
Claude Desktop
{
"mcpServers": {
"time": {
"command": "npx",
"args": ["mcp-time-server"]
}
}
}
Cursor IDE
{
"mcpServers": {
"time": {
"command": "npx",
"args": ["mcp-time-server"]
}
}
}
VS Code with 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(可选):时区标识符(例如,“America/New_York”、“Asia/Tokyo”、“Europe/London”)- 未指定时,默认为“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 时区标识符,包括:
主要地区
- 美洲:America/New_York、America/Los_Angeles、America/Chicago、America/Toronto
- 欧洲:Europe/London、Europe/Paris、Europe/Berlin、Europe/Rome
- 亚洲:Asia/Tokyo、Asia/Shanghai、Asia/Hong_Kong、Asia/Singapore
- 澳大利亚:Australia/Sydney、Australia/Melbourne、Australia/Perth
- 其他: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
核心依赖项
- @modelcontextprotocol/sdk:官方 MCP 服务框架
- zod:运行时类型验证和模式定义
- http:用于 Web 端点的 Node.js HTTP 服务
🔧 技术详情
时区处理
- 使用 JavaScript 原生的
Intl.DateTimeFormatAPI,准确转换时区 - 支持所有 IANA 时区标识符
- 自动处理夏令时切换
- 提供 24 小时制,确保格式统一
时间转换算法
时间转换过程包含多个步骤,以确保准确性:
- 解析输入时间:将 HH:MM 字符串转换为数值
- 创建本地日期:为当天创建日期对象
- 转换为 UTC:先转换为 UTC,作为中间步骤
- 验证源时区:验证源时区中的输入时间
- 调整时间:根据时区差异进行必要的校正
- 格式化目标时间:按目标时区格式化结果
错误处理
- 对时间格式进行全面验证
- 为无效时区标识符提供清晰的错误消息
- 妥善处理边缘情况和夏令时切换
- 使用 Zod schema 进行类型安全的参数处理
多平台支持
- MCP 客户端:使用标准 stdio 传输,兼容 MCP
- HTTP 服务:提供用于 Web 集成的 REST 端点
- SSE 支持:使用服务器发送事件实现实时更新
- Cloudflare Workers:支持云端部署
🌐 HTTP 端点
作为 HTTP 服务运行时,可使用以下额外端点:
/mcp
- 方法:GET
- 说明:服务状态和可用工具
- 响应:包含服务信息的 JSON
/sse
- 方法:GET
- 说明:服务器发送事件端点
- 响应:用于实时更新的事件流
⚠️ 重要说明
时区准确性
- 所有计算均使用官方 IANA 时区数据
- 自动处理夏令时切换
- 当前日期的计算结果准确
- 过去日期的历史时区变更可能无法反映
输入格式
- 时间必须采用 24 小时制格式(HH:MM)
- 无需补齐前导零(例如,“9:30”或“09:30”)
- 输入不支持秒,但输出会显示秒
性能注意事项
- 时区计算实时执行
- 不使用缓存,以确保准确性
- 采用高效算法,占用内存极少
🚀 常见使用场景
商务运营
- 全球团队:协调跨多个时区的会议
- 客户支持:将支持时段转换为客户当地时间
- 发布管理:安排全球基础设施的部署
旅行和物流
- 航班规划:转换出发地和目的地时区的航班时间
- 活动规划:安排国际活动和网络研讨会
- 旅行行程:规划目的地时区的活动
开发和 DevOps
- 日志分析:将 UTC 时间戳转换为当地时区
- 监控:以适当的地区时区显示警报
- 部署:安排跨地区的维护时段
个人效率
- 日历管理:转换旅行期间的预约时间
- 沟通:查找跨时区的最佳会议时间
- 规划:与国际同事和朋友协调
🤝 贡献
- Fork 此仓库
- 创建功能分支:
git checkout -b feature-name - 使用合适的 TypeScript 类型进行修改
- 使用各种时区和边缘情况进行测试
- 确保错误处理正常工作
- 提交 Pull Request,并附上清晰的说明
开发指南
- 遵循 TypeScript 严格模式
- 为新功能添加全面的错误处理
- 使用常见和冷门时区进行测试
- 记录任何新增参数或返回格式
- 考虑夏令时切换的边缘情况
📄 许可证
MIT 许可证——详情请参阅 LICENSE 文件。
⚖️ 数据与准确性
- 时区数据:使用浏览器/Node.js 内置的 IANA 时区数据库
- 准确性:当前日期和标准时区切换的计算结果准确
- 更新:时区数据会随 JavaScript 运行时更新而更新
- 局限性:可能无法完全支持历史时区变更
- 可靠性:适用于商务和个人日程安排应用
🙏 致谢
- IANA:维护全面的时区数据库
- MCP 社区:制定标准化协议
- JavaScript Intl API:提供强大的国际化支持
- 贡献者:感谢所有帮助改进此项目的人
为全球协作、日程安排和时区管理而构建 ⏰🌍
评论
支持 Markdown
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。