使用说明
项目简介
WeatherMCP 是一个实现了 Model Context Protocol (MCP) 的应用后端服务器示例,专注于提供天气相关信息。它通过 MCP 标准协议与支持该协议的 LLM 客户端(如 Claude Desktop)进行交互,允许 LLM 调用预定义的天气查询工具,获取实时的气象数据。
主要功能点
- 获取气象警报: LLM 可以通过调用工具并提供美国州份代码,获取该州当前生效的气象警报信息。
- 获取天气预报: LLM 可以通过调用工具并提供指定地点的经纬度,获取该地点的详细天气预报信息。
- 支持多种传输协议: 服务器支持 Stdios 和 SSE (Server-Sent Events) 两种主要的 MCP 传输方式,方便与不同配置的 LLM 客户端集成。
安装步骤
- 确保您的系统已安装 Go 语言环境 (版本 1.18 或更高)。
- 打开终端或命令行界面。
- 克隆 GitHub 仓库到本地:
git clone https://github.com/shujink0/WeatherMCP.git cd WeatherMCP - 构建项目:
这将在当前目录下生成一个名为 'WeatherMCP' (或 'WeatherMCP.exe' 在 Windows 上) 的可执行文件。go build
服务器配置
MCP 服务器通常由 MCP 客户端(如 LLM 应用)启动和管理。客户端需要知道如何启动服务器进程以及使用哪种传输方式。以下是配置 LLM 客户端连接到此 MCP 服务器所需的关键信息概念(以 JSON 格式为例,客户端实际配置时会使用这些信息):
- 服务器名称 (server name): 用于在客户端界面标识此服务器的唯一名称,例如 '"weather-mcp-server"'。
- 启动命令 (command): MCP 服务器可执行文件的完整路径。
- 对于使用 Stdio 传输方式的情况,命令通常就是服务器可执行文件的路径,例如:'/path/to/your/WeatherMCP/WeatherMCP'。
- 对于使用 SSE/WebSocket 传输方式的情况,客户端通常需要一个代理工具(如 'mcp-remote')来连接到服务器暴露的 HTTP 端点。此时,命令可能是代理工具的路径,例如 'npx' (如果使用 'mcp-remote' 并且通过 npx 运行)。
- 启动参数 (args): 传递给启动命令的参数列表。
- 对于使用 Stdio 传输方式的情况,参数列表通常为空 '[]'。
- 对于使用 SSE/WebSocket 传输方式的情况,您需要先独立启动服务器监听端口(例如 './WeatherMCP -t sse'),然后客户端的代理工具需要知道服务器的地址和端口。参数列表将包含代理工具所需的连接信息,例如 '["mcp-remote", "http://localhost:8080/sse"]' (假设服务器在本地 8080 端口启动并监听 '/sse' 路径)。
注意: 客户端的实际配置界面或文件结构可能有所不同,但核心信息是指定如何启动服务器进程以及如何建立连接。请参考您使用的 LLM 客户端的 MCP 配置文档。
基本使用方法
服务器本身是一个后台进程,通常不会直接与用户交互。它由 LLM 客户端启动和管理。一旦服务器成功运行并通过 MCP 协议连接到 LLM 客户端:
- LLM 客户端会通过 MCP 的能力声明机制得知此服务器提供了 'get_alerts' 和 'get_forecast' 这两个工具。
- 当用户与 LLM 交互时,如果用户的请求意图与获取天气警报或预报相关,LLM 会判断是否应调用相应的 MCP 工具。
- 如果 LLM 决定调用工具,它将向 WeatherMCP 服务器发送一个 MCP 'callTool' 请求,包含工具名称 ('get_alerts' 或 'get_forecast') 及所需的参数(州份代码或经纬度)。
- WeatherMCP 服务器接收到请求后,会执行相应的处理函数(调用外部天气 API),并将结果(气象警报或预报文本)通过 MCP 'callTool/result' 响应返回给 LLM 客户端。
- LLM 客户端接收到工具执行结果后,可以将结果整合到对用户的回复中。
简单来说: 您无需直接操作服务器,只需正确配置您的 LLM 客户端使其能启动并连接到 WeatherMCP 可执行文件。之后,您在与 LLM 交流时,就可以提出天气相关的请求,LLM 会自动使用此服务器来获取信息。
信息
分类
网页与API