github Python re-analysis due

malkreide/swiss-road-mobility-mcp

github

MCP Server for Swiss road mobility: shared vehicles, EV charging, DATEX II traffic & road counters, Park & Rail, and multimodal trip planning (car → train → destination). 12 tools, open data first.

maintainer
malkreide
license
MIT
first seen
2026-06-04
last seen
2026-08-25
releases · 30d
1
short id

Drift inferred · capture-to-capture

No drift recorded — single capability capture; advisories appear once its surface changes.

capabilities 13 tools
transport stdio · http · sse verified reported listed in the official MCP registry counts 13 tools · 0 res · 0 prompts permission surface via code analysis

tools

  • road_charger_status
  • road_check_status
  • road_counter_sites
  • road_find_charger
  • road_find_sharing
  • road_mobility_snapshot
  • road_multimodal_plan
  • road_park_rail
  • road_reverse_geocode
  • road_search_sharing
  • road_sharing_providers
  • road_traffic_counters
  • road_traffic_situations
skills & danger signals github-tarball
prompt-surface shipped agent-instruction files + hidden-content / dangerous-code findings — quoted from the analyzed source

analyzed commit 639d190 · analyzer v30 · 2w ago

danger signals1

code evidence vv0.5.4 · github-tarball
evidence-backed findings quoted directly from the published source artifact — not inferred

code files: 30

filesystem 2

  • fs (weak) malkreide-swiss-road-mobility-mcp-639d190/scripts/check_version_sync.py :35 from pathlib import Path
  • fs (weak) malkreide-swiss-road-mobility-mcp-639d190/tests/test_version.py :12 from pathlib import Path

network 9

  • net malkreide-swiss-road-mobility-mcp-639d190/src/swiss_road_mobility_mcp/api_infrastructure.py :22 import httpx
  • net malkreide-swiss-road-mobility-mcp-639d190/src/swiss_road_mobility_mcp/egress.py :14 - ``async_client(...)`` is a drop-in ``httpx.AsyncClient`` factory that wires
  • net malkreide-swiss-road-mobility-mcp-639d190/src/swiss_road_mobility_mcp/multimodal.py :27 import httpx
  • net malkreide-swiss-road-mobility-mcp-639d190/src/swiss_road_mobility_mcp/park_rail.py :35 import httpx
  • net malkreide-swiss-road-mobility-mcp-639d190/src/swiss_road_mobility_mcp/tracing.py :52 """Set up the tracer provider and instrument httpx. Idempotent.
  • net malkreide-swiss-road-mobility-mcp-639d190/src/swiss_road_mobility_mcp/traffic_counters.py :24 import httpx
  • net malkreide-swiss-road-mobility-mcp-639d190/src/swiss_road_mobility_mcp/traffic_situations.py :19 import httpx
  • net (weak) malkreide-swiss-road-mobility-mcp-639d190/tests/test_tracing.py :7 import httpx
  • net (weak) malkreide-swiss-road-mobility-mcp-639d190/tests/test_unit.py :216 # geo_admin (uses per-call httpx.AsyncClient — respx intercepts globally)

secrets 2

  • secrets malkreide-swiss-road-mobility-mcp-639d190/src/swiss_road_mobility_mcp/security.py :164 token = os.environ.get("MCP_AUTH_TOKEN") or None
  • secrets malkreide-swiss-road-mobility-mcp-639d190/src/swiss_road_mobility_mcp/server.py :131 return os.environ.get("OPENTRANSPORTDATA_API_KEY")

tool registrations 13

  • road_find_sharing malkreide-swiss-road-mobility-mcp-639d190/src/swiss_road_mobility_mcp/server.py :299
  • road_search_sharing malkreide-swiss-road-mobility-mcp-639d190/src/swiss_road_mobility_mcp/server.py :347
  • road_sharing_providers malkreide-swiss-road-mobility-mcp-639d190/src/swiss_road_mobility_mcp/server.py :387
  • road_find_charger malkreide-swiss-road-mobility-mcp-639d190/src/swiss_road_mobility_mcp/server.py :422
  • road_charger_status malkreide-swiss-road-mobility-mcp-639d190/src/swiss_road_mobility_mcp/server.py :477
  • road_check_status malkreide-swiss-road-mobility-mcp-639d190/src/swiss_road_mobility_mcp/server.py :517
  • road_traffic_situations malkreide-swiss-road-mobility-mcp-639d190/src/swiss_road_mobility_mcp/server.py :746
  • road_traffic_counters malkreide-swiss-road-mobility-mcp-639d190/src/swiss_road_mobility_mcp/server.py :803
  • road_counter_sites malkreide-swiss-road-mobility-mcp-639d190/src/swiss_road_mobility_mcp/server.py :920
  • road_park_rail malkreide-swiss-road-mobility-mcp-639d190/src/swiss_road_mobility_mcp/server.py :1135
  • road_mobility_snapshot malkreide-swiss-road-mobility-mcp-639d190/src/swiss_road_mobility_mcp/server.py :1181
  • road_multimodal_plan malkreide-swiss-road-mobility-mcp-639d190/src/swiss_road_mobility_mcp/server.py :1248
  • road_reverse_geocode malkreide-swiss-road-mobility-mcp-639d190/src/swiss_road_mobility_mcp/server.py :1455

declared dependencies 11

  • mcp@>=2.0.0,<3
  • httpx@>=0.28.1,<1.0.0
  • pydantic@>=2.13.4,<3.0.0
  • pytest@>=9.0.3
  • pytest-asyncio@>=1.4.0
  • respx@>=0.23.1
  • ruff@>=0.15.15
  • opentelemetry-sdk@>=1.42.1
  • opentelemetry-exporter-otlp-proto-http@>=1.42.1
  • opentelemetry-instrumentation-httpx@>=0.63b1
  • opentelemetry-instrumentation-asgi@>=0.63b1