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