Skip to main content
Glama

CATA Bus MCP Server

🚌 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

🚀 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 --http

The HTTP server will be available at http://localhost:7000

🛠️ Available Tools

ToolDescriptionParameters
list_routesGet all bus routesNone
search_stopsFind stops by name/IDquery: string
next_arrivalsGet upcoming arrivals at a stopstop_id: string, horizon_minutes?: int
vehicle_positionsTrack buses on a routeroute_id: string
trip_alertsGet service alertsroute_id?: string

💻 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

  1. Install the MCP client in ChatGPT
  2. Add this server configuration:
{ "name": "catabus", "command": "python", "args": ["-m", "catabus_mcp.server"], "description": "CATA bus schedule and realtime data" }
  1. 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_mcp

Code 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:

  1. Fork the repository
  2. Create a feature branch
  3. Write tests for new functionality
  4. Ensure all tests pass
  5. Submit a pull request

📞 Support

🎯 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 errors
  • python -m catabus_mcp.server starts successfully
  • Static GTFS data loads on startup
  • Realtime polling begins automatically
  • list_routes_tool returns CATA routes
  • search_stops_tool finds stops by query
  • next_arrivals_tool returns predictions with delays
  • vehicle_positions_tool shows bus locations
  • trip_alerts_tool displays active alerts
  • Tests pass with pytest
  • Type checking passes with mypy

Version: 0.1.0
Status: Production Ready
Last Updated: 2024

-
security - not tested
A
license - permissive license
-
quality - not tested

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

Provides real-time and scheduled bus data for the Centre Area Transportation Authority (CATA) in State College, PA. Enables users to track live bus positions, get arrival predictions, search stops, view routes, and receive service alerts through natural language queries.

  1. 🌟 Features
    1. 🚀 Quick Start
      1. Installation
      2. Running the Server
    2. 🛠️ Available Tools
      1. 💻 API Examples
        1. Using with cURL (HTTP mode)
        2. Integration with ChatGPT
        3. Integration with Claude Desktop
      2. 🧪 Development
        1. Running Tests
        2. Code Quality
      3. 📊 Data Sources
        1. 🏗️ Architecture
          1. ⚡ Performance
            1. 📝 License
              1. 🙏 Attribution
                1. 🤝 Contributing
                  1. 📞 Support
                    1. 🎯 Roadmap
                      1. ✅ Manual Acceptance Checklist

                        Related MCP Servers

                        • A
                          security
                          F
                          license
                          A
                          quality
                          Facilitates real-time access to Singapore's Land Transport Authority (LTA) transportation data, offering insights into bus arrivals, train services, traffic conditions, and more through integration with the LTA DataMall API.
                          Last updated -
                          7
                          3
                        • -
                          security
                          A
                          license
                          -
                          quality
                          Provides real-time access to Bangalore's public transportation information including bus tracking, schedules, routes, and service updates to improve passenger experience.
                          Last updated -
                          3
                          MIT License
                        • A
                          security
                          F
                          license
                          A
                          quality
                          A Model Context Protocol server that provides real-time Caltrain schedule information, allowing AI assistants to look up train departures between any stations and access station information using GTFS data.
                          Last updated -
                          2
                          6
                        • -
                          security
                          F
                          license
                          -
                          quality
                          An MCP server for accessing college basketball statistics through the SportsData.io CBB v3 Stats API, enabling AI agents to retrieve and analyze college basketball data through natural language interactions.
                          Last updated -

                        View all related MCP servers

                        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