mcpField
S
Swiss open data for AI — zero config, zero API keys

Swiss open data for AI — zero config, zero API keys

ローカル
github.com/vikramgorla開発ツール254 週間前に更新

Swiss open data for AI — zero config, zero API keys について

mcp-swiss は、スイスのオープンデータへの アクセスを AI アシスタントに提供する MCP サーバーです。交通、天気、水文、ジオデータ、企業登記情報などを扱います。API キーや登録、別途のサーバー構築は不要で、npx で起動できます。

主な機能

  1. 0122 モジュール・79 ツールを提供
  2. 02API キーとアカウント登録が不要
  3. 03モジュールやプリセットによるツール絞り込み
  4. 04SBB、MeteoSwiss、BAFU、ZEFIX などのデータ
  5. 05stdio トランスポートによる主要クライアントへの接続

活用シーン

  1. 01列車の発車情報の確認と経路検索
  2. 02河川や湖の水位と水温の確認
  3. 03スイス企業の登記情報と住所の検索

MCP 対応

MCP サーバーとして、stdio トランスポート経由で交通、天気、ジオデータ、統計などのツールを MCP クライアントに公開します。--modules や --preset で読み込むモジュールを絞り、トークン消費を抑えられます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"swiss": {
"command": "npx",
"args": [
"-y",
"mcp-swiss"
]
}
}
}
起動コマンドnpx -y mcp-swiss

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmmcp-swiss0.7.1

ツール

76

掲載時のツール一覧 · 3 週間前に更新

パラメーター型必須説明
querystringいいえ検索する駅名
xnumberいいえ経度(WGS84)
ynumberいいえ緯度(WGS84)
typestringいいえ絞り込み:すべて、駅、POI、住所

詳細

mcp-swiss

mcp-swiss

AI のためのスイスのオープンデータ — 設定不要、API キー不要

npm CI License MCP Downloads Stars Node .mcpb Claude Desktop

インストール · ツール · デモプロンプト · データソース


mcp-swiss は、AI アシスタントがスイスのオープンデータ(鉄道、天気、河川、地図、企業)に直接アクセスできる Model Context Protocol サーバーです。

79 個のツール。API キー不要。登録不要。実行するサーバーも不要。npx mcp-swiss を実行するだけです。

🚆 Transport    — SBB, PostBus, trams, live departures, journey planning
🌤️ Weather      — MeteoSwiss live conditions + historical data
🌊 Hydrology    — BAFU river & lake levels (great for Aare swimming!)
🗺️ Geodata      — swisstopo geocoding, solar potential, geographic layers
🏢 Companies    — ZEFIX federal registry, all 700K+ Swiss companies
🎄 Holidays     — Swiss public & school holidays by canton
🏛️ Parliament   — Bills, votes, members, speeches, cantonal affairs (OpenParlData.ch)
🏔️ Avalanche    — SLF danger bulletins and warning regions
💨 Air Quality  — NABEL stations, Swiss legal limits (LRV)
📮 Swiss Post   — Postcode lookup and parcel tracking
⚡ Energy       — Electricity tariffs by municipality (ElCom)
📊 Statistics   — Population, demographics, BFS datasets
🏦 SNB Rates    — Swiss National Bank CHF exchange rates, historical data
♻️ Recycling    — Zurich city waste collection calendar (OpenERZ)
📰 Swiss News   — SRF news headlines and keyword search
🗳️ Voting       — Swiss popular vote results (Basel-Stadt open data)
🌊 Dams         — Swiss federal dam registry (SFOE/swisstopo)
🥾 Hiking       — Swiss trail closures and hiking alerts (swisstopo)
🏠 Real Estate  — Swiss property prices, rent index, housing data (BFS)
🚗 Traffic      — ASTRA counting stations, daily volumes
🌍 Earthquakes  — Swiss Seismological Service (SED/ETH Zürich), FDSN API
❄️ Snow         — SLF snow depth, stations, and measurements
🌿 Pollen       — MeteoSwiss pollen concentrations at 16 stations

インストール

クイックスタート
npx mcp-swiss

これだけです。API キー、.env ファイル、アカウントは不要です。以下からクライアントを選び、設定を貼り付けてください。


ワンクリックインストール(.mcpb)

.mcpb バンドルは、Claude Desktop や MCP Bundle 互換アプリで動作します。

⬇ mcp-swiss.mcpb をダウンロード

Claude Desktop にインストール

ダウンロードしたファイルを開けば、あとはアプリが処理します。設定の編集も、ターミナルも、API キーも不要です。


Claude Desktop

設定ファイルを編集します。

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
  • Linux: ~/.config/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "swiss": {
      "command": "npx",
      "args": ["-y", "mcp-swiss"]
    }
  }
}

保存後、Claude Desktop を再起動してください。


Claude Code(CLI)
claude mcp add swiss -- npx -y mcp-swiss

これだけです。次のセッションから Claude Code が使用します。


Cursor

Cursor 0.45.6 以降が必要です

方法 A:プロジェクト設定 — プロジェクトのルートに .cursor/mcp.json を作成します。

{
  "mcpServers": {
    "swiss": {
      "command": "npx",
      "args": ["-y", "mcp-swiss"]
    }
  }
}

方法 B:グローバル設定 — ~/.cursor/mcp.json を作成します。

{
  "mcpServers": {
    "swiss": {
      "command": "npx",
      "args": ["-y", "mcp-swiss"]
    }
  }
}

方法 C:Cursor の設定 UI から

  1. Cursor の設定を開きます
  2. 機能 → MCP サーバー に移動します
  3. + グローバル MCP サーバーを新規追加をクリックします
  4. 上記の JSON 設定を貼り付けます

VS Code(GitHub Copilot)
ワンクリックインストール

VS Code にインストール VS Code Insiders にインストール

CLI でのインストール
# VS Code
code --add-mcp '{"name":"swiss","command":"npx","args":["-y","mcp-swiss"]}'

# VS Code Insiders
code-insiders --add-mcp '{"name":"swiss","command":"npx","args":["-y","mcp-swiss"]}'
手動設定

VS Code のユーザー設定(JSON)に追加します。Ctrl+Shift+P を押し、Preferences: Open User Settings (JSON) を選択します。

{
  "mcp": {
    "servers": {
      "swiss": {
        "command": "npx",
        "args": ["-y", "mcp-swiss"]
      }
    }
  }
}

または、ワークスペースの .vscode/mcp.json に追加します(チームで共有できます)。

{
  "servers": {
    "swiss": {
      "command": "npx",
      "args": ["-y", "mcp-swiss"]
    }
  }
}

Windsurf

~/.codeium/windsurf/model_config.json に追加します。

{
  "mcpServers": {
    "swiss": {
      "command": "npx",
      "args": ["-y", "mcp-swiss"]
    }
  }
}

Cline(VS Code)

VS Code の settings.json を開き、次の内容を追加します。

{
  "cline.mcpServers": {
    "swiss": {
      "command": "npx",
      "args": ["-y", "mcp-swiss"]
    }
  }
}

任意の MCP クライアント

mcp-swiss は stdio トランスポートを使用し、環境変数は必要ありません。共通の設定は次のとおりです。

{
  "command": "npx",
  "args": ["-y", "mcp-swiss"]
}

これは MCP 対応のあらゆるクライアントで動作します。接続するだけで使用できます。

Docker
docker pull vikramgorla/mcp-swiss

Docker ベースのサーバーに対応する任意の MCP クライアントで使用できます。コンテナは stdio トランスポートを使用します。

# Run directly (stdio)
docker run -i vikramgorla/mcp-swiss

# Use with Claude Desktop

Claude Desktop では、Docker を使用するよう設定を更新します。

{
  "mcpServers": {
    "swiss": {
      "command": "docker",
      "args": ["run", "-i", "--rm", "vikramgorla/mcp-swiss"]
    }
  }
}

GitHub Container Registry からも利用できます。

docker pull ghcr.io/vikramgorla/mcp-swiss

モジュールの絞り込み

デフォルトでは、mcp-swiss は 22 個すべてのモジュール(79 個のツール)を読み込みます。トークン効率を高めるには、必要なモジュールだけを読み込みます。

特定のモジュールを選択
{
  "mcpServers": {
    "swiss": {
      "command": "npx",
      "args": ["-y", "mcp-swiss", "--modules", "transport,weather"]
    }
  }
}
プリセットを使用
{
  "mcpServers": {
    "swiss": {
      "command": "npx",
      "args": ["-y", "mcp-swiss", "--preset", "commuter"]
    }
  }
}
プリセットモジュールツールトークン削減率
commutertransport, weather, holidays1481%
outdoorweather, avalanche, hiking, earthquakes, dams, snow1975%
businesscompanies, geodata, post, energy, statistics, snb2467%
citizenparliament, voting, holidays, news1777%
minimaltransport593%
full22 個すべてのモジュール(デフォルト)79—

プリセットとモジュールを組み合わせる場合:--preset commuter --modules parliament

利用可能な項目を一覧表示するには、npx mcp-swiss --list-modules または npx mcp-swiss --list-presets を実行します。


デモ用プロンプト

接続したら、AI に次のように質問してみてください。

プロンプト使用するもの
「Zürich HB から Geneva までの次の列車を 5 本教えて」get_connections
「Bern の Aare は泳げるくらい暖かい?」get_water_level
「今日の Lugano と Zürich の天気を比較して」get_weather
「Zug に登録されているブロックチェーン企業を探して」search_companies
「Bern の Bundesplatz 3 の太陽光発電ポテンシャルを教えて」geocode + get_solar_potential
「Bern HB の現在の出発便を教えて」get_departures
「Thun 付近の川を教えて」list_hydro_stations + get_water_level
「土曜日の予定を立てて。Interlaken まで列車で行き、天気を確認して」複数のツールを連携
「来週月曜日は Zürich の祝日?」get_public_holidays
「最近、スイス議会ではどのような採決が行われた?」search_parliament_business
「Bernese Alps の雪崩危険度を教えて」get_avalanche_bulletin
「Zermatt の郵便番号は?」search_postcode
「スイス郵便の荷物 99.12.345678.12345678 を追跡して」track_parcel
「Zürich と Basel の電気料金を比較して」search_municipality_energy + compare_electricity_tariffs
「Zug 州の人口は?」get_population

ツール

22 個のモジュールに 79 個のツールがあります。詳細な仕様:docs/tool-specs.md · 機械可読形式:docs/tools.schema.json

🚆 交通(5 個のツール)
ツール説明
search_stations名称または場所から駅・停留所を検索
get_connections任意の2地点間の経路を検索
get_departures駅からのリアルタイム出発情報
get_arrivals駅へのリアルタイム到着情報
get_nearby_stations座標周辺の駅
🌤️ 天気・水文(6 個のツール)
ツール説明
get_weatherMeteoSwissの観測所における現在の気象状況
list_weather_stationsメタデータ付きのMeteoSwiss観測所約160か所すべて
get_weather_history過去の気象データ(最大32日分)
get_water_level河川・湖の水位と水温(BAFU)
list_hydro_stations水文観測所400か所以上すべて
get_water_history過去の水文データ
🗺️ 地理データ/swisstopo(6 個のツール)
ツール説明
geocodeスイスの住所 → 座標
reverse_geocode座標 → スイスの住所
search_placesスイスの地名、山、湖、地形を検索
get_solar_potential指定地点の屋根における太陽光照射量
identify_location地点に該当するすべての地理データレイヤー
get_municipality名称から自治体情報を取得
🏢 企業/ZEFIX(5 個のツール)
ツール説明
search_companies名称、州、法的形態から検索
get_companyZEFIX ehraid による企業の詳細情報
search_companies_by_address住所で登録されている企業
list_cantonsスイスの全26州
list_legal_formsAG、GmbHなど、スイスのすべての法的形態
🎄 祝日(3 個のツール)
ツール説明
get_public_holidays年ごとのスイスの祝日。州による絞り込みも可能
get_school_holidays年と州ごとの学校休暇期間
is_holiday_today今日が祝日かどうかをすばやく確認
🏛️ 議会(9 個のツール)— OpenParlData.ch
ツール説明
search_parliament_business連邦政治案件(法案、動議、質問)を検索
get_parliament_members州、政党、活動状況で議員を一覧表示
get_parliament_votes特定の案件の投票結果
get_session_schedule今後および最近の議会会期
search_parliament_speeches案件に関する討論演説を検索
get_politician_interests議員が申告した利害関係と役職
search_cantonal_affairs26の州議会を横断して検索
get_parliamentary_documents案件に関する公式文書
get_committee_meetings委員会の会議予定
🏔️ 雪崩(2 個のツール)
ツール説明
get_avalanche_bulletin危険度とPDFリンクを含む最新の雪崩情報
list_avalanche_regionsスイスの雪崩警戒区域22か所すべて
💨 大気質(2 個のツール)
ツール説明
list_air_quality_stationsNABELの観測所14か所すべて
get_air_quality観測所情報、スイスの法的基準値(LRV)、BAFUデータへのリンク
📮 スイス郵便(4 個のツール)
ツール説明
lookup_postcodePLZ → 地域、州、座標
search_postcode市区町村名 → 一致する郵便番号
list_postcodes_in_canton州内のすべての郵便番号
track_parcel荷物のSwiss Post追跡URLを生成
⚡ エネルギー価格(3 個のツール)
ツール説明
get_electricity_tariff内訳付きの自治体別電気料金
compare_electricity_tariffs自治体間の電気料金を比較
search_municipality_energy料金検索に使う自治体IDを検索
📊 統計/BFS(3 ツール)
ツール説明
get_populationBFS STATPOP による州または自治体別の人口
search_statisticsopendata.swiss で BFS のデータセットを検索
get_statisticデータセットの詳細情報を取得
🏦 SNB 為替レート(3 ツール)
ツール説明
list_currenciesスイス国立銀行(SNB)で利用可能なすべての通貨を一覧表示
get_exchange_rate任意の通貨の現在の CHF 為替レートを取得
get_exchange_rate_history日付で絞り込んで、月ごとの過去の CHF 為替レートを取得
♻️ リサイクル/ごみ収集(3 ツール)
ツール説明
get_waste_collectionチューリッヒの郵便番号とごみの種類に基づいて、次回のごみ収集日を取得
list_waste_types対応しているすべてのごみの種類と説明を一覧表示
get_waste_calendar郵便番号に対応する今後のごみ収集日をすべて掲載したカレンダーを取得
📰 スイスのニュース(2 ツール)
ツール説明
get_swiss_newsカテゴリー(スイス/国際/経済)別に SRF の最新ニュース見出しを取得
search_swiss_newsすべてのカテゴリーからキーワードで SRF のニュースを検索
🗳️ 投票(3 ツール)
ツール説明
get_voting_resultsバーゼル=シュタット州のオープンデータからスイスの国民投票結果を取得
search_votesキーワードで国民投票を検索(ドイツ語/フランス語/イタリア語)
get_vote_details特定の投票について、地区ごとの詳細な内訳を取得
🌊 ダム・貯水池(3 ツール)
ツール説明
search_dams名前またはキーワードでスイス連邦のダムを検索
get_dams_by_canton州内の連邦ダムをすべて一覧表示
get_dam_details特定のダムの詳細情報(高さ、容量、目的)を取得
🥾 ハイキング/トレイルの通行止め(2 ツール)
ツール説明
get_trail_closuresswisstopo からスイスのトレイルの通行止めとハイキングに関する警報を取得
get_trail_closures_nearby指定した座標付近のトレイルの通行止めを取得
🏠 不動産(3 ツール)
ツール説明
get_property_price_indexスイスの不動産価格指数(BFS Immo-Monitoring)を取得
search_real_estate_dataopendata.swiss で BFS の不動産データセットを検索
get_rent_indexBFS のスイスの家賃指数と住宅費データを取得
🚗 交通/ASTRA(3 ツール)
ツール説明
get_traffic_count交通量計測所のデータ(ASTRA)— 日ごとの交通量と大型車両の割合
get_traffic_by_canton州で絞り込んだ ASTRA の交通量計測所を一覧表示
get_traffic_nearby指定した座標付近の交通量計測所を検索
🌍 地震/SED(3 ツール)
ツール説明
get_recent_earthquakesETH Zürich のスイス地震学サービス(SED)から、スイス国内および周辺で最近発生した地震を取得
get_earthquake_detailsSED のイベント ID で指定した地震イベントの詳細情報を取得
search_earthquakes_by_location指定した座標付近の地震を、半径、期間、件数の上限を指定して検索
❄️ 積雪状況/SLF(3 ツール)
ツール説明
get_snow_conditionsSLF IMIS 観測所からスイス各地の現在の積雪深と新雪(24 時間)を取得。州/標高で絞り込み可能
list_snow_stationsSLF の積雪観測所 307 か所(IMIS 自動観測所および手動調査区画)をすべて一覧表示
get_snow_measurements特定の SLF 観測所の詳細な積雪・気象観測データを取得
🌿 花粉/MeteoSwiss(3 個のツール)
ツール説明
get_pollen_currentMeteoSwiss の 16 観測所のいずれかにおける、現在の花粉濃度(1 時間ごと、7 種類:ハンノキ、カバノキ、ハシバミ、ブナ、トネリコ、オーク、イネ科植物)
get_pollen_daily設定可能な期間の傾向分析に利用できる、日ごとの花粉濃度の平均値
list_pollen_stationsMeteoSwiss の自動花粉観測所 16 か所の一覧と所在地の詳細

データソース

スイスの公式オープンデータのみを使用しており、API キーは不要です。

ソースデータドキュメント
transport.opendata.chSBB、PostBus、トラムAPI ドキュメント
api.existenz.chMeteoSwiss の気象情報、BAFU の水文情報API ドキュメント
api3.geo.admin.chswisstopo の連邦地理データAPI ドキュメント
zefix.admin.ch連邦企業登録簿Swagger
openholidaysapi.orgスイスの祝日と学校休暇API ドキュメント
OpenParlData.chスイス議会データ — 連邦および州(CC BY 4.0)API ドキュメント
whiterisk.ch / aws.slf.chSLF/WSL の雪崩速報SLF
geo.admin.ch — BAFU/NABELスイスの大気質観測所BAFU NABEL
geo.admin.ch — swisstopoスイスの郵便番号(Amtliches Ortschaftenverzeichnis)geo.admin.ch
strompreis.elcom.admin.ch自治体別の ElCom 電気料金ElCom
pxweb.bfs.admin.ch + opendata.swissBFS の人口統計(STATPOP)とデータセットBFS
data.snb.chスイス国立銀行の CHF 為替レートSNB データポータル
openerz.metaodi.chチューリッヒのごみ収集カレンダー(OpenERZ)OpenERZ
srf.chSRF のスイスニュース見出しSRF
data.bs.chバーゼル=シュタット州の住民投票結果Open Data BS
geo.admin.ch — SFOEスイス連邦ダム登録簿SFOE
geo.admin.ch — swisstopoスイスのトレイル通行止めとハイキング警報swisstopo
pxweb.bfs.admin.chBFS の不動産価格と家賃指数BFS 住宅情報
geo.admin.ch — ASTRA交通量観測所と日次交通量ASTRA
arclink.ethz.chスイス地震サービスの地震情報(SED/ETH)SED
measurement-api.slf.chSLF の積雪深と観測データ(IMIS と調査プロット、CC BY 4.0)SLF
data.geo.admin.chMeteoSwiss の花粉濃度(自動観測所 16 か所、CC BY)MeteoSwiss

開発

# Clone
git clone https://github.com/vikramgorla/mcp-swiss.git
cd mcp-swiss

# Install deps
npm install

# Build
npm run build

# Run in dev mode
npm run dev

# Test with MCP Inspector
npx @modelcontextprotocol/inspector node dist/index.js
テスト
npm test

貢献

皆さまからの貢献を歓迎します!mcp-swiss では、コードベースをクリーンに保ち、CI を常にグリーンに保つため、厳格な PR ベースのワークフローに従っています。

クイックリンク
  • CONTRIBUTING.md — 貢献者向けガイドの全文:

    • 開発環境のセットアップ(クローン、インストール、ビルド、テスト)
    • ブランチモデル(develop / main / feature branches)
    • 厳守するワークフロールール(直接プッシュしない、必ず PR を作成する、通常のマージのみ)
    • 新しいモジュールの追加(コードテンプレート付きの手順)
    • 統合チェックリスト(更新が必要なすべてのファイル)
    • コード規約(TypeScript、any の使用禁止、応答の上限 50K、API キーは一切使用しない)
  • RELEASING.md — メンテナー向けのリリースプロセス:

    • リリースワークフローの手順
    • リリース前チェックリスト
    • バージョン戦略(機能追加はマイナー、修正はパッチ)
    • リリース後の確認
    • CI/CD ワークフローのリファレンス(ci.yml、release.yml、beta.yml、mcp-registry.yml)

要件

  • Node.js 20+
  • API キーやアカウントは不要です

ライセンス

MIT — LICENSE を参照

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。