CTA MCP Server for Vercel AI SDK 11 tools — connect in under 2 minutes
The Vercel AI SDK is the TypeScript toolkit for building AI-powered applications. Connect CTA through Vinkius and every tool is available as a typed function. ready for React Server Components, API routes, or any Node.js backend.
ASK AI ABOUT THIS MCP SERVER
Vinkius supports streamable HTTP and SSE.
import { createMCPClient } from "@ai-sdk/mcp";
import { generateText } from "ai";
import { openai } from "@ai-sdk/openai";
async function main() {
const mcpClient = await createMCPClient({
transport: {
type: "http",
// Your Vinkius token. get it at cloud.vinkius.com
url: "https://edge.vinkius.com/[YOUR_TOKEN_HERE]/mcp",
},
});
try {
const tools = await mcpClient.tools();
const { text } = await generateText({
model: openai("gpt-4o"),
tools,
prompt: "Using CTA, list all available capabilities.",
});
console.log(text);
} finally {
await mcpClient.close();
}
}
main();
* Every MCP server runs on Vinkius-managed infrastructure inside AWS - a purpose-built runtime with per-request V8 isolates, Ed25519 signed audit chains, and sub-40ms cold starts optimized for native MCP execution. See our infrastructure
About CTA MCP Server
Connect your CTA API Chicago public transit data platform to any AI agent and take full control of real-time L train and CTA Bus tracking, arrival predictions, service disruption monitoring, and route status awareness through natural conversation.
The Vercel AI SDK gives every CTA tool full TypeScript type inference, IDE autocomplete, and compile-time error checking. Connect 11 tools through Vinkius and stream results progressively to React, Svelte, or Vue components. works on Edge Functions, Cloudflare Workers, and any Node.js runtime.
What you can do
- L Train Arrivals — Get real-time arrival predictions for any CTA L station with train destinations and line colors
- L Train Positions — Track live positions of all active trains system-wide or filtered by line (Red, Blue, Brown, Green, Orange, Purple, Pink, Yellow)
- Bus Predictions — Get estimated arrival times for any CTA bus stop with route and destination info
- Bus Vehicle Tracking — Track real-time GPS positions of all active CTA buses system-wide or by route
- Bus Routes — List all CTA bus routes across Chicago neighborhoods
- Bus Stops — Get all stops for any bus route with coordinates and direction information
- Service Alerts — Monitor active disruptions across L trains and buses with severity and alternatives
- Route Status — Quick system-wide health check showing which lines are running on-time or delayed
- Stop Details — Get detailed location info for any CTA bus stop
- Route Directions — Understand direction patterns (northbound, southbound) for any bus route
- System Connectivity — Verify API connectivity and synchronize timestamps
The CTA MCP Server exposes 11 tools through the Vinkius. Connect it to Vercel AI SDK in under two minutes — no API keys to rotate, no infrastructure to provision, no vendor lock-in. Your configuration, your data, your control.
How to Connect CTA to Vercel AI SDK via MCP
Follow these steps to integrate the CTA MCP Server with Vercel AI SDK.
Install dependencies
Run npm install @ai-sdk/mcp ai @ai-sdk/openai
Replace the token
Replace [YOUR_TOKEN_HERE] with your Vinkius token
Run the script
Save to agent.ts and run with npx tsx agent.ts
Explore tools
The SDK discovers 11 tools from CTA and passes them to the LLM
Why Use Vercel AI SDK with the CTA MCP Server
Vercel AI SDK provides unique advantages when paired with CTA through the Model Context Protocol.
TypeScript-first: every MCP tool gets full type inference, IDE autocomplete, and compile-time error checking out of the box
Framework-agnostic core works with Next.js, Nuxt, SvelteKit, or any Node.js runtime. same CTA integration everywhere
Built-in streaming UI primitives let you display CTA tool results progressively in React, Svelte, or Vue components
Edge-compatible: the AI SDK runs on Vercel Edge Functions, Cloudflare Workers, and other edge runtimes for minimal latency
CTA + Vercel AI SDK Use Cases
Practical scenarios where Vercel AI SDK combined with the CTA MCP Server delivers measurable value.
AI-powered web apps: build dashboards that query CTA in real-time and stream results to the UI with zero loading states
API backends: create serverless endpoints that orchestrate CTA tools and return structured JSON responses to any frontend
Chatbots with tool use: embed CTA capabilities into conversational interfaces with streaming responses and tool call visibility
Internal tools: build admin panels where team members interact with CTA through natural language queries
CTA MCP Tools for Vercel AI SDK (11)
These 11 tools become available when you connect CTA to Vercel AI SDK via MCP:
get_bus_predictions
Returns predicted arrival times in minutes and seconds, route IDs, destination descriptions, vehicle IDs, block IDs, trip designators, and whether buses are scheduled or real-time tracked. Based on real-time vehicle tracking and schedule adherence. Essential for real-time bus arrival awareness, passenger waiting time estimation, trip timing, and connection coordination. AI agents should use this when users ask "when is the next 22 Clark bus at stop 1234", "show predictions for this stop", or need real-time arrival data for a specific CTA bus stop. Stop IDs can be found using get_bus_stops. Get next bus arrival predictions for a specific CTA bus stop
get_bus_routes
Returns route IDs, short names (e.g., "22", "36"), long names (e.g., "22-Clark", "36-Broadway"), route colors, and route directions. Covers local, limited-stop, and express services across all Chicago neighborhoods. Essential for route discovery, service area analysis, transit network understanding, and identifying route IDs for use in stop and prediction queries. AI agents should use this when users ask "list all CTA bus routes", "what routes serve downtown Chicago", or need to identify route IDs for subsequent CTA Bus Tracker queries. List all CTA bus routes in Chicago
get_bus_stops
Returns stop IDs (stpid), stop names, geographic coordinates (latitude, longitude), stop sequence order, and direction information (northbound, southbound, eastbound, westbound). Essential for stop discovery, journey planning, accessibility mapping, and identifying stop IDs for use in arrival prediction queries. AI agents should use this when users ask "list all stops on route 22 Clark", "find bus stops along Michigan Avenue", or need to identify stop IDs for use in get_bus_predictions queries. List all bus stops for a specific CTA bus route
get_bus_vehicles
Returns vehicle IDs (vid), route IDs, latitude/longitude coordinates, heading direction, speed, trip designators, block IDs, destination descriptions, and pattern names. Can query all buses system-wide or filter by specific route ID for targeted route-level tracking. Essential for real-time bus fleet monitoring, passenger arrival estimation, route-level service awareness, and transit operations management. AI agents should reference this when users ask "where are all the buses on route 22", "track bus positions system-wide", or need real-time vehicle position data for fleet visualization. Get real-time positions of active CTA bus vehicles system-wide or filtered by route
get_route_directions
Returns direction IDs (0 or 1), direction names (e.g., "Northbound", "Southbound", "Eastbound", "Westbound"), and associated route metadata. Essential for understanding route patterns, direction identification for stop queries, and trip planning with correct directional awareness. AI agents should use this when users ask "what directions does route 22 serve", "is there a northbound option for route 36", or need directional metadata to understand bus route geometry and plan trips in the correct direction. Get direction information for a specific CTA bus route
get_route_status
Returns route IDs, route names, status indicators (GOOD DELAYS, SLOWLY, SEVERE DELAYS, PLANNED WORK, SERVICE DISRUPTION, SUSPENDED), and status descriptions. Essential for quick system-wide health checks, commute planning, and understanding overall CTA reliability at a glance. AI agents should reference this when users ask "how is CTA running today", "what lines are delayed", or need a quick overview of system-wide service status before detailed trip planning. Get current status of all CTA train lines and bus routes
get_service_alerts
Returns alert descriptions, affected routes and stations, severity levels, cause types (maintenance, incident, weather, special events, construction), start and end timestamps, detour information, and alternative service recommendations. Can query all alerts system-wide or filter by specific route. Essential for service disruption awareness, alternative route planning, passenger communication, and understanding system reliability. AI agents should use this when users ask "are there any delays on the Red Line", "is CTA running normally today", or need to check service reliability before planning CTA journeys. Get current service alerts and disruptions across the CTA system
get_stop_details
Returns stop ID, stop name, geographic coordinates (latitude, longitude), and any associated route information. Essential for stop identification, accessibility planning, transit network analysis, and passenger information. AI agents should use this when users ask "tell me about stop 1234", "where is this bus stop located", or need detailed stop metadata to contextualize transit queries and trip planning. Get detailed information about a specific CTA bus stop
get_system_time
Returns the official server timestamp in standard format. Useful for synchronizing local clocks with the CTA system, verifying API connectivity, testing authentication, and timestamp alignment for real-time data correlation. AI agents should use this as a connectivity check before making more complex queries, or when users need to verify API responsiveness and authentication validity. Get the current CTA Bus Tracker system timestamp
get_train_arrivals
Returns predicted arrival times in minutes, train run numbers, destination stations, line colors (Red, Blue, Brown, Green, Orange, Purple, Pink, Yellow), operating status (on-time, delayed, scheduled, unscheduled, approaching, boarding, departing), and whether the train is approaching or at the station. Essential for real-time L tracking, passenger waiting time estimation, trip timing, and connection coordination. AI agents should use this when users ask "when is the next Red Line train at Clark/Lake", "show upcoming trains at this station", or need real-time arrival predictions for a specific CTA L station. MapIds are 5-digit station identifiers (e.g., 40360 for Clark/Lake, 40900 for Jackson). Station IDs can be found in the CTA GTFS static data feed. Get real-time train arrival predictions for a specific L station
get_train_positions
Returns train run numbers, line colors, next station IDs, service types (train, 5-car, 8-car), heading directions (North, South, East, West, Northeast, Northwest, Southeast, Southwest), scheduled vs. real-time status, and delay indicators. Can query all trains system-wide or filter by specific line (Red, Blue, Brown, Green, Orange, Purple, Pink, Yellow). Essential for real-time train tracking, network-wide service awareness, fleet monitoring, and understanding train distribution across the L system. AI agents should reference this when users ask "where are all the Red Line trains", "show train positions on the Blue Line", or need to visualize train locations for operational monitoring or passenger information. Get real-time positions of all active CTA trains system-wide or filtered by line
Example Prompts for CTA in Vercel AI SDK
Ready-to-use prompts you can give your Vercel AI SDK agent to start working with CTA immediately.
"When is the next Red Line train arriving at Clark/Lake?"
"Show me all CTA bus stops on route 22 Clark."
"How is CTA running today? Any delays on the L or bus routes?"
Troubleshooting CTA MCP Server with Vercel AI SDK
Common issues when connecting CTA to Vercel AI SDK through the Vinkius, and how to resolve them.
createMCPClient is not a function
npm install @ai-sdk/mcpCTA + Vercel AI SDK FAQ
Common questions about integrating CTA MCP Server with Vercel AI SDK.
How does the Vercel AI SDK connect to MCP servers?
createMCPClient from @ai-sdk/mcp and pass the server URL. The SDK discovers all tools and provides typed TypeScript interfaces for each one.Can I use MCP tools in Edge Functions?
Does it support streaming tool results?
useChat and streamText that handle tool calls and display results progressively in the UI.Connect CTA with your favorite client
Step-by-step setup guides for every MCP-compatible client and framework:
Anthropic's native desktop app for Claude with built-in MCP support.
AI-first code editor with integrated LLM-powered coding assistance.
GitHub Copilot in VS Code with Agent mode and MCP support.
Purpose-built IDE for agentic AI coding workflows.
Autonomous AI coding agent that runs inside VS Code.
Anthropic's agentic CLI for terminal-first development.
Python SDK for building production-grade OpenAI agent workflows.
Google's framework for building production AI agents.
Type-safe agent development for Python with first-class MCP support.
TypeScript toolkit for building AI-powered web applications.
TypeScript-native agent framework for modern web stacks.
Python framework for orchestrating collaborative AI agent crews.
Leading Python framework for composable LLM applications.
Data-aware AI agent framework for structured and unstructured sources.
Microsoft's framework for multi-agent collaborative conversations.
Connect CTA to Vercel AI SDK
Get your token, paste the configuration, and start using 11 tools in under 2 minutes. No API key management needed.
