使用说明
项目简介
本项目是一个简单的天气 MCP 服务器示例,使用了 '@modelcontextprotocol/sdk' 库构建,旨在演示如何创建一个基于 MCP 协议的服务端,并通过工具 (Tools) 的形式向客户端提供天气信息查询功能。
主要功能点
- 提供工具 (Tools): 实现了两个天气查询工具:
- 'get-alerts': 根据州代码获取天气警报信息。
- 'get-forecast': 根据经纬度获取天气预报信息。
- 标准 MCP 协议: 使用 JSON-RPC 协议与 MCP 客户端通信,处理工具调用请求。
- 热重载开发 (通过 synf): 集成了 'synf' 工具,支持在开发过程中修改代码后自动重启服务器,提高开发效率。
安装步骤
- 安装 Node.js 和 npm: 确保您的系统已安装 Node.js 和 npm (Node.js 包管理器)。
- 安装 synf 工具: 'synf' 工具用于热重载 MCP 服务器。您可以选择以下方式安装 'synf':
- 使用 Scoop (Windows): 如果您使用 Scoop 包管理器,运行 'scoop install https://raw.githubusercontent.com/strowk/synf/main/scoop/synf.json'
- 使用 bash 脚本: 在 bash 终端运行 'curl -s https://raw.githubusercontent.com/strowk/synf/main/install.sh | bash'
- 手动安装: 访问 synf releases 下载对应您操作系统的版本,解压后将 'synf' 可执行文件添加到您的 PATH 环境变量中。
- 从源码安装: 如果您安装了 Rust 环境,可以克隆仓库后使用 'cargo install --path ./synf' 命令安装。
- 克隆本仓库: 下载或克隆 'synf' 仓库到本地。
- 进入示例目录: 在终端中导航到 'synf/examples/typescript' 目录。
- 安装依赖: 在 'synf/examples/typescript' 目录下运行 'npm install' 安装项目依赖。
- 构建项目: 运行 'npm run build' 构建 TypeScript 项目。
服务器配置
MCP 客户端 (如 Claude Desktop) 需要配置 MCP 服务器的启动命令才能连接。以下是针对本示例服务器的配置信息 (JSON 格式),您需要将其添加到您的 MCP 客户端配置中。请注意替换 'C:/work/synf/examples/typescript' 为您本地 'synf/examples/typescript' 目录的实际路径。
{ "mcpServers": { "weather_server_example": { "command": "synf", "args": [ "dev", "C:/work/synf/examples/typescript" // 请替换为您的 examples/typescript 目录路径 ] } } }
配置参数说明:
- 'server name': 'weather_server_example' (服务器名称,您可以自定义)
- 'command': 'synf' (启动命令,指向您安装的 'synf' 工具)
- 'args': 启动参数,包含:
- '"dev"': 指定 'synf' 以开发模式运行,启用热重载。
- '"C:/work/synf/examples/typescript"': 项目路径, 指向包含 'package.json' 和 'synf.toml' 文件的项目根目录,请务必根据您的实际路径进行修改。
基本使用方法
- 启动 MCP 服务器: 配置完成后,在 MCP 客户端中启动名为 'weather_server_example' 的 MCP 服务器。'synf' 将会自动启动并运行 'examples/typescript' 目录下的天气服务器示例。
- 在 MCP 客户端中使用工具: 在 MCP 客户端中,您可以调用服务器提供的工具 (如 'get-alerts', 'get-forecast') 来查询天气信息。具体的工具调用方式取决于您的 MCP 客户端。
- 热重载测试: 修改 'examples/typescript/src/index.ts' 文件中的代码,例如更改工具的描述或逻辑。'synf' 工具会自动检测到文件变化,重新构建并重启服务器。MCP 客户端应该能够自动更新工具列表 (如果客户端支持 'list_changed' 通知)。
注意: 示例代码中使用了美国国家气象局 (NWS) 的 API,可能只支持美国地区的天气查询。
信息
分类
网页与API