使用说明
项目简介
这是一个基于 Model Context Protocol (MCP) 构建的天气预报服务器。它通过 AccuWeather API 获取天气数据,并以结构化的JSON格式向 MCP 客户端提供指定地点的当前天气状况和未来12小时的每小时天气预报。
主要功能点
- 获取当前天气状况:包括温度、天气描述、相对湿度和降水情况等。
- 12小时天气预报:提供未来12小时的每小时天气数据,包括温度、天气描述、降水概率、降水类型和降水强度。
- 基于地点查询:用户可以根据地点名称查询天气预报。
- 数据缓存:为了提高效率,服务器会缓存地点信息。
安装步骤
- 安装 uv 和依赖: 首先确保你的系统安装了 uv 包管理器。然后,在本地克隆仓库或下载代码后,在项目根目录下执行以下命令创建虚拟环境并安装依赖:
uv venv uv sync - 配置 AccuWeather API 密钥: 在项目根目录下创建 '.env' 文件,并添加你的 AccuWeather API 密钥。你需要访问 AccuWeather API 开发者网站 注册并获取 API 密钥。
ACCUWEATHER_API_KEY=你的_API_密钥
服务器配置
MCP 客户端需要以下配置信息来启动和连接到天气服务器。将以下 JSON 配置添加到你的 MCP 客户端的服务器配置中。
{ "mcpServers": { "weather": { "command": "uvx", "args": ["--from", "git+https://github.com/adhikasp/mcp-weather.git", "mcp-weather"], "env": { "ACCUWEATHER_API_KEY": "你的_API_密钥" } } } }
配置参数说明:
- 'server name': 服务器名称,这里是 'weather',客户端可以使用此名称来引用该服务器。
- 'command': 启动服务器的命令,这里使用 'uvx',它允许直接从 Git 仓库运行 Python 包。
- 'args': 传递给 'uvx' 命令的参数列表。
- '--from "git+https://github.com/adhikasp/mcp-weather.git"': 指定从 GitHub 仓库 'https://github.com/adhikasp/mcp-weather.git' 获取代码。
- '"mcp-weather"': 指定要运行的包或模块名称,这里是 'mcp-weather'。
- 'env': 设置环境变量。
- 'ACCUWEATHER_API_KEY': 你的 AccuWeather API 密钥,服务器将使用此密钥访问 AccuWeather API。请务必替换为你的真实 API 密钥。
注意: 这种配置方式允许客户端直接从 Git 仓库运行服务器,无需手动下载和部署代码。'uvx' 会自动处理依赖安装和代码执行。 确保你的 MCP 客户端环境安装了 'uv' 和 'uvx'。
基本使用方法
配置完成后,MCP 客户端可以通过调用 'weather' 服务器提供的 'get_hourly_weather' 工具来获取天气预报。客户端需要提供地点名称作为参数。
例如,使用 MCP 客户端发送以下请求 (假设客户端使用 JSON-RPC 协议):
{ "jsonrpc": "2.0", "method": "call", "params": { "server": "weather", "tool": "get_hourly_weather", "arguments": { "location": "北京" } }, "id": 1 }
服务器会返回包含北京当前天气状况和未来12小时每小时天气预报的 JSON 响应。响应格式示例如 README.md 的 "API Usage" 部分。
{ "location": "Beijing", "location_key": "101010100", "country": "China", "current_conditions": { // ... 当前天气数据 }, "hourly_forecast": [ // ... 未来12小时天气预报数据 ] }
请参考仓库的 README.md 文件和 'weather.py' 代码了解更详细的 API 使用和实现细节。
信息
分类
网页与API