CATA Bus MCP Server
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: Bangalore BMTC Mobility Connectivity Platform
π Quick Start
Installation
# Clone the repository
git clone https://github.com/yourusername/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.
π€ 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
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
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