Claude-skill-registry-data mbta

Real-time MBTA transit predictions for Boston-area subway, bus, commuter rail, and ferry. Query departure times, search stops/routes, check service alerts, and run a live dashboard. Use when asked about Boston transit, T schedules, when to leave for the train, or MBTA service status.

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

MBTA Transit

Query real-time MBTA predictions via the v3 API.

Setup

# Optional but recommended for higher rate limits
export MBTA_API_KEY=your_key_here  # Free at https://api-v3.mbta.com/portal

# Install dependencies
pip install requests pyyaml flask  # flask only needed for dashboard

Quick Commands

cd skills/mbta

# Next departures from a stop
python scripts/mbta.py next --stop place-alfcl  # Alewife
python scripts/mbta.py next --stop place-harsq --route Red  # Harvard, Red Line only

# Search for stop IDs
python scripts/mbta.py stops --search "Porter"
python scripts/mbta.py stops --search "Kendall"

# List routes
python scripts/mbta.py routes              # All routes
python scripts/mbta.py routes --type rail  # Subway only
python scripts/mbta.py routes --type bus   # Buses

# Service alerts
python scripts/mbta.py alerts              # All alerts
python scripts/mbta.py alerts --route Red  # Red Line alerts

# All configured departures (uses config.yaml)
python scripts/mbta.py departures --config config.yaml

# Start web dashboard
python scripts/mbta.py dashboard --config config.yaml --port 6639

Configuration

Edit

config.yaml
to set up your stops:

panels:
  - title: "My Station"
    walk_minutes: 5  # Filter out trains you can't catch
    services:
      - label: "Red Line"
        destination: "to Alewife"
        route_id: "Red"
        stop_id: "place-harsq"
        direction_id: 0  # 0 or 1 for direction
        limit: 3

Key fields:

  • walk_minutes
    : Trains departing sooner than this are filtered out
  • direction_id
    : 0 = outbound/north, 1 = inbound/south (varies by line)
  • headsign_contains
    : Optional filter (e.g., "Ashmont" to exclude Braintree)

Finding Stop/Route IDs

# Search stops
python scripts/mbta.py stops --search "Davis"
# Returns: place-davis: Davis

# Get routes
python scripts/mbta.py routes --type rail
# Returns route IDs like "Red", "Orange", "Green-E"

JSON Output

Add

--json
for machine-readable output:

python scripts/mbta.py next --stop place-alfcl --json
python scripts/mbta.py departures --config config.yaml --json

Common Stop IDs

StationStop ID
Alewifeplace-alfcl
Harvardplace-harsq
Kendall/MITplace-knncl
Park Streetplace-pktrm
South Stationplace-sstat
North Stationplace-north
Back Bayplace-bbsta
Downtown Crossingplace-dwnxg

Answering User Questions

"When's the next Red Line train?"

python scripts/mbta.py next --stop place-alfcl --route Red

"Should I leave now to catch the T?" Check departures against their walk time. If next train is ≤ walk_minutes, say "leave now!"

"Are there any delays on the Orange Line?"

python scripts/mbta.py alerts --route Orange

"What buses go to Harvard?"

python scripts/mbta.py stops --search "Harvard"
# Then check routes at that stop
python scripts/mbta.py next --stop <stop_id>