프로토타입 · 미리 보기: 공식 레지스트리의 모든 서버를 담고 있으며 30분마다 동기화해요. 리뷰와 계정 기능은 다음 단계에서 열려요.
PopNx MCPAI를 쓰는 사람을 위한 MCP 서버 · 쉬운 말로 설명해요

Swiss Weather

제작자: cuolm버전 0.4.0i★ –i내 컴퓨터에서 실행
레지스트리 이름io.github.cuolm/swiss-weather-mcp

설치

개요

제작자가 쓴 설명(영어 원문)

Weather forecasts, measurements and sun and moon times for places in Switzerland, from MeteoSwiss

PopNx MCP의 세 기둥

이 세 가지는 절대 하나의 점수로 합치지 않아요. 의견, 측정, 인기는 서로 다른 것이니까요.

할 수 있는 일

이 서버는 아직 쉬운 말로 된 요약을 쓰지 못했어요. 아래는 레지스트리에서 읽어 온 사실이에요.

  • 연결 방식: 내 컴퓨터에서 실행
  • 전송 방식: stdio
  • 카테고리: 여행, 지도 및 날씨

설치

쓰고 있는 AI 앱을 고른 다음 설정을 복사하세요.

설치하기 전에

  • 기본 점검: 1개 중 1개 통과
  • 내 컴퓨터에서 내 사용자 계정의 권한(파일, 네트워크, 앱)으로 실행돼요.
  • 레지스트리에 입력해야 할 키가 나와 있지 않아요.

필요한 것

  • PyPIPython의 uv 설치(uvx 명령어용)

어떤 앱을 쓰세요?

위에서 앱을 고르세요. 기억해 두었다가 다음부터는 버튼에 “…에 설치”라고 표시해요.

Claude Desktop → Settings → Developer → Edit Config를 열고 claude_desktop_config.json에 이 내용을 붙여 넣으세요

{
  "mcpServers": {
    "swiss-weather": {
      "command": "uvx",
      "args": [
        "swiss-weather-mcp"
      ]
    }
  }
}

터미널에서 이 명령어를 실행하세요

claude mcp add swiss-weather -- uvx swiss-weather-mcp

Cursor에서 열기

또는 설정을 직접 복사하기

프로젝트의 .cursor/mcp.json 또는 ~/.cursor/mcp.json에 붙여 넣으세요

{
  "mcpServers": {
    "swiss-weather": {
      "command": "uvx",
      "args": [
        "swiss-weather-mcp"
      ]
    }
  }
}

브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.

VS Code에서 열기

또는 설정을 직접 복사하기

프로젝트의 .vscode/mcp.json에 붙여 넣으세요

{
  "servers": {
    "swiss-weather": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "swiss-weather-mcp"
      ]
    }
  }
}

브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.

이 서버는 내 컴퓨터에서 실행되는데, ChatGPT는 인터넷에 있는 서버에만 연결할 수 있어요. 다른 앱을 고르세요.

선택한 앱은 이 기기의 쿠키에만 저장돼요. 계정은 필요 없어요.

이 설정은 제작자의 레지스트리 정보로 만들었어요. README와 다르면 README를 따르세요.

할 수 있는 일

내 컴퓨터에서 실행돼요. 설치하면 AI 앱에 도구 목록이 나타나요.

기본 점검i

누구나 볼 수 있는 정보를 점검했고, 코드는 읽지 않았어요. 해당하지 않는 항목은 개수에서 뺐어요. · 2026년 11월 9일 점검

  • ✓ 통과

    제작자와 저장소 일치

    레지스트리 이름이 GitHub 계정 cuolm 기준으로 확인되었고, 이 계정이 저장소를 소유하고 있어요

  • … 아직 점검 안 함

    계속 관리되고 있음

    아직 GitHub에서 이 저장소를 읽어 오지 않았어요

  • … 아직 점검 안 함

    라이선스 있음

    아직 GitHub에서 이 저장소를 읽어 오지 않았어요

  • – 해당 없음

    엔드포인트 응답

    내 컴퓨터에서 실행되는 서버라 인터넷 엔드포인트가 없어요

  • – 해당 없음

    OAuth로 로그인

    내 컴퓨터에서 실행되며, 대신 로컬 설정을 사용해요

  • … 아직 점검 안 함

    도구 설명에 숨겨진 지시 없음

    내 컴퓨터에서 실행돼요. 도구 목록은 인터넷 엔드포인트가 있는 서버에서만 읽을 수 있어요

여행, 지도 및 날씨 카테고리의 다른 서버와 비교i

  • 이 카테고리의 다른 서버 1736개 중 0%보다 스타가 많아요
  • 이 카테고리의 다른 서버 1736개 중 88%보다 최근에 레지스트리에 공개됐어요
  • 기본 점검 결과가 이 카테고리의 다른 서버 1736개 중 100%와 같거나 더 좋아요

레지스트리에서 이 카테고리의 활성 서버 전체와 비교했어요. 스타는 게시자가 저장소를 소유한 경우에만 세요.

자주 묻는 질문

Swiss Weather, 안전한가요?

해당하는 기본 점검 1개 중 1개를 통과했어요. 코드는 읽지 않았어요. 키나 토큰을 넣기 전에 서버가 어떤 권한을 요구하는지 확인하고, 꼭 필요한 권한만 있는 키를 쓰세요.

어떤 키나 코드가 필요한가요?

레지스트리에 필수 키가 나와 있지 않아요. 다만 처음 쓸 때 로그인을 요구하는 서버도 있어요.

내 컴퓨터에서 실행되나요, 클라우드에서 실행되나요?

내 컴퓨터에서 실행돼요. AI 앱이 필요할 때 실행하고, 데이터는 제작자의 서버를 거치지 않아요(서버 자체가 온라인 서비스를 호출하는 경우는 제외).

아직 관리되고 있나요?

GitHub 저장소는 마지막으로 – 변경됐고, 최신 버전(0.4.0)은 4일 전 레지스트리에 올라왔어요.

어떤 앱에서 쓸 수 있나요?

Claude Desktop, Claude Code, Cursor, VS Code처럼 MCP를 지원하는 앱에서 쓸 수 있어요. 내 컴퓨터에 Python (uv)도 있어야 해요.

대신 쓸 수 있는 건 뭐가 있나요?

같은 카테고리에는: BusCalc Business Calculators, Ultimaps, Pinmade: local makers

대안

같은 카테고리에서 다른 제작자가 만든 서버예요. 스타 순으로 정렬했어요.

카드 보는 법:↓ 주간 다운로드i★ GitHub 스타i세 기둥: 리뷰 · 점검 · 사용 정도i업데이트 = 최신 버전을 레지스트리에 공개한 날i

BusCalc Business Calculators

43 tools: business math, U.S. map and road report search, truck trip screening, and public data.

제작자: buscalc.com아주 새로움오늘 업데이트

클라우드에서 실행✓ buscalc.com

Ultimaps

Create choropleth, category and pin maps of countries, states, counties and ZIP codes as images.

제작자: ultimaps초기↓ 45/주오늘 업데이트

컴퓨터 또는 클라우드✓ ultimaps.com

Pinmade: local makers

Find hand-checked local makers worldwide: shops that make their own things, with hours and maps.

제작자: pinmade.app초기오늘 업데이트

클라우드에서 실행✓ pinmade.app

제작자의 README

README 열기

제작자의 저장소에서 쓰인 그대로 가져왔어요. PopNx MCP가 검토하거나 보증한 내용이 아니에요. HTML, 이미지, 스크립트는 제거했어요. 링크를 누르면 이 사이트를 벗어나요.

Swiss Weather MCP Server

A Model Context Protocol ([MCP](https://modelcontextprotocol.io/)) server that provides AI applications with weather information for any place in Switzerland.

  • Forecasts for today and the next 8 days from the MeteoSwiss local forecasts, updated every hour
  • Measurements from about 160 SwissMetNet weather stations, updated every 10 minutes
  • Places on the Swiss national map, such as towns, districts, lakes and peaks, from swissNAMES3D
  • When the Sun and the Moon rise and set at a place, the civil twilight, the Moon's phase and how much of it is lit, calculated for any day
  • A bundled MCP client for testing

Data sources. This project is not an official MeteoSwiss product.

- Weather forecasts and measurements: MeteoSwiss Open Data. Source: MeteoSwiss

- Place names: swissNAMES3D. Source: Federal Office of Topography swisstopo

- Municipalities and cantons: swissBOUNDARIES3D. Source: Federal Office of Topography swisstopo

Table of Contents

  • Project Structure
  • Installation
  • Usage
  • Available Tools
  • Good to Know
  • Example Usage with LMStudio
  • Resources
  • License

Project Structure

swiss-weather-mcp/

├── src/swiss_weather_mcp/ │ ├── server.py # MCP server and its tools │ ├── places/ # swisstopo place lookup │ ├── forecast/ # MeteoSwiss local forecasts │ ├── measurements/ # MeteoSwiss SwissMetNet measurements │ ├── astronomy/ # Sunrise, sunset, moonrise, moonset and phase │ ├── opendata.py # Downloads from data.geo.admin.ch │ ├── formatting.py # Times, wind directions and height differences in the answers │ ├── errors.py # The error for questions the data cannot answer │ ├── log.py # Logging setup │ └── client.py # MCP client ├── tests/swiss_weather_mcp/ # Tests └── .github/workflows/ # CI and release pipelines

Installation

# As a command line tool

uv tool install swiss-weather-mcp

With the optional MCP client, which pulls in the OpenAI SDK

uv tool install 'swiss-weather-mcp[client]'

As a library dependency

uv add swiss-weather-mcp # or: pip install swiss-weather-mcp

From source:

git clone https://github.com/cuolm/swiss-weather-mcp.git

cd swiss-weather-mcp uv sync --extra client # or, in a virtual environment: pip install -e ".[client]"

No configuration is needed, the server reads everything it requires from MeteoSwiss and swisstopo.

Usage

Running the Server
# stdio (default)

swiss-weather-mcp-server

streamable-http

swiss-weather-mcp-server --transport=streamable-http --host=localhost --port=8050

From a source checkout, put `uv run` in front. `--help` lists all flags.

Where the server keeps its files, and --cache-all-forecast-points: see Cache and Downloads.

Running the Server with Docker

Images are built and published automatically by GitHub Actions to the project's GitHub Container Registry, tagged :latest (newest release) and by version.

# Published image

docker run -p 8050:8050 ghcr.io/cuolm/swiss-weather-mcp:latest

Built from a source checkout

docker build -t swiss-weather-mcp . docker run -p 8050:8050 swiss-weather-mcp

The server is then at `http://localhost:8050/mcp/`.

Each docker run starts a new container with an empty cache. Mount a volume to keep it, for example -v swiss-weather-cache:/root/.cache/swiss-weather-mcp.

Running the MCP Client

The bundled MCP client tests the server over stdio. It needs the client extra (see Installation) and starts the MCP server itself, but not the LLM, which has to be running first, for example in llama-server.

# Install llama.cpp, which provides llama-server, here with Homebrew on macOS or Linux

brew install llama.cpp

Start llama-server with a model in its own terminal; it downloads the model on first use

llama-server --jinja --no-mmproj -hf unsloth/Qwen3.5-4B-GGUF --port 8080

Run the client against it in a second terminal

swiss-weather-mcp-client --model=unsloth/Qwen3.5-4B-GGUF --base-url=http://localhost:8080/v1

From a source checkout, put `uv run --extra client` in front of the client. Other ways to install llama.cpp

are in its installation guide.

--jinja uses the model's chat template, which tool calling needs (the default in current llama.cpp), and --no-mmproj skips the vision projector. --base-url is the server's OpenAI compatible API, and --model the name it lists under /v1/models.

Available Tools

Times are Swiss local time (see Times). Every tool with a location also takes an optional near, needed only when several places share the name (see Locations). Answers name the forecast point when it is not next to the place (see Forecast Points).

ToolAnswer
forecast_daily(location, start_date, days)1 to 9 days: lowest and highest temperature, rain, weather with an emoji
forecast_rain(location, start, end)Chance and amount of rain in 3-hour blocks
forecast_temperature(location, start, end)Temperature hour by hour, or for one hour
forecast_sunshine(location, start, end)Hours of sunshine over a period, or in one hour
forecast_wind(location, when)Mean speed, gusts and direction
forecast_cloud_cover(location, when)Total cloud cover and its low, medium and high layers
forecast_freezing_level(location, when)Height of the 0 °C line
measurements_current(location)What a station near the place measures now (see Measurements)
measurements_extremes(extreme)Where it is warmest, coldest, windiest, wettest or sunniest now
astronomy_sun(location, date)Sunrise, sunset and civil twilight
astronomy_moon(location, date)Moonrise, moonset, phase and how much is lit
current_date_and_time()Today's weekday and the Swiss time now

Good to Know

Times
  • Times are Swiss clock time in ISO 8601, such as "2026-09-23T14:00". The server applies summer or winter time.
  • Answers give times with their UTC offset, such as 2026-09-23T13:00+02:00.
  • An hourly value stamped 14:00 covers 13:00 to 14:00. Cloud cover and the freezing level are values at that moment.
  • The forecast covers today and the next 8 days. current_date_and_time() gives today's date, which questions such as "tomorrow" or "tonight" need.
Locations
  • A location is a place name from swissNAMES3D: a town, village, city district, peak, pass, lake, glacier, valley or railway station, such as Zürich, Oerlikon, Titlis or Zürichsee.
  • Case and accents don't matter, and a few English names such as Geneva work too.
  • A name of several places, such as Blausee, needs near: a village next to the one the user means, such as near="Riederalp". Without it, the tool lists all places of the name, the biggest first, each with the call that chooses it and the municipality and canton it lies in:
  'Blausee' is the name of 6 places. [...] The biggest first:

location="Blausee", near="Blausee-Mitholz": district and lake, fewer than 20 people, 887 m, municipality Kandergrund, canton Bern location="Blausee", near="Ramiswil": settlement, fewer than 20 people, 683 m, municipality Mümliswil-Ramiswil, canton Solothurn ...

- The municipalities and cantons carry swisstopo's names, in the local language, such as `Genève`

or Graubünden. They appear once the swissBOUNDARIES3D GeoPackage is downloaded in the background at start.

  • An unknown name gets up to 10 suggestions, such as Davos Dorf and Davos Platz for Davos.
Forecast Points
  • The forecast comes from a MeteoSwiss forecast point near the place. An answer names it in data_from when it is more than 1 km away or more than 50 m higher or lower.
  • Temperature changes faster with height than with distance: in the standard atmosphere (ISO 2533), air cools by 0.65 °C per 100 m.
  • So among the points within 5 km, the server takes the one with the smallest distance plus 20 times the height gap: 100 m of height gap counts like 2 km of distance. Without a point within 5 km, it takes the nearest one.
  • The factor 20 was tested on the real data: up to 20, the height gaps of lakes and peaks shrink a lot, and every town of 1,000 people or more still gets a point within 3 km.
Measurements
  • measurements_current uses one of the about 160 SwissMetNet stations: of the 3 with the smallest distance plus 20 times the height gap, the first that published a temperature in the last hour. Stations are far fewer than forecast points, so the station can still be far from the place and higher or lower.
  • Every answer starts with a sentence that says so, such as "The measurements for Braunwald (1290 m) are those of the MeteoSwiss station Elm (958 m), 13.5 km away and 332 m lower."
  • It gives the temperature, humidity, dew point, rain and sunshine in the last 10 minutes, wind, gust, direction and sea-level pressure, plus the temperature and pressure change over the last 3 hours and the rain, sunshine and strongest gust of the last hour.
  • measurements_extremes lists the first 5 stations by temperature or gust. For the wettest, it lists the first 5 rainy stations and counts the rainy stations in Switzerland and in each canton.
  • For the sunniest it groups the stations by their sun in the last 10 minutes with the sunshine terms of MeteoSwiss: mostly sunny (8 to 10 minutes, 80 to 100 %), rather sunny (5 to 7), partly sunny (2 to 4), only a little sunshine (1) and hardly any sunshine (0). MeteoSwiss's ranges meet at 20, 50 and 80 %; a station exactly there counts for the sunnier term, so 2 minutes (20 %) is partly sunny. The cantons come in the order of their stations' average sun.
Forecast Values Are Medians
  • Temperature and rain are the median of the many possible outcomes MeteoSwiss calculates, not the most likely value.
  • Medians do not add up: when showers are possible but unlikely in any 3-hour block, every block shows 0 mm while the day's median is above 0.
  • forecast_daily gives the rain of a day, and forecast_rain the chance and how much a wet hour may bring.
Cache and Downloads
  • The cache lives in your OS cache directory, such as ~/Library/Caches/swiss-weather-mcp on macOS or ~/.cache/swiss-weather-mcp on Linux. SWISS_WEATHER_MCP_CACHE_DIR moves it elsewhere.
  • The firs

앞부분만 보여 드려요. 나머지는 저장소에서 읽어 보세요

PopNx에게 묻기