使用说明
项目简介
本项目是一个基于 Model Context Protocol (MCP) 的天气预报服务器,它使用 OpenWeatherMap One Call API 3.0 为 LLM 客户端提供全球范围内的天气信息。该服务器能够提供当前天气状况以及未来 8 天的详细天气预报,包括每小时、每日以及早、中、晚等不同时段的天气数据。
主要功能点
- 全球天气查询: 支持查询世界任何地点的天气信息。
- 详细天气预报: 提供当前天气和未来 8 天的详细预报(今天 + 7 天)。
- 时段数据: 包含未来 48 小时的每小时预报,以及每日的早(9点)、中(15点)、晚(20点)三个时段的数据点。
- 丰富天气信息: 提供天气概要、降水概率、温度、湿度、风速等详细天气信息。
- 灵活配置: 无需单独的配置文件,API 密钥可以通过环境变量或参数传递。
安装步骤
- 安装 Python 依赖: 推荐使用虚拟环境。
- 创建并激活虚拟环境(可选):
python3 -m venv venv source venv/bin/activate # macOS/Linux # venv\Scripts\activate # Windows - 安装必要的 Python 包:
pip3 install mcp-server requests pydantic
- 创建并激活虚拟环境(可选):
- 获取 OpenWeatherMap API 密钥:
- 访问 OpenWeatherMap 注册账号。
- 订阅 "One Call API 3.0" 计划 (免费版提供 1000 次/天 API 调用)。
- 等待 API 密钥激活(可能需要几分钟到一小时)。
服务器配置
在 MCP 客户端的配置文件中,添加以下配置信息以连接到每周天气预报 MCP 服务器。请根据实际情况修改 'command' 和 'args' 中的路径,并将 'your_openweathermap_key_here' 替换为您的 OpenWeatherMap API 密钥。
{ "weather_forecast": { "command": "python3", "args": [ "/path/to/weather_mcp_server.py" // 修改为 weather_mcp_server.py 脚本的完整路径 ], "env": { "OPENWEATHER_API_KEY": "your_openweathermap_key_here" // 替换为您的 OpenWeatherMap API 密钥 }, "disabled": false, "autoApprove": ["get_weather", "get_current_weather"] // 客户端可以自动批准的工具 } }
配置参数说明:
- 'command': 启动 MCP 服务器的命令,通常是 Python 解释器的路径 ('python3' 或虚拟环境中的 Python 路径)。
- 'args': 传递给启动命令的参数,这里是 'weather_mcp_server.py' 脚本的路径。
- 'env': 环境变量配置,'OPENWEATHER_API_KEY' 用于存储 OpenWeatherMap API 密钥。
基本使用方法
成功配置并启动 MCP 服务器后,您可以在 MCP 客户端中使用以下工具来获取天气信息:
-
'get_weather': 获取指定地点的详细天气预报,包括当前天气和未来 8 天的预报。
- 参数:
- 'location': 地点名称,例如 "Beijing", "New York", "Tokyo"。
- 'timezone_offset': 时区偏移量(小时),例如北京为 8,纽约为 -4,默认为 0 (UTC 时间)。
- 'api_key' (可选): OpenWeatherMap API 密钥,如果已设置环境变量 'OPENWEATHER_API_KEY',则无需提供。
- 参数:
-
'get_current_weather': 获取指定地点的当前天气状况。
- 参数:
- 'location': 地点名称,例如 "Beijing", "New York", "Tokyo"。
- 'timezone_offset': 时区偏移量(小时)。
- 'api_key' (可选): OpenWeatherMap API 密钥。
- 参数:
使用示例:
在 MCP 客户端中,您可以向 LLM 提出类似以下的问题,以调用 MCP 服务器获取天气信息:
- "What's the weather like in London right now?" (客户端将调用 'get_current_weather' 工具)
- "I want to know the weather forecast for Paris this week." (客户端将调用 'get_weather' 工具)
- "Will it rain in Tokyo tomorrow?" (客户端将调用 'get_weather' 工具)
LLM 客户端会根据用户的问题,自动调用相应的工具,并将地点名称等信息作为参数传递给 MCP 服务器。MCP 服务器会调用 OpenWeatherMap API 获取天气数据,并将结构化的天气信息返回给 LLM 客户端,最终呈现给用户。
信息
分类
网页与API