meteoswiss-mcp
v2.3.2
Published
MCP server for MeteoSwiss weather data — forecasts, real-time measurements, stations, pollen.
Maintainers
Readme
🌦️ MeteoSwiss MCP Server
MCP server for MeteoSwiss weather data — powered by MeteoSwiss Open Data, the same data behind the MeteoSwiss app and website.
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 ~160 automatic weather stations, updated every 10 minutes
- Station discovery by name, canton, or GPS coordinates
- Pollen monitoring from ~15 stations across Switzerland
- 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/mcpClaude 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 |
| 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:latestWith custom URL:
docker run -p 3000:3000 -e PUBLIC_URL=https://your-domain.com ghcr.io/eins78/meteoswiss-mcp:latestDocker Compose
docker compose upFrom Source
git clone https://github.com/eins78/meteoswiss-llm-tools.git
cd meteoswiss-llm-tools/packages/meteoswiss-mcp
pnpm install
pnpm build
pnpm startThe 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 |
| SESSION_TIMEOUT_MS | 300000 | Session timeout in milliseconds |
| DEBUG | — | Debug namespaces (e.g. mcp:*) |
Development
Prerequisites
Setup
nvm use
pnpm installCommands
| 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 dataDebugging
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 onlySee 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
