Cta
live TransportCTA MCP — Chicago Transit Authority real-time trains ('L') + buses
Tools
cta_train_arrivals Real-time Chicago CTA 'L' train arrivals at a station — answers "when is the next train Chicago", next Red Line at Belmont, Blue Line to O'Hare from Clark/Lake. Returns each upcoming train's line colo
No parameters required.
Try it
cta_train_positions Live Chicago CTA 'L' train positions on one or more lines — where every Red Line, Blue Line, Brown, Green, Orange, Purple, Pink, or Yellow train is right now: lat/lon, heading, next station with ETA,
No parameters required.
Try it
cta_bus_predictions Chicago CTA bus tracker arrival predictions at a bus stop — route, destination, predicted minutes until arrival ("DUE" = arriving now), delay flag, and vehicle id. Pass stop_id (the 4-5 digit stop num
No parameters required.
Try it
cta_bus_positions Live Chicago CTA bus positions on a route — every vehicle currently running: lat/lon, heading, destination, delayed flag, and distance along the pattern. Answers "where is the 22 Clark bus right now"
No parameters required.
Try it
Test with curl
The gateway speaks JSON-RPC 2.0 over HTTP POST. You can test any pack directly from the terminal.
curl -X POST https://gateway.pipeworx.io/cta/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' curl -X POST https://gateway.pipeworx.io/cta/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"cta_train_arrivals","arguments":{}}}' Use with the SDK
Install @pipeworx/sdk to call tools from any TypeScript/Node project.
import { Pipeworx } from '@pipeworx/sdk';
const px = new Pipeworx();
const result = await px.call("cta_train_arrivals", {}); // Or ask in plain English:
const answer = await px.ask("cta mcp — chicago transit authority real-time trains ('l') + buses");