mcpField
G
GeoSphere Austria Weather

GeoSphere Austria Weather

本地服务
github.com地图与出行12 天前更新

关于 GeoSphere Austria Weather

GeoSphere Austria Weather 是面向奥地利和阿尔卑斯地区的 MCP 服务,提供当前天气、逐小时预报、风暴展望和空气质量。数据来自 GeoSphere Austria 模型,覆盖范围之外不提供服务。

主要功能

  1. 01基于 INCA 和 AROME 的当前天气
  2. 02最长约 60 小时的逐小时预报
  3. 03阵风与雷暴展望
  4. 04污染物浓度和欧洲 AQI
  5. 05简洁的公制 Markdown 输出

适用场景

  1. 01查询奥地利当地天气
  2. 02依据阿尔卑斯逐小时预报安排行程
  3. 03查看风暴时间和阵风预报
  4. 04查询指定地点空气质量

MCP 相关

向 MCP 客户端提供当前天气、逐小时预报、风暴展望和空气质量四种工具。每种工具都需要十进制度数的纬度和经度。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"slettmayer-geosphere": {
"command": "uvx",
"args": [
"geosphere-mcp-server"
]
}
}
}
启动命令uvx geosphere-mcp-server

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypigeosphere-mcp-server0.6.0

工具

4

收录的工具列表 · 更新于 2 周前

参数类型必填说明
latitudenumber是
longitudenumber是

详细介绍

geosphere-mcp-server

PyPI Python License: MIT

天气 MCP 服务:通过 Model Context Protocol 提供奥地利和阿尔卑斯地区的当前天气、逐小时预报、风暴展望和空气质量。

该服务提供高分辨率 GeoSphere Austria 数据——AROME 数值预报、INCA 分析/临近预报、用于降水概率的 C-LAEF 集合预报,以及 WRF-Chem 空气质量预报。不提供全球范围的备用数据:AROME 网格外的地点会返回超出覆盖范围的通知,因此如果有此需求,请搭配全球天气数据源。每条响应都会注明生成数据所用的数据集。

输出为简洁的 emoji Markdown,使用公制单位——专为智能家居和语音助手的大模型工作流打造,在这些场景中,简短易读的回答胜过 JSON 数据块。天气状况根据物理参数推导,并采用 Home Assistant 的状况词汇(sunny、partlycloudy、rainy、snowy,等等)。

覆盖范围

地点get_current_weatherget_hourly_forecastget_storm_outlookget_air_quality
奥地利INCA + 临近预报 + AROMEAROME(≤60 h)+ C-LAEF 概率AROME,CAPE 受 CIN 限制WRF-Chem(3 km)
阿尔卑斯地区(奥地利以外)仅 AROMEAROME(≤60 h)+ C-LAEF 概率AROME,CAPE 受 CIN 限制WRF-Chem(3 km)
世界其他地区不提供服务不提供服务不提供服务不提供服务

覆盖范围由 API 判定,而非由你配置的边界框决定:对于网格外的地点,GeoSphere 会返回 HTTP 400,服务会将其呈现为

⚠️ Outside coverage — this server only serves Austria and the Alpine region.

此行有意与临时故障(⚠️ Timeout…、⚠️ No weather data available)区分开来:地点超出覆盖范围是永久属性,因此重试毫无帮助。此处有意不注明网格——预报工具查询 AROME(2.5 km),而 get_air_quality 查询 WRF-Chem(3 km),因此某个地点可能位于一个网格内,却在另一个网格外。

不提供多日预报。 GeoSphere 不发布超出 AROME 约 60 h 范围的数据,因此此服务能提供的最长回答大约是两天半的逐小时数据。

安装

每个工具都传入十进制度数表示的纬度/经度。服务不含地理编码器——调用它的大模型会自行将城市名称转换为坐标。

Claude Desktop

将以下内容添加到 Claude Desktop 配置文件(~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "geosphere": {
      "command": "uvx",
      "args": ["geosphere-mcp-server"]
    }
  }
}
Claude Code
claude mcp add geosphere -- uvx geosphere-mcp-server
从源代码安装(开发)
{
  "mcpServers": {
    "geosphere": {
      "command": "uvx",
      "args": ["--from", "/path/to/geosphere-mcp-server", "geosphere-mcp-server"]
    }
  }
}
Home Assistant

这是一个标准的 stdio MCP 服务,因此可在任何能托管 stdio MCP 服务的环境中运行——包括与 Home Assistant 的 Assist 工作流一同运行(像注册其他 stdio MCP 服务一样注册即可)。向语音 Agent 提供它需要回答天气的位置坐标,或者让它对地点名称进行地理编码。

工具

get_current_weather

获取某个地点的当前天气状况,数据来自 INCA、15 分钟临近预报和 AROME。

参数类型默认值说明
latitudefloat必填十进制度数表示的纬度(例如 48.2208)
longitudefloat必填十进制度数表示的经度(例如 16.3738)
# Current Weather at 48.2208, 16.3738

🌡️ Temperature: 24.7°C (feels like 24.2°C)
🌤️ Condition: partlycloudy
💧 Humidity: 52%
💨 Wind: 2.9 m/s from 135° (gusts 7 m/s)
🌧️ Precipitation (last hour): 0 mm
📊 Pressure: 1016 hPa
☁️ Cloud cover: 30%
🕐 Timezone: Europe/Vienna (CEST)
📡 Source: GeoSphere (INCA + nowcast + AROME) — observed 15:20
get_hourly_forecast

来自 AROME 的逐小时预报,包含 C-LAEF 降水概率,最多约 60 小时。

参数类型默认值说明
latitudefloat必填十进制度数纬度(例如 48.2208)
longitudefloat必填十进制度数经度(例如 16.3738)
hoursint24预报小时数(限制在 1–60)
startstringnow可选的 ISO 8601 起始时间(例如 2026-07-22T15:00);预报从该时刻或之后开始
# 3-Hour Forecast for 48.2208, 16.3738

AROME model, reference 2026-07-22 12:00 CEST · Source: GeoSphere (AROME + C-LAEF ensemble)

Wed 2026-07-22
  15:00: 24.7°C — partlycloudy, wind 3 m/s
  16:00: 23.9°C — rainy, 1.2 mm (70% chance), wind 4 m/s
  17:00: 22.5°C — cloudy, wind 3 m/s

各小时预报按日期分隔标题分组(使用该地点本地时区的 %a %Y-%m-%d 格式);每当本地日期变化时,都会重复显示标题,因此跨午夜的时间窗口也一目了然。如果请求的小时数超过 AROME 预报时限,结果会附加一条说明,指出预报时限结束的时间——之后没有更远的预报可供获取。无降水的时段会省略降水和概率部分。

get_storm_outlook

强对流天气展望:阵风峰值和雷暴时间。只报告数值,不给出严重程度判断——何为危险由调用方自行判断。

参数类型默认值说明
latitudefloat必填十进制度数纬度(例如 48.2208)
longitudefloat必填十进制度数经度(例如 16.3738)
# Storm Outlook for 48.2208, 16.3738

AROME model, reference 2026-08-10 14:00 CEST · Source: GeoSphere (AROME)

💨 Max gust next 1 h: 12 m/s (at Mon 2026-08-10 17:00)
💨 Max gust next 12 h: 24 m/s (at Mon 2026-08-10 20:00)
⛈️ Thunderstorm expected next 1 h: no
⚡ Next thunderstorm: Mon 2026-08-10 20:00 (CAPE 1800 J/kg)
🌡️ Max CAPE next 12 h: 1800 J/kg
🕐 Timezone: Europe/Vienna (CEST)

在基于此功能构建应用前,有两点值得了解:

  • 预报时限会向上取整到整小时。 时间窗口从当前小时的整点开始,因此“接下来 1 小时”的数值涵盖正在进行的小时以及接下来的一个小时,最多可能报告约 2 小时后的天气事件。如果需要严格限定为 60 分钟,请自行比较返回的时间戳。
  • Next thunderstorm 可能是过去的时间,最多早 59 分钟;这表示雷暴所在的小时就是当前正在进行的小时。也就是说,雷暴正在发生——应将负的提前时间截为零,而不要假设该时间戳在未来。
  • 无雷暴预报会注明时限(none in the next 54 h)。AROME 名义上的预报时限约为 60 小时,但如果预报运行过期或数据被截断,实际时限会更短,因此时长是根据实际返回的数据行计算的。这并不表示在注明的时限之后也没有雷暴。

当某小时的推导天气状况为 lightning/lightning-rainy,或 CAPE ≥ 1000 J/kg、抑制较弱且预报有降水时,该小时会被判定为雷暴小时。第二种情况可涵盖雷雪,以及缺少云量数据的时段;同时要求有降水,以免干燥且 CAPE 较高的下午触发信号。当预报中没有可用的小时数据时,Thunderstorm expected 和 Next thunderstorm 都会报告 unknown,而不是给出确定答案。

get_air_quality

当前污染物浓度,以及今天、明天和后天的欧洲空气质量指数。

参数类型默认值说明
latitudefloat必填十进制度数纬度(例如 48.2208)
longitudefloat必填十进制度数经度(例如 16.3738)
# Air Quality at 48.2208, 16.3738

🏷️ European AQI: 2 (fair) today · 3 (moderate) tomorrow · 2 (fair) in 2 days
🌫️ Concentrations (16:00): NO₂ 18 µg/m³ · O₃ 92 µg/m³ · PM10 21 µg/m³ · PM2.5 12 µg/m³
🕐 Timezone: Europe/Vienna (CEST)
📡 Source: GeoSphere (WRF-Chem + daily AQI, 3 km)

AQI 以欧洲环境署的 1–6 级区间报告(1 为优,6 为极差),这是 GeoSphere 发布的格式——没有可同时显示的底层数值指数。这些是模型预报,不是监测站测量值;预计其趋势会与附近监测站一致,但数值不会完全相同。

即使某个地点位于 3 km 网格内,如果 WRF-Chem 运行数据过期或不完整,也可能返回空结果;此时响应会显示 No air-quality data available for this location,并仍会注明数据源。这与地点超出覆盖范围的情况不同。

数据来源与归属

  • GeoSphere Austria Dataset API — AROME 预报、INCA 分析/临近预报、C-LAEF 集合预报、WRF-Chem 空气质量。数据依据 CC-BY 4.0 授权。© GeoSphere Austria。

该 API 无需密钥,且仅供非商业用途。重新分发其数据时,请保留来源标注。

速率限制

GeoSphere Dataset API 允许每秒 5 次请求,每小时 240 次请求。每次调用都会发出一小批并发请求(当前天气为 3 次,逐小时天气和空气质量为 2 次,风暴展望为 1 次);遇到 HTTP 429 时,服务器会重试一次(仅当 API 要求短暂等待时),否则会返回速率限制通知。

开发

# Install dependencies (creates .venv from the locked versions)
uv sync

# Lint & format
ruff check .
ruff format .

# Run unit tests
pytest -m "not integration"

# Run integration tests (hits the live GeoSphere API)
pytest -m integration

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。