
Weather MCP Server

2025.03.23
0
Python天气服务数据服务位置服务
Weather MCP Server 是一个基于 Model Context Protocol (MCP) 的服务,通过 National Weather Service (NWS) API 提供天气信息。该服务能够获取美国各州的天气警报以及特定地点的天气预报。
View on GitHub
Overview
基本能力
产品定位
Weather MCP Server 是一个天气信息服务,主要用于提供实时的天气警报和天气预报。
核心功能
- 获取美国各州的天气警报
- 获取特定地点(通过经纬度)的天气预报
适用场景
- 需要实时天气警报的应用
- 需要天气预报的移动应用或网站
- 天气数据分析和研究
工具列表
get_alerts(state: str)
: 获取美国某州的天气警报(使用两字母州代码,如 "CA" 表示加利福尼亚)get_forecast(latitude: float, longitude: float)
: 获取特定地点的天气预报
常见问题解答
- 错误处理和日志记录:服务器包含改进的 API 请求错误处理和日志记录功能。如果请求过程中发生错误,服务器会记录错误并返回适当的错误消息。
使用教程
使用依赖
- Python 3.10+
- FastMCP
- httpx
安装教程
- 克隆仓库
- 设置虚拟环境:
python -m venv .venv source .venv/bin/activate # Windows 使用 `.venv\Scripts\activate`
- 使用 uv 安装依赖包:
uv add "mcp[cli]" httpx
调试方式
- 激活虚拟环境(如果尚未激活):
source .venv/bin/activate # Windows 使用 `.venv\Scripts\activate`
- 运行服务器:
python weather.py
- 手动测试示例: ```python # 获取加利福尼亚的天气警报 result = await mcp.call_tool("get_alerts", state="CA") print(result)
# 获取旧金山的天气预报(近似坐标) result = await mcp.call_tool("get_forecast", latitude=37.7749, longitude=-122.4194) print(result) ```