Connects Claude to MeteoSwiss Open Government Data, the same feed behind Switzerland's official weather app. Exposes six tools: multi-day forecasts for 6000+ Swiss locations by postal code or name, real-time measurements from 160 automatic stations updated every 10 minutes, station search by canton or GPS coordinates, pollen monitoring from 15 stations, and MeteoSwiss website search and content retrieval. No API key required. Available as a hosted service at meteoswiss-mcp.ars.is or self-hosted via Docker. Handles queries in German, French, Italian, and English. Useful when you need authoritative Swiss weather data without scraping or dealing with authentication.
Swiss weather data for AI assistants — powered by MeteoSwiss Open Government Data (OGD), the same data behind the MeteoSwiss app and website. Free, no API key required.
meteoswiss-mcp.ars.is — try the hosted service instantly, no setup needed.
This repo is also a working answer to a design question: how should you give AI agents access to a public dataset? It implements the same MeteoSwiss data access twice — as an agent skill (markdown instructions plus bash scripts, no server) and as an MCP server (structured tools, fuzzy matching, caching, hosted). The two approaches are compared honestly in the skill vs. MCP case study.
A third piece, meteoswiss-forecast-evals, demonstrates eval-driven interface design: a promptfoo suite measuring how well 13 LLMs read the forecast JSON, which settled a real design decision — local-time timestamps beat UTC, with hour-level lookups scoring ~100% vs. ~0%.
What the tools provide:
curl/awk/jq: ~630 lines of markdown and bash, zero infrastructure. → packages/meteoswiss-skillsRead the comparison: Skill vs. MCP Server: Two Ways to Give AI Agents the Same Data.
Both approaches answer the same weather questions. Which to install depends on your agent:
| MCP Server | Agent Skill | |
|---|---|---|
| What it is | Standalone server exposing 7 structured tools via MCP | Markdown instructions + 5 bash scripts the agent runs directly |
| Works with | Claude Desktop, Claude.ai, Cursor, any MCP client | Claude Code, Cursor, any agent with shell access |
| Coverage | Forecasts, current weather, stations, pollen, climate series, website search | Forecasts, current weather, stations, pollen |
| Extras | Fuzzy matching, geocoding, caching, DE/FR/IT prompts, structured JSON | No server, no Node.js — just curl, awk, jq |
| Size | ~6.6k lines TypeScript, tested in CI | ~630 lines markdown + bash |
| Install | One-liner (hosted), npm, or Docker | Plugin marketplace, Skills CLI, or symlink |
Full comparison — parity matrix, engineering trade-offs, context cost, when to choose which: docs/skill-vs-mcp.md.
Use the hosted instance (no installation):
# Claude Code
claude mcp add meteoswiss https://meteoswiss-mcp.ars.is/mcp
For Cursor, install from the Cursor Directory or add manually via Settings → MCP.
Or self-host with Docker:
docker run -p 3000:3000 ghcr.io/eins78/meteoswiss-mcp:latest
See the meteoswiss-mcp README for Claude Desktop setup, environment variables, and full documentation.
Install via the Claude Code plugin marketplace:
/plugin marketplace add eins78/meteoswiss-llm-tools
/plugin install meteoswiss-skills@meteoswiss-marketplace
Or with the Skills CLI:
pnpx skills add https://github.com/eins78/meteoswiss-llm-tools.git#packages/meteoswiss-skills --global --agent claude-code --all
See the meteoswiss-skills README for manual installation and details.
| Tool | Description |
|---|---|
meteoswissLocalForecast | Multi-day forecasts by postal code, station, or place name |
meteoswissCurrentWeather | Real-time measurements (temperature, wind, humidity, pressure) |
meteoswissStations | Search station network by name, canton, or coordinates |
meteoswissPollenData | 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 |
Works with both approaches — just ask in any of Switzerland's four languages:
| Package | Version | Description |
|---|---|---|
meteoswiss-mcp | MCP server with structured tools, fuzzy matching, and geocoding | |
meteoswiss-skills | 1.0.0 | Agent skill — direct HTTP access, no server needed |
meteoswiss-forecast-evals | — | LLM eval suite for the forecast JSON format (standalone, not a workspace member) |
git clone https://github.com/eins78/meteoswiss-llm-tools.git
cd meteoswiss-llm-tools
nvm use && pnpm install
See each package's README for package-specific commands. The repo uses changesets for versioning.
Manual, point-in-time test reports (e.g. live MCP tool test passes) live in docs/test-reports/.
All weather data comes from MeteoSwiss Open Government Data (OGD) — the official free data offering from Switzerland's Federal Office of Meteorology and Climatology. The same data powers the MeteoSwiss app and website.
CC0-1.0 — public domain
io.github.ericm1018/skillfm-llm-cost-optimizer-openai-anthropic-usage
io.github.mikerawsonnz/llm-orchestration-agent
io.github.mikerawsonnz/authenticated-llm-agent
labforgedev/copilot-memory-mcp
csoai-org/agent-prompt-injection-firewall-mcp
io.github.mikerawsonnz/authenticated-multi-llm-agent