天气服务工具

一个基于Model Control Protocol (MCP)的天气服务工具,提供天气警报和预报功能,支持通过国家气象局(NWS) API获取数据。

  • by bharathveerB
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 bharathveerb/mcp-server-weatherapi_to_claude

使用说明

MCP气象服务

模型控制协议(MCP)服务器,使用美国国家气象局(NWS)API提供天气相关工具,包括天气警报和预报。

特性

  • MCP工具:
    • get_alerts:检索美国任何州的天气警报
    • get_forecast:按坐标获取详细的天气预报
  • MCP集成:
    • 采用FastMCP框架构建
    • 异步操作支持
    • 类型注释接口
    • 自我记录工具

截图

入门指南

先决条件

  • Python 3.8+
  • pip(Python包管理器)
  • 互联网连接(用于API访问)

安装

  1. 克隆存储库:

    git clone <repository-url>
    cd weather
    
  2. 创建并激活虚拟环境(推荐):

    python -m venv .venv
    .venv\Scripts\activate  # On Windows
    
  3. 安装所需的依赖项:

    pip install -e .
    

用法

可用命令

  1. 获取天气警报

    from weather import get_alerts
    
    # Get alerts for California
    alerts = await get_alerts("CA")
    print(alerts)
    
  2. 获取天气预报

    from weather import get_forecast
    
    # Get forecast for New York City
    forecast = await get_forecast(40.7128, -74.0060)
    print(forecast)
    

api参考

get_alerts(state: str) -> str

获取美国某个州的天气警报。

  • state:两个字母的美国州代码(例如“CA”、“NY”)

get_forecast(latitude: float, longitude: float) -> str

获取特定坐标的天气预报。

  • latitude:位置纬度
  • longitude:位置经度

MCP实施

项目结构

  • weather.py:带有工具定义的主MCP服务器实现
  • main.py:MCP服务器入口点
  • pyproject.toml:具有MCP依赖关系的项目配置

MCP工具

get_alerts(state: str) -> str

获取美国某个州的活跃天气警报。

参数:

  • state:两个字母的美国州代码(例如“CA”、“NY”)

退货: 包含活动天气警报的格式化字符串

get_forecast(latitude: float, longitude: float) -> str

检索特定坐标的天气预报。

参数:

  • latitude:位置纬度
  • longitude:位置经度

退货: 格式化天气预报信息

MCP依赖关系

  • fastmcp:核心MCP服务器实现
  • httpx:API请求的异步HTTP客户端
  • pydantic:用于数据验证和设置管理