mcpField
(
(Demo) MCP Server for MeteoSwiss Data

(Demo) MCP Server for MeteoSwiss Data

Local
github.com/eins78Data & Analytics4Updated 1w ago

About (Demo) MCP Server for MeteoSwiss Data

This project provides MeteoSwiss weather data through an MCP server, an agent skill, and forecast evaluations. It serves AI assistants and agents that need Swiss forecasts, observations, pollen, climate records, or MeteoSwiss website content; the same data access is offered through both structured tools and direct shell scripts.

Key features

  1. 01Multi-day forecasts for Swiss locations
  2. 02Current measurements and station discovery
  3. 03Pollen and historical climate data
  4. 04MeteoSwiss website search and retrieval
  5. 05Fuzzy matching, geocoding, and caching

Use cases

  1. 01Check forecasts for a Swiss town or postal code
  2. 02Find weather stations by name or coordinates
  3. 03Review pollen levels or long-term climate series
  4. 04Search and retrieve MeteoSwiss website information

MCP support

The MCP server exposes seven structured tools for forecasts, current weather, stations, pollen, climate data, and MeteoSwiss website search and retrieval. It supports hosted use or self-hosting with Docker.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"meteoswiss": {
"command": "npx",
"args": [
"-y",
"mcp-remote"
]
}
}
}
Run commandnpx -y mcp-remote

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
npmmcp-remote

Tools

No tool list yet

Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.

Details

From the project README

🌦️ MeteoSwiss LLM Tools

License: CC0-1.0 npm: meteoswiss-mcp Docker live next Cursor Directory

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:

  • 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

What this repo demonstrates

  • An agent skill — teach an agent to fetch open data directly with curl/awk/jq: ~630 lines of markdown and bash, zero infrastructure. → packages/meteoswiss-skills
  • An MCP server — the same data as structured, validated tools with fuzzy station matching, geocoding, TTL-tiered caching, a real test suite, Docker, and a hosted instance. → packages/meteoswiss-mcp
  • Eval-driven interface design — treat tool output as an interface for a language model, and measure its legibility before shipping. → packages/meteoswiss-forecast-evals

Read the comparison: Skill vs. MCP Server: Two Ways to Give AI Agents the Same Data.

Choose your approach

Both approaches answer the same weather questions. Which to install depends on your agent:

MCP ServerAgent Skill
What it isStandalone server exposing 7 structured tools via MCPMarkdown instructions + 5 bash scripts the agent runs directly
Works withClaude Desktop, Claude.ai, Cursor, any MCP clientClaude Code, Cursor, any agent with shell access
CoverageForecasts, current weather, stations, pollen, climate series, website searchForecasts, current weather, stations, pollen
ExtrasFuzzy matching, geocoding, caching, DE/FR/IT prompts, structured JSONNo server, no Node.js — just curl, awk, jq
Size~6.6k lines TypeScript, tested in CI~630 lines markdown + bash
InstallOne-liner (hosted), npm, or DockerPlugin marketplace, Skills CLI, or symlink

Full comparison — parity matrix, engineering trade-offs, context cost, when to choose which: docs/skill-vs-mcp.md.

MCP server — quickstart

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.

Agent skill — quickstart

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.

Available tools (MCP server)

ToolDescription
meteoswissLocalForecastMulti-day forecasts by postal code, station, or place name
meteoswissCurrentWeatherReal-time measurements (temperature, wind, humidity, pressure)
meteoswissStationsSearch station network by name, canton, or coordinates
meteoswissPollenDataPollen 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

Example questions

Works with both approaches — just ask in any of Switzerland's four languages:

  • "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?"

Packages

PackageVersionDescription
meteoswiss-mcpnpmMCP server with structured tools, fuzzy matching, and geocoding
meteoswiss-skills1.0.0Agent skill — direct HTTP access, no server needed
meteoswiss-forecast-evals—LLM eval suite for the forecast JSON format (standalone, not a workspace member)

Documentation

Development

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/.

Data source

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.

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.