Weather MCP Server

Weather MCP Server

site icon
2025.03.18 0
Python天气服务其它
Weather-MCP-Server 是一个基于 Model Context Protocol (MCP) 的服务,通过 National Weather Service (NWS) API 提供天气信息。其主要功能包括获取美国各州的天气警报和特定地点的天气预报。该服务适用于需要实时天气数据的应用场景,如天气应用、出行规划等。
View on GitHub

Overview

基本能力

产品定位

Weather-MCP-Server 是一个天气信息服务,通过 MCP 协议提供天气数据的查询功能。

核心功能

  • 获取美国各州的天气警报
  • 获取特定地点(通过经纬度)的天气预报

适用场景

  • 天气应用开发
  • 出行规划工具
  • 实时天气数据监控

工具列表

  1. get_alerts(state: str): 获取指定美国州的天气警报(使用两字母州代码,如 "CA" 表示加利福尼亚)
  2. get_forecast(latitude: float, longitude: float): 获取指定地点的天气预报

常见问题解答

  • 错误处理和日志记录已内置,API 请求出错时会记录并返回错误信息
  • 日志级别和格式可通过 config.py 配置

使用教程

使用依赖

  • Python 3.10+
  • FastMCP
  • httpx

安装依赖命令:

uv add "mcp[cli]" httpx

安装教程

  1. 克隆仓库
  2. 设置虚拟环境: python -m venv .venv source .venv/bin/activate # Windows 使用 `.venv\Scripts\activate`
  3. 安装依赖包: uv add "mcp[cli]" httpx

调试方式

  1. 运行单元测试: python -m unittest test_weather.py
  2. 手动测试(使用 MCP 客户端): ```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) ```

许可证

该项目遵循 MIT 开源许可条款。