Skip to main content
Glama
kthys

irm-kmi-mcp Belgium Weather

irm-kmi-mcp

License: MIT Python 3.10+ PyPI version

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

current_conditions

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

daily_forecast

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

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

hourly_forecast

hours (1–49, default 24)

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

rain_forecast

language

unit, official IRM hint, precipitation per 10-min frame (only frames expecting rain)

pollen

per-species pollen level (none, active, low, moderate, high, very high), national

warnings

language, country (BE/NL/LU, country-wide only)

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-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.

Available Tools

6 tools
current_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.

ParametersJSON Schema
NameRequiredDescriptionDefault
communeNoMunicipality name, e.g. "Namur", "Bruxelles", "Ostende".
latitudeNoWGS84 latitude; use with ``longitude`` instead of ``commune``.
longitudeNoWGS84 longitude; use with ``latitude`` instead of ``commune``.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description carries the burden. It discloses useful behavior: data comes from the nearest IRM weather station, the condition label is canonical English, and the raw IRM code is exposed in condition_code. It does not cover staleness or error behavior, but the read-only nature is evident and an output schema exists.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and front-loaded with the core action. The additional sentences about the IRM station and condition_code are relevant and add value without filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the output schema and full schema parameter coverage, the description covers the essential context: location scope, data source, and result labeling. It does not address behavior when no location parameters are supplied, but all parameters are optional and schema-documented, so this is a minor gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already explains commune, latitude, and longitude. The description adds location scope ('Belgium') and the nearest-station concept, but does not meaningfully elaborate on parameter usage beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description uses a specific verb ('Return') plus resource ('observed weather conditions for a location in Belgium'). The word 'observed' clearly distinguishes it from the forecast sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The context is clear: this tool is for observed, current conditions in Belgium, versus the forecast siblings. However, it does not explicitly name alternatives or state when not to use it, so it falls just short of full guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoNumber of days to return, clamped to ``[1, 8]``.
communeNoMunicipality name, e.g. "Namur", "Bruxelles".
languageNoBulletin language: "fr", "nl", "en" or "de". Defaults to the ``IRM_LANG`` environment variable, else English.en
latitudeNoWGS84 latitude; use with ``longitude`` instead of ``commune``.
longitudeNoWGS84 longitude; use with ``latitude`` instead of ``commune``.
include_textNoSet to false to omit the (long) official bulletin text and save tokens.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the behavioral burden. It does disclose that each day includes the official IRM text bulletin unless include_text is false, which is useful. However, it does not explain runtime behavior such as what happens when no location is provided, how commune versus coordinates are resolved, or any side effects beyond the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no filler: the first gives the core purpose, and the second adds the key conditional behavior. It is front-loaded and every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The input schema fully documents parameters and the output schema covers return structure, so the description only needs to convey the high-level contract. It does that well with Belgian scope and bulletin behavior. It is slightly light on usage routing relative to siblings, but not incomplete for invoking the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all six parameters. The description only restates the include_text behavior already present in the schema and adds no additional parameter-level meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: "Return a daily weather forecast for a location in Belgium." It clearly distinguishes the tool from siblings like current_conditions, hourly_forecast, and rain_forecast by its daily horizon and Belgian scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The intended use case is reasonably clear from the phrase "daily weather forecast," and the sibling tool names imply the contrast. However, the description never explicitly states when to prefer this tool over hourly_forecast or current_conditions, nor does it mention exclusions or fallback alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
hoursNoNumber of hours to return, clamped to ``[1, 49]``.
communeNoMunicipality name, e.g. "Namur", "Bruxelles".
latitudeNoWGS84 latitude; use with ``longitude`` instead of ``commune``.
longitudeNoWGS84 longitude; use with ``latitude`` instead of ``commune``.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the behavioral disclosure burden. It adds useful behavior beyond the schema: covered variables, per-row absolute time, ISO-8601 format, and Brussels timezone. It does not detail units or error behavior, but the output schema likely covers return structure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences with no filler: purpose, covered metrics, and time format. Each sentence supplies distinct, useful information and the most important scoping detail is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the output schema exists and all parameters are fully documented, the description is nearly complete. It explains what the forecast contains and how time is represented. It could be stronger by explicitly addressing location resolution between commune and coordinates, though the schema already hints at it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents commune, latitude/longitude, and hours including the clamping range. The description adds no parameter-specific meaning, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Return an hourly weather forecast for a location in Belgium.' The temporal scope 'hourly' clearly distinguishes it from siblings like daily_forecast and current_conditions, and the Belgium scope narrows the domain.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when fine-grained hourly data is needed, but it never explicitly tells the agent when to choose this over daily_forecast or current_conditions. No when-not or alternative guidance is provided, only an implied temporal fit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
communeNoMunicipality name; defaults to "Bruxelles".
latitudeNoWGS84 latitude; use with ``longitude`` instead of ``commune``.
longitudeNoWGS84 longitude; use with ``latitude`` instead of ``commune``.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full behavioral disclosure. It reveals a non-obvious behavior: location does not affect the pollen levels, only which payload is read. This is valuable transparency beyond the schema. It does not mention response format or error cases, but the output schema exists and the tool is a simple read operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with no filler. It front-loads the main purpose, then adds the key behavioral nuance about national levels and location selection. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple retrieval tool with an output schema, the description is complete. It clarifies the tool's scope, the national behavior, the default location, and the role of the location parameters. There is no missing information an agent needs to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already documents all three parameters with 100% coverage, so the baseline is 3. The description adds meaningful semantic context by stating that location parameters only select the payload and default to Brussels, helping the agent understand that commune/latitude/longitude are not regional filters. This raises it above the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action and resource: 'Return today's official IRM pollen levels for Belgium.' This clearly distinguishes the tool from weather siblings like current_conditions or daily_forecast, which are not about pollen. It also adds the important scope qualifier (national levels) that makes the behavior unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear usage context by explaining that pollen levels are national and location only selects the forecast payload, defaulting to Brussels. This guides the agent in setting the location parameters correctly. It does not explicitly name alternative tools or list when not to use this tool, so it falls short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
communeNoMunicipality name, e.g. "Namur", "Bruxelles".
languageNoLanguage for the unit and official hint: "fr", "nl", "en" or "de".en
latitudeNoWGS84 latitude; use with ``longitude`` instead of ``commune``.
longitudeNoWGS84 longitude; use with ``latitude`` instead of ``commune``.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the behavioral burden. It discloses the data source (IRM rain radar), output granularity (per 10-minute frame), forecast horizon (~5 hours), and a performance trait (cheap relative to hourly forecast). It does not detail limitations such as accuracy or availability, but the output schema likely covers return shape.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is tightly written: the core purpose appears in the first sentence, followed by useful context on data source, temporal resolution, and cost. Every sentence contributes value, and there is no filler or repetition of schema details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is a read-style forecast lookup, and the description covers what it returns, how it works, its horizon, and when to prefer it. Parameter semantics are fully handled by the schema, and an output schema exists. An agent has enough context to select and call this tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline of 3 applies. The description does not add parameter-specific meaning beyond the schema, but that is acceptable because the schema already documents commune, language, latitude, and longitude with examples and mutual-exclusion guidance.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb-resource pairing: 'Return the short-term rain nowcast for a location in Belgium.' It further distinguishes itself from siblings by emphasizing radar-based 10-minute frames and a ~5-hour horizon, clearly separating it from hourly_forecast and other tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives concrete usage context: it answers questions like 'will it rain in the next hour?' and explicitly notes it is 'much more cheaply than the hourly forecast.' This implies when to choose it over hourly_forecast, though it does not explicitly mention the other sibling tools or state exclusion criteria for daily or longer-range forecasts.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
communeNoMunicipality name, e.g. "Namur". Omit for all warnings.
countryNoOnly for the country-wide listing: restrict to "BE", "NL" or "LU".
languageNoWarning text language: "fr", "nl", "en" or "de". Defaults to the ``IRM_LANG`` environment variable, else English.en
latitudeNoWGS84 latitude; use with ``longitude`` instead of ``commune``.
longitudeNoWGS84 longitude; use with ``latitude`` instead of ``commune``.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses the default cross-border scope (Belgium, Netherlands, Luxembourg), the active-warning filter, and that results include alert level and validity period. It does not cover edge cases like conflicting commune and coordinates, but the core behavior is transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two short paragraphs with no filler. The first sentence summarizes the tool, and the following sentences clarify the call modes. It avoids repeating parameter names or schema details unnecessarily.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the main call patterns and outputs, and an output schema exists for return values. It could say more about what happens if both commune and coordinates are provided, or whether results are sorted or time-limited, but these are minor gaps given the strong schema coverage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already describes all five parameters with 100% coverage, so the baseline is 3. The description adds value by explaining the operational semantics: how the absence of commune changes the result scope, how coordinates serve as an alternative lookup, and how country applies only to the country-wide listing.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Return official IRM weather warnings'. It also clarifies two distinct modes—country-wide and per-municipality—which makes the tool's purpose precise and distinguishes it from sibling tools like current_conditions or rain_forecast.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear mode-based usage guidance: omit commune for all active warnings, pass commune or coordinates for municipality warnings, and use the country parameter for filtering the country-wide listing. It does not explicitly name sibling alternatives, but the selection between modes is unambiguous.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 6 tool updatesv1.1.0
    • First observedcurrent_conditions
    • First observeddaily_forecast
    • First observedhourly_forecast
    • First observedpollen
    • First observedrain_forecast
    • First observedwarnings

TDQS

A4.3/5.0
Disambiguation5/5

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.

Naming Consistency5/5

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.

Tool Count5/5

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.

Completeness5/5

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

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

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
    13
    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
    10
    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

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