Skip to main content
Glama

marta-mcp

An MCP server for Atlanta MARTA real-time transit data. Ask Claude things like "When's the next northbound Red Line train at Midtown?" or "Where are the buses on route 110 right now?"

Tools

Tool

Data source

API key?

get_rail_arrivals

Rail real-time RESTful API — arrival predictions for every station, filterable by station / line / direction

Yes

list_rail_stations

Static — canonical station names

No

get_bus_positions

GTFS-realtime vehicle positions feed (protobuf)

No

get_bus_trip_updates

GTFS-realtime trip updates feed (protobuf)

No

Related MCP server: gtfs-pro-mcp

API key setup

Rail data requires a free MARTA API key — register here.

The key is never stored in this project or in your MCP client config. The server reads it from, in order:

  1. The MARTA_API_KEY environment variable

  2. ~/.marta/config.json:

    { "api_key": "your-key-here" }

The easiest way to create the config file:

uvx --from git+https://github.com/thejiraguy/marta-mcp marta-mcp-config <your-key>

Installation

Option 1 — Claude Desktop extension (one-click)

Requires uv to be installed.

Download marta-mcp.dxt (or .mcpb — same file, newer name) from the latest release and double-click it, or drag it into Claude Desktop's Settings → Extensions. No JSON editing needed.

The extension is a thin manifest: Claude Desktop launches the server with uvx --from git+<this repo>, fetching the package and its dependencies on first run — so it works on any OS and always tracks the repo's main branch.

Build it yourself (requires Node.js):

bash scripts/build_dxt.sh          # macOS / Linux
powershell -ExecutionPolicy Bypass -File scripts\build_dxt.ps1   # Windows

Option 2 — uvx straight from GitHub

Add to your MCP client config (e.g. claude_desktop_config.json):

{
  "mcpServers": {
    "marta": {
      "command": "uvx",
      "args": ["--from", "git+https://github.com/thejiraguy/marta-mcp", "marta-mcp"]
    }
  }
}

Option 3 — local clone

git clone https://github.com/thejiraguy/marta-mcp
cd marta-mcp
uv run marta-mcp

Development

uv sync
uv run pytest          # live smoke tests against MARTA's APIs

Notes

  • Bus route_id values are MARTA's internal GTFS identifiers, which don't always match the public route numbers. Pair this server with MARTA's static GTFS feed if you need the mapping.

  • This project is not affiliated with or endorsed by MARTA. MARTA's marks may not be used without written authorization.

License

MIT

Available Tools

4 tools
get_bus_positionsA

Get live MARTA bus vehicle positions from the GTFS-realtime feed.

Inputs: limit, route. Returns: object

get_bus_trip_updatesA

Get live MARTA bus arrival/departure predictions (GTFS-realtime trip updates).

Inputs: limit, route, stop_id, stops_per_trip. Returns: object

get_rail_arrivalsB

Get real-time MARTA train arrival predictions.

Inputs: line, station, direction. Returns: object

list_rail_stationsA

List all MARTA rail station names accepted by get_rail_arrivals.

Inputs: no named parameters. Returns: result

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A4/5.0

    Scored across 4 tools

    Disambiguation5/5

    Each tool targets a distinct aspect of MARTA transit data: bus positions, bus trip updates, rail arrivals, and rail stations. No overlap in functionality.

    Naming Consistency5/5

    All tools use a consistent verb_noun pattern in snake_case (e.g., get_bus_positions, list_rail_stations). The minor variation of 'list_' for stations is standard for listing endpoints.

    Tool Count5/5

    4 tools is an appropriate scope for a real-time transit data server, covering bus and rail essentials without being too sparse or overwhelming.

    Completeness4/5

    The tool set covers core real-time functionality for both bus and rail. However, it lacks a bus route or station list analogous to list_rail_stations, which could be a minor gap for agents needing bus station identifiers.

    Maintenance

    ActivityNo data
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      C
      maintenance
      MCP server exposing Montevideo public transportation data (STM) as tools for AI assistants, enabling natural language queries about routes, stops, arrivals, and trip planning.
      20 npm
      1
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      MCP server for real-time German public transport data (HAFAS/VBN network). Enables querying departures, arrivals, journeys, and nearby stops using natural language.
      ISC