天气数据服务器

一个基于Model Context Protocol (MCP)的天气数据服务器,提供美国地区的天气预报和天气警报信息。

  • by agentventure
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 agentventure/mcp_server_python_getting_started

使用说明

气象MCP服务器

模型上下文协议(MCP)服务器,使用美国国家气象局(NWS)API提供天气信息和警报。此服务器提供用于检索美国各地天气预报和活动天气警报的工具。

关于本项目

该项目基于 模型上下文协议(MCP)入门教程 对于服务器开发人员来说。本教程为构建MCP服务器并将其与Claude for Desktop等客户端集成提供了全面的指南。

此天气服务器的原始代码示例可以在 MCP快速入门资源库.

特性

  • 天气警报:使用两个字母的州代码获取美国任何州的活动天气警报
  • 天气预报:检索特定坐标的详细天气预报
  • 实时数据:使用官方国家气象局API获取准确、最新的信息
  • 易于集成:简单的MCP服务器,可以与任何兼容MCP的客户端集成

安装

先决条件

  • Python 3.8或更高版本
  • uv 包管理器(推荐)或 pip

设置

  1. 克隆存储库:
git clone https://github.com/agentventure/mcp_server_python_getting_started.git
cd mcp_server_python_getting_started
  1. 使用安装依赖项 uv:
uv sync

或使用 pip:

pip install -r requirements.txt

用法

运行服务器

启动MCP服务器:

uv run weather.py

服务器将启动并通过stdio进行通信,准备处理来自MCP客户端的请求。

可用工具

1.获取天气警报(get_alerts)

检索美国某个州的活动天气警报。

参数:

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

例子:

# Get alerts for California
alerts = await get_alerts("CA")

响应格式:

Event: Severe Thunderstorm Warning
Area: Northern California
Severity: Severe
Description: Severe thunderstorm warning in effect...
Instructions: Take shelter immediately...

---

Event: Flood Watch
Area: Central Valley
Severity: Moderate
Description: Flood watch in effect...
Instructions: Monitor weather conditions...

2.获取天气预报(get_forecast)

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

参数:

  • latitude (float):位置的纬度坐标
  • longitude (float):位置的经度坐标

例子:

# Get forecast for San Francisco (37.7749, -122.4194)
forecast = await get_forecast(37.7749, -122.4194)

响应格式:

Tonight:
Temperature: 55°F
Wind: 10 mph NW
Forecast: Clear skies with light winds. Low around 55.

---

Tomorrow:
Temperature: 68°F
Wind: 15 mph W
Forecast: Sunny with increasing clouds in the afternoon. High near 68.

---

Tomorrow Night:
Temperature: 52°F
Wind: 8 mph NW
Forecast: Partly cloudy with light winds. Low around 52.

api信息

此服务器使用 美国国家气象局API,它提供:

  • 不需要API密钥:免费获取天气数据
  • 实时更新:数据全天频繁更新
  • 全面覆盖:覆盖美国所有州和地区
  • 可靠的服务:政府官方气象服务

数据源

  • 警报:来自NWS的活跃天气警报
  • 预测:详细的天气预报,包括温度、风和条件
  • 地理数据:美国任何地点的基于点的天气信息

错误处理

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

  • 网络连接问题
  • 坐标或州代码无效
  • API服务不可用
  • 超时条件

当发生错误时,服务器会返回信息性错误消息以帮助调试。

发展

项目结构

weather/
├── weather.py          # Main MCP server implementation
├── main.py            # Entry point for running the server
├── pyproject.toml     # Project configuration and dependencies
├── README.md          # This file
└── .gitignore         # Git ignore rules

依赖项

  • mcp:模型上下文协议服务器框架
  • httpx:API请求的异步HTTP客户端
  • fastmcp:FastMCP服务器实施

添加新功能

要添加新的天气相关工具,请执行以下操作:

  1. 在中创建一个新的异步函数 weather.py
  2. 用 @mcp.tool()
  3. 添加适当的类型提示和文档字符串
  4. 使用现有的实现错误处理 make_nws_request 助手

贡献

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

许可证

这个项目是开源的,可以在MIT许可证下使用。

支持

对于问题或疑问:

  1. 检查 美国国家气象局API文件
  2. 查阅MCP文档,网址为 模型上下文协议.io
  3. 在此存储库中打开问题

备注:此服务器专为教育和发展目的而设计。对于生产使用,考虑根据您的特定要求实施速率限制和额外的错误处理。