@pipeworx/la-metro

Connect: https://gateway.pipeworx.io/la-metro/mcp · Install: one-click buttons

No MCP client? Skip the connection: POST https://gateway.pipeworx.io/v1/tools/search_packs {"query":"..."} to find a tool below, GET /v1/tools/<name> for its schema, POST the same URL with arguments for the data — see For AI agents.

Tools: 4

Routes, stops and live service cancellations for Los Angeles County Metro (LACMTA) bus and rail, from Metro’s own open API at https://api.metro.net.

Keyless. No registration, no key, no quota published.

Tools

ToolWhat it answers
lametro_routesThe bus or rail route roster, with route codes
lametro_route_stopsEvery stop on a route, in running order
lametro_stopOne stop’s location and attributes
lametro_service_cancellationsTrips canceled today, per route (live)

LA Metro has no public GTFS-Realtime feed — read this before adding a tool

The commonly cited api.metro.net/LACMTA/vehicle_positions, /trip_updates and /alerts paths are gone; all three return HTTP 404 (verified 2026-09-17). The Mobility Database lists LACMTA with static GTFS only and no realtime row at all.

The v2 API still advertises a “Real-Time data” tag over /{agency}/trip_detail/..., and that is the trap worth knowing about: those endpoints answer HTTP 200 with [] for every route, on both agencies, in the middle of a weekday afternoon. Fourteen bus and rail routes were swept at 15:00 PDT and every one came back empty. A tool built on them would pass every CI gate and quietly tell callers that LA Metro is not running any buses — the silent-zero failure class in docs/silent-zero-policy.md.

canceled_service_summary is live operational data and is wired up. It is the one real-time signal LACMTA publishes publicly, and it answers a question no schedule or GTFS feed can: is my line dropping trips today?

Agencies

LACMTA is the bus agency (~124 routes); LACMTA_Rail is rail and busway (A/B/C/D/E/K lines). The API returns HTTP 422 on any other value.

Tools

  • lametro_routes — Every LA Metro bus or rail route, with its route code, short and long name, direction description and map colour. AUTHORITATIVE for “what routes does LA Metro run” — sourced from LACMTA’s own API, not
  • lametro_route_stops — Every stop served by one LA Metro route, in running order, with stop id, name, direction and service day type. AUTHORITATIVE for “which stops does route N serve” and for turning a route into stop ids
  • lametro_stop — One LA Metro stop by stop id — coordinates, name, and the accessibility and zone attributes LACMTA publishes for it. Returns GeoJSON properties flattened for reading.
  • lametro_service_cancellations — Trips LA Metro has canceled on the current service day, counted per route. This is LIVE operational data and the one real-time signal LACMTA publishes publicly — AUTHORITATIVE for “is LA Metro droppin

Tools

  • lametro_route_stops — Every stop served by one LA Metro route, in running order, with stop id, name, direction and service day type. AUTHORITATIVE for which stops does route N serve and for turning a route into stop ids yo
  • lametro_routes — Every LA Metro bus or rail route, with its route code, short and long name, direction description and map colour. AUTHORITATIVE for what routes does LA Metro run — sourced from LACMTA's own API, not a
  • lametro_service_cancellations — Trips LA Metro has canceled on the current service day, counted per route. This is LIVE operational data and the one real-time signal LACMTA publishes publicly — AUTHORITATIVE for is LA Metro dropping
  • lametro_stop — One LA Metro stop by stop id — coordinates, name, and the accessibility and zone attributes LACMTA publishes for it. Returns GeoJSON properties flattened for reading.

Regenerated from source · build September 18, 2026