CCM
/MCP
SkillsMCPMarketplacesDigestLearnAdvertise

This week in Claude

Every Monday: Claude Code, Agent SDK, MCP, and the Anthropic platform moves worth your time.

Skills by Category
Frontend DevelopmentBackend & APIsTesting & QASecurityDevOps & CI/CDGit & Pull RequestsDocumentationCode Review & QualityAI & Agent BuildingSkill Development
MCP Servers by Category
Sales & MarketingWeb & Browser AutomationDatabasesAI & LLM ToolsCloud & InfrastructureCommunication & MessagingDeveloper ToolsDesign & CreativeDocuments & KnowledgeSearch & Web Crawling
Marketplaces by Category
AI Agents & OrchestrationLLM IntegrationDevelopment ToolsFrontend & UIBackend & APIsDatabasesTesting & Code QualityDevOps & CloudSecurity & ComplianceGit & Version Control

Claude Code Marketplaces

Discover Claude Code plugins, extensions, and tools. Automatically updated directory of Anthropic Claude AI marketplaces with development tools, productivity plugins, and integrations.

Resources

  • Browse Skills
  • Browse MCP Servers
  • Browse Marketplaces
  • Plugins Reference

Community

  • About
  • Learn
  • Feedback
  • Privacy Policy
  • Advertise

Built for the Claude Code community with Claude Code by @mertduzgun

Independent project, not affiliated with Anthropic

Swiss Road Mobility Mcp

malkreide/swiss-road-mobility-mcp
STDIOregistry active
Summary

Connects Claude to Switzerland's road and mobility infrastructure through six official data sources. Exposes 15 tools covering GBFS shared mobility feeds (bikes, scooters, cars), EV charging station locations and real-time availability, DATEX II traffic incidents from ASTRA, vehicle counting stations, SBB Park & Rail facilities, and Swiss address geocoding via geo.admin.ch. The standout tools are road_mobility_snapshot for aggregated views and road_multimodal_plan for combined car-to-train journey planning. Most tools work without authentication; only the traffic event feeds need a free opentransportdata.swiss API key. Supports both stdio for Claude Desktop and SSE for browser deployments with rate limiting and auth token protection built in.

CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
Put your SEO on autopilot
Put your SEO on autopilot
An agent that runs the SEO playbooks that move rankings and ships PRs you control.
Get founding access →
Vibe Prospecting MCPVibe Prospecting MCP
Vibe Prospecting MCP
Connect Claude to +800M contacts, +150M companies. Find & Enrich leads in chat.
Try For Free →
CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
Put your SEO on autopilot
Put your SEO on autopilot
An agent that runs the SEO playbooks that move rankings and ships PRs you control.
Get founding access →
Vibe Prospecting MCPVibe Prospecting MCP
Vibe Prospecting MCP
Connect Claude to +800M contacts, +150M companies. Find & Enrich leads in chat.
Try For Free →
Featured
CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
Put your SEO on autopilot
Put your SEO on autopilot
An agent that runs the SEO playbooks that move rankings and ships PRs you control.
Get founding access →
Vibe Prospecting MCPVibe Prospecting MCP
Vibe Prospecting MCP
Connect Claude to +800M contacts, +150M companies. Find & Enrich leads in chat.
Try For Free →
Registryactive
Packageswiss-road-mobility-mcp
TransportSTDIO
UpdatedJun 7, 2026
View on GitHub

🇨🇭 Part of the Swiss Public Data MCP Portfolio

🚗 Swiss Road & Mobility MCP Server

Version License: MIT Python 3.11+ MCP CI

MCP Server for Swiss road mobility — shared vehicles, EV charging, traffic alerts, Park & Rail, and multimodal trip planning

🇩🇪 Deutsche Version


Demo

Demo: Claude using road_mobility_snapshot at Zürich HB


Overview

swiss-road-mobility-mcp provides AI-native access to Swiss road and mobility data sources:

SourceDataAPIAuth
sharedmobility.chBikes, e-scooters, cars (GBFS)REST/JSONNone
ich-tanke-strom.chEV charging stationsGeoJSONNone
opentransportdata.swissTraffic events, counting stationsDATEX II / SOAP+XMLFree key
data.sbb.chPark & Rail facilitiesREST/JSON (Opendatasoft)None
transport.opendata.chPublic transport connectionsREST/JSONNone
geo.admin.chAddress geocoding, road classificationREST/JSONNone

If the Swiss Transport MCP is the GA pass for rail, this server is the vignette + Park & Rail card + sharing subscription for the road — together they paint the complete multimodal picture of Swiss mobility.

Anchor demo query: "I'm in Dietikon with my car. I need to get to Bern. Where can I park? Which train should I take?"


Features

  • 15 tools across six data sources (Phase 1–4)
  • road_mobility_snapshot — aggregated mobility overview for any location
  • road_multimodal_plan — car + Park & Rail + public transport in one plan
  • No API key required for 12 of 15 tools
  • Dual transport — stdio (Claude Desktop) + SSE (cloud)
  • Rate limiting + caching for all endpoints

Prerequisites

  • Python 3.11+
  • uv (recommended) or pip

Installation

# Clone the repository
git clone https://github.com/malkreide/swiss-road-mobility-mcp.git
cd swiss-road-mobility-mcp

# Install
pip install -e .
# or with uv:
uv pip install -e .

Or with uvx (no permanent installation):

uvx swiss-road-mobility-mcp

Quickstart

# stdio (for Claude Desktop)
swiss-road-mobility-mcp
# or:
python -m swiss_road_mobility_mcp.server

# SSE (for cloud / Render.com)
MCP_TRANSPORT=sse MCP_PORT=8001 swiss-road-mobility-mcp

Try it immediately in Claude Desktop:

"Show me everything mobility-related at Zurich HB." "Find shared bikes near Bern Bahnhof." "Where can I charge my EV near Lucerne?"

→ More use cases by audience →


Configuration

Claude Desktop

Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "swiss-road-mobility": {
      "command": "uvx",
      "args": ["swiss-road-mobility-mcp"],
      "env": {
        "OPENTRANSPORTDATA_API_KEY": "<your-token>"
      }
    }
  }
}

Or with python:

{
  "mcpServers": {
    "swiss-road-mobility": {
      "command": "python",
      "args": ["-m", "swiss_road_mobility_mcp.server"],
      "env": {
        "OPENTRANSPORTDATA_API_KEY": "<your-token>"
      }
    }
  }
}

Shared mobility, EV charging, Park & Rail, and the multimodal planner work without an OPENTRANSPORTDATA_API_KEY. The key is only required for the DATEX II traffic tools.

Config file locations:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json

Cloud Deployment (SSE for browser access)

For use via claude.ai in the browser (e.g. on managed workstations without local software):

Render.com (recommended):

  1. Push/fork the repository to GitHub
  2. On render.com: New Web Service -> connect GitHub repo
  3. Set start command: MCP_TRANSPORT=sse MCP_PORT=8001 swiss-road-mobility-mcp
  4. In claude.ai under Settings -> MCP Servers, add: https://your-app.onrender.com/sse

SSE security (SEC-009)

A public SSE endpoint is reachable by anyone. To protect it (and your upstream API quota), configure these environment variables on the host:

VariableEffect
MCP_AUTH_TOKENWhen set, every SSE request must send Authorization: Bearer <token>. Unset = unauthenticated (the server logs a loud warning at startup). Strongly recommended for any public deployment.
MCP_RATE_LIMITMax requests per client IP per window (default 60, 0 disables).
MCP_RATE_WINDOWWindow length in seconds (default 60).
ALLOWED_ORIGINSComma-separated CORS origins for browser clients (default *).

The local stdio transport needs none of this — it runs in the user's trusted context.

Observability (OBS-003 / OBS-006)

VariableEffect
MCP_LOG_LEVELLog level: DEBUG / INFO (default) / WARNING / ERROR.
MCP_LOG_FORMATtext (default) or json for structured logs. All logs go to stderr.
MCP_TRACING_ENABLEDtrue enables OpenTelemetry tracing (off by default).
OTEL_EXPORTER_OTLP_ENDPOINTOTLP collector URL; setting it also enables tracing. Standard OTEL_* vars are honoured by the SDK.

Tracing needs the optional extra: pip install 'swiss-road-mobility-mcp[tracing]'. Once enabled, every upstream API call is traced automatically (httpx instrumentation) and SSE requests get server spans with W3C trace-context propagation.


Available Tools

Shared Mobility & EV Charging (no API key required)

ToolDescriptionCache
road_find_sharingShared mobility nearby (bikes, e-scooters, cars)60s
road_search_sharingSearch sharing stations by name5min
road_sharing_providersAll sharing providers in Switzerland1h
road_find_chargerEV charging stations nearby5min
road_charger_statusReal-time availability of charging stations1min
road_check_statusServer & API health check-

Traffic (free API key required)

ToolDescriptionCache
road_traffic_situationsAccidents, roadworks, congestion from ASTRA/VMZ-CH2min
road_traffic_countersVehicles/h + km/h at counting stations near a position1min
road_counter_sitesList counting stations nearby24h

Park & Rail + Multimodal (no API key required)

ToolDescriptionCache
road_park_railFind SBB Park+Rail facilities nearby5min
road_mobility_snapshotComplete mobility overview for a location-
road_multimodal_planPlan car -> Park+Rail -> public transport -> destination-

Geography & Addresses — Phase 4 (no API key required)

ToolDescriptionCache
road_geocode_addressSwiss address -> GPS (official building address register)-
road_reverse_geocodeGPS -> official address with EGID/EGAID (GWR)-
road_classify_roadRoad classification via swissTLM3D-

Example Use Cases

QueryTool
"Find shared bikes near Zurich HB"road_find_sharing
"Where can I charge my EV near Bern?"road_find_charger
"Any traffic incidents on the A1?"road_traffic_situations
"Where can I park near Winterthur station?"road_park_rail
"Plan my trip from Dietikon to Bern by car + train"road_multimodal_plan

API Key for Traffic Tools

  1. Register: https://api-manager.opentransportdata.swiss
  2. Create a new application -> subscribe to the "Strassenverkehr" API
  3. Copy the token
export OPENTRANSPORTDATA_API_KEY=<your-token>

Without a key, the traffic tools return a descriptive error message including the exact registration link — no crash.


Architecture

swiss_road_mobility_mcp/
├── server.py             # FastMCP server, 15 tools
├── api_infrastructure.py # Rate limiter, cache, HTTP client, geo utilities
├── shared_mobility.py    # sharedmobility.ch
├── ev_charging.py        # ich-tanke-strom.ch
├── traffic_situations.py # DATEX II traffic alerts (SOAP/XML)
├── traffic_counters.py   # DATEX II counting stations (SOAP/XML)
├── park_rail.py          # SBB Open Data Park & Rail
├── multimodal.py         # Snapshot + trip planner (cross-source)
└── geo_admin.py          # geo.admin.ch geocoding + road classification

Data Source Characteristics

SourceProtocolCoverageAuth
sharedmobility.chREST/JSON (GBFS)All CH sharing providersNone
ich-tanke-strom.chGeoJSONAll public EV chargersNone
opentransportdata.swissDATEX II / SOAP+XMLASTRA traffic dataFree key
data.sbb.chREST/JSON (Opendatasoft)SBB Park & RailNone
transport.opendata.chREST/JSONPublic transport schedulesNone
geo.admin.chREST/JSONOfficial addresses, roadsNone

In-depth docs: docs/ARCHITECTURE.md (MCP primitives, tool namespacing, use-case catalogue, phase roadmap) · docs/SECURITY.md (credential model, egress allow-list, auth, MCP conformance table) · docs/OPERATIONS.md (resource limits, restart policy, health).


Project Structure

swiss-road-mobility-mcp/
├── src/swiss_road_mobility_mcp/
│   ├── __init__.py              # Package
│   ├── server.py                # FastMCP server, 15 tools
│   ├── api_infrastructure.py    # Rate limiter, cache, HTTP client
│   ├── shared_mobility.py       # Shared vehicles
│   ├── ev_charging.py           # EV charging stations
│   ├── traffic_situations.py    # Traffic events
│   ├── traffic_counters.py      # Vehicle counting
│   ├── park_rail.py             # Park & Rail
│   ├── multimodal.py            # Snapshot + trip planning
│   └── geo_admin.py             # Geocoding + roads
├── tests/
│   ├── test_integration.py      # Live API tests
│   └── test_phase3.py           # Park & Rail + multimodal tests
├── .github/workflows/ci.yml     # GitHub Actions (Python 3.11/3.12/3.13)
├── pyproject.toml
├── CHANGELOG.md
├── CONTRIBUTING.md               # Contribution guide (English)
├── CONTRIBUTING.de.md            # Contribution guide (German)
├── SECURITY.md                   # Security policy (English)
├── SECURITY.de.md                # Security policy (German)
├── LICENSE
├── README.md                    # This file (English)
└── README.de.md                 # German version

Known Limitations

  • Shared Mobility: The sharedmobility.ch API does not enforce strict radius filtering; vehicles slightly outside the specified radius may appear
  • EV Charging: Station naming conventions vary between operators; some stations may appear without detailed names
  • Traffic (DATEX II): Requires a free API key; without it, traffic tools return helpful error messages
  • Park & Rail: SBB occasionally renames endpoints; the server includes a fallback chain
  • Multimodal Planner: Response time depends on the slowest of the queried sources

Testing

# All tests
pytest tests/ -v

# Quick check (without pytest)
python tests/test_phase3.py

Safety & Limits

  • Read-only: All tools perform HTTP GET requests only — no data is written, modified, or deleted on any upstream system.
  • No personal data: Location coordinates passed as tool inputs are not stored, logged, or forwarded beyond the immediate API request. API responses contain no PII — only vehicle counts, charger availability, traffic events, and geographic metadata.
  • Rate limiting: The server enforces client-side rate limits (Shared Mobility: 30 req/60s; EV Charging: 10 req/60s) to protect upstream APIs. The DATEX II key is subject to opentransportdata.swiss fair-use terms.
  • Caching: Responses are cached in-process (Sharing: 60s · EV: 5 min · Park+Rail: 5 min · Traffic: 1–2 min). Real-time data reflects the cache age, not necessarily the current second.
  • Terms of service: Data is subject to the ToS of each upstream source — sharedmobility.ch, ich-tanke-strom.ch, opentransportdata.swiss, data.sbb.ch (CC BY), geo.admin.ch (BGDI).
  • No guarantees: This server is an independent community project, not affiliated with SBB, ASTRA, sharedmobility.ch, or any API provider. Availability depends on upstream services.

Changelog

See CHANGELOG.md


Contributing

See CONTRIBUTING.md


Security

See SECURITY.md for the security posture and vulnerability reporting.


License

MIT License — see LICENSE


Author

Hayal Oezkan · malkreide


Credits & Related Projects

  • sharedmobility.ch: sharedmobility.ch — Swiss shared mobility platform
  • ich-tanke-strom.ch: ich-tanke-strom.ch — Swiss EV charging network
  • ASTRA / opentransportdata.swiss: opentransportdata.swiss — Federal traffic data
  • SBB Open Data: data.sbb.ch — Swiss Federal Railways
  • geo.admin.ch: geo.admin.ch — Federal geospatial services
  • Protocol: Model Context Protocol — Anthropic / Linux Foundation
  • Related: swiss-transport-mcp — Public transport (trains, buses, trams)
  • Related: zurich-opendata-mcp — 900+ datasets from the City of Zurich
  • Portfolio: Swiss Public Data MCP Portfolio

Installation

Run via uv's uvx — no clone or manual install needed. Add to your MCP client config (mcpServers for Claude Desktop, Cursor and Windsurf; use a top-level servers key for VS Code in .vscode/mcp.json):

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