mcp-meteoblue

mcp-meteoblue

Enables MCP clients to search for locations, fetch weather forecasts, and retrieve forecast meteogram images through the meteoblue Weather API.

Category
Visit Server

README

mcp-meteoblue

An MCP server for the meteoblue Weather API, written in JavaScript. It lets MCP clients search for locations, fetch forecasts using packages available through the Free Weather API, and request forecast meteogram images.

Tools

  • search_locations resolves cities, postal codes, and IATA/ICAO airport codes with meteoblue Location Search.
  • get_forecast accepts either a place name or coordinates and returns forecast JSON. It defaults to current, hourly, and daily weather.
  • get_forecast_image accepts either a place name or coordinates and returns a forecast image directly to the MCP client.

Place names passed to forecast or image tools are always resolved through the official meteoblue Location Search API. Forecast package inputs are restricted to the packages listed in the Free Weather API documentation.

get_forecast can restrict hourly output to a local time range. For example, tomorrow from 14:00 through 16:00 (inclusive):

{
  "location": "Paris",
  "forecastDays": 2,
  "dayOffset": 1,
  "startHour": "14:00",
  "endHour": "16:00"
}

You can use an explicit date such as 2026-08-24 instead of dayOffset. An end time earlier than the start time represents an overnight range. When a range is specified, the server requests basic-1h automatically and returns only the hourly data inside that range.

[!NOTE] meteoblue's current Free Weather API documentation says that images require a higher access level. The image tool is included for keys with an Image API entitlement and will return a clear authorization error otherwise.

Requirements

Keep the key private. This server reads it from METEOBLUE_API_KEY; it is never part of the package or MCP tool arguments.

Run from npm

Add this stdio server to your MCP client configuration:

{
  "mcpServers": {
    "meteoblue": {
      "command": "npx",
      "args": ["-y", "mcp-meteoblue"],
      "env": {
        "METEOBLUE_API_KEY": "your_api_key_here"
      }
    }
  }
}

Or run it directly:

METEOBLUE_API_KEY=your_api_key_here npx -y mcp-meteoblue

The server uses stdio, so it intentionally produces no normal terminal output while it waits for an MCP client.

Docker

Build the image locally:

docker build -t mcp-meteoblue .

Configure a Docker-based stdio server in your MCP client:

{
  "mcpServers": {
    "meteoblue": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "--env",
        "METEOBLUE_API_KEY",
        "mcp-meteoblue"
      ],
      "env": {
        "METEOBLUE_API_KEY": "your_api_key_here"
      }
    }
  }
}

The container runs as the unprivileged node user. Keep stdin open with -i because MCP communication uses stdio.

Develop locally

npm install
npm test
METEOBLUE_API_KEY=your_api_key_here npm start

Point an MCP client at node /absolute/path/to/mcp-meteoblue/src/index.js and set the environment variable in that client's configuration.

Releases

GitHub Actions runs the test suite and validates the npm tarball on Node.js 20, 22, 24, and 26 for every push and pull request. Dependabot checks npm and GitHub Actions dependencies weekly.

Pushing a v* Git tag triggers .github/workflows/publish.yml. The workflow uses npm trusted publishing (OIDC) and automatically attaches provenance. Configure the npm trusted publisher with:

  • GitHub owner: unixfox
  • Repository: mcp-meteoblue
  • Workflow: publish.yml
  • Environment: npm

No npm token is stored in GitHub when trusted publishing is configured.

API scope

The server calls only:

  • https://www.meteoblue.com/{language}/server/search/query3
  • https://my.meteoblue.com/packages/{packages}
  • https://my.meteoblue.com/images/{forecast-image-type}

It does not expose meteoblue History, Dataset, Maps, Measurements, or other APIs.

License

MIT

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured