天气数据服务

一个提供天气数据、预报和警报的FastMCP服务器,适用于Poke集成。

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

使用说明

天气MCP服务器

一个FastMCP服务器,为Poke集成提供天气数据、预报和警报。

🚀 特性

  • 获取当前天气当前状况(根据美国国家气象局预报数据)
  • 获取天气预报详细的多日天气预报(白天/夜晚时段)
  • 获取天气警报实时警报和警告(NWS官方警报)

数据来源:美国国家气象局https://api.weather.gov) — 无需API密钥。

🛠️ 本地开发

# Install dependencies
pip install -r requirements.txt

# Run the server
python src/server.py

🔑 API密钥设置

无需。此服务器使用美国国家气象局API,无需API密钥。

🚢 部署

部署到Render(或:在Render上部署)

步骤:

  1. 点击上方的“部署到Render”按钮 或者前往 render.com(注:在中文语境中,通常直接保留网址的原样,不进行翻译,因此“render.com”直接作为网址名称使用,无需翻译。)
  2. 将您的GitHub帐户连接到Render (如果你还没有的话)
  3. 创建一个新的Web服务:
    • 连接此存储库
    • 名字: weather-mcp
    • 环境: Python 3
    • 计划: Free
    • 构建命令: pip install -r requirements.txt
    • 启动命令: python src/server.py
  4. 无需环境变量
  5. 部署!

注:在Render的免费套餐中,服务在闲置约15分钟后会进入空闲状态,并且可能需要手动执行“部署”操作来唤醒服务或获取最新的提交。与Vercel不同,默认情况下推送不会自动部署。

您的服务器将在 https://weather-mcp.onrender.com/mcp

🎯 投石(或“ Poke”)集成

  1. 首选 poke.com/settings/connections 翻译为中文是:“poke.com 的设置/连接”
  2. 添加MCP URL: https://weather-mcp.onrender.com/mcp
  3. 给它起个名字,比如“天气”
  4. 尝试:“使用天气MCP获取波士顿的3天天气预报。”

参考文献

🔧 可用工具

  • get_current_weather(location, units="metric|imperial")基于NWS(美国国家气象局)预报时段的当前状况
  • get_forecast(location, days=1..5, units="metric|imperial")多日预报(白天/夜晚时段)
  • get_weather_alerts(location)指定地点的官方警报/监视/预警

📝 示例用法

# Get current weather (uses NWS forecast period closest to now)
get_current_weather(location="Seattle", units="metric")

# Get 3-day forecast (day/night periods)
get_forecast(location="New York", days=3, units="imperial")

# Get weather alerts
get_weather_alerts(location="Miami")

注释:

  • 地点是通过内置的美国主要城市简单映射来解析的。对于其他地点,则使用默认坐标。如有需要,您可以使用地理编码服务来扩展此功能。
  • 当前条件是基于第一个预报时段得出的,因为此时没有站点观测数据。