天气信息服务器

一个基于模型上下文协议(MCP)的服务器,提供天气信息和警报服务,使用国家气象局(NWS)API。

  • by sirrupesh
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 sirrupesh/weather-mcp-server

使用说明

气象MCP服务器

模型上下文协议(MCP)服务器,使用美国国家气象局(NWS)API提供天气信息和警报。

特性

  • 获取美国任何州的天气警报
  • 使用纬度和经度获取任何位置的详细天气预报
  • 易于使用的MCP接口
  • Docker支持,易于部署

先决条件

  • Python 3.13或更高版本
  • Docker和Docker Compose(用于容器化部署)

安装

地方发展

  1. 克隆存储库
  2. 使用安装依赖项 uv:
    pip install uv
    uv venv
    uv pip install .
    uv run src/main.py
    

Docker部署

只需使用Docker Compose来构建和运行服务器:

docker compose up -d

服务器终结点将在以下位置可用 http://localhost:8001/sse.

可用工具

get_alerts(状态:str)

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

参数:

  • state:两个字母的美国州代码(例如,“CA”代表加利福尼亚州,“NY”代表纽约州)

get_forecast(纬度:float,经度:float)

获取特定地点的详细天气预报。

参数:

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

发展

该项目使用Docker卷进行开发,允许在不重建容器的情况下反映代码更改。源代码安装在 /app/src 在容器中。

技术细节

  • 使用Python的MCP框架构建
  • 使用httpx进行异步HTTP请求
  • 实现正确的错误处理和请求超时
  • 使用uv进行依赖关系管理
  • 使用Docker进行容器化,便于部署

环境变量

  • PYTHONUNBUFFERED=1:确保Python输出直接发送到终端,无需缓冲

端口

服务器在容器内的端口8000上运行,并映射到主机上的端口8001。