Transitland
liveTransportGlobal GTFS aggregator — ~3000 transit operators, ~50k feeds. Agencies, routes, stops, departures.
Platform key handled by Pipeworx. Or BYO: ?_apiKey=<key>.
{
"mcpServers": {
"pipeworx-transit-land": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://gateway.pipeworx.io/transit-land/mcp?_apiKey=your_key"
]
}
}
}Tools
search_agenciesSearch transit agencies/operators by name or geo. Operators are the entities running services.
nameoptstring—agency_idoptstring—latoptnumber—lonoptnumber—radius_moptnumber—limitoptnumber—Try it
search_routesSearch public transit routes in Transitland, the global GTFS feed aggregator, by route name, GTFS route type, operating agency, or a lat/lon point with radius. Returns matching routes with short and l
nameoptstring—route_typeoptnumber—agency_idoptstring—operator_idoptstring—latoptnumber—lonoptnumber—radius_moptnumber—limitoptnumber—Try it
search_stopsSearch stops/stations. Use lat+lon+radius_m for "stops near point".
nameoptstring—stop_idoptstring—latoptnumber—lonoptnumber—radius_moptnumber—served_by_route_typeoptnumber—limitoptnumber—Try it
departures_at_stoprequired: stop_idUpcoming departures from a stop. stop_id is the Transitland onestop_id (e.g. "s-9q8yvz3w7-stopname").
stop_idreqstring—service_dateoptstring—start_timeoptstring—end_timeoptstring—Try it
list_feedsList available GTFS (or GTFS-RT/MDS) feeds aggregated by Transitland; filter by spec type and paginate with limit; returns feed id, url, operator, and last fetch status.
specoptstring—limitoptnumber—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/transit-land/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'curl -X POST https://gateway.pipeworx.io/transit-land/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"search_agencies","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("search_agencies", {});// Or ask in plain English:
const answer = await px.ask("global gtfs aggregator — ~3000 transit operators, ~50k feeds");