Token导航 LogoToken导航TokenDH.com
Openweathermap SSE MCP Server logo
地图位置stdio官方级别未说明来源级核验

Openweathermap SSE MCP Server

MCP Server

基于FastAPI的天气服务,集成OpenWeatherMap API,提供当前天气、每日预报和每小时预报功能,支持Home Assistant集成。

工具数

3

提示词数

0

GitHub Stars

0

资源数

0
API集成位置天气Python天气预报

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

mr-ransel

提供方

mr-ransel

最后核验

2026/5/17 20:20

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

pip install -r requirements.txt

详细介绍

MCP气象服务器

基于FastAPI的天气服务器,使用模型上下文协议(MCP)与家庭助理集成。该服务器使用OpenWeatherMap的One Call API 3.0提供全面的天气信息,包括任何位置的当前状况、每日预报和每小时预报。

先决条件

  • Python 3.7+
  • OpenWeatherMap API密钥(具有One Call API 3.0访问权限)

设置

  1. 克隆此存储库
  1. 安装依赖项:
   pip install -r requirements.txt
  1. 使用以下方法之一配置OpenWeather API密钥:

- 设置环境变量(推荐):

     export OPENWEATHER_API_KEY=your_api_key_here

- 或将其添加到 config.yaml:

     settings:
       api_key: your_api_key_here

注意:环境变量优先于配置文件。

  1. (可选)在中配置其他设置 config.yaml:
   # General settings
   settings:
     units: "imperial"  # Optional: "metric" (default) or "imperial"
     api_key: "your_api_key_here"  # Alternative to environment variable
     server:
       host: "0.0.0.0"  # Optional: Interface to listen on (default: "0.0.0.0")
       port: 8000       # Optional: Port to listen on (default: 8000)

   # Location overrides (optional)
   overrides:
     "lafayette": "Lafayette, CA, US"
     # Add more overrides as needed

配置

API密钥

OpenWeather API密钥可以通过两种方式进行配置:

  1. 环境变量 OPENWEATHER_API_KEY (出于安全考虑建议)
  2. config.yaml 在...之下 settings.api_key

服务器设置

在中配置服务器的侦听接口和端口 config.yaml:

settings:
  server:
    host: "0.0.0.0"  # Listen on all interfaces (default)
    port: 8000       # Port number (default)
  • host:要监听的网络接口

- "0.0.0.0":在所有接口上监听(默认) - "127.0.0.1":仅在本地主机上监听 - "192.168.1.100":在特定界面上收听

  • port:要监听的端口号(默认值:8000)

单位

您可以在公制和英制单位之间进行选择 config.yaml:

  • metric (如果未指定,则默认):

- 温度:摄氏度 - 风速:米每秒

  • imperial:

- 温度:华氏度 - 风速:英里/小时

位置覆盖

可选 overrides 部分在 config.yaml 允许您为不明确的城市名称指定默认位置。例如:

overrides:
  "lafayette": "Lafayette, CA, US"
  "springfield": "Springfield, IL, US"

默认配置

如果没有 config.yaml 如果文件存在,服务器将:

  • 使用公制单位
  • 在所有接口上监听(0.0.0.0:8000)
  • 没有位置覆盖
  • 要求在环境中设置API密钥

运行服务器

使用以下命令启动服务器:

python server.py

服务器将在配置的主机和端口上运行(默认值:http://0.0.0.0:8000)

API终点

传统REST API

这些端点提供传统的HTTP访问:

当前天气

GET /api/current-weather/{location}

返回当前天气,包括温度、温度、湿度、风速、紫外线指数和云覆盖率。

每日预报

GET /api/daily-forecast/{location}?days={number_of_days}

返回长达7天的每日预报,包括日/分/最高温度、降水概率和紫外线指数。

逐时预报

GET /api/hourly-forecast/{location}?hours={number_of_hours}

返回长达48小时的每小时预报,包括温度、降水概率和紫外线指数。

MCP集成

服务器实现了模型上下文协议(MCP),以便与家庭助理无缝集成。MCP端点位于:

/mcp/sse

可用的MCP工具:

  • current_weather(location: str):获取当前天气状况
  • hourly_forecast(location: str, hours: int = 24):获取每小时预测
  • daily_forecast(location: str, days: int = 7):获取每日预报

位置分辨率

服务器使用灵活的位置解析系统:

  1. 如果位置与中的条目匹配 overrides config,使用覆盖
  2. 对于没有州/国家的城市名称,它试图直接解析
  3. 对于“城市,州”格式,它假设美国(例如,“波特兰,俄勒冈州”→ “美国俄勒冈州波特兰市”)
  4. 完整的“城市、州、国家”格式始终受到尊重

示例:

  • “伦敦”→ 英国伦敦
  • “拉斐特”→ “美国加利福尼亚州拉斐特”(如果在覆盖中配置)
  • 俄勒冈州波特兰→ 美国俄勒冈州波特兰市
  • “澳大利亚墨尔本”→ 澳大利亚维多利亚州墨尔本

API响应格式

根据配置,天气数据以公制或英制单位返回:

度量(默认):

  • 温度:摄氏度
  • 风速:米每秒
  • 湿度:百分比
  • 紫外线指数:0-11+刻度
  • 降水概率:0-1(0-100%)
  • 云覆盖率:百分比

帝国的:

  • 温度:华氏度
  • 风速:英里/小时
  • 其他单位与公制单位相同

当前天气响应示例:

{
    "resolved_location": "London, England, GB",
    "temperature": 17.88,
    "feels_like": 17.29,
    "description": "few clouds",
    "humidity": 60,
    "wind_speed": 5.14,
    "uvi": 0,
    "clouds": 11,
    "timestamp": "2024-04-30T13:10:15"
}

每日预测响应示例:

{
    "resolved_location": "London, England, GB",
    "forecast": [
        {
            "date": "2024-04-30",
            "temp_day": 20.3,
            "temp_min": 15.1,
            "temp_max": 22.4,
            "description": "scattered clouds",
            "humidity": 70,
            "wind_speed": 4.2,
            "precipitation_probability": 0.3,
            "uvi": 6.1
        }
    ]
}

目录标签

目录标签

API集成位置天气Python天气预报天气服务本地部署HomeAssistantRESTAPI

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

3

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP