关于 vedurstofa-mcp
vedurstofa-mcp 是面向查询冰岛天气、预报、警报和地震信息的 MCP 服务,数据来自冰岛气象局。它提供按气象站查询的观测与预报,以及区域或坐标范围内的地震事件。
主要功能
- 01查询气象站当前观测数据
- 02获取逐站多日天气预报
- 03检索英语或冰岛语文字预报
- 04查询结构化严重天气警报
- 05按区域或坐标筛选近期地震
- 06列出气象站并解析站点名称
适用场景
- 01查看冰岛指定地点的当前天气
- 02比较路线两端的天气并检查警报
- 03查询火山区域或坐标附近的地震
MCP 相关
该 MCP 服务通过 stdio 向客户端提供六种天气、预报、警报、地震和气象站查询工具。响应包含数据来源和归属信息。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
6收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| lang | enum | 否 | 描述字段的语言。默认值为 'en'。en | is |
| stations | array | 否 | 气象站 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 |
| “有哪些气象站?”/将地名解析为气象站 ID | list_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 许可。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。