使用说明
项目简介
本项目是一个基于 Model Context Protocol (MCP) 的简单服务器实现,旨在为 LLM 客户端提供天气查询功能。它通过调用外部天气 API 获取指定城市的天气信息,并将结果以 MCP 协议规定的格式返回给客户端。
主要功能点
- 提供天气查询工具: 注册了一个名为 'getWeatherBycityName' 的工具,允许 LLM 客户端通过城市名称查询天气信息。
- 基于 MCP 协议: 遵循 MCP 协议规范,使用 JSON-RPC over SSE (Server-Sent Events) 与客户端通信。
- 可扩展性: 基于 Node.js 和 Express.js 构建,易于扩展和添加更多工具或资源。
安装步骤
- 安装 Node.js 和 npm: 确保你的系统已安装 Node.js 和 npm (Node Package Manager)。
- 克隆仓库: 将 GitHub 仓库 'https://github.com/amit-singh-mobcoder/weather-mcp-server' 克隆到本地。
- 安装依赖: 在仓库根目录下打开终端,运行命令 'npm install' 安装项目依赖。
- 配置环境变量:
- 在项目根目录下创建 '.env' 文件。
- 从 Weatherstack 注册并获取 API 密钥 (API key)。
- 将 API 密钥添加到 '.env' 文件中,格式为 'WEATHER_STACK_API_KEY=YOUR_API_KEY',将 'YOUR_API_KEY' 替换为你的实际 API 密钥。
服务器配置
MCP 客户端需要配置以下信息才能连接到此 MCP 服务器。以下是 JSON 格式的配置信息示例,请根据你的实际情况进行调整:
{ "serverName": "WeatherMCP", "command": "node", "args": ["index.js"], "transport": "sse", "baseUrl": "http://localhost:8080" }
配置参数说明:
- 'serverName': MCP 服务器的名称,可以自定义,例如 "WeatherMCP"。
- 'command': 启动 MCP 服务器的命令,这里使用 'node' 运行 JavaScript 文件。
- 'args': 启动命令的参数,这里指定运行 'index.js' 文件。
- 'transport': 使用的传输协议,本项目使用 'sse' (Server-Sent Events)。
- 'baseUrl': 服务器的基础 URL,默认为 'http://localhost:8080',如果服务器部署在其他地址或端口,请相应修改。
注意: 确保在运行 MCP 客户端之前,先启动 MCP 服务器。在仓库根目录下打开终端,运行命令 'node index.js' 即可启动服务器。
基本使用方法
- 启动 MCP 服务器: 按照上述 “服务器配置” 中的说明启动服务器。
- 配置 MCP 客户端: 在 MCP 客户端中,按照 “服务器配置” 中的 JSON 信息配置连接到该服务器。
- 调用工具: 在 MCP 客户端中,可以使用 'getWeatherBycityName' 工具查询天气信息。例如,客户端可以发送类似以下的请求 (JSON-RPC 格式,具体格式取决于 MCP 客户端实现):
{ "jsonrpc": "2.0", "method": "call", "params": { "tool_name": "getWeatherBycityName", "tool_arguments": { "city": "London" } }, "id": 1 }
服务器会调用 'getWeatherByCity' 函数,使用 "London" 作为城市名查询天气,并将结果通过 SSE 返回给客户端。客户端接收到响应后,即可解析并展示天气信息。
预期响应 (简化示例):
{ "jsonrpc": "2.0", "id": 1, "result": { "content": [ { "type": "text", "text": "{\"request\":{\"type\":\"City\",\"query\":\"London\",\"language\":\"en\",\"unit\":\"m\"},\"location\":{\"name\":\"London\",\"country\":\"United Kingdom\",\"region\":\"City of London, Greater London\",\"lat\":\"51.517\",\"lon\":\"-0.106\",\"timezone_id\":\"Europe\\/London\",\"localtime\":\"2024-08-23 16:48\",\"localtime_epoch\":1724460533,\"utc_offset\":\"1.0\"},\"current\":{\"observation_time\":\"03:48 PM\",\"temperature\":21,\"weather_code\":116,\"weather_icons\":[\"https:\\/\\/cdn.weatherstack.com\\/img\\/w\\/116.png\"],\"weather_descriptions\":[\"Partly cloudy\"],\"wind_speed\":11,\"wind_degree\":250,\"wind_dir\":\"WSW\",\"pressure\":1014,\"precip\":0,\"humidity\":64,\"cloudcover\":75,\"feelslike\":21,\"uv_index\":5,\"visibility\":10,\"is_day\":\"yes\"}}" } ] } }
总结
通过以上步骤,你就可以成功配置和使用天气查询 MCP 服务器,为你的 LLM 应用提供实时的天气信息查询能力。
信息
分类
网页与API