项目简介
这是一个基于 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 仓库并在本地构建。
- 克隆仓库:
git clone https://github.com/loneyeti/snowgoose.git cd snowgoose - 安装依赖并构建: 运行 Snowgoose 项目的安装和构建流程。这通常包括安装 Node.js 依赖并编译 TypeScript 代码。
构建过程会生成 'mcp_servers/mcp-time-js/build/index.js' 文件,这就是可执行的服务器程序。# 确保您已安装 Node.js (v18+) 和 npm/yarn/pnpm npm install # 或者 yarn install / pnpm install npm run build # 或者 yarn build / pnpm build
服务器配置 (针对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 标准请求来使用功能:
- 列出工具: 客户端发送 'list_tools' 请求,服务器将返回 'get-current-time' 和 'get-time-in-timezone' 的描述和参数信息。
- 调用工具: 客户端发送 'call_tool' 请求,指定工具名称 ('get-current-time' 或 'get-time-in-timezone') 和必要的参数 (如 '{"timezone": "America/New_York", "format": "locale"}')。
- 接收结果: 服务器执行工具逻辑,并通过 JSON-RPC 响应返回结果,通常包含一个文本块 ('content: [{ "type": "text", "text": "..." }]'),其中是获取到的时间字符串。
这个服务器是为与其他 MCP 客户端(如 Snowgoose 本身)集成而设计的,不提供独立的命令行或 Web 界面直接交互。
信息
分类
AI与计算