CATA Bus MCP Server
The CATA Bus MCP Server provides live and static schedule data for the Centre Area Transportation Authority (CATA) bus system in State College, PA, enabling real-time transit tracking and schedule queries.
List all bus routes – Retrieve all available CATA bus routes with their ID, short name, long name, and color.
Search for stops – Find bus stops by name, ID, or description, returning location details (latitude/longitude).
Get next arrivals – Query upcoming bus arrivals at a specific stop within a configurable time horizon (default 30 minutes), including delay information.
Track vehicle positions – Get real-time locations of buses on a specific route, including coordinates, bearing, and speed.
View service alerts – Retrieve active service alerts such as detours or disruptions, optionally filtered by route.
Health check – Verify the server is running and ready.
Initialize data – Manually trigger the loading/refresh of GTFS static schedule data.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@CATA Bus MCP Serverwhen is the next N route bus from the HUB?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
🚌 CATA Bus MCP Server
A Model Context Protocol (MCP) server that provides live and static schedule data for the Centre Area Transportation Authority (CATA) bus system in State College, PA.
🌟 Features
Real-time vehicle positions - Track buses live on their routes
Trip updates - Get delay information and predicted arrivals
Service alerts - Stay informed about detours and disruptions
Static schedule data - Access routes, stops, and scheduled times
Fast in-memory storage - No database required, pure Python performance
Related MCP server: Winnipeg City MCP Server
🚀 Quick Start
Installation
# Clone the repository
git clone https://github.com/Pranav-Karra-3301/catabus-mcp.git
cd catabus-mcp
# Install dependencies
pip install -e .Running the Server
# Run in stdio mode (for MCP clients)
python -m catabus_mcp.server
# Run in HTTP mode (for testing)
python -m catabus_mcp.server --httpThe HTTP server will be available at http://localhost:7000
🛠️ Available Tools
Tool | Description | Parameters |
| Get all bus routes | None |
| Find stops by name/ID |
|
| Get upcoming arrivals at a stop |
|
| Track buses on a route |
|
| Get service alerts |
|
💻 API Examples
Using with cURL (HTTP mode)
# List all routes
curl -X POST http://localhost:7000/mcp \
-H "Content-Type: application/json" \
-d '{"method":"list_routes_tool","params":{}}'
# Search for stops
curl -X POST http://localhost:7000/mcp \
-H "Content-Type: application/json" \
-d '{"method":"search_stops_tool","params":{"query":"HUB"}}'
# Get next arrivals
curl -X POST http://localhost:7000/mcp \
-H "Content-Type: application/json" \
-d '{"method":"next_arrivals_tool","params":{"stop_id":"PSU_HUB","horizon_minutes":30}}'Integration with ChatGPT
Install the MCP client in ChatGPT
Add this server configuration:
{
"name": "catabus",
"command": "python",
"args": ["-m", "catabus_mcp.server"],
"description": "CATA bus schedule and realtime data"
}Ask questions like:
"When is the next N route bus from the HUB?"
"Are there any service alerts for the V route?"
"Show me all buses currently on the W route"
Integration with Claude Desktop
Add to your Claude Desktop configuration:
{
"mcpServers": {
"catabus": {
"command": "python",
"args": ["-m", "catabus_mcp.server"]
}
}
}🧪 Development
Running Tests
# Install dev dependencies
pip install -e ".[dev]"
# Run tests
pytest
# Run with coverage
pytest --cov=catabus_mcpCode Quality
# Format code
black src/
# Lint
ruff check src/
# Type checking
mypy src/catabus_mcp/📊 Data Sources
This server uses official CATA data feeds:
Static GTFS: https://catabus.com/wp-content/uploads/google_transit.zip
GTFS-Realtime Vehicle Positions: https://realtime.catabus.com/InfoPoint/GTFS-Realtime.ashx?Type=VehiclePosition
GTFS-Realtime Trip Updates: https://realtime.catabus.com/InfoPoint/GTFS-Realtime.ashx?Type=TripUpdate
GTFS-Realtime Alerts: https://realtime.catabus.com/InfoPoint/GTFS-Realtime.ashx?Type=Alert
Data is cached locally and updated:
Static GTFS: Daily
Realtime feeds: Every 15 seconds
🏗️ Architecture
catabus-mcp/
├── src/catabus_mcp/
│ ├── ingest/ # Data loading and polling
│ │ ├── static_loader.py
│ │ └── realtime_poll.py
│ ├── tools/ # MCP tool implementations
│ │ ├── list_routes.py
│ │ ├── search_stops.py
│ │ ├── next_arrivals.py
│ │ ├── vehicle_positions.py
│ │ └── trip_alerts.py
│ └── server.py # FastMCP server
└── tests/ # Test suite⚡ Performance
Warm cache response time: < 100ms for all queries
Memory usage: ~50MB with full GTFS data loaded
Rate limiting: Respects CATA's 10-second minimum between requests
📝 License
MIT License - See LICENSE file
🙏 Attribution
Transit data provided by Centre Area Transportation Authority (CATA). This project is not affiliated with or endorsed by CATA.
Built by Pranav Karra.
🤝 Contributing
Contributions are welcome! Please:
Fork the repository
Create a feature branch
Write tests for new functionality
Ensure all tests pass
Submit a pull request
📞 Support
Issues: GitHub Issues
Discussions: GitHub Discussions
🎯 Roadmap
Add trip planning capabilities
Support for accessibility features
Historical data analysis
Geospatial queries (nearest stop)
Multi-agency support
✅ Manual Acceptance Checklist
pip install -e .completes without errorspython -m catabus_mcp.serverstarts successfullyStatic GTFS data loads on startup
Realtime polling begins automatically
list_routes_toolreturns CATA routessearch_stops_toolfinds stops by querynext_arrivals_toolreturns predictions with delaysvehicle_positions_toolshows bus locationstrip_alerts_tooldisplays active alertsTests pass with
pytestType checking passes with
mypy
Version: 0.1.0
Status: Production Ready
Last Updated: 2024
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Alicense-qualityDmaintenanceEnables users to interact with Washington DC Metro (WMATA) transit system through natural language queries. Provides real-time train arrivals, service alerts, station information, trip planning, and accessibility updates.939MIT
- AlicenseAqualityDmaintenanceProvides access to real-time Winnipeg Transit data and 311 City Services, enabling AI assistants to plan trips, check bus arrivals, and search for reported city issues. It allows users to interact with city infrastructure data and transit schedules through natural language.8MIT
- AlicenseBqualityFmaintenanceEnables AI clients to access Boston's MBTA public transit data, including real-time predictions, schedules, route planning, and service alerts.321Apache 2.0
- Flicense-qualityDmaintenanceEnables natural language queries for Porto Alegre's public transport system, including route planning, stop search, and route information via Claude Desktop or any MCP-compatible client.
Related MCP Connectors
Real-time transit stops, routes, arrivals, vehicle positions, and schedules via OneBusAway APIs.
SEPTA MCP — Philadelphia SEPTA real-time transit (www3.septa.org/api, keyless)
MBTA MCP — Boston real-time transit via the MBTA v3 API (api-v3.mbta.com)
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Pranav-Karra-3301/catabus-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server