irm-kmi-mcp Belgium Weather
Get official Belgian weather data from IRM/KMI for a location by municipality name or WGS84 coordinates.
Retrieve current observed conditions from the nearest weather station (temperature, condition, UV, day/night, sunrise/sunset).
Get daily forecasts for 1–8 days, including min/max temperatures, wind, precipitation, sunrise/sunset, and optional official IRM text in French, Dutch, English, or German.
Get hourly forecasts for 1–49 hours with absolute Brussels-time timestamps and weather details.
Check radar-based rain nowcast per 10-minute frame for roughly the next 5 hours.
Check national pollen levels by species when in season.
View official weather warnings for a municipality or country-wide, filterable to Belgium, the Netherlands, or Luxembourg, with alert levels and validity periods.
Use municipality names or latitude/longitude for location-based tools.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@irm-kmi-mcp Belgium Weather What's the weather in Brussels right now?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
irm-kmi-mcp
An MCP server exposing official Belgian weather data from the Royal Meteorological Institute of Belgium (IRM/KMI): observed conditions, daily and hourly forecasts, a radar-based rain nowcast, pollen levels and weather warnings, for MCP clients such as Claude, Hermes or Openclaw.
"What's the weather in Namur?" → current_conditions("Namur")
"Forecast for Oostende, 5 days, in Dutch" → daily_forecast("Oostende", days=5, language="nl")
"Will it rain soon in Brussels?" → rain_forecast("Bruxelles")
"How bad is the pollen today?" → pollen()
"Any warnings in Belgium right now?" → warnings(country="BE")Features
Observed conditions: temperature, condition, UV index, sunrise/sunset from the nearest IRM weather station.
Daily forecast (1–8 days): min/max temperature, condition, wind, precipitation, sunrise/sunset, plus the official IRM text bulletin in fr/nl/en/de (can be omitted to save tokens).
Hourly forecast (1–49 h): temperature, precipitation, pressure, wind and gusts — every row carries an absolute ISO-8601 timestamp (Brussels time).
Rain nowcast: radar-based precipitation per 10-minute frame for roughly the next 5 hours; answers "will it rain soon?" far more cheaply than the hourly forecast.
Pollen levels: official daily pollen levels (grasses, birch, mugwort, …) when in season.
Official weather warnings: yellow/orange/red alerts, either for a single municipality (with level and validity period) or country-wide (filterable to BE, NL or LU).
Locations by name or coordinates: "Namur", "Bruxelles", "Oostende", … resolved through the IRM's own city search, or given directly as WGS84 latitude/longitude.
Token-lean output: unknown fields are omitted rather than sent as nulls.
Caching & resilience: weather data is cached for 10 minutes, city lookups for 24 hours; transient network errors are retried automatically.
Related MCP server: mcp-danish-weather
Tools
Every location-taking tool accepts either commune (municipality name) or latitude +
longitude (WGS84).
Tool | Parameters (besides location) | Returns |
| — | temperature, condition (ww code + canonical English label), UV index, day/night, sunrise/sunset |
|
| per day: temps, condition (ww code + label), wind, precipitation, sunrise/sunset, official text |
|
| per hour: absolute time, temperature, condition (ww code + label), precipitation, pressure, wind |
|
| unit, official IRM hint, precipitation per 10-min frame (only frames expecting rain) |
| — | per-species pollen level (none, active, low, moderate, high, very high), national |
|
| alert type (name + canonical slug), text; level + validity for a municipality, per-region level/validity otherwise |
Data source & disclaimer
⚠️ Unofficial. This project is not affiliated with the IRM/KMI. It works by calling the same backend service that powers the official IRM mobile app. That service was never meant for public use: it is undocumented and it can break or disappear without notice. Please use it for personal, low-frequency purposes only.
The API surface was reverse-engineered and documented by
Jules Dejaeghere in
jdejaegh/irm-kmi-api and
jdejaegh/irm-kmi-ha. Many thanks for the groundwork.
This project is not affiliated with, sponsored or endorsed by the IRM/KMI.
Installation
From PyPI:
pip install irm-kmi-mcp…or run it zero-install on every invocation with
uvx (recommended for MCP clients —
no venv to manage):
uvx irm-kmi-mcpSee Development below for installing from source.
Usage
Run the server (stdio transport):
irm-kmi-mcp
# or
python -m irm_kmi_mcpClaude Desktop
Zero-install with uvx (recommended):
{
"mcpServers": {
"irm-kmi-mcp": {
"command": "uvx",
"args": ["irm-kmi-mcp"]
}
}
}Or, after pip install irm-kmi-mcp:
{
"mcpServers": {
"irm-kmi-mcp": {
"command": "irm-kmi-mcp"
}
}
}To set a default language (see Configuration), add an "env"
key to either form, e.g. "env": { "IRM_LANG": "fr" }.
Hermes Agent
After pip install irm-kmi-mcp (so the irm-kmi-mcp command is on PATH):
# config.yaml
mcp_servers:
irm-kmi-mcp:
command: "irm-kmi-mcp"
enabled: true
# env:
# IRM_LANG: "fr" # optional: default language for official textsNo API keys or configuration required. The daily request key is derived automatically.
Configuration
IRM_LANG: default language for official texts (bulletins, warning texts, day names, wind directions):fr,nl,enorde. Unset or invalid values fall back to English. Read once at server startup; set it before launching the server.
Development
Install from source in an editable dev environment (requires uv):
git clone https://github.com/kthys/irm-kmi-mcp.git
cd irm-kmi-mcp
uv venv
uv pip install -e ".[dev]"
uv run --no-project pytest
uv run --no-project ruff check .Tests run against recorded API responses (tests/fixtures/) with a mocked HTTP transport,
so no network access is required. Re-record fixtures after upstream API changes.
Available Tools
6 toolscurrent_conditionsCurrent ConditionsA
Return observed weather conditions for a location in Belgium.
Conditions come from the nearest IRM weather station. The condition
label is canonical English, with the raw IRM weather code exposed in
condition_code.
Inputs: commune, latitude, longitude. Returns: object
daily_forecastDaily ForecastA
Return a daily weather forecast for a location in Belgium.
Each day includes the official IRM text bulletin unless
include_text is false.
Inputs: days, commune, language, latitude, +2 more. Returns: result
hourly_forecastHourly ForecastA
Return an hourly weather forecast for a location in Belgium.
Covers temperature, precipitation, pressure and wind. Every row carries
an absolute time (ISO-8601, Brussels time).
Inputs: hours, commune, latitude, longitude. Returns: result
pollenPollenA
Return today's official IRM pollen levels for Belgium.
Pollen levels are national; the location only selects the forecast payload they are read from and defaults to Brussels.
Inputs: commune, latitude, longitude. Returns: object
rain_forecastRain ForecastA
Return the short-term rain nowcast for a location in Belgium.
Based on the IRM rain radar: expected precipitation per 10-minute frame over roughly the next 5 hours. Answers questions such as "will it rain in the next hour?" much more cheaply than the hourly forecast.
Inputs: commune, language, latitude, longitude. Returns: object
warningsWarningsA
Return official IRM weather warnings for Belgium.
Without commune, returns every active warning for Belgium, the
Netherlands and Luxembourg (filterable with country). With
commune (or coordinates), returns the active warnings for that
municipality, including the alert level and validity period.
Inputs: commune, country, language, latitude, +1 more. Returns: result
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 6 tools
Each tool targets a clearly distinct weather product: observed conditions, daily forecast, hourly forecast, rain nowcast, pollen, and warnings. There is no meaningful overlap that would confuse an agent selecting among them.
All tool names follow a consistent lower_snake_case noun-phrase style, with forecast tools sharing the modifier_forecast pattern. The naming is predictable and scannable across the whole set.
Six tools is a well-scoped size for a national weather service MCP server. Each tool covers a distinct user need without redundancy or unnecessary breadth.
The surface covers observed conditions, short-term nowcasting, daily and hourly forecasts, pollen levels, and official warnings—the core weather information needs for this domain. No obvious dead ends or missing essential operations are apparent.
Maintenance
Related MCP Connectors
Weather forecasts from MET Norway (Yr): geocoding plus hourly forecasts worldwide.
Current weather and 7-day forecast for any place (MET Norway). $0.006/call via x402.
Weather now and 9-day forecasts anywhere (MET Norway) and Great Britain place-name lookup
Global weather via Open-Meteo: forecast, historical, marine, air quality, geocoding, elevation.
Related MCP Servers
- AlicenseAqualityDmaintenanceProvides access to Dutch weather data (current conditions, forecasts, alerts, and historical data) via the KNMI API, with automatic location name resolution for Dutch cities.117 npm1Apache 2.0
- AlicenseAqualityDmaintenanceProvides access to Danish weather data from the Danish Meteorological Institute, enabling users to retrieve current conditions, hourly forecasts, and historical records. It supports location lookups via city names, postal codes, and coordinates for any Danish region.39 npmMIT
- AlicenseAqualityDmaintenanceProvides access to German Weather Service (DWD) data via the Bright Sky API, including current conditions, forecasts, and official weather alerts. Users can retrieve weather information and locate stations using either city names or geographic coordinates.4MIT
- FlicenseBqualityDmaintenanceProvides real-time US weather alerts and forecasts using the National Weather Service API.2-