Skip to main content
Glama

KNMI Weather MCP

by wolkwork

KNMI Weather MCP

A FastMCP server that provides real-time weather data from KNMI (Royal Netherlands Meteorological Institute) weather stations. This application fetches the latest 10-minute measurements from the nearest weather station to any location in the Netherlands.

Features

  • Get weather data for any location in the Netherlands

  • Automatically finds the nearest KNMI weather station

  • Provides real-time measurements including:

    • Temperature

    • Humidity

    • Wind speed and direction

    • Precipitation

    • Visibility

    • Air pressure

  • Natural language interpretation of weather conditions

  • Location search functionality

  • Detailed logging

Related MCP server: Weather Query MCP Server

Prerequisites

Installation

  1. Clone the repository:

    git clone <repository-url> cd knmi-mcp
  2. Create a .env file in the project root:

    KNMI_API_KEY=your_api_key_here

Running the Server

Using Claude AI

To use this application with Claude AI, run the following command in the folder of the project:

uv run fastmcp install src/knmi_weather_mcp/server.py

This will add the following configuration to your Claude configuration file (typically located at ~/Library/Application Support/Claude/claude_desktop_config.json):

{ "KNMI Weather": { "command": "uv", "args": [ "run", "--with", "fastmcp", "--with", "httpx", "--with", "netCDF4", "--with", "numpy", "--with", "pandas", "--with", "pydantic", "--with", "python-dotenv", "--with", "xarray", "fastmcp", "run", "/Users/<username>/<git location>/knmi-mcp/src/knmi_weather_mcp/server.py" ] } }

Note: If you see an error like this:

spawn uv ENOENT

Replace the uv command with the full path to the uv command. On *nix systems this can be found with the command which uv.

Manual Running

For development or standalone usage:

uv run fastmcp run src/knmi_weather_mcp/server.py

Available Tools

1. what_is_the_weather_like_in

Get a natural language interpretation of current weather conditions for any location in the Netherlands.

Example:

await what_is_the_weather_like_in("Amsterdam")

2. get_location_weather

Get raw weather data for a location.

Example:

await get_location_weather("Rotterdam")

3. search_location

Search for locations in the Netherlands.

Example:

await search_location("Utrecht")

4. get_nearest_station

Find the nearest KNMI weather station to given coordinates.

Example:

await get_nearest_station(52.3676, 4.9041)

Logging

The application logs are stored in the logs/knmi_weather.log file, providing detailed information about:

  • API requests and responses

  • Weather data processing

  • Error messages

  • Debug information

Data Sources

This application uses the KNMI Data Platform API to fetch data from the "Actuele10mindataKNMIstations" dataset, which provides 10-minute interval measurements from all KNMI weather stations in the Netherlands.

Error Handling

The application includes robust error handling for:

  • Invalid locations

  • API authentication issues

  • Network problems

  • Data parsing errors

  • Missing measurements

One-click Deploy
A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

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/wolkwork/knmi-mcp'

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