关于 GeoSphere Austria Weather
GeoSphere Austria Weather 是面向奥地利和阿尔卑斯地区的 MCP 服务,提供当前天气、逐小时预报、风暴展望和空气质量。数据来自 GeoSphere Austria 模型,覆盖范围之外不提供服务。
主要功能
- 01基于 INCA 和 AROME 的当前天气
- 02最长约 60 小时的逐小时预报
- 03阵风与雷暴展望
- 04污染物浓度和欧洲 AQI
- 05简洁的公制 Markdown 输出
适用场景
- 01查询奥地利当地天气
- 02依据阿尔卑斯逐小时预报安排行程
- 03查看风暴时间和阵风预报
- 04查询指定地点空气质量
MCP 相关
向 MCP 客户端提供当前天气、逐小时预报、风暴展望和空气质量四种工具。每种工具都需要十进制度数的纬度和经度。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
4收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| latitude | number | 是 | |
| longitude | number | 是 |
详细介绍
geosphere-mcp-server
天气 MCP 服务:通过 Model Context Protocol 提供奥地利和阿尔卑斯地区的当前天气、逐小时预报、风暴展望和空气质量。
该服务提供高分辨率 GeoSphere Austria 数据——AROME 数值预报、INCA 分析/临近预报、用于降水概率的 C-LAEF 集合预报,以及 WRF-Chem 空气质量预报。不提供全球范围的备用数据:AROME 网格外的地点会返回超出覆盖范围的通知,因此如果有此需求,请搭配全球天气数据源。每条响应都会注明生成数据所用的数据集。
输出为简洁的 emoji Markdown,使用公制单位——专为智能家居和语音助手的大模型工作流打造,在这些场景中,简短易读的回答胜过 JSON 数据块。天气状况根据物理参数推导,并采用 Home Assistant 的状况词汇(sunny、partlycloudy、rainy、snowy,等等)。
覆盖范围
| 地点 | get_current_weather | get_hourly_forecast | get_storm_outlook | get_air_quality |
|---|---|---|---|---|
| 奥地利 | INCA + 临近预报 + AROME | AROME(≤60 h)+ C-LAEF 概率 | AROME,CAPE 受 CIN 限制 | WRF-Chem(3 km) |
| 阿尔卑斯地区(奥地利以外) | 仅 AROME | AROME(≤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。
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
latitude | float | 必填 | 十进制度数表示的纬度(例如 48.2208) |
longitude | float | 必填 | 十进制度数表示的经度(例如 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 小时。
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
latitude | float | 必填 | 十进制度数纬度(例如 48.2208) |
longitude | float | 必填 | 十进制度数经度(例如 16.3738) |
hours | int | 24 | 预报小时数(限制在 1–60) |
start | string | now | 可选的 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
强对流天气展望:阵风峰值和雷暴时间。只报告数值,不给出严重程度判断——何为危险由调用方自行判断。
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
latitude | float | 必填 | 十进制度数纬度(例如 48.2208) |
longitude | float | 必填 | 十进制度数经度(例如 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
当前污染物浓度,以及今天、明天和后天的欧洲空气质量指数。
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
latitude | float | 必填 | 十进制度数纬度(例如 48.2208) |
longitude | float | 必填 | 十进制度数经度(例如 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
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。