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
- 01Multi-day forecasts for Swiss locations
- 02Current measurements from weather stations
- 03Find stations by name, canton, or coordinates
- 04Retrieve pollen and historical climate data
- 05Search and fetch MeteoSwiss website content
Use cases
- 01Check a forecast for a Swiss town or postal code
- 02Look up current station readings such as wind or temperature
- 03Find pollen measurements or long-term climate series
- 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.
https://meteoswiss-mcp.ars.is/mcpclaude mcp add --transport http eins78-meteoswiss https://meteoswiss-mcp.ars.is/mcp{"mcpServers":{"eins78-meteoswiss":{"type":"http","url":"https://meteoswiss-mcp.ars.is/mcp"}}}Open in Cursor{"servers":{"eins78-meteoswiss":{"type":"http","url":"https://meteoswiss-mcp.ars.is/mcp"}}}Open in VS Code{"mcpServers":{"eins78-meteoswiss":{"type":"http","url":"https://meteoswiss-mcp.ars.is/mcp"}}}{"mcpServers":{"eins78-meteoswiss":{"serverUrl":"https://meteoswiss-mcp.ars.is/mcp"}}}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.
Tools
7| Parameter | Type | Required | Description |
|---|---|---|---|
| page | integer | No | Page number for pagination (1-based). The upstream API always returns 10 results per page; page size is not configurable. |
| sort | enum | No | Sort order for results. Note: date-asc severely degrades relevance — results are dominated by page age rather than query match.relevance | date-desc | date-asc |
| query | string | Yes | The search query string |
| language | enum | No | The language for search resultsde | fr | it | en |
| contentType | enum | No | Filter 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
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
| Tool | Description |
|---|---|
meteoswissLocalForecast | Multi-day forecasts for any Swiss location by postal code, station, or place name |
meteoswissCurrentWeather | Real-time measurements from automatic weather stations (temperature, wind, humidity, pressure) |
meteoswissStations | Search and browse the MeteoSwiss station network by name, canton, or coordinates |
meteoswissPollenData | Current pollen concentration data from monitoring stations |
meteoswissClimateData | NBCN climate series — temperature, precipitation, sunshine, and climate indicators going back decades |
search | Search MeteoSwiss website content (DE, FR, IT, EN) |
fetch | Fetch full content from MeteoSwiss pages in markdown, text, or HTML |
Prompts
Pre-configured prompts for common weather queries:
| Prompt | Language | Description |
|---|---|---|
wetterNordschweiz | German | Forecast and current weather for Northern Switzerland |
wetterSchweiz | German | Weather for any Swiss location |
meteoSuisseRomande | French | Forecast and current weather for Western Switzerland |
meteoTicino | Italian | Forecast 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
| Variable | Default | Description |
|---|---|---|
PORT | 3000 | Server port |
PUBLIC_URL | — | Full public URL for URL generation (e.g. https://meteoswiss-mcp.ars.is) |
USE_TEST_FIXTURES | false | Use local test data instead of live API |
BIND_ADDRESS | 0.0.0.0 | Interface to bind to |
MAX_SESSIONS | 100 | Maximum concurrent sessions |
MAX_SESSIONS_PER_CLIENT | 10 | Maximum concurrent sessions per client IP (as seen through TRUST_PROXY); further initialize requests get 429 |
SESSION_TIMEOUT_MS | 300000 | Session timeout in milliseconds |
TRUST_PROXY | 0 | Number 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
Setup
nvm use
pnpm install
Commands
| Command | Description |
|---|---|
pnpm dev | Start with hot reloading |
pnpm start | Start the server |
pnpm build | Build TypeScript |
pnpm test | Run tests |
pnpm run lint | Type checking + ESLint |
pnpm run fix | Auto-fix lint errors |
pnpm run ci | Full CI (lint + build + test) |
pnpm run dev:inspect | Test 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
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.