Awesome-omni-skill mvg

Munich public transport (MVG) - departures, schedules, and alerts. Use when user shares location in Munich, asks about transport schedules, nearby stops, or transit disruptions.

install
source · Clone the upstream repo
git clone https://github.com/diegosouzapw/awesome-omni-skill
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/diegosouzapw/awesome-omni-skill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/development/mvg" ~/.claude/skills/diegosouzapw-awesome-omni-skill-mvg && rm -rf "$T"
manifest: skills/development/mvg/SKILL.md
source content

MVG Skill 🚇

Munich public transport departures, schedules, and alerts.

1. Departures by Location

When user shares location or asks about nearby transport:

python3 mvg-departures.py <lat> <lng>

# With options
python3 mvg-departures.py <lat> <lng> --limit 5 --offset 3 --compact

Options

FlagDescription
--limit N
Max departures (default: 8)
--offset MIN
Walking time to stop (filters out departures leaving too soon)
--types U,S,BUS,TRAM
Filter by transport type
--compact
One-line format
--json
JSON output

Examples

# Central Munich
python3 mvg-departures.py 48.137 11.575

# Only U-Bahn and S-Bahn, 5 min walk to station
python3 mvg-departures.py 48.137 11.575 --types U,S --offset 5

# Compact output
python3 mvg-departures.py 48.137 11.575 --compact

Output Format

📍 **Marienplatz** (München)

🚇 U3 → Fürstenried West (2 min)
🚇 U6 → Klinikum Großhadern (3 min)
🚆 S1 → Freising (5 min +2)

Delay shown as

(+N)
minutes.

2. On Location Share

When user sends a location via Telegram/Signal, automatically show nearby departures:

python3 mvg-departures.py <lat> <lng> --limit 6 --compact

3. Alerts & Disruptions

Check for strikes, disruptions, construction:

web_search "München MVG Streik Störung" --freshness pd

Keywords

  • Streik
    — strike
  • Störung
    — disruption
  • Sperrung
    — closure
  • Ausfall
    — cancellation
  • Verspätung
    — delay
  • Bauarbeiten
    — construction

MVG vs S-Bahn

ServiceOperatorDuring MVG Strike
U-BahnMVG❌ Affected
TramMVG❌ Affected
Bus (1-199)MVG❌ Affected
S-BahnDB✅ Usually runs
Regional trainsDB✅ Usually runs

⚠️ S-Bahn is operated by Deutsche Bahn, not MVG!

4. Heartbeat Integration

Add to HEARTBEAT.md for automated checks:

### 🚨 MVG Alerts (every heartbeat)
- web_search: "München MVG Streik Störung" freshness=pd
- Report NEW alerts only (check reportedAlerts in state)

### 📍 On Location
- python3 mvg-departures.py <lat> <lng> --limit 6

Track reported alerts in state file:

{
  "reportedAlerts": ["mvg-streik-2026-02-02"],
  "acknowledgedAlerts": []
}

5. API Reference

Uses unofficial MVG API:

Base: https://www.mvg.de/api/bgw-pt/v3

GET /stations/nearby?latitude=X&longitude=Y
GET /departures?globalId=STATION_ID&limit=N&offsetInMinutes=M

Python package:

pip install mvg

Requirements

pip install mvg

Munich Tips

  • Rush hours: 7:00-9:00, 16:30-19:00
  • Oktoberfest: U4/U5 crowded (late Sept)
  • Allianz Arena: U6 packed on match days
  • Night service: Limited after 00:30 (weekdays)