Skip to main content
Glama
Pranav-Karra-3301

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

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

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

πŸ› οΈ Available Tools

Tool

Description

Parameters

list_routes

Get all bus routes

None

search_stops

Find stops by name/ID

query: string

next_arrivals

Get upcoming arrivals at a stop

stop_id: string, horizon_minutes?: int

vehicle_positions

Track buses on a route

route_id: string

trip_alerts

Get service alerts

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

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

Install Server
A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

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