项目简介

这是一个基于 Model Context Protocol (MCP) SDK 构建的轻量级服务器示例,作为 Snowgoose 仓库的一部分提供。它实现了 MCP 协议的工具(Tools)功能,专门用于提供时间相关的服务。

主要功能点

  • 获取当前时间: 提供一个工具用于获取服务器当前时间,支持多种格式(ISO 8601, 本地格式, Unix 时间戳)。
  • 获取指定时区时间: 提供一个工具用于获取指定 IANA 时区(如 'America/New_York', 'Europe/London')的当前时间,支持 ISO 8601 和本地格式。
  • MCP 标准通信: 通过 JSON-RPC 协议 over Stdio(标准输入/输出)与 MCP 客户端进行通信。
  • 工具注册: 实现了 MCP 的 'list_tools' 请求,向客户端声明其提供的工具及其输入参数 schema。
  • 工具执行: 实现了 MCP 的 'call_tool' 请求,根据客户端指令执行相应的时间获取逻辑并返回结果。

安装步骤

该 MCP 服务器是 Snowgoose 仓库的组成部分。您需要克隆完整的 Snowgoose 仓库并在本地构建。

  1. 克隆仓库:
    git clone https://github.com/loneyeti/snowgoose.git
    cd snowgoose
  2. 安装依赖并构建: 运行 Snowgoose 项目的安装和构建流程。这通常包括安装 Node.js 依赖并编译 TypeScript 代码。
    # 确保您已安装 Node.js (v18+) 和 npm/yarn/pnpm
    npm install # 或者 yarn install / pnpm install
    npm run build # 或者 yarn build / pnpm build
    构建过程会生成 'mcp_servers/mcp-time-js/build/index.js' 文件,这就是可执行的服务器程序。

服务器配置 (针对MCP客户端)

此服务器通过 Stdio 协议运行。要让一个 MCP 客户端(如 Snowgoose 主应用)连接到它,客户端需要配置服务器的启动命令。

一个 MCP 客户端连接此服务器所需的配置信息大致如下:

  • 服务器名称 (Server Name): 'time-server' (服务器代码中定义的名称)
  • 传输协议 (Transport Protocol): 'stdio'
  • 启动命令 (Command): 'node'
  • 命令参数 (Args): '["mcp_servers/mcp-time-js/build/index.js"]' (表示执行构建后的 JavaScript 文件,路径相对于 Snowgoose 项目的根目录)

具体如何在您的 MCP 客户端中配置此服务器,请参考该客户端的文档。

基本使用方法

一旦 MCP 客户端成功连接到此服务器,它就可以通过 MCP 标准请求来使用功能:

  1. 列出工具: 客户端发送 'list_tools' 请求,服务器将返回 'get-current-time' 和 'get-time-in-timezone' 的描述和参数信息。
  2. 调用工具: 客户端发送 'call_tool' 请求,指定工具名称 ('get-current-time' 或 'get-time-in-timezone') 和必要的参数 (如 '{"timezone": "America/New_York", "format": "locale"}')。
  3. 接收结果: 服务器执行工具逻辑,并通过 JSON-RPC 响应返回结果,通常包含一个文本块 ('content: [{ "type": "text", "text": "..." }]'),其中是获取到的时间字符串。

这个服务器是为与其他 MCP 客户端(如 Snowgoose 本身)集成而设计的,不提供独立的命令行或 Web 界面直接交互。

信息

分类

AI与计算