Weather MCP Server

Weather MCP Server

site icon
2025.03.23 0
Python天气服务数据服务位置服务
Weather MCP Server 是一个基于 Model Context Protocol (MCP) 的服务,通过 National Weather Service (NWS) API 提供天气信息。该服务能够获取美国各州的天气警报以及特定地点的天气预报。
View on GitHub

Overview

基本能力

产品定位

Weather MCP Server 是一个天气信息服务,主要用于提供实时的天气警报和天气预报。

核心功能

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

适用场景

  • 需要实时天气警报的应用
  • 需要天气预报的移动应用或网站
  • 天气数据分析和研究

工具列表

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

常见问题解答

  • 错误处理和日志记录:服务器包含改进的 API 请求错误处理和日志记录功能。如果请求过程中发生错误,服务器会记录错误并返回适当的错误消息。

使用教程

使用依赖

  • Python 3.10+
  • FastMCP
  • httpx

安装教程

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

调试方式

  1. 激活虚拟环境(如果尚未激活): source .venv/bin/activate # Windows 使用 `.venv\Scripts\activate`
  2. 运行服务器: python weather.py
  3. 手动测试示例: ```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 开源许可条款。