天气数据服务

一个基于MCP协议的天气数据服务,提供天气警报、预报和历史天气数据检索功能。

  • by salman-aziz-4425
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 salman-aziz-4425/weather-mcp

使用说明

MCP气象项目

一种MCP(模型上下文协议)服务器,使用美国国家气象局API提供天气数据工具和资源。该服务器包括天气警报、预报和基于RAG的历史天气数据搜索系统。

特性

  • 天气警报:获取美国任何州的活跃天气警报
  • 天气预报:使用纬度和经度检索任何位置的详细预报
  • 历史搜索:使用RAG(检索增强生成)搜索存储的天气数据
  • 数据存储:自动存储所有提取的天气数据以供将来参考
  • MCP资源:通过MCP资源访问存储的警报、预报和最近的天气数据

安装

  1. 确保您已安装Python 3.13+
  2. 使用安装依赖项 uv:
uv sync

用法

运行服务器

启动MCP服务器:

uv run python main.py

可用工具

get_alerts(state: str)

检索美国某个州的活动天气警报。提供两个字母的州代码(例如“CA”、“NY”、“TX”)。

get_forecast(latitude: float, longitude: float)

获取特定位置的详细天气预报。提供纬度和经度坐标。

search_weather_history(query: str, limit: int = 5)

使用关键字匹配搜索存储的天气数据。返回高达 limit 与查询匹配的结果。

可用资源

  • weather://alerts -列出所有已存储的天气警报
  • weather://forecasts -列出所有存储的天气预报
  • weather://recent -显示最近的天气数据条目

测试

运行测试脚本以验证服务器是否正常工作:

uv run python test_server.py

项目结构

  • main.py -主MCP服务器入口点
  • weather.py -天气工具实施
  • storage.py -数据存储和RAG搜索功能
  • utils.py -API请求的实用程序函数
  • test_server.py -MCP服务器的测试脚本
  • weather_data.json -存储天气数据的JSON文件

依赖项

  • fastapi[standard] -Web框架
  • httpx -API请求的HTTP客户端
  • mcp[cli] -模型上下文协议实现

许可证

本项目按原样提供,用于教育和发展目的。