c

catabus-mcp

@Pranav-Karra-3301/catabus-mcp
0 Stars 169 次浏览 Pranav-Karra-3301 更新于 2026-08-23

MCP 服务配置

复制以下 JSON 到 OPClaw 或其他 MCP 客户端的配置文件中即可使用

{
  "mcpServers": {
    "catabus": {
      "args": [
        "-m",
        "catabus_mcp.server"
      ],
      "command": "python"
    }
  }
}

服务介绍

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

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

相关 MCP 服务