protogrid

Search / com.transitmcp/transit-mcp

Transit MCP

not classified

Real-time DC Metro and NYC Subway arrivals, alerts, stations, and DC buses. Read-only, no login.

v6.0.0 · active · repository · website · descriptor JSON · versions

Not classified yet.The remote endpoints have not been probed successfully, or the listing has nothing to connect to.
Quality96new
Trust74of 100
Uptime, 30 days92%
Latency p50620 ms

Connect

8 clients · secrets stay placeholders
{
  "mcpServers": {
    "transit-mcp": {
      "type": "http",
      "url": "https://transitmcp.com/mcp"
    }
  }
}
claude mcp add --transport http transit-mcp https://transitmcp.com/mcp
[mcp_servers.transit-mcp]
url = "https://transitmcp.com/mcp"
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "transit-mcp": {
      "type": "remote",
      "url": "https://transitmcp.com/mcp",
      "enabled": true
    }
  }
}
{
  "mcpServers": {
    "transit-mcp": {
      "type": "http",
      "url": "https://transitmcp.com/mcp"
    }
  },
  "deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=transit-mcp&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vdHJhbnNpdG1jcC5jb20vbWNwIn0%3D"
}
{
  "servers": {
    "transit-mcp": {
      "type": "http",
      "url": "https://transitmcp.com/mcp"
    }
  }
}
{
  "mcpServers": {
    "transit-mcp": {
      "httpUrl": "https://transitmcp.com/mcp"
    }
  }
}
extensions:
  "transit-mcp":
    enabled: true
    name: "transit-mcp"
    type: streamable_http
    uri: "https://transitmcp.com/mcp"
    timeout: 300

Quality 96 / 100new

protocol100 · weight 25
  • pass
    protocol.modernsupports 2026-07-28 (server/discover)
  • pass
    protocol.statelessanswers without a session
  • pass
    protocol.transportstreamable HTTP
  • pass
    protocol.list_ttltool list is cacheable (ttlMs 86400000)
authorizationn/a · weight 15
  • n/a
    auth.prm, auth.as_metadata, auth.cimdno remote uses OAuth
  • n/a
    auth.secret_in_urlno templated URL
tool hygiene93 · weight 30
  • pass
    tools.descriptionsevery tool has a description
  • warn
    tools.description_length1 tools have descriptions over 1,024 characters, which crowds the context
  • pass
    tools.schemasevery tool has an object input schema
  • pass
    tools.annotations18 of 18 tools declare readOnlyHint or destructiveHint
  • pass
    tools.directory_hintsevery tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
  • pass
    tools.token_costabout 4,501 tokens to load every tool
  • pass
    tools.api_dumptools are not a one-to-one API dump
stabilityn/a · weight 15
  • n/a
    stability.changes, stability.rug_pulltool history recorded for 3 of the 7 days needed
dependenciesn/a · weight 15
  • n/a
    deps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI package

18 tools, about 4,501 tokens to load them all · tool set 0973938d7401 · tools last changed 2026-10-20 · checked 2026-10-20 16:30 UTC

Tool changes

  • get_departureschangeddescription, input schema, output schema
    before

    Find what leaves a stop next, the first service or last service in a bounded window. Pass a stopRef from find_transit, or a stop name with its coverage (one station complex resolves directly; different same-named stations return candidates). A station covers its whole complex, e.g. every line at Times Sq-42 St; a platform ref covers that platform. Returns dated trip references for get_vehicle_status. Use plan_trip for journeys; departures cannot establish a route or connection.

    after · 76% of words in common

    Find what leaves a stop next, the first service or last service in a bounded window. Pass a stopRef from find_transit, or a stop name with its coverage (one station complex resolves directly; different same-named stations return candidates). A station covers its whole complex, e.g. every line at Times Sq-42 St; a platform ref covers that platform. Pass toStop or toStopRef for the next trips from here that stop at a destination, each with its arrival time there. Returns dated trip references for get_vehicle_status. For a journey with a change use plan_trip (with routes where needed): departures alone cannot prove a connection.

  • plan_tripchangeddescription, input schema, output schema
    before

    Plan an origin-to-destination journey when find_transit reports available coverage with planning enabled. Returns up to three independently validated itineraries and resolves named endpoints together; departure defaults to now. The whole journey must finish within windowSeconds (default two hours): if none is found for a long trip, retry with a larger window. Each transit leg carries a tripInstanceRef; pass it to get_vehicle_status to see where that train is now. For a wheelchair user or anyone avoiding stairs, set accessibility: "step_free": journeys then board, alight and change only at platforms step-free from the street per the agency (partial stations by direction), avoiding stations cut off by a current elevator outage; in-station changes between such platforms are taken as step-free. It refuses with ACCESSIBILITY_UNAVAILABLE when no current elevator report exists and ENDPOINT_NOT_STEP_FREE when an endpoint has no step-free platform now (get_service_status lists the outages). Never assemble or repair journeys from get_departures.

    after · 71% of words in common

    Plan an origin-to-destination journey. Returns up to three independently validated itineraries and resolves named endpoints together; departure defaults to now. When no itinerary is possible (planning withheld, as in SF Bay; a search too large; or nothing found, such as a bus trip) it returns routeHints: lines near each end and direct lines serving both. Call again with routes (the lines you would ride, from routeHints or your own knowledge) to plan along only those lines, which works wherever schedules exist. Present only returned itineraries as confirmed. The whole journey must finish within windowSeconds (default two hours): if none is found for a long trip, retry with a larger window. Each transit leg carries a tripInstanceRef; pass it to get_vehicle_status to see where that train is now. For a wheelchair user or anyone avoiding stairs, set accessibility: "step_free": journeys then board, alight and change only at platforms step-free from the street per the agency (partial stations by direction), avoiding stations cut off by a current elevator outage; in-station changes between such platforms are taken as step-free. It refuses with ACCESSIBILITY_UNAVAILABLE when no current elevator report exists and ENDPOINT_NOT_STEP_FREE when an endpoint has no step-free platform now (get_service_status lists the outages). Never present a journey pieced together from get_departures as confirmed; check it here with routes.

  • get_vehicle_statuschangedoutput schema
  • get_service_statuschangeddescription, output schema
    before

    Check disruptions, delays, closures, accessibility alerts or revalidate a chosen itinerary without replacing it. Scope by coverage or an agency, route, stop or dated trip reference. Aggregate scopes include canonical service in the next 24 hours. Use get_vehicle_status for an observed vehicle location.

    after · 61% of words in common

    Check disruptions, delays, closures, elevator and escalator outages, or revalidate a chosen itinerary without replacing it. Scope by coverage or an agency, route, stop or dated trip reference; a station covers its complex. Aggregate scopes include canonical service in the next 24 hours. equipment lists elevator/escalator outages: accessiblePath marks the step-free route, blocksStepFree marks stations step-free plan_trip avoids, and alternativeRoute is the agency's way around. Use get_vehicle_status for an observed vehicle location.

  • get_departureschangedoutput schema
  • plan_tripchangeddescription, input schema, output schema
    before

    Plan an origin-to-destination journey when find_transit reports available coverage with planning enabled. Returns up to three independently validated itineraries and resolves named endpoints together; departure defaults to now. The whole journey must finish within windowSeconds (default two hours): if none is found for a long trip, retry with a larger window. Each transit leg carries a tripInstanceRef; pass it to get_vehicle_status to see where that train is now. Never assemble or repair journeys from get_departures.

    after · 59% of words in common

    Plan an origin-to-destination journey when find_transit reports available coverage with planning enabled. Returns up to three independently validated itineraries and resolves named endpoints together; departure defaults to now. The whole journey must finish within windowSeconds (default two hours): if none is found for a long trip, retry with a larger window. Each transit leg carries a tripInstanceRef; pass it to get_vehicle_status to see where that train is now. For a wheelchair user or anyone avoiding stairs, set accessibility: "step_free": journeys then board, alight and change only at platforms step-free from the street per the agency (partial stations by direction), avoiding stations cut off by a current elevator outage; in-station changes between such platforms are taken as step-free. It refuses with ACCESSIBILITY_UNAVAILABLE when no current elevator report exists and ENDPOINT_NOT_STEP_FREE when an endpoint has no step-free platform now (get_service_status lists the outages). Never assemble or repair journeys from get_departures.

  • find_transitchangedoutput schema
  • get_vehicle_statuschangedtitle, description, input schema, output schema, annotationsmeaning changed
    before

    Locate an observed vehicle on a dated trip or list observed vehicles on a route. Requires a dated trip-instance or route reference, never a bare train number or stop. Use find_transit to resolve identity and get_departures for approaching service.

    after · 25% of words in common

    Where observed trains are right now. Pass a route ref to list its trains, a dated trip ref (from get_departures or a plan_trip leg) to find that train, or a station (stopRef, or a name with coverage) to see trains stopped at or heading to it; a station covers its whole complex. Each train reports the stop it is at or heading to (stopStatus), the stop it last served, and its destination. Coordinates are the vehicle's own when the agency sends them (DC); otherwise a stopped train is placed at its station and a moving one has none. Never pass a bare train number: use find_transit.

  • get_departureschangeddescription
    before

    Find what leaves a stop next, the first service or last service in a bounded window. Pass a stopRef from find_transit, or a stop name with its coverage (one station complex resolves directly; different same-named stations return candidates). Returns dated trip references for get_vehicle_status. Use plan_trip for journeys; departures cannot establish a route or connection.

    after · 78% of words in common

    Find what leaves a stop next, the first service or last service in a bounded window. Pass a stopRef from find_transit, or a stop name with its coverage (one station complex resolves directly; different same-named stations return candidates). A station covers its whole complex, e.g. every line at Times Sq-42 St; a platform ref covers that platform. Returns dated trip references for get_vehicle_status. Use plan_trip for journeys; departures cannot establish a route or connection.

  • plan_tripchangeddescription
    before

    Plan an origin-to-destination journey when find_transit reports available coverage with planning enabled. Returns up to three independently validated itineraries and resolves named endpoints together; departure defaults to now. Never assemble or repair journeys from get_departures.

    after · 54% of words in common

    Plan an origin-to-destination journey when find_transit reports available coverage with planning enabled. Returns up to three independently validated itineraries and resolves named endpoints together; departure defaults to now. The whole journey must finish within windowSeconds (default two hours): if none is found for a long trip, retry with a larger window. Each transit leg carries a tripInstanceRef; pass it to get_vehicle_status to see where that train is now. Never assemble or repair journeys from get_departures.

Showing the latest 10. Full history: list_changes · trend: quality JSON.

Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.

Trust 74 / 100

provenance85
liveness27
freshness100
hygiene100

+repository +dns-namespace +website -unreachable(1 failures) +updated-3d-ago

Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.

Endpoints

remoteauthreachableuptime 30dp50protocollast ok
https://transitmcp.com/mcp streamable-httpnoneno (1 failures)92%620 ms2026-07-282026-10-20

Tools (18)

find_transitread-onlyResolve a coverage, agency, route, station, stop, or a currently observed train number (where vehicle data exists); inspect an exact reference or nearby coordinates. Context ranks candidates without selecting identity. No general address geocoding. Use plan_trip for journeys.
get_all_stationsread-onlyGet the complete list of transit stations with coordinates for one city. Large result; prefer search_stations or get_stations_by_line when looking for specific stations.
get_bus_positionsread-onlyGet real-time positions of DC Metro buses, optionally filtered by route.
get_bus_predictionsread-onlyGet real-time bus arrival predictions for a DC Metro bus stop.
get_bus_routesread-onlyGet all DC Metro bus routes with route IDs and descriptions.
get_bus_stopsread-onlyGet DC Metro bus stops. Returns all stops or filters by lat/lon/radius.
get_departuresread-onlyFind what leaves a stop next, the first service or last service in a bounded window. Pass a stopRef from find_transit, or a stop name with its coverage (one station complex resolves directly; different same-named stations return candidates). A station covers its whole complex, e.g. every line at Times Sq-42 St; a platform ref covers that platform. Pass toStop or toStopRef for the next trips from here that stop at a destination, each with its arrival time there. Returns dated trip references for get_vehicle_status. For a journey with a change use plan_trip (with routes where needed): departures alone cannot prove a connection.
get_elevator_incidentsread-onlyGet current elevator and escalator outages. DC Metro only.
get_incidentsread-onlyGet current transit incidents and service advisories for DC Metro or NYC Subway.
get_route_inforead-onlyGet detailed information about a transit route including service patterns. NYC Subway only.
get_service_statusread-onlyCheck disruptions, delays, closures, elevator and escalator outages, or revalidate a chosen itinerary without replacing it. Scope by coverage or an agency, route, stop or dated trip reference; a station covers its complex. Aggregate scopes include canonical service in the next 24 hours. equipment lists elevator/escalator outages: accessiblePath marks the step-free route, blocksStepFree marks stations step-free plan_trip avoids, and alternativeRoute is the agency's way around. Use get_vehicle_status for an observed vehicle location.
get_station_predictionsread-onlyGet real-time train arrival predictions for a transit station. Supports DC Metro and NYC Subway. Accepts a station name or an exact station ID; if a name matches several stations, the result lists the candidates to choose from.
get_stations_by_lineread-onlyGet all stations on a specific transit line. Supports DC Metro and NYC Subway.
get_station_transfersread-onlyGet transfer connections and nearby stations from a transit station. NYC Subway only.
get_train_positionsread-onlyGet real-time positions of all trains on the DC Metro system.
get_vehicle_statusread-onlyWhere observed trains are right now. Pass a route ref to list its trains, a dated trip ref (from get_departures or a plan_trip leg) to find that train, or a station (stopRef, or a name with coverage) to see trains stopped at or heading to it; a station covers its whole complex. Each train reports the stop it is at or heading to (stopStatus), the stop it last served, and its destination. Coordinates are the vehicle's own when the agency sends them (DC); otherwise a stopped train is placed at its station and a moving one has none. Never pass a bare train number: use find_transit.
plan_tripread-onlyPlan an origin-to-destination journey. Returns up to three independently validated itineraries and resolves named endpoints together; departure defaults to now. When no itinerary is possible (planning withheld, as in SF Bay; a search too large; or nothing found, such as a bus trip) it returns routeHints: lines near each end and direct lines serving both. Call again with routes (the lines you would ride, from routeHints or your own knowledge) to plan along only those lines, which works wherever schedules exist. Present only returned itineraries as confirmed. The whole journey must finish within windowSeconds (default two hours): if none is found for a long trip, retry with a larger window. Each transit leg carries a tripInstanceRef; pass it to get_vehicle_status to see where that train is now. For a wheelchair user or anyone avoiding stairs, set accessibility: "step_free": journeys then board, alight and change only at platforms step-free from the street per the agency (partial stations by direction), avoiding stations cut off by a current elevator outage; in-station changes between such platforms are taken as step-free. It refuses with ACCESSIBILITY_UNAVAILABLE when no current elevator report exists and ENDPOINT_NOT_STEP_FREE when an endpoint has no step-free platform now (get_service_status lists the outages). Never present a journey pieced together from get_departures as confirmed; check it here with routes.
search_stationsread-onlySearch for transit stations by name or code. Supports DC Metro and NYC Subway.

Schemas: list_tools.

Similar MCP servers

Official server.json
{
  "name": "com.transitmcp/transit-mcp",
  "icons": [
    {
      "src": "https://transitmcp.com/metro-mcp.png",
      "sizes": [
        "1024x1024"
      ],
      "mimeType": "image/png"
    }
  ],
  "title": "Transit MCP",
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "remotes": [
    {
      "url": "https://transitmcp.com/mcp",
      "type": "streamable-http"
    }
  ],
  "version": "6.0.0",
  "repository": {
    "url": "https://github.com/Aarekaz/metro-mcp",
    "source": "github"
  },
  "websiteUrl": "https://transitmcp.com",
  "description": "Real-time DC Metro and NYC Subway arrivals, alerts, stations, and DC buses. Read-only, no login."
}