mcpField
M
MeteoSwiss MCP Server

MeteoSwiss MCP Server

Remote
github.com/eins78Maps & Travel4Updated 1w ago
Repository

About MeteoSwiss MCP Server

MeteoSwiss MCP Server provides AI assistants with weather and climate information from MeteoSwiss Open Data. It covers forecasts and current observations across Switzerland, along with station discovery, pollen readings, climate series, and MeteoSwiss website search.

Key features

  1. 01Multi-day forecasts for Swiss locations
  2. 02Current measurements from weather stations
  3. 03Find stations by name, canton, or coordinates
  4. 04Retrieve pollen and historical climate data
  5. 05Search and fetch MeteoSwiss website content

Use cases

  1. 01Check a forecast for a Swiss town or postal code
  2. 02Look up current station readings such as wind or temperature
  3. 03Find pollen measurements or long-term climate series
  4. 04Search MeteoSwiss pages and retrieve their content

MCP support

Exposes MeteoSwiss forecasts, measurements, station search, pollen and climate data, and website search and retrieval as MCP tools. The hosted service is available at `https://meteoswiss-mcp.ars.is/mcp`, and the server can also be self-hosted.

Configuration

Remote servers need no local install. Pick your client, then copy the config or install in one click.

Endpointhttps://meteoswiss-mcp.ars.is/mcp
Copy install command
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

Run commands in a terminal; paste JSON into the client’s MCP config and restart. Servers that need sign-in will prompt on first connect.

Packages
npmmeteoswiss-mcp2.0.2

Tools

7
ParameterTypeRequiredDescription
pageintegerNoPage number for pagination (1-based). The upstream API always returns 10 results per page; page size is not configurable.
sortenumNoSort order for results. Note: date-asc severely degrades relevance — results are dominated by page age rather than query match.relevance | date-desc | date-asc
querystringYesThe search query string
languageenumNoThe language for search resultsde | fr | it | en
contentTypeenumNoFilter by content type. Defaults to "content" to exclude application pages. Use "publication" for official reports.content | press-release | blog-article | publication

Details

From the project README

🌦️ 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 Settings → MCP → Add Server → paste https://meteoswiss-mcp.ars.is/mcp.

Claude.ai

Go to Settings → Integrations → Add 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_URL—Full 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
MAX_SESSIONS_PER_CLIENT10Maximum concurrent sessions per client IP (as seen through TRUST_PROXY); further initialize requests get 429
SESSION_TIMEOUT_MS300000Session timeout in milliseconds
TRUST_PROXY0Number of reverse-proxy hops to trust for the client IP (X-Forwarded-For). Set 1 behind one proxy such as Caddy; leave 0 when clients reach the server directly, or they can spoof their IP past the rate limit
DEBUG—Debug 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

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.