Cta

live Transport

CTA MCP — Chicago Transit Authority real-time trains ('L') + buses

4 tools
0ms auth
free tier 50 calls/day

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.

List available tools
bash
curl -X POST https://gateway.pipeworx.io/cta/mcp \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
Call a tool
bash
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.

TypeScript
import { Pipeworx } from '@pipeworx/sdk';
const px = new Pipeworx();
const result = await px.call("cta_train_arrivals", {});
ask_pipeworx
// Or ask in plain English:
const answer = await px.ask("cta mcp — chicago transit authority real-time trains ('l') + buses");