项目简介

Chronos MCP Server 是一个基于 Model Context Protocol (MCP) 构建的轻量级时间服务后端,使用 .NET Core 开发。它通过 MCP 协议向客户端提供标准化的接口,用于查询不同时区的当前日期和时间。该服务器旨在演示如何构建具有实用功能的自定义 MCP 服务器。

主要功能点

  • 获取当前日期和时间:支持查询任意 IANA 或 Windows 系统支持的时区的当前日期和时间。
  • 默认时区配置:允许通过 'appsettings.json' 文件或环境变量配置服务器的默认时区。
  • 错误处理:能够处理无效时区请求,并返回清晰的错误信息。

安装步骤

  1. 环境准备

    • .NET 环境:如果本地部署,需要安装 .NET 9.0 SDK。
    • Docker:如果使用 Docker 部署,需要安装 Docker。
  2. 获取代码

    • 克隆 GitHub 仓库到本地:
      git clone https://github.com/aadversteeg/chronos-mcp-server.git
      cd chronos-mcp-server
  3. 构建(可选,如果使用本地部署)

    • 在项目根目录下,使用 .NET CLI 构建项目:
      dotnet build src/chronos.sln
  4. 运行服务器

    • 本地运行
      dotnet run --project src/Core.Infrastructure.McpServer/Core.Infrastructure.McpServer.csproj
    • Docker 运行
      • 拉取 Docker 镜像 (推荐):
        docker pull aadversteeg/chronos-mcp-server:latest
        docker run -d --name chronos-mcp -e "DefaultTimeZoneId=UTC" aadversteeg/chronos-mcp-server:latest
      • 或者,本地构建 Docker 镜像:
        docker build -f src/Core.Infrastructure.McpServer/Dockerfile -t chronos-mcp-server:latest src/
        docker run -d --name chronos-mcp -e "DefaultTimeZoneId=UTC" chronos-mcp-server:latest

服务器配置

MCP 客户端需要配置服务器的启动命令才能连接 Chronos MCP Server。以下是针对不同部署方式的 Claude Desktop 客户端配置示例:

1. 本地安装配置

假设您已将项目 DLL 文件 'Core.Infrastructure.McpServer.dll' 构建在 'YOUR_PATH_TO_DLL' 目录。在 Claude Desktop 的 MCP 服务器配置中,添加以下 JSON 配置:

"chronos": {
  "command": "dotnet",
  "args": [
    "YOUR_PATH_TO_DLL\\Core.Infrastructure.McpServer.dll" // 将YOUR_PATH_TO_DLL替换为实际的DLL路径
  ],
  "env": {
    "DefaultTimeZoneId": "Europe/Amsterdam" // 可选,设置默认时区,默认为 UTC
  }
}

2. Docker 容器配置

如果使用 Docker 容器运行 Chronos MCP Server,则在 Claude Desktop 中添加以下 JSON 配置:

"chronos": {
  "command": "docker",
  "args": [
    "run",
    "--rm",
    "-i",
    "-e", "DefaultTimeZoneId=Europe/Amsterdam", // 可选,设置默认时区,默认为 UTC
    "aadversteeg/chronos-mcp-server:latest"
  ]
}

配置说明

  • 'server name':服务器名称,例如 "chronos",用于在客户端中标识和调用。
  • 'command':启动服务器的命令,本地部署为 'dotnet',Docker 部署为 'docker'。
  • 'args':命令参数,
    • 本地部署:指定 'dotnet' 命令运行的 DLL 文件路径。
    • Docker 部署:包含 'docker run' 命令及其参数,例如容器运行时参数 '--rm'(容器退出后自动删除),'-i'(保持STDIN开放),'-e "DefaultTimeZoneId=..."'(设置环境变量)以及 Docker 镜像名称 'aadversteeg/chronos-mcp-server:latest'。
  • 'env' (可选):环境变量配置,例如 'DefaultTimeZoneId' 用于设置服务器默认时区。

基本使用方法

配置完成后,在 MCP 客户端中,您可以使用以下工具与 Chronos MCP Server 交互:

  • 'get_current_date_and_time': 获取指定时区或默认时区的当前日期和时间。

    • 可选参数 'timezoneId':时区标识符,例如 "America/New_York" 或 "Europe/London"。
    • 如果不提供 'timezoneId',则返回服务器默认时区的日期和时间。
  • 'get_default_timezone_id': 获取服务器配置的默认时区标识符。

    • 无需参数。

客户端通过 MCP 协议发送 JSON-RPC 请求调用这些工具,服务器返回 JSON-RPC 响应。具体请求和响应格式请参考仓库 README.md 中的 "MCP Protocol Usage" 章节。

信息

分类

网页与API