关于 Chronos MCP Server
Chronos MCP Server 是基于 .NET Core 的服务器,可按时区获取日期和时间,适用于需要当前时间数据的应用。它支持配置可选默认时区,并可作为 .NET 工具或 Docker 容器部署。
主要功能
- 01按时区获取日期和时间
- 02配置可选的默认时区
- 03处理无效时区请求
- 04以 .NET 工具或 Docker 容器部署
适用场景
- 01获取指定时区的当前时间
- 02未提供时区时使用已配置的默认值
- 03向支持 MCP 的应用提供时间数据
MCP 相关
提供 MCP 工具,用于获取指定或已配置时区的当前日期和时间,以及读取已配置的默认时区。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Chronos MCP 服务
一个实现 Model Context Protocol(MCP)的时间相关服务。此服务通过简单的 MCP 接口提供支持时区的日期和时间信息。
概述
Chronos MCP 服务使用 .NET Core 和 Model Context Protocol C# SDK(github.com/modelcontextprotocol/csharp-sdk)构建。它提供用于访问不同时区日期和时间信息的工具。此服务轻量精简,展示了如何创建具备实用功能和完善错误处理机制的自定义 MCP 服务。它既可以直接部署在计算机上,也可以作为 Docker 容器部署。
功能
- 获取任意受支持时区的当前日期和时间
- 可通过 appsettings.json 和环境变量配置默认时区
- 妥善处理无效时区请求和缺少默认时区的情况
- 使用 Result 模式进行函数式错误处理
入门指南
前置条件
- .NET 10 SDK(用于本地开发或安装 .NET 工具)
- Docker(用于容器部署)
构建说明(用于开发)
如果你想从源代码构建项目:
-
克隆此仓库:
git clone https://github.com/aadversteeg/chronos-mcp-server.git -
导航到项目根目录:
cd chronos-mcp-server -
使用以下命令构建项目:
dotnet build src/chronos.sln -
运行测试:
dotnet test src/chronos.sln
Docker 支持
DockerHub 镜像
Chronos MCP Server 可通过 DockerHub 获取,地址为 aadversteeg/chronos-mcp-server。
# Pull the latest version
docker pull aadversteeg/chronos-mcp-server:latest
# Or pull a specific version
docker pull aadversteeg/chronos-mcp-server:0.0.1
手动构建 Docker 镜像
如果你需要自行构建 Docker 镜像:
# Navigate to the repository root
cd chronos-mcp-server
# Build the Docker image
docker build -f src/Core.Infrastructure.McpServer/Dockerfile -t chronos-mcp-server:latest src/
# Run the locally built image (with optional DefaultTimeZoneId)
docker run -d --name chronos-mcp -e "DefaultTimeZoneId=Europe/Amsterdam" chronos-mcp-server:latest
使用 GitHub Actions 自动构建
此仓库包含一个 GitHub Actions 工作流,可在创建版本标签时自动构建 Docker 镜像并推送到 DockerHub。
触发新构建的方法:
-
创建并推送一个语义化版本标签:
git tag 1.0.0 git push origin 1.0.0 -
工作流将自动构建 Docker 镜像并推送以下标签:
aadversteeg/chronos-mcp-server:latestaadversteeg/chronos-mcp-server:1.0.0
.NET 工具
Chronos MCP Server 可作为 .NET 全局工具从 NuGet 获取。
安装
dotnet tool install --global Ave.McpServer.Chronos
运行
ave-mcpserver-chronos
一次性运行(无需永久安装)
使用 .NET 10 SDK,可以通过 dotnet tool exec 运行此工具,而无需全局安装:
dotnet tool exec -y ave.mcpserver.chronos
-y 标志会自动接受提示。此工具会缓存在本地,但不会添加到 PATH。
MCP 协议用法
客户端集成
若要从应用程序连接到 Chronos MCP Server:
- 使用 Model Context Protocol C# SDK 或任何兼容 MCP 的客户端
- 配置客户端以连接到服务的端点
- 调用下文介绍的可用工具
可用工具
get_current_date_and_time
获取指定时区或默认时区(如果已配置)中的当前日期和时间。
参数:
timezoneId(如果已配置 DefaultTimeZoneId,则为可选):时区标识符(例如,'America/New_York'、'Eastern Standard Time')。如果未配置 DefaultTimeZoneId,则此参数为必需项。
请求示例:
{
"name": "get_current_date_and_time",
"parameters": {
"timezoneId": "Europe/London"
}
}
响应示例:
{
"date": "2023-12-25",
"time": "12:00:00",
"timezone": "Europe/London"
}
get_default_timezone_id
获取为服务配置的默认时区标识符。如果未配置默认时区,则返回错误。
请求示例:
{
"name": "get_default_timezone_id",
"parameters": {}
}
响应示例(已配置时):
Europe/Amsterdam
错误响应示例(未配置时):
{
"error": {
"message": "DefaultTimeZoneId is not set.",
"code": "NoDefaultTimeZoneId"
}
}
配置
DefaultTimeZoneId
DefaultTimeZoneId 设置决定未请求特定时区时使用哪个时区。此值必须是操作系统可识别的有效时区标识符。此设置为可选项;如果未提供,服务仍可正常运行,但每个请求都必须提供时区 ID 参数。
你可以通过以下两种方式设置 DefaultTimeZoneId:
- appsettings.json 文件(用于本地部署):
{
"DefaultTimeZoneId": "America/New_York"
}
- 环境变量(用于容器化部署):
# When running the Docker container
docker run -e "DefaultTimeZoneId=Europe/Amsterdam" aadversteeg/chronos-mcp-server:latest
有效的时区标识符包括:
- 标准 IANA 时区名称(例如,“America/New_York”、“Europe/London”、“Asia/Tokyo”)
- Windows 时区 ID(例如,“Eastern Standard Time”、“W. Europe Standard Time”)
如果未指定 DefaultTimeZoneId 设置,则不会使用默认时区,请求必须明确提供时区 ID 参数。
配置 Claude Desktop / Claude Code
将服务配置添加到配置文件中的 mcpServers 部分。
使用 .NET 工具
需要 .NET 10 SDK。此方法会在首次使用时自动下载工具,并在后续运行时更新到最新版本。
"chronos": {
"command": "dotnet",
"args": [
"tool",
"exec",
"-y",
"ave.mcpserver.chronos"
],
"env": {
"DefaultTimeZoneId": "Europe/Amsterdam"
}
}
使用全局安装
需要 .NET 10 SDK。安装一次工具,然后即可直接使用。
dotnet tool install --global Ave.McpServer.Chronos
"chronos": {
"command": "ave-mcpserver-chronos",
"env": {
"DefaultTimeZoneId": "Europe/Amsterdam"
}
}
更新方式:dotnet tool update --global Ave.McpServer.Chronos
使用 Docker
无需 .NET 10 SDK。
"chronos": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"-e", "DefaultTimeZoneId=Europe/Amsterdam",
"aadversteeg/chronos-mcp-server:latest"
]
}
许可证
本项目采用 MIT 许可证授权,详情请参阅 LICENSE 文件。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。