Skip to content

MCP Server

foehn includes an MCP server that gives LLMs live access to MeteoSwiss data. It is published on the MCP Registry.

Daily weather in Bern, powered by foehn

Daily weather in Bern, powered by foehn's MCP server and MeteoSwiss open data.


Installation

pip install "foehn[mcp]"

Configuration

Add foehn to your MCP client config:

{
  "mcpServers": {
    "foehn": {
      "command": "foehn",
      "args": ["mcp"]
    }
  }
}

Or, without installing anything first, let uv fetch it on demand — this is also what MCP Registry clients run:

{
  "mcpServers": {
    "foehn": {
      "command": "uvx",
      "args": ["--with=foehn[mcp]", "foehn", "mcp"]
    }
  }
}

foehn mcp --transport streamable-http serves over HTTP instead of stdio.


Available tools

Tool Description
list_datasets Browse all MeteoSwiss datasets with metadata
load_data Fetch weather measurements as rows
describe_data Get summary statistics for a dataset
describe_grid Inspect a gridded dataset's dimensions and variables (NetCDF, GRIB2, radar)
get_parameters Look up what each column measures
get_stations Find station abbreviations and locations
get_points Find local-forecast points by name, station or postal code
get_inventory Check data availability per station

describe_grid is the gridded counterpart to describe_data, covering every gridded collection — NetCDF, GRIB2 forecasts, and HDF5/ODIM radar (GRIB2 and radar need a single-file match). It caches the source file locally and refreshes it when STAC reports a newer asset (download-then-lazy); it needs the grids extra (pip install "foehn[grids]"). It returns structure only — grid values aren't streamed into the LLM context, and writing Zarr stores isn't exposed over MCP (use the Python API or foehn to-zarr CLI).