天气数据服务

一个通过国家气象局API获取天气警报和预报的模型上下文协议服务器。

  • by Avishek-7
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 Avishek-7/weather_mcp_server

使用说明

天气

一种模型上下文协议(MCP)服务器,用于使用美国国家气象局(NWS)API检索天气警报和预报。

特性

  • 获取天气警报:检索美国任何州的活动天气警报
  • 获取天气预报:获取特定地理坐标的天气预报
  • MCP集成:采用FastMCP构建,可与AI助手无缝集成
  • 异步支持:无阻塞异步API调用可实现高效性能

需求

  • Python>=3.13
  • httpx>=0.28.1
  • mcp[cli]>=1.25.0

安装

  1. 克隆存储库:
git clone <repository-url>
cd weather
  1. 安装依赖项:
pip install -e .

或使用紫外线:

uv sync

用法

运行服务器

python main.py

可用工具

get_alerts(state: str) -> str

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

参数:

  • state (str):两个字母的美国州代码(例如,加利福尼亚州、纽约州)

例子:

result = await get_alerts("CA")

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

获取特定位置的天气预报。

参数:

  • latitude (浮动):位置的纬度
  • longitude (浮动):位置的经度

例子:

result = await get_forecast(40.7128, -74.0060)

建筑

该项目使用FastMCP框架创建了一个模型上下文协议服务器,该服务器公开了与天气相关的工具。所有API请求都通过美国国家气象局API进行正确的错误处理和超时管理。

组件

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

API信息

此服务器使用 美国国家气象局API,即:

  • 免费使用
  • 公共数据
  • 不要求进行验证
  • 覆盖美国及其领土

错误处理

该服务器包括全面的错误处理功能,用于:

  • 网络超时(30秒限制)
  • API响应无效
  • 数据缺失或不可用

发展

要修改或扩展工具,请执行以下操作:

  1. 在中编辑工具定义 weather.py
  2. 使用添加新的异步函数 @mcp.tool() 装饰器
  3. 在参数描述中包含适当的文档字符串
  4. 使用正在运行的服务器进行测试

许可证

在此处添加许可证信息。

贡献

欢迎投稿!请随时提交拉取请求。