simplyjackfoster/septa-mcp-python
If you are the rightful owner of septa-mcp-python and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.
MCP Server for SEPTA in Python is a server implementation designed to facilitate communication and data exchange for the Southeastern Pennsylvania Transportation Authority (SEPTA) using the Model Context Protocol (MCP).
SEPTA MCP Server (Python)
This repository provides a Model Context Protocol (MCP) server that exposes SEPTA's public transit APIs as structured tools. It lets MCP-compatible clients fetch realtime and scheduled information about buses, trolleys, subways, and Regional Rail through a consistent interface.
Installation
- Ensure Python 3.11+ is available.
- Install the package (use the optional dev extras if you plan to contribute):
pip install -e .[dev] - Start the server via the console script:
septa-mcp
Configuration
Configuration is driven by environment variables with the SEPTA_ prefix:
SEPTA_BASE_URL(default:https://www3.septa.org/): Base URL for all SEPTA API requests.SEPTA_TIMEOUT_SECONDS(default:10.0): Timeout in seconds for HTTP requests.SEPTA_LOG_LEVEL(default:INFO): Logging verbosity for the server.SEPTA_API_KEY(optional): API key passed as a bearer token when required.
Available tools
The server registers the following tools (names match the MCP tool identifiers):
- arrivals: Upcoming arrivals for a station with optional direction and time window.
- next_to_arrive: Next available trips between an origin and destination, with optional datetime and travel preferences.
- train_view: Real-time Regional Rail train data, filterable by train or line.
- transit_view: Real-time vehicle locations for a specific bus route, with caching to limit repeat requests.
- transit_view_all: Real-time vehicle locations for all bus routes, optionally cached briefly.
- bus_detours: Current detours for all bus routes or a specific route.
- alerts_basic: Basic service alerts, optionally limited to a route.
- alerts_messages: Detailed alert messages, optionally filtered by route or mode.
- elevator_outages: System-wide elevator outage information.
- rr_schedule: Regional Rail timetables between an origin and destination, with optional datetime.
- bus_schedule: Scheduled bus trips for a stop/route/direction via the SMS bus schedule endpoint.
- sms_schedule: SMS-formatted schedule data for a stop, with optional route and direction filters.
- stops: Stop listing for a route/direction or lookup by stop id, with optional route normalization.
- locations: Nearby stops or stations based on latitude/longitude and optional radius.
- gtfs_feed: Downloadable GTFS feed archives such as
google,google_bus,google_rail, orcct.
Example prompts
Use natural language to trigger the MCP tools in your client. Examples:
- "Show arrivals at 30th Street Station heading east in the next 20 minutes."
- "Find the next trains from Suburban Station to Trenton after 5pm."
- "List current bus detours for route 17."
- "Get TransitView data for route 47 and cache the response."
- "Download the latest
google_railGTFS feed."
Contributing
See for guidance on development workflow, style, tests, and CI expectations.