项目简介

这是一个使用 .NET 和 Model Context Protocol (MCP) 构建的简单服务器实现,旨在为支持 MCP 协议的客户端(例如大型语言模型应用或集成开发环境)提供关于时间和时区的上下文信息。它实现了 MCP 的核心功能,通过提供可调用的“工具”来扩展 LLM 的能力。

主要功能点

  • 当前时间获取: 提供一个工具,用于获取服务器所在系统的当前全球标准时间 (UTC)。
  • 时区时间查询: 提供一个工具,允许客户端指定一个时区名称,然后服务器返回该时区的当前本地时间。
  • 健壮的工具实现: 对时区查询输入进行验证,并包含错误处理,例如当指定时区无效或未找到时的友好提示。
  • 基于标准协议: 利用官方 MCP .NET SDK 实现 MCP 协议的服务器端逻辑,支持通过标准输入/输出 (Stdio) 进行通信。

安装步骤

  1. 安装 .NET SDK: 确保您的系统已安装 .NET SDK (推荐 .NET 6 或更高版本)。您可以从 Microsoft 官方网站下载安装。
  2. 获取项目代码: 通过 Git 克隆本仓库或下载 ZIP 文件并解压。
  3. 进入项目目录: 打开终端或命令提示符,切换到包含 'McpTimeServer.csproj' 文件的目录。
  4. 恢复依赖: 运行以下命令恢复项目所需的 NuGet 包:
    dotnet restore
  5. 编译项目: 运行以下命令编译项目:
    dotnet build
    编译成功后,您将在 'bin/Debug/netX.0' (其中 X 是 .NET 版本号) 目录下找到可执行文件。

服务器配置

MCP 服务器通常不是独立运行的,而是由 MCP 客户端(如特定的 IDE 或 LLM 应用)按需启动和管理的。您需要在 MCP 客户端的配置中指定如何启动此服务器。配置信息通常是 JSON 格式,包含一个服务器名称、启动命令 (command) 和启动参数 (args)。

例如,在支持 MCP 的客户端配置文件中,您可能需要添加类似以下结构的配置(请参考您的客户端文档获取具体格式):

  • 服务器名称: 用于在客户端内部标识此服务器的唯一名称,例如 '"timeServer"'。
  • 启动命令: 指定运行服务器的可执行文件或命令。对于此 .NET 项目,启动命令通常是 '"dotnet"'。
  • 启动参数: 提供给启动命令的参数。通常包括 '"run"' 命令以及指定项目文件路径的参数,例如 '["run", "--project", "/path/to/your/McpTimeServer.csproj"]'。您需要将 '/path/to/your/McpTimeServer.csproj' 替换为您实际的项目文件路径。

客户端启动后,会根据此配置运行指定的命令,并通过标准的输入/输出流与服务器建立 MCP 通信连接。

基本使用方法

一旦您在 MCP 客户端中成功配置并启动了此 MCP 时间服务器,客户端(如 LLM)就可以通过 MCP 协议与服务器交互,调用其提供的工具:

  1. 获取当前时间: 客户端可以发送一个请求,要求执行服务器提供的“GetCurrentTime”工具。服务器将返回当前的日期和时间字符串。
  2. 查询特定时区时间: 客户端可以发送一个请求,要求执行“GetTimeInTimezone”工具,并提供一个字符串参数,该参数是想要查询的时区的标准名称(例如 "Pacific Standard Time" 或 "America/New_York")。服务器将返回该时区的当前日期和时间,或返回错误信息(如果时区无效)。

具体的调用方式取决于您使用的 MCP 客户端的用户界面或其提供的编程接口。通常,LLM 可以通过 function calling 等机制感知并调用这些工具。

信息

分类

AI与计算