World Monitor
Real-time global intelligence on conflict, markets, energy, trade, shipping and cyber. 97 tools.
BAFU environmental data, NABEL air quality, hydrology
使っているAIアプリを選んで、設定をコピーしてください。
チェック 3/3 合格 · あなたのパソコンで動きます · ✓ コマンド確認済み 2026年11月13日
まず:どの AI を使っていますか?
使っているアプリを選ぶと、下に手順が表示されます。
Claude につなげますが、先に準備が必要です
先にパソコンへ Python (uv) を入れてください(1 回だけ) · パソコン版 Claude アプリ(Windows または Mac)のみ。Web やスマホでは使えません
SettingsDeveloperEdit Config
{
"mcpServers": {
"swiss-environment": {
"command": "uvx",
"args": [
"swiss-environment-mcp"
]
}
}
}Swiss Environment MCP を使って、私に何ができるか教えて、1 つやってみせて✓ Claude が Swiss Environment MCP を使っていると言うか、回答に Swiss Environment MCP のツール名が出れば接続成功です
メニュー名は 2026年11月11日 に Anthropic のヘルプページで確認 · アプリのバージョンにより画面が少し違うことがあります
ChatGPT はまだ Swiss Environment MCP につなげません
Swiss Environment MCP はパソコンに入れて使うものですが、ChatGPT は Web 上で動くサーバーにしかつなげません
A · Swiss Environment MCP につなげるアプリを使う
B · その他 の中で ChatGPT につなげる別のサーバー
同じカテゴリでよく使われているものから、キーなしでアドレスだけでつなげるものを選びました
Claude Code につなげますが、先に準備が必要です
先にパソコンへ Python (uv) を入れてください(1 回だけ)
Mac:Command+スペースで Terminal と入力 · Windows:PowerShell を開く
claude mcp add --scope user swiss-environment -- uvx swiss-environment-mcpSwiss Environment MCP が一覧にあり、接続済みと表示されれば OK です
Swiss Environment MCP を使って、私に何ができるか教えて、1 つやってみせて✓ Claude Code が Swiss Environment MCP を使っていると言うか、回答に Swiss Environment MCP のツール名が出れば接続成功です
メニュー名は 2026年11月11日 に Anthropic のヘルプページで確認 · アプリのバージョンにより画面が少し違うことがあります
Cursor につなげますが、先に準備が必要です
先にパソコンへ Python (uv) を入れてください(1 回だけ)
Swiss Environment MCP を使って、私に何ができるか教えて、1 つやってみせて✓ Cursor が Swiss Environment MCP を使っていると言うか、回答に Swiss Environment MCP のツール名が出れば接続成功です
メニュー名は 2026年11月11日 に Cursor のヘルプページで確認 · アプリのバージョンにより画面が少し違うことがあります
VS Code につなげますが、先に準備が必要です
先にパソコンへ Python (uv) を入れてください(1 回だけ)
Swiss Environment MCP を使って、私に何ができるか教えて、1 つやってみせて✓ VS Code が Swiss Environment MCP を使っていると言うか、回答に Swiss Environment MCP のツール名が出れば接続成功です
メニュー名は 2026年11月11日 に VS Code のヘルプページで確認 · アプリのバージョンにより画面が少し違うことがあります
Windsurf、Zed、Gemini CLI など MCP を使える他のアプリは追加方法がそれぞれ違います。アプリ一覧で確認してください
JSON 設定は下の「開発者向け」にあります
Claude Code
claude mcp add --scope user swiss-environment -- uvx swiss-environment-mcpClaude Desktop (claude_desktop_config.json)
{
"mcpServers": {
"swiss-environment": {
"command": "uvx",
"args": [
"swiss-environment-mcp"
]
}
}
}Cursor (~/.cursor/mcp.json)
{
"mcpServers": {
"swiss-environment": {
"command": "uvx",
"args": [
"swiss-environment-mcp"
]
}
}
}VS Code (mcp.json)
{
"servers": {
"swiss-environment": {
"type": "stdio",
"command": "uvx",
"args": [
"swiss-environment-mcp"
]
}
}
}この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
pypi: swiss-environment-mcpこのサーバーのつなぎ方と、各アプリの公式ドキュメントに基づきます。2026年11月10日に確認。
パソコン上で動かせるアプリ
ClaudeGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatRaycast
パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月13日にチェック
レジストリ名は、リポジトリを所有するGitHubアカウント malkreide で確認済みです
コードの最終更新:11 日前
MITを使用
これはパソコンで動くため、インターネット上のエンドポイントはありません
パソコンで動き、代わりにローカルの設定を使います
パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです
質問、コツの共有、使えないことの報告ができます。「役に立った」の多い順です。
まだレビューはありません
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック3項目のうち3項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
レジストリには必須のキーは載っていません。ただし、最初に使うときにサインインを求めるサーバーもあります。
あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。
GitHubリポジトリの最終更新は11 日前、最新バージョン(0.7.0)がレジストリに届いたのは2 か月前です。
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにPython (uv)も必要です。
同じカテゴリには:World Monitor, Claude Flow, Windmill
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:↓ 週あたりのダウンロードi★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i
Real-time global intelligence on conflict, markets, energy, trade, shipping and cyber. 97 tools.
AI orchestration with hive-mind swarms, neural networks, and 87 MCP tools for enterprise dev.
Run Windmill scripts and flows and manage jobs, schedules, resources and variables.
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
🇨🇭 Part of the [Swiss Public Data MCP Portfolio](https://github.com/malkreide)
MCP server connecting AI models to Swiss environmental data from BAFU – air quality, hydrology, natural hazards, wildfire danger and open environmental datasets.
swiss-environment-mcp gives AI assistants like Claude direct access to real-time environmental data from Swiss federal authorities – no API keys required. Air quality readings from the national NABEL monitoring network, hydrological gauging stations, natural hazard bulletins, and the full BAFU dataset catalogue are all accessible through a single standardised MCP interface.
The server covers four thematic clusters: air quality (NABEL), hydrology, natural hazards, and the BAFU open data catalogue. Each cluster maps to a group of purpose-built tools that translate raw agency data into clean JSON responses.
Anchor demo query: *"What is the current air quality at the NABEL station Zürich-Kaserne – and does it comply with WHO 2021 guidelines?"* → More use cases by audience →
# Clone the repository
git clone https://github.com/malkreide/swiss-environment-mcp.git cd swiss-environment-mcp
pip install -e .
Or with uvx (no permanent installation):
uvx swiss-environment-mcp
Or via pip:
pip install swiss-environment-mcp
# Start the server (stdio mode for Claude Desktop)
swiss-environment-mcp
Try it immediately in Claude Desktop:
*"What is the current air quality at NABEL station Zürich-Kaserne?"*
*"Are there any active flood warnings in Switzerland right now?"*
*"What is the wildfire danger level in Canton Valais?"*
Minimal (recommended):
{
"mcpServers": { "swiss-environment": { "command": "uvx", "args": ["swiss-environment-mcp"], "env": {} } } }
Config file locations:
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%\Claude\claude_desktop_config.jsonAfter saving, restart Claude Desktop completely.
For use via claude.ai in the browser (e.g. on managed workstations without local software):
Render.com (recommended):
render.yaml automaticallyhttps://your-app.onrender.com/sseDocker:
docker build -t swiss-environment-mcp .
docker run -p 8000:8000 swiss-environment-mcp
💡 *"stdio for the developer laptop, SSE for the browser."*
All tools share the stable env_ name prefix — a deliberate namespace choice so that the server's tools are recognisable and unlikely to collide when several MCP servers are mounted together. Tool definitions (name, description, input schema) are pinned via tool-snapshot.json; changes require a CHANGELOG entry (see CONTRIBUTING).
Tool budget (21 tools, 7 clusters) — exhausted. Every tool maps to a distinct user question, not to a REST endpoint — there is no CRUD/endpoint mirroring, and the anchor queries are each answerable in a single call. The count sits above the ≤12 rule of thumb because the server deliberately spans seven environmental domains (air, water, hazards, snow, hunting, catalogue, aircraft noise), each needing a list/detail pair or a domain-specific action. Further consolidation was considered and rejected: the *_stations/*_current pairs (NABEL, hydro, snow) serve genuinely different intents (discovery vs. reading a known station) and collapsing them would overload a single tool's parameters.
This is the ceiling. With the aircraft-noise cluster the server's tool budget is spent: any further data source belongs in a separate *-mcp server, not here. The next addition would instead trigger a review of whether some listings should migrate to MCP resources rather than tools.
| Tool | Description | Data Source |
|---|---|---|
env_nabel_stations | List all 16 NABEL monitoring stations with location type and canton | NABEL / BAFU |
env_nabel_current | Current air quality data for a station (NO₂, O₃, PM10, PM2.5, SO₂, CO) | NABEL / BAFU |
env_air_limits_check | Compare a measurement against Swiss LRV limits and WHO 2021 guidelines | Built-in |
| Tool | Description | Data Source |
|---|---|---|
env_hydro_stations | Filter hydrological gauging stations by water body (canton filter unavailable — see notes) | LINDAS SPARQL |
env_hydro_current | Current water level, flow rate and temperature at a station | LINDAS SPARQL |
env_hydro_history | Latest LINDAS value plus the access path for real time series ⚠️ | LINDAS SPARQL |
env_flood_warnings | Active flood warnings filtered by danger level (nationwide — canton filter not applied) | LINDAS SPARQL |
env_bathing_water | Bathing water quality (E.coli, enterococci) per bathing site — multi-year time series | LINDAS SPARQL (data cube ubd0104) |
| Tool | Description | Data Source |
|---|---|---|
env_hazard_overview | Router: points to the dedicated live hazard tools + official portals (no network call — the aggregate naturgefahren.ch API was discontinued) | local |
env_hazard_regions | Router: maps a hazard type (flood/avalanche/wildfire/snow) to the right live tool + portal (no network call) | local |
env_wildfire_danger | Wildfire danger index by canton and region | waldbrandgefahr.ch |
| Tool | Description | Data Source |
|---|---|---|
env_snow_stations | List automatic SLF/IMIS snow measurement stations (by canton) | measurement-api.slf.ch |
env_snow_current | Current snow depth (HS) and 24 h new snow (HN_1D) per station, in cm | measurement-api.slf.ch |
env_avalanche_bulletin | Avalanche danger levels (EAWS 1–5) per warning region, seasonal | aws.slf.ch |
| Tool | Description | Data Source |
|---|---|---|
env_hunting_species | List the 36 species tracked by the federal hunting statistics (with codes) | jagdstatistik.ch (embedded) |
env_hunting_stats | Cull / game-loss / population figures per species, canton and year (2015–2024) | jagdstatistik.ch |
| Tool | Description | Data Source |
|---|---|---|
env_bafu_datasets | Search BAFU datasets on opendata.swiss (CKAN API) | opendata.swiss |
env_bafu_dataset_detail | Full metadata and download URLs for a specific dataset | opendata.swiss |
| Tool | Description | Data Source |
|---|---|---|
env_noise_aircraft_at | Aircraft noise exposure at an LV95 point — resolves the overlapping noise contours and returns a dB bracket with the highest value as an upper bound | api3.geo.admin.ch (BAZL) |
env_noise_aircraft_registers | Which airfields have a published cadastre, with validity dates, dB range and the official plan (PDF) — the provenance tool | api3.geo.admin.ch (BAZL) |
env_noise_limits_check | Compare a rating level against the LSV exposure limit values (planning value / immission limit / alarm value) by sensitivity level ES I–IV | Built-in (SR 814.41, Annex 5) |
⚖️ Legal notice — carried in every response of these three tools. The noise
cadastre is an *orientation aid*. Legally binding information on construction
projects is issued by the competent cantonal office or by the FOCA (BAZL).
These tools do not replace a building permit clarification.
Coordinates must be LV95 (EPSG:2056, metres: E ≈ 2'480'000–2'840'000, N ≈ 1'070'000–1'300'000). WGS84 degrees such as 8.54 / 47.37 are rejected fail-fast with a conversion hint — this is the single most common LLM error with Swiss geodata. Convert via swisstopo REFRAME or convert_coordinates in swisstopo-mcp.
The contours are lines, not areas. The cadastre publishes MultiLineString isolines, so identify performs a *proximity* query within a search radius — not a point-in-polygon test. env_noise_aircraft_at therefore returns a bracket («the point lies between the 61 dB and the 62 dB contour») with the highest value as a stated upper bound, never an interpolated point value. The search radius is reported in every response; enlarging it inflates the result (at one Kloten point: 100 m → 61–62 dB, but 500 m → 58–75 dB, because the 75 dB runway contour sits 1.5 km away).
**"Is the planned school site inside an aircraft-noise zone with building
restrictions — and at which dB level?"**
Cross-server flow: resolve an address or EGID via swiss-housing-mcp → convert to an LV95 coordinate → env_noise_aircraft_at(east=…, north=…, period="day") → feed the resulting level_db into env_noise_limits_check(level_db=…, sensitivity_level="II", period="day") for the legal classification.
swiss-housing-mcp → address / EGID → LV95 E/N
↓ env_noise_aircraft_at → 62 dB (upper bound, LBK Zürich, valid from 03.07.2015) ↓ env_noise_limits_check → immission limit ES II (60 dB) exceeded by 2 dB
| Query | Tool |
|---|---|
| *"Air quality at Zürich-Kaserne right now?"* | env_nabel_current |
| *"Does 45 µg/m³ NO₂ exceed the Swiss limit?"* | env_air_limits_check |
| *"Current water level of the Limmat in Zurich?"* | env_hydro_current |
| *"Is the water quality at Strandbad Küsnacht