Sign In

meteoswiss-mcp

Package Overview
Dependencies
Maintainers
1
Versions
18
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

meteoswiss-mcp

MCP server for MeteoSwiss weather data — forecasts, real-time measurements, stations, pollen.

latest
Source
npmnpm
Version
3.0.0
Version published
Maintainers
1
Created
Source

🌦️ MeteoSwiss MCP Server

npm version License: CC0-1.0 Node.js >= 22 Cursor Directory

MCP server for MeteoSwiss weather data — powered by MeteoSwiss Open Data, the same data behind the MeteoSwiss app and website.

This package is the server half of the repo's skill vs. MCP case study — the same data is also available as a no-infrastructure agent skill.

meteoswiss-mcp.ars.is — try it now, no setup needed.

  • Multi-day forecasts for ~6000 Swiss locations (postal codes, stations, place names)
  • Real-time measurements from ~300 stations (~160 full weather + ~140 precipitation-only), updated every 10 minutes
  • Station discovery by name, canton, or GPS coordinates
  • Pollen monitoring from ~15 stations across Switzerland
  • Climate series from the National Basic Climatic Network (NBCN), going back decades
  • MeteoSwiss website search and content retrieval

Use the Hosted Service

No installation required — the server is hosted at https://meteoswiss-mcp.ars.is.

Claude Code

claude mcp add meteoswiss https://meteoswiss-mcp.ars.is/mcp

Claude Desktop

Add to your configuration file (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):

{
  "mcpServers": {
    "meteoswiss": {
      "command": "npx",
      "args": ["mcp-remote", "https://meteoswiss-mcp.ars.is/mcp"]
    }
  }
}

Cursor

Install from the Cursor Directory, or add manually via SettingsMCPAdd Server → paste https://meteoswiss-mcp.ars.is/mcp.

Claude.ai

Go to SettingsIntegrationsAdd MCP Server → paste https://meteoswiss-mcp.ars.is/mcp.

Example Questions

  • "What's the weather forecast for Zurich this week?"
  • "Wie wird das Wetter in Bern morgen?"
  • "Quelle est la météo à Genève?"
  • "Che tempo fa a Lugano?"
  • "How windy is it at Jungfraujoch right now?"
  • "Show me pollen data for Zurich"

Available Tools

ToolDescription
meteoswissLocalForecastMulti-day forecasts for any Swiss location by postal code, station, or place name
meteoswissCurrentWeatherReal-time measurements from automatic weather stations (temperature, wind, humidity, pressure)
meteoswissStationsSearch and browse the MeteoSwiss station network by name, canton, or coordinates
meteoswissPollenDataCurrent pollen concentration data from monitoring stations
meteoswissClimateDataNBCN climate series — temperature, precipitation, sunshine, and climate indicators going back decades
searchSearch MeteoSwiss website content (DE, FR, IT, EN)
fetchFetch full content from MeteoSwiss pages in markdown, text, or HTML

Prompts

Pre-configured prompts for common weather queries:

PromptLanguageDescription
wetterNordschweizGermanForecast and current weather for Northern Switzerland
wetterSchweizGermanWeather for any Swiss location
meteoSuisseRomandeFrenchForecast and current weather for Western Switzerland
meteoTicinoItalianForecast and current weather for Southern Switzerland

Self-Hosting

Docker

docker run -p 3000:3000 ghcr.io/eins78/meteoswiss-mcp:latest

With custom URL:

docker run -p 3000:3000 -e PUBLIC_URL=https://your-domain.com ghcr.io/eins78/meteoswiss-mcp:latest

Docker Compose

docker compose up

From Source

git clone https://github.com/eins78/meteoswiss-llm-tools.git
cd meteoswiss-llm-tools/packages/meteoswiss-mcp
pnpm install
pnpm build
pnpm start

The server will be available at http://localhost:3000. MCP endpoint: http://localhost:3000/mcp.

Local MCP Configuration

{
  "mcpServers": {
    "meteoswiss-local": {
      "command": "npx",
      "args": ["mcp-remote", "http://localhost:3000/mcp"]
    }
  }
}

Environment Variables

VariableDefaultDescription
PORT3000Server port
PUBLIC_URLFull public URL for URL generation (e.g. https://meteoswiss-mcp.ars.is)
USE_TEST_FIXTURESfalseUse local test data instead of live API
BIND_ADDRESS0.0.0.0Interface to bind to
MAX_SESSIONS100Maximum concurrent sessions
SESSION_TIMEOUT_MS300000Session timeout in milliseconds
DEBUGDebug namespaces (e.g. mcp:*)

Development

Prerequisites

  • Node.js v22+ (nvm recommended)
  • pnpm

Setup

nvm use
pnpm install

Commands

CommandDescription
pnpm devStart with hot reloading
pnpm startStart the server
pnpm buildBuild TypeScript
pnpm testRun tests
pnpm run lintType checking + ESLint
pnpm run fixAuto-fix lint errors
pnpm run ciFull CI (lint + build + test)
pnpm run dev:inspectTest with MCP Inspector

Project Structure

src/
  index.ts              # Entry point
  server.ts             # MCP server (factory pattern)
  data/                 # Data access and transformation
  schemas/              # Zod schemas for validation
  tools/                # MCP tool implementations
  support/              # Logging, validation, HTTP, sessions
  views/homepage/       # Server homepage content
test/
  integration/          # Integration tests for all tools
  __fixtures__/         # Test data

Debugging

Enable debug output with the DEBUG environment variable:

DEBUG=mcp:* pnpm dev          # All debug output
DEBUG=mcp:tools pnpm dev      # Tool execution only
DEBUG=mcp:transport pnpm dev  # Transport layer only

See docs/debugging-guide.md for more.

Contributing

Contributions are welcome! Run pnpm run fix && pnpm run ci before committing.

See docs/releasing.md for the release process.

License

CC0-1.0 — public domain

Keywords

mcp

FAQs

Package last updated on 24 Jul 2026

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts