2,500+ MCP servers ready to use
Vinkius

CTA MCP Server for CrewAI 11 tools — connect in under 2 minutes

Built by Vinkius GDPR 11 Tools Framework

Connect your CrewAI agents to CTA through Vinkius, pass the Edge URL in the `mcps` parameter and every CTA tool is auto-discovered at runtime. No credentials to manage, no infrastructure to maintain.

Vinkius supports streamable HTTP and SSE.

python
from crewai import Agent, Task, Crew

agent = Agent(
    role="CTA Specialist",
    goal="Help users interact with CTA effectively",
    backstory=(
        "You are an expert at leveraging CTA tools "
        "for automation and data analysis."
    ),
    # Your Vinkius token. get it at cloud.vinkius.com
    mcps=["https://edge.vinkius.com/[YOUR_TOKEN_HERE]/mcp"],
)

task = Task(
    description=(
        "Explore all available tools in CTA "
        "and summarize their capabilities."
    ),
    agent=agent,
    expected_output=(
        "A detailed summary of 11 available tools "
        "and what they can do."
    ),
)

crew = Crew(agents=[agent], tasks=[task])
result = crew.kickoff()
print(result)
CTA
Fully ManagedVinkius Servers
60%Token savings
High SecurityEnterprise-grade
IAMAccess control
EU AI ActCompliant
DLPData protection
V8 IsolateSandboxed
Ed25519Audit chain
<40msKill switch
Stream every event to Splunk, Datadog, or your own webhook in real-time

* 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.

When paired with CrewAI, CTA becomes a first-class tool in your multi-agent workflows. Each agent in the crew can call CTA tools autonomously, one agent queries data, another analyzes results, a third compiles reports, all orchestrated through Vinkius with zero configuration overhead.

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 CrewAI 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 CrewAI via MCP

Follow these steps to integrate the CTA MCP Server with CrewAI.

01

Install CrewAI

Run pip install crewai

02

Replace the token

Replace [YOUR_TOKEN_HERE] with your Vinkius token from cloud.vinkius.com

03

Customize the agent

Adjust the role, goal, and backstory to fit your use case

04

Run the crew

Run python crew.py. CrewAI auto-discovers 11 tools from CTA

Why Use CrewAI with the CTA MCP Server

CrewAI Multi-Agent Orchestration Framework provides unique advantages when paired with CTA through the Model Context Protocol.

01

Multi-agent collaboration lets you decompose complex workflows into specialized roles, one agent researches, another analyzes, a third generates reports, each with access to MCP tools

02

CrewAI's native MCP integration requires zero adapter code: pass Vinkius Edge URL directly in the `mcps` parameter and agents auto-discover every available tool at runtime

03

Built-in task delegation and shared memory mean agents can pass context between steps without manual state management, enabling multi-hop reasoning across tool calls

04

Sequential and hierarchical crew patterns map naturally to real-world workflows: enumerate subdomains → analyze DNS history → check WHOIS records → compile findings into actionable reports

CTA + CrewAI Use Cases

Practical scenarios where CrewAI combined with the CTA MCP Server delivers measurable value.

01

Automated multi-step research: a reconnaissance agent queries CTA for raw data, then a second analyst agent cross-references findings and flags anomalies. all without human handoff

02

Scheduled intelligence reports: set up a crew that periodically queries CTA, analyzes trends over time, and generates executive briefings in markdown or PDF format

03

Multi-source enrichment pipelines: chain CTA tools with other MCP servers in the same crew, letting agents correlate data across multiple providers in a single workflow

04

Compliance and audit automation: a compliance agent queries CTA against predefined policy rules, generates deviation reports, and routes findings to the appropriate team

CTA MCP Tools for CrewAI (11)

These 11 tools become available when you connect CTA to CrewAI via MCP:

01

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

02

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

03

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

04

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

05

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

06

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

07

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

08

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

09

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

10

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

11

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 CrewAI

Ready-to-use prompts you can give your CrewAI agent to start working with CTA immediately.

01

"When is the next Red Line train arriving at Clark/Lake?"

02

"Show me all CTA bus stops on route 22 Clark."

03

"How is CTA running today? Any delays on the L or bus routes?"

Troubleshooting CTA MCP Server with CrewAI

Common issues when connecting CTA to CrewAI through the Vinkius, and how to resolve them.

01

MCP tools not discovered

Ensure the Edge URL is correct. CrewAI connects lazily when the crew starts. check console output.
02

Agent not using tools

Make the task description specific. Instead of "do something", say "Use the available tools to list contacts".
03

Timeout errors

CrewAI has a 10s connection timeout by default. Ensure your network can reach the Edge URL.
04

Rate limiting or 429 errors

Vinkius enforces per-token rate limits. Check your subscription tier and request quota in the dashboard. Upgrade if you need higher throughput.

CTA + CrewAI FAQ

Common questions about integrating CTA MCP Server with CrewAI.

01

How does CrewAI discover and connect to MCP tools?

CrewAI connects to MCP servers lazily. when the crew starts, each agent resolves its MCP URLs and fetches the tool catalog via the standard tools/list method. This means tools are always fresh and reflect the server's current capabilities. No tool schemas need to be hardcoded.
02

Can different agents in the same crew use different MCP servers?

Yes. Each agent has its own mcps list, so you can assign specific servers to specific roles. For example, a reconnaissance agent might use a domain intelligence server while an analysis agent uses a vulnerability database server.
03

What happens when an MCP tool call fails during a crew run?

CrewAI wraps tool failures as context for the agent. The LLM receives the error message and can decide to retry with different parameters, fall back to a different tool, or mark the task as partially complete. This resilience is critical for production workflows.
04

Can CrewAI agents call multiple MCP tools in parallel?

CrewAI agents execute tool calls sequentially within a single reasoning step. However, you can run multiple agents in parallel using process=Process.parallel, each calling different MCP tools concurrently. This is ideal for workflows where separate data sources need to be queried simultaneously.
05

Can I run CrewAI crews on a schedule (cron)?

Yes. CrewAI crews are standard Python scripts, so you can invoke them via cron, Airflow, Celery, or any task scheduler. The crew.kickoff() method runs synchronously by default, making it straightforward to integrate into existing pipelines.

Connect CTA to CrewAI

Get your token, paste the configuration, and start using 11 tools in under 2 minutes. No API key management needed.