mcpField
C
Chronos MCP Server

Chronos MCP Server

本地服务
github.com/aadversteeg其他13 周前更新

关于 Chronos MCP Server

Chronos MCP Server 是基于 .NET Core 的服务器,可按时区获取日期和时间,适用于需要当前时间数据的应用。它支持配置可选默认时区,并可作为 .NET 工具或 Docker 容器部署。

主要功能

  1. 01按时区获取日期和时间
  2. 02配置可选的默认时区
  3. 03处理无效时区请求
  4. 04以 .NET 工具或 Docker 容器部署

适用场景

  1. 01获取指定时区的当前时间
  2. 02未提供时区时使用已配置的默认值
  3. 03向支持 MCP 的应用提供时间数据

MCP 相关

提供 MCP 工具,用于获取指定或已配置时区的当前日期和时间,以及读取已配置的默认时区。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"chronos": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"pull"
]
}
}
}
启动命令docker run -i --rm pull

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
ocipull

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

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(用于容器部署)
构建说明(用于开发)

如果你想从源代码构建项目:

  1. 克隆此仓库:

    git clone https://github.com/aadversteeg/chronos-mcp-server.git
    
  2. 导航到项目根目录:

    cd chronos-mcp-server
    
  3. 使用以下命令构建项目:

    dotnet build src/chronos.sln
    
  4. 运行测试:

    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。

触发新构建的方法:

  1. 创建并推送一个语义化版本标签:

    git tag 1.0.0
    git push origin 1.0.0
    
  2. 工作流将自动构建 Docker 镜像并推送以下标签:

    • aadversteeg/chronos-mcp-server:latest
    • aadversteeg/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:

  1. 使用 Model Context Protocol C# SDK 或任何兼容 MCP 的客户端
  2. 配置客户端以连接到服务的端点
  3. 调用下文介绍的可用工具
可用工具
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:

  1. appsettings.json 文件(用于本地部署):
{
  "DefaultTimeZoneId": "America/New_York"
}
  1. 环境变量(用于容器化部署):
# 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 文件。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。