mcpField
V
vedurstofa-mcp

vedurstofa-mcp

本地服务
github.com/sandsower地图与出行528 周前更新

关于 vedurstofa-mcp

vedurstofa-mcp 是面向查询冰岛天气、预报、警报和地震信息的 MCP 服务,数据来自冰岛气象局。它提供按气象站查询的观测与预报,以及区域或坐标范围内的地震事件。

主要功能

  1. 01查询气象站当前观测数据
  2. 02获取逐站多日天气预报
  3. 03检索英语或冰岛语文字预报
  4. 04查询结构化严重天气警报
  5. 05按区域或坐标筛选近期地震
  6. 06列出气象站并解析站点名称

适用场景

  1. 01查看冰岛指定地点的当前天气
  2. 02比较路线两端的天气并检查警报
  3. 03查询火山区域或坐标附近的地震

MCP 相关

该 MCP 服务通过 stdio 向客户端提供六种天气、预报、警报、地震和气象站查询工具。响应包含数据来源和归属信息。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"sandsower-vedurstofa": {
"command": "npx",
"args": [
"-y",
"vedurstofa-mcp"
]
}
}
}
启动命令npx -y vedurstofa-mcp

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

安装包
npmvedurstofa-mcp1.0.0

工具

6

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

参数类型必填说明
langenum否描述字段的语言。默认值为 'en'。en | is
stationsarray否气象站 ID 或名称,例如 ['1470', 'Akureyri']。可省略变音符号。省略时默认为 ['Reykjavík']。

详细介绍

vedurstofa-mcp

用于获取冰岛天气、预报、警报和地震信息的 MCP 服务。数据来自冰岛气象局(Veðurstofa Íslands,vedur.is)。可与 Claude Desktop、Claude Code 及其他任何 MCP 客户端搭配使用。

功能

提供六种工具:

工具返回内容
get_weather_now各气象站的当前 AWS 观测数据(温度、风、气压、湿度、降水)。
get_weather_forecast从 vedur.is 抓取的各气象站多日预报。抓取失败时回退到文本预报。
get_weather_text英语或冰岛语的天气预报文本和文字警报(全国、多日或警报)。
get_weather_warnings结构化 CAP v1 恶劣天气警报。
get_earthquakes近期地震,可使用区域预设(Reykjanes、Katla、Bárðarbunga、Tjörnes、Askja、Hekla、Grímsvötn)和任意经纬度半径筛选。
list_weather_stations用于按 ID/名称查询的气象站目录。

气象站输入可使用 ID("1470")或名称,名称可带或不带变音符号("Reykjavík"、"reykjavik")。无法识别的名称会返回可容错拼写错误的“你是不是想找……”错误提示。

面向 Agent

如果你是正在从此服务中选择工具的 AI Agent,请阅读本节。

  • 无需身份验证、API 密钥或设置。 只需通过标准输入/输出运行 npx vedurstofa-mcp。
  • 所有数据均为冰岛地区数据。 如果用户询问冰岛以外的天气,请停止操作——此服务无法提供帮助。
  • 每个响应都是一个 JSON 信封,包含 attribution、source、fetched_at、data,以及可选的 errors、degraded、truncated。向用户展示数据时,务必引用 attribution 字段。
  • 单位采用公制。 °C、m/s、hPa、mm、km。仅在用户要求时进行换算。
  • 时间戳为 ISO 8601 UTC。 冰岛全年采用 UTC(无夏令时)。
工具选择指南
用户询问……使用
某地点的当前温度、风、气压get_weather_now
某地点接下来几小时/几天的逐小时预报get_weather_forecast(传入 hours 可缩小时间范围)
叙述性/文本预报(全国展望、多日预报、文字警报)get_weather_text
恶劣天气警报、风暴警告、结构化灾害数据get_weather_warnings
近期地震——火山地区、经纬度半径、震级get_earthquakes
“有哪些气象站?”/将地名解析为气象站 IDlist_weather_stations
多工具工作流
  • “今天冰岛的天气怎么样?” → 对用户所在城市调用 get_weather_now,并调用 get_weather_warnings 查看是否有生效的警报。仅当用户需要叙述性预报时,才添加 category: "national" 的 get_weather_text。
  • “我明天从 Reykjavík 开车去 Akureyri 合适吗?” → 对两个目的地调用 get_weather_forecast,并调用 get_weather_warnings。除非用户询问当前天气,否则不要调用 get_weather_now。
  • “我附近有地震吗?” → 如果用户提到某个火山系统(Reykjanes、Katla 等),则使用 region 预设调用 get_earthquakes;否则使用 near: { lat, lon, radius_km }。
降级响应

get_weather_forecast 会抓取 HTML;上游网站发生变化时,抓取可能失败。发生这种情况时,响应会包含 degraded: true 和 degraded_reason,并回退到全国文本预报。请将此情况告知用户,不要假装结构化预报可用。

安装与运行

需要 Node 18+。

# Latest
npx -y vedurstofa-mcp

# Version-pinned (recommended for configs that shouldn't drift)
npx -y [email protected]

此服务通过标准输入/输出使用 MCP,因此不会显示交互式输出。请将其接入客户端。

Claude Desktop

~/Library/Application Support/Claude/claude_desktop_config.json(macOS)或 %APPDATA%\Claude\claude_desktop_config.json(Windows):

{
  "mcpServers": {
    "vedurstofa": {
      "command": "npx",
      "args": ["vedurstofa-mcp"]
    }
  }
}

Claude Code

claude mcp add vedurstofa -- npx vedurstofa-mcp

Cursor

~/.cursor/mcp.json:

{
  "mcpServers": {
    "vedurstofa": {
      "command": "npx",
      "args": ["vedurstofa-mcp"]
    }
  }
}

Cline(VS Code)

在 VS Code 中,打开 Cline 扩展 → MCP servers → Edit MCP settings,然后添加:

{
  "mcpServers": {
    "vedurstofa": {
      "command": "npx",
      "args": ["vedurstofa-mcp"]
    }
  }
}

ChatGPT

ChatGPT 的 MCP 支持(开发者模式、Plus/Pro 及更高版本)目前只接受通过 SSE URL 暴露的远程 MCP 服务,不支持像本服务这样的本地 stdio 服务。若要在 ChatGPT 中使用 vedurstofa-mcp,需要将其置于 stdio→SSE 桥接服务之后(例如 mcp-proxy、supergateway),并让 ChatGPT 连接到该桥接服务的 URL。有关设置方法,请参阅 OpenAI 的 MCP 文档。

示例输出

使用 stations: ["Reykjavík"] 调用 get_weather_now:

{
  "attribution": "Icelandic Met Office (vedur.is), CC BY-SA 4.0. ...",
  "source": "https://api.vedur.is/weather/observations/aws/hour/latest",
  "fetched_at": "2026-04-15T21:00:00.000Z",
  "data": {
    "observations": [
      {
        "station_id": "1470",
        "station_name": "Reykjavík",
        "observed_at": "2026-04-15T20:50:00.000Z",
        "temperature_c": 4.2,
        "wind_speed_ms": 7.1,
        "wind_direction_deg": 230,
        "wind_direction_cardinal": "SW",
        "pressure_hpa": 1008.4,
        "humidity_pct": 82,
        "precipitation_mm": 0.0
      }
    ]
  }
}

使用 region: "reykjanes" 调用 get_earthquakes 会返回按时间排序的事件列表,其中包含 timestamp、latitude、longitude、depth_km、magnitude、magnitude_type、location、reviewed。如果上游未提供字段,其默认值为 null。

示例提示词

  • “Reykjavík 现在的天气怎么样?”
  • “比较 Akureyri、Ísafjörður 和 Höfn 当前的天气状况。”
  • “冰岛目前有哪些天气预警?”
  • “过去 24 小时内 Grindavík 附近震级超过 2 的地震。”
  • “显示冰岛的多日文字预报。”

数据来源说明

数据来自冰岛气象局,采用 CC BY-SA 4.0 许可。每条响应都包含一个 attribution 字段。本仓库中的 MIT 许可仅适用于服务代码,不适用于数据。

限制

  • 预报抓取不稳定。各站点的预报从 vedur.is 页面中的内联 JavaScript 提取。HTML 发生变化时,抓取器会回退到全国文字预报,并将响应标记为 degraded: true。发现此情况时请提交问题。
  • 预报站点覆盖范围有限,仅包括约 13 个主要命名站点。其他站点共用区域页面,或没有可抓取的预报。
  • 单位采用公制:°C、m/s、hPa、mm、km。Claude 可按要求转换单位。
  • 时间戳采用 ISO 8601 UTC 格式。冰岛全年使用 UTC(无夏令时)。

开发

npm install
npm run typecheck
npm run test
npm run build

设置 VEDURSTOFA_DEBUG=1 可在 stderr 上启用调试级别日志。stdout 专用于 MCP 协议。

许可证

服务代码采用 MIT 许可证。数据归冰岛气象局所有,采用 CC BY-SA 4.0 许可。

评论

支持 Markdown

第一次接触 MCP?

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

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