时间MCP服务器
用于时间感知和时区操作的多架构Docker镜像
______________________________________________________________________
📋 目录
______________________________________________________________________
😎 请我喝杯咖啡☕︎
您的支持鼓励我继续创建/支持我的开源项目。 如果你在这个项目中发现了价值,你可以给我买杯咖啡,让我保持灵感。
概述
时间MCP服务器通过模型上下文协议提供时间感知和时区操作功能。基于Alpine Linux构建,占用空间最小,安全性最高。
主要特点
✨ 多架构支持 -原生支持x86-64和ARM64\ 🚀 多种传输协议 -HTTP、SSE和WebSocket支持\ 🔒 设计安全 -基于阿尔卑斯山,攻击面最小\ ⚡ 高性能 -ZSTD压缩可实现更快的部署\ 🎯 生产就绪 -经过全面测试的稳定版本\ 🔧 易于配置 -简单的环境变量设置
______________________________________________________________________
支持的架构
| 架构 | 标签前缀 | 状态 |
|---|---|---|
| x86-64 | amd64- | ✅ 稳定 |
| ARM64 | arm64v8- | ✅ 稳定 |
💡 多拱形图像会自动为您的系统选择正确的架构。
______________________________________________________________________
可用标签
| 标签 | 稳定性 | 描述 | 用例 |
|---|---|---|---|
stable | ⭐⭐⭐ | 最稳定的版本 | 推荐用于生产 |
latest | ⭐⭐⭐ | 最新稳定版本 | 保持最新稳定功能 |
1.0.6 | ⭐⭐⭐ | 特定版本 | 版本固定以保持一致性 |
beta | ⚠️ | Beta版本 | 仅测试 |
系统要求
- Docker引擎: 23.0+
- 猛撞: 最小512MB
- CPU: 单芯足够
🔒 关键: 在没有适当的安全措施(反向代理、SSL/TLS、身份验证、防火墙规则)的情况下,不要将此容器直接暴露在互联网上。
______________________________________________________________________
快速开始
Docker Compose(推荐)
services:
time-mcp:
image: mekayelanik/time-mcp:stable
container_name: time-mcp
restart: unless-stopped
ports:
- "8060:8060"
environment:
- PORT=8060
- INTERNAL_PORT=38011
- PUID=1000
- PGID=1000
- TZ=Asia/Dhaka
- NODE_ENV=production
- PROTOCOL=HTTP
- ENABLE_HTTPS=false
- HTTP_VERSION_MODE=auto
# Optional: require Bearer token auth at HAProxy layer
# - API_KEY=replace-with-strong-secret
hostname: time-mcp
domainname: local部署:
docker compose up -d
docker compose logs -f time-mcpDocker命令行界面
docker run -d \
--name=time-mcp \
--restart=unless-stopped \
-p 8060:8060 \
-e PORT=8060 \
-e INTERNAL_PORT=38011 \
-e PUID=1000 \
-e PGID=1000 \
-e TZ=Asia/Dhaka \
-e NODE_ENV=production \
-e PROTOCOL=HTTP \
-e ENABLE_HTTPS=false \
-e HTTP_VERSION_MODE=auto \
mekayelanik/time-mcp:stable访问端点
| 协议 | 端点 | 用例 |
|---|---|---|
| 超文本传输协议 | http://host-ip:8060/mcp | 最佳兼容性(推荐) |
| 上海证券交易所 | http://host-ip:8060/sse | 实时流媒体 |
| WebSocket | ws://host-ip:8060/message | 双向沟通 |
启用HTTPS时(ENABLE_HTTPS=true),使用TLS端点:
| 协议 | 端点 |
|---|---|
| 安全超文本传输协议 | https://host-ip:8060/mcp |
| 上海证券交易所 | https://host-ip:8060/sse |
| WebSocket | wss://host-ip:8060/message |
⚠️ 安全警告: 容器现在默认为HTTP(ENABLE_HTTPS=false)以便于本地设置。使用ENABLE_HTTPS=true用于生产、公共网络或任何不受信任的环境。 ⏱️ ARM设备: 在访问端点之前,请允许30-60秒进行初始化。
______________________________________________________________________
配置
环境变量
| 变量 | 默认值 | 描述 |
|---|---|---|
PORT | 8060 | 内部服务器端口 |
INTERNAL_PORT | 38011 | 超级网关使用的内部MCP服务器端口 |
PUID | 1000 | 文件权限的用户ID |
PGID | 1000 | 文件权限的组ID |
TZ | Asia/Dhaka | 集装箱时区(TZ数据库) |
NODE_ENV | production | Node.js环境 |
PROTOCOL | SHTTP | 默认传输协议 |
API_KEY | *(空)* | 启用承载令牌身份验证(Authorization: Bearer ) |
CORS | *(空)* | 逗号分隔的CORS源,支持 * |
ENABLE_HTTPS | false | 在HAProxy中启用TLS终止 |
TLS_CERT_PATH | /etc/haproxy/certs/server.crt | TLS证书路径 |
TLS_KEY_PATH | /etc/haproxy/certs/server.key | TLS私钥路径 |
TLS_PEM_PATH | /etc/haproxy/certs/server.pem | HAProxy使用的组合PEM文件 |
TLS_CN | localhost | CN用于自动生成证书 |
TLS_SAN | DNS: | 用于自动生成证书的SAN |
TLS_DAYS | 365 | 自动生成的证书有效期 |
TLS_MIN_VERSION | TLSv1.3 | 最低TLS协议(TLSv1.2 或 TLSv1.3) |
HTTP_VERSION_MODE | auto | auto, all, h1, h2, h3, h1+h2 |
RATE_LIMIT | 0 | 每台设备的最大请求数 RATE_LIMIT_PERIOD 按IP(0 =禁用) |
RATE_LIMIT_PERIOD | 10s | 用于速率限制的滑动窗口(例如。, 10s, 1m, 1h) |
MAX_CONNECTIONS_PER_IP | 0 | 每个IP的最大并发连接数(0 =禁用) |
IP_ALLOWLIST | *(空)* | 允许逗号分隔的IPs/CIDR(阻止所有其他IP/CIDR) |
IP_BLOCKLIST | *(空)* | 要阻止的逗号分隔IP/CIDR |
DEBUG_MODE | *(空)* | 设置为真时启用调试保持模式 |
HTTPS和HTTP版本说明
- 如果
ENABLE_HTTPS=true如果缺少证书文件,容器会自动生成自签名证书。 - 如果
TLS_CERT_PATH和TLS_KEY_PATH存在,它们被合并到TLS_PEM_PATH并直接使用。 HTTP_VERSION_MODE=h3(或auto)仅当HAProxy构建包含QUIC时才启用HTTP/3;否则,它会安全地回落。
API密钥验证说明
- 集
API_KEY以在反向代理级别强制执行身份验证。 - 预期的标题格式:
Authorization: Bearer. - 本地主机健康检查仍然可以访问活动/准备状态。
速率限制和IP访问控制
- 速率限制: 集
RATE_LIMIT=100允许每100个请求RATE_LIMIT_PERIOD(默认值10s)每个IP。超过限制将返回HTTP 429Retry-After头球 - 连接限制: 集
MAX_CONNECTIONS_PER_IP=50限制每个IP的并发连接。超过此值将返回HTTP 429。 - IP阻止列表: 集
IP_BLOCKLIST=192.0.2.0/24,198.51.100.5以阻止特定IP/CIDR。被阻止的IP接收HTTP 403。 - IP地址列表: 集
IP_ALLOWLIST=10.0.0.0/8,192.168.1.0/24只允许列出的IP/CIDR。所有其他人都接收HTTP 403。始终允许本地主机。 - 所有功能默认为禁用。根据需要进行组合——在分配列表之前检查块列表。
用户和组ID
找到您的ID并设置它们以避免权限问题:
id username
# uid=1000(user) gid=1000(group)时区示例
- TZ=Asia/Dhaka # Bangladesh
- TZ=America/New_York # US Eastern
- TZ=Europe/London # UK
- TZ=UTC # Universal Time______________________________________________________________________
MCP客户端配置
运输支持
| 客户端 | HTTP | SSE | WebSocket | 推荐 |
|---|---|---|---|---|
| VS代码(Cline/Roo-Cline) | ✅ | ✅ | ❌ | HTTP |
| 克劳德桌面版 | ✅ | ✅ | ⚠️\* | HTTP |
| Claude 命令行界面 | ✅ | ✅ | ⚠️\* | HTTP |
| Codex CLI | ✅ | ✅ | ⚠️\* | HTTP |
| Codeium(风帆) | ✅ | ✅ | ⚠️\* | HTTP |
| 光标 | ✅ | ✅ | ⚠️\* | HTTP |
⚠️ \*WebSocket是实验性的(第1288期)
______________________________________________________________________
VS代码(Cline/Roo-Cline)
在中配置 .vscode/settings.json:
{
"mcp.servers": {
"time-mcp": {
"url": "http://host-ip:8060/mcp",
"transport": "http"
}
}
}______________________________________________________________________
克劳德桌面应用程序/克劳德代码
配置:
带API_KEY
claude mcp add-json github '{"type":"http","url":"http://localhost:8045/mcp","headers":{"Authorization":"Bearer "}}'不带API_KEY
claude mcp add-json github '{"type":"http","url":"http://localhost:8045/mcp"}'______________________________________________________________________
Codex CLI
在中配置 ~/.codex/config.json:
{
"mcpServers": {
"time-mcp": {
"transport": "http",
"url": "http://host-ip:8060/mcp"
}
}
}______________________________________________________________________
Codeium(风帆)
在中配置 .codeium/mcp_settings.json:
{
"mcpServers": {
"time-mcp": {
"transport": "http",
"url": "http://host-ip:8060/mcp"
}
}
}______________________________________________________________________
光标
在中配置 ~/.cursor/mcp.json:
{
"mcpServers": {
"time-mcp": {
"transport": "http",
"url": "http://host-ip:8060/mcp"
}
}
}______________________________________________________________________
测试配置
证实 MCP检查员:
npm install -g @modelcontextprotocol/inspector
mcp-inspector http://host-ip:8060/mcp______________________________________________________________________
网络配置
比较
| 网络模式 | 复杂性 | 性能 | 用例 |
|---|---|---|---|
| 桥 | ⭐ 简单 | ⭐⭐⭐ 良好 | 默认,隔离 |
| 主机 | ⭐⭐ 中等 | ⭐⭐⭐⭐ 优秀 | 直接访问主机 |
| MACVLAN | ⭐⭐⭐ 高级 | ⭐⭐⭐⭐ 优秀 | 专用IP |
______________________________________________________________________
网桥网络(默认)
services:
time-mcp:
image: mekayelanik/time-mcp:stable
ports:
- "8060:8060"优点: 容器隔离,易于设置,适用于任何地方 访问权限: http://localhost:8060/mcp
______________________________________________________________________
主机网络(仅限Linux)
services:
time-mcp:
image: mekayelanik/time-mcp:stable
network_mode: host优点: 最高性能,无NAT开销,无需端口映射 注意事项: 仅限Linux,共享主机网络命名空间 访问权限: http://localhost:8060/mcp
______________________________________________________________________
MACVLAN网络(高级)
services:
time-mcp:
image: mekayelanik/time-mcp:stable
mac_address: "AB:BC:CD:DE:EF:01"
networks:
macvlan-net:
ipv4_address: 192.168.1.100
networks:
macvlan-net:
driver: macvlan
driver_opts:
parent: eth0
ipam:
config:
- subnet: 192.168.1.0/24
gateway: 192.168.1.1优点: 专用IP,直接局域网接入 注意事项: 仅限Linux,需要额外设置 访问权限: http://192.168.1.100:8060/mcp
______________________________________________________________________
更新
Docker Compose
docker compose pull
docker compose up -d
docker image prune -fDocker命令行界面
docker pull mekayelanik/time-mcp:stable
docker stop time-mcp && docker rm time-mcp
# Run your original docker run command
docker image prune -fWatchtower的一次性更新
docker run --rm \
-v /var/run/docker.sock:/var/run/docker.sock \
containrrr/watchtower \
--run-once \
time-mcp______________________________________________________________________
故障排除
飞行前检查表
- ✅ Docker引擎23.0+
- ✅ 端口8060可用
- ✅ 充足的启动时间(ARM设备)
- ✅ 最新稳定图像
- ✅ 配置正确
常见问题
容器无法启动
# Check Docker version
docker --version
# Verify port availability
sudo netstat -tulpn | grep 8060
# Check logs
docker logs time-mcp权限错误
# Get your IDs
id $USER
# Update configuration with correct PUID/PGID
# Fix volume permissions if needed
sudo chown -R 1000:1000 /path/to/volume客户端无法连接
# Test connectivity
curl http://localhost:8060/mcp
curl http://host-ip:8060/mcp
curl -k https://localhost:8060/mcp
curl -k https://host-ip:8060/mcp
# Check firewall
sudo ufw status
# Verify container
docker inspect time-mcp | grep IPAddressARM性能缓慢
- 启动后等待30-60秒
- 监视器:
docker logs -f time-mcp - 检查资源:
docker stats time-mcp - 使用更快的存储(SSD与SD卡)
调试信息
报告问题时,包括:
# System info
docker --version && uname -a
# Container logs
docker logs time-mcp --tail 200 > logs.txt
# Container config
docker inspect time-mcp > inspect.json______________________________________________________________________
附加资源
文档
Docker资源
- 🐳
- 🌐
- 🛡️
监控
- 📊 Diun-更新通知器
- ⚡ 守望塔
______________________________________________________________________
😎 请我喝杯咖啡☕︎
您的支持鼓励我继续创建/支持我的开源项目。 如果你在这个项目中发现了价值,你可以给我买杯咖啡,让我保持灵感。
支持和许可
获取帮助
Docker镜像问题:
- github:
时间MCP问题:
- github: 尼古拉斯·格里芬/时代媒体/issues
- 网站:
贡献
我们欢迎捐款:
- 通过GitHub Issues报告错误
- 建议功能
- 改进文档
- 测试版发布
许可证
GPL许可证。看 许可证 了解详情。
时间MCP服务器有自己的许可证-请参阅 .
______________________________________________________________________
重大变化
Initial Release: Full CI/CD pipeline with HAProxy, HTTPS/TLS, QUIC/HTTP3, API key auth
