MCP server for the Swiss Building & Dwelling Register (GWR/RegBL) — housing data & construction pipeline
Drift inferred · capture-to-capture
No drift recorded — single capability capture; advisories appear once its surface changes.
transport stdio · http
verified
reported
listed in the official MCP registry counts 9 tools · 0 res
· 0 prompts
permission surface via code analysis
tools
-
address_to_egid
-
buildings_in_bbox
-
construction_pipeline
-
dump_status
-
explain_code
-
lookup_building
-
lookup_dwellings
-
municipality_housing_stats
-
new_construction
prompt-surface
shipped agent-instruction files + hidden-content / dangerous-code findings —
quoted from the analyzed source
analyzed commit ca6ffd1 · analyzer v33 · 1w ago
skills & prompt files 1
- agent-rules malkreide-swiss-housing-mcp-ca6ffd1/CLAUDE.md
evidence-backed
findings quoted directly from the published source artifact — not inferred
code files: 15
filesystem 9
- fs (weak) malkreide-swiss-housing-mcp-ca6ffd1/scripts/check_ruff_pin.py :35
import shutil - fs (weak) malkreide-swiss-housing-mcp-ca6ffd1/scripts/check_version_sync.py :49
from pathlib import Path - fs (weak) malkreide-swiss-housing-mcp-ca6ffd1/scripts/classify_live_run.py :55
from pathlib import Path - fs (weak) malkreide-swiss-housing-mcp-ca6ffd1/scripts/record_fixtures.py :29
import shutil - fs malkreide-swiss-housing-mcp-ca6ffd1/src/swiss_housing_mcp/gwr.py :29
from pathlib import Path - fs (weak) malkreide-swiss-housing-mcp-ca6ffd1/tests/fixture_data.py :18
from pathlib import Path - fs (weak) malkreide-swiss-housing-mcp-ca6ffd1/tests/test_classify_live_run.py :21
from pathlib import Path - fs (weak) malkreide-swiss-housing-mcp-ca6ffd1/tests/test_recorded_fixtures.py :233
from pathlib import Path - fs (weak) malkreide-swiss-housing-mcp-ca6ffd1/tests/test_werkzeug_versionen.py :15
import pathlib
shell / exec 2
- shell (weak) malkreide-swiss-housing-mcp-ca6ffd1/scripts/check_ruff_pin.py :36
import subprocess - shell (weak) malkreide-swiss-housing-mcp-ca6ffd1/scripts/record_fixtures.py :31
import subprocess
network 5
- net (weak) malkreide-swiss-housing-mcp-ca6ffd1/scripts/record_fixtures.py :38
from urllib.parse import urlencode - net malkreide-swiss-housing-mcp-ca6ffd1/src/swiss_housing_mcp/gwr.py :30
from urllib.parse import urlsplit - net malkreide-swiss-housing-mcp-ca6ffd1/src/swiss_housing_mcp/server.py :14
import httpx - net (weak) malkreide-swiss-housing-mcp-ca6ffd1/tests/test_recorded_fixtures.py :26
import httpx - net (weak) malkreide-swiss-housing-mcp-ca6ffd1/tests/test_server.py :12
import httpx
database 3
- db (weak) malkreide-swiss-housing-mcp-ca6ffd1/scripts/record_fixtures.py :30
import sqlite3 - db malkreide-swiss-housing-mcp-ca6ffd1/src/swiss_housing_mcp/gwr.py :23
import sqlite3 - db (weak) malkreide-swiss-housing-mcp-ca6ffd1/tests/test_recorded_fixtures.py :23
import sqlite3
tool registrations 9
- lookup_building malkreide-swiss-housing-mcp-ca6ffd1/src/swiss_housing_mcp/server.py :76
- address_to_egid malkreide-swiss-housing-mcp-ca6ffd1/src/swiss_housing_mcp/server.py :109
- lookup_dwellings malkreide-swiss-housing-mcp-ca6ffd1/src/swiss_housing_mcp/server.py :139
- new_construction malkreide-swiss-housing-mcp-ca6ffd1/src/swiss_housing_mcp/server.py :171
- construction_pipeline malkreide-swiss-housing-mcp-ca6ffd1/src/swiss_housing_mcp/server.py :225
- buildings_in_bbox malkreide-swiss-housing-mcp-ca6ffd1/src/swiss_housing_mcp/server.py :268
- municipality_housing_stats malkreide-swiss-housing-mcp-ca6ffd1/src/swiss_housing_mcp/server.py :311
- explain_code malkreide-swiss-housing-mcp-ca6ffd1/src/swiss_housing_mcp/server.py :353
- dump_status malkreide-swiss-housing-mcp-ca6ffd1/src/swiss_housing_mcp/server.py :382
declared dependencies 7
- mcp@>=2.0.0,<3
- httpx@>=0.27
- pydantic@>=2.7
- pytest@>=8.0
- pytest-asyncio@>=0.23
- respx@>=0.21
- ruff@==0.16.1