Skip to main content
Glama
kthys

irm-kmi-mcp

by kthys

irm-kmi-mcp

License: MIT Python 3.10+

An MCP server exposing official Belgian weather data from the Royal Meteorological Institute of Belgium (IRM/KMI): observed conditions, daily and hourly forecasts, 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")
"Any warnings in Belgium right now?"      →  warnings()

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, plus the official IRM text bulletin in fr/nl/en/de.

  • Hourly forecast (1–49 h): temperature, precipitation, pressure, wind and gusts.

  • Official weather warnings: yellow/orange/red alerts, either for a single municipality (with level and validity period) or for the whole country.

  • Municipality resolution by name: "Namur", "Bruxelles", "Oostende", … resolved through the IRM's own city search.

  • Caching: weather data is cached for 10 minutes, city lookups for 24 hours.

Related MCP server: mcp-danish-weather

Tools

Tool

Parameters

Returns

current_conditions

commune

temperature, condition (ww code + canonical English label), UV index, day/night, sunrise/sunset

daily_forecast

commune, days (1–8, default 3), language (fr/nl/en/de)

per day: temps, condition (ww code + label), wind, precipitation, official text

hourly_forecast

commune, hours (1–49, default 24)

per hour: temperature, condition (ww code + label), precipitation, pressure, wind

warnings

commune (optional), language

alert type, 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-mcp

See Development below for installing from source.

Usage

Run the server (stdio transport):

irm-kmi-mcp
# or
python -m irm_kmi_mcp

Claude 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 texts

No 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, en or de. 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:

git clone https://github.com/kthys/irm-kmi-mcp.git
cd irm-kmi-mcp
python3 -m venv .venv
.venv/bin/pip install -e ".[dev]"
.venv/bin/pytest
.venv/bin/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.

A
license - permissive license
-
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    Provides access to Dutch weather data (current conditions, forecasts, alerts, and historical data) via the KNMI API, with automatic location name resolution for Dutch cities.
    1
    11
    1
    Apache 2.0
  • A
    license
    A
    quality
    D
    maintenance
    Provides 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.
    3
    9
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Provides 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.
    4
    MIT

View all related MCP servers

Related MCP Connectors

  • MET Norway weather (api.met.no behind yr.no) — global forecast, sunrise, ocean

  • Global weather via Open-Meteo: forecast, ERA5 archive, marine, air quality, geocoding, elevation.

  • Swiss weather data for AI assistants — forecasts, measurements, stations, pollen.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/kthys/irm-kmi-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server