vedurstofa-mcp
MCP server for Icelandic weather, forecasts, warnings, and earthquakes. Data comes from the Icelandic Meteorological Office.
README
vedurstofa-mcp
MCP server for Icelandic weather, forecasts, warnings, and earthquakes. Data comes from the Icelandic Meteorological Office (Veðurstofa Íslands, vedur.is). Works with Claude Desktop, Claude Code, and any other MCP client.
What it does
Six tools:
| Tool | What it returns |
|---|---|
get_weather_now |
Current AWS observations per station (temperature, wind, pressure, humidity, precipitation). |
get_weather_forecast |
Per-station multi-day forecasts scraped from vedur.is. Falls back to the text forecast if scraping fails. |
get_weather_text |
Prose weather forecasts and text warnings (national, multi-day, or warnings), in English or Icelandic. |
get_weather_warnings |
Structured CAP v1 severe-weather alerts. |
get_earthquakes |
Recent earthquakes with region presets (Reykjanes, Katla, Bárðarbunga, Tjörnes, Askja, Hekla, Grímsvötn) and arbitrary lat/lon radius filters. |
list_weather_stations |
Station catalog for ID/name lookups. |
Station inputs accept IDs ("1470") or names with or without diacritics ("Reykjavík", "reykjavik"). Unknown names return a typo-tolerant "did you mean..." error.
For agents
Read this section if you're an AI agent picking tools from this server.
- No auth, no API key, no setup. Just run
npx vedurstofa-mcpover stdio. - All data is Icelandic. If the user asks about weather outside Iceland, stop — this server can't help.
- Every response is a JSON envelope with
attribution,source,fetched_at,data, and optionallyerrors,degraded,truncated. Always cite theattributionfield when surfacing data to users. - Units are metric. °C, m/s, hPa, mm, km. Convert only when the user asks.
- Timestamps are ISO 8601 UTC. Iceland is on UTC year-round (no DST).
Tool selection guide
| User asks about… | Use |
|---|---|
| Current temperature, wind, pressure at a location | get_weather_now |
| Hourly forecast for the next hours/days at a location | get_weather_forecast (pass hours to narrow the window) |
| Narrative / prose forecast (national outlook, multi-day, text warnings) | get_weather_text |
| Severe-weather alerts, storm warnings, structured hazard data | get_weather_warnings |
| Recent earthquakes — volcanic regions, lat/lon radius, magnitude | get_earthquakes |
| "Which stations are there?" / resolving a place name to a station ID | list_weather_stations |
Multi-tool workflows
- "What's the weather like in Iceland today?" →
get_weather_nowfor the user's city +get_weather_warningsto surface any active alerts. Addget_weather_textwithcategory: "national"only if the user wants a narrative. - "Should I drive from Reykjavík to Akureyri tomorrow?" →
get_weather_forecastfor both endpoints +get_weather_warnings. Don't pullget_weather_nowunless the user asks about right now. - "Are there any earthquakes near me?" →
get_earthquakeswithregionpreset if the user names a volcanic system (Reykjanes, Katla, etc.), otherwisenear: { lat, lon, radius_km }.
Degraded responses
get_weather_forecast scrapes HTML and can fail when the upstream site changes. When this happens, the response carries degraded: true and degraded_reason, and falls back to the national text forecast. Surface this to the user rather than pretending the structured forecast is available.
Install & run
Node 18+ required.
# Latest
npx -y vedurstofa-mcp
# Version-pinned (recommended for configs that shouldn't drift)
npx -y vedurstofa-mcp@1.0.0
The server speaks MCP over stdio, so you won't see interactive output. Plug it into a client.
Claude Desktop
~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %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)
In VS Code, open the Cline extension → MCP servers → Edit MCP settings, and add:
{
"mcpServers": {
"vedurstofa": {
"command": "npx",
"args": ["vedurstofa-mcp"]
}
}
}
ChatGPT
ChatGPT's MCP support (Developer Mode, Plus/Pro and higher) currently accepts only remote MCP servers exposed over an SSE URL, not local stdio servers like this one. To use vedurstofa-mcp with ChatGPT you'd need to wrap it behind an stdio→SSE bridge (e.g. mcp-proxy, supergateway) and point ChatGPT at the bridge URL. See OpenAI's MCP docs for setup.
Example output
get_weather_now with stations: ["Reykjavík"]:
{
"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
}
]
}
}
get_earthquakes with region: "reykjanes" returns a sorted list of events with timestamp, latitude, longitude, depth_km, magnitude, magnitude_type, location, reviewed. Fields default to null when upstream omits them.
Example prompts
- "What's the weather in Reykjavík right now?"
- "Compare current conditions in Akureyri, Ísafjörður and Höfn."
- "Any weather warnings active for Iceland?"
- "Earthquakes near Grindavík in the last 24 hours above magnitude 2."
- "Show me the Icelandic multi-day text forecast."
Data attribution
Data comes from the Icelandic Meteorological Office under CC BY-SA 4.0. Every response includes an attribution field. The MIT license in this repo covers the server code only, not the data.
Limitations
- Forecast scraping is fragile. Per-station forecasts are extracted from inline JavaScript on vedur.is pages. When the HTML changes, the scraper falls back to the national text forecast and marks the response
degraded: true. File an issue when you see it. - Forecast station coverage is limited to ~13 major named stations. Others share a regional page or have no scrapeable forecast.
- Units are metric: °C, m/s, hPa, mm, km. Claude converts on request.
- Timestamps are ISO 8601 UTC. Iceland is on UTC year-round (no DST).
Development
npm install
npm run typecheck
npm run test
npm run build
VEDURSTOFA_DEBUG=1 enables debug-level logs on stderr. Stdout is reserved for the MCP protocol.
License
MIT for the server code. Data is the property of the Icelandic Meteorological Office under CC BY-SA 4.0.
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。