Use the Transit API with your AI assistant

BusMaps MCP connects Claude, ChatGPT, Codex, Gemini, Cursor and other AI clients to transit routes, isochrones, departures, stops, vehicles, geocoding and GTFS information. Sign in to BusMaps with email and password or Google. Requests use your account's current API coverage and limits.

Works with

What is MCP?

The Model Context Protocol connects AI assistants to external tools and data. BusMaps publishes callable transit tools, API guides, response schemas and examples. Your assistant can read the contract and make requests on your behalf. MCP and direct REST requests use the same account access and allowance.

What your agent can do

get_account

Shows your display name, API plan, allowed coverage and data sources. Does not return your API key.

get_gtfs_feeds_catalog

Lists source GTFS records, validation reports, licenses, hashes and versioned download links. Enhanced datasets and custom exports are requested separately.

plan_transit_route

Plans a journey between two points by bus, subway, train or tram. Returns route options with legs, board and alight stops, times, transfers, an encoded polyline, and predicted times where live data exists. The barrierMode filter can require explicitly wheelchair-accessible stops, trips, or both.

calculate_transit_isochrone

Calculates areas reachable by public transport and walking from a point, or areas that can reach it by an arrival time. Returns cumulative travel-time contours, their area, and a reachable stop count. Geometry uses precision-6 encoded rings by default, with GeoJSON available on request.

calculate_transit_isochrone_from_shape

Calculates the same reachability from a line or area boundary within 1000 by 1000 meters. Supports travel-time thresholds, departure or arrival time, transfer limits, and walking options.

get_departures

Returns scheduled and live departures from stops near a point or from a specific stop. Delay is realtimeDepartureTime minus scheduledDepartureTime. The barrierMode filter uses the same strict wheelchair-accessibility rules as route planning.

find_nearby_stops

Returns transit stops within a radius of a point, each with its id, name, coordinates, and the lines that serve it.

get_route_timetable

Returns a route's full timetable - its directions, ordered stops and the schedule as a trips x stops grid. The route card for one line.

get_service_alerts

Returns current service disruptions for exactly one route or one operator. It is a lightweight alternative to loading the full route timetable when only alerts are needed.

get_trip_schedule

Returns one trip (a single vehicle run) as an ordered list of stops with arrival and departure times and GTFS boarding rules.

get_vehicle_positions_in_area

Returns a snapshot of current vehicle positions inside a bounding box, with route id, coordinates, direction and timestamp. positionType marks a real GPS fix or an estimated position; results can be filtered to one route or trip.

plan_car_route

Returns driving routes from the full-planet OSRM car service, with distance, duration, geometry, alternatives, and optional turn-by-turn steps.

car_distance_matrix

Returns driving time and distance matrices between multiple origins and destinations.

plan_pedestrian_route

Returns a walking route with turn-by-turn directions from OSRM for the first and last mile to a stop.

pedestrian_distance_matrix

Returns a walking time and distance matrix between multiple points, so the agent can compare which stop is closest on foot.

nominatim_search

Geocodes free text into a full structured postal address as JSON.

nominatim_reverse

Resolves coordinates back to a full structured postal address as JSON.

Voice-ready response tools

These six tools call the live /compact/v1/* endpoints. Their smaller, answer-focused JSON responses reduce tool-call tokens for voice models while preserving the transit facts needed for spoken answers. See the Voice Model-Ready endpoint documentation.

compact_plan_transit_route

Returns up to two structurally distinct compact journeys with services, stops, scheduled and real-time values, accessibility, and alert references.

compact_get_departures

Returns compact scheduled and real-time departures near a point or for an exact stop.

compact_find_nearby_stops

Returns nearby stops sorted by calculated distance, with identifiers for exact follow-up requests.

compact_get_route_timetable

Returns the complete timetable for one route in the compact columnar format.

compact_plan_pedestrian_route

Returns a walking summary and the key manoeuvres needed for first and last mile guidance.

compact_nominatim_search

Returns compact structured place-search results for address queries.

Built to be read by agents

On connect the agent reads the instructions, resources, and schemas, then builds correct requests on its own.

Instructions on connect

The server returns instructions that point the agent to where it should start.

busmaps://start-here, busmaps://recipes, busmaps://compact-api

start-here covers the overview and gotchas like coordinate order. recipes gives complete tool sequences for common screens. compact-api explains the compact response model, tool mapping, live verification workflow, and production REST handoff.

busmaps://schema/<tool>, busmaps://example/<tool>

Each transit tool exposes its response JSON Schema and a trimmed real example, so the agent knows the response shape before it calls.

build_transit_app, explain_api, explain_compact_api

build_transit_app turns one request into an app build plan. explain_api describes the full API. explain_compact_api reads the compact contract and guides representative live calls.

Generated from the contract

Transit tools are generated from the same API contract that drives the docs, with matching response schemas and examples.

No docs to paste

The agent reads the tools, resources, and prompts itself, so nobody pastes documentation into a chat.

Connect your BusMaps account

Server URL: https://mcp.busmaps.com/mcp

Claude / Claude Desktop

  1. Open the connector settings in Claude or Claude Desktop.
  2. Add a custom connector with the server URL https://mcp.busmaps.com/mcp.
  3. Connect the server and sign in to BusMaps with email and password or Google.

Availability depends on your plan and workspace permissions.

ChatGPT

Open ChatGPT and choose + > Add custom MCP server. Enter the server URL, select OAuth and sign in to BusMaps.

Gemini

In the Gemini web app, open Settings > Connected Apps > Custom apps, add the server URL and follow the BusMaps sign-in steps. Google's availability requirements apply.

Cursor (.cursor/mcp.json)

{
  "mcpServers": {
    "busmaps-transit": {
      "type": "http",
      "url": "https://mcp.busmaps.com/mcp"
    }
  }
}

VS Code (.vscode/mcp.json)

{
  "servers": {
    "busmaps-transit": {
      "type": "http",
      "url": "https://mcp.busmaps.com/mcp"
    }
  }
}

Claude Code

claude mcp add --transport http busmaps-transit https://mcp.busmaps.com/mcp

In Claude Code, open /mcp and authenticate the BusMaps server in your browser.

Gemini CLI

gemini mcp add busmaps-transit https://mcp.busmaps.com/mcp --transport http

After adding the server, use /mcp auth busmaps-transit in Gemini CLI to complete the browser login.

Codex (~/.codex/config.toml)

[mcp_servers.busmaps-transit]
url = "https://mcp.busmaps.com/mcp"

Then authenticate in Codex. For Codex CLI, run codex mcp login busmaps-transit and sign in to BusMaps in the browser.

Use the server URL in your AI client. No Docker container or local MCP installation is needed.

  1. Add the server URL using your client's remote MCP connection settings.
  2. Sign in on BusMaps with email and password or Google. A confirmed account with active API access is required.
  3. Review the application and requested access, then choose Allow access to return to your client.

Your client can request transit data and read your display name, API plan, allowed coverage and data sources. It cannot change your password, billing or subscription. Your password and API key are not sent to the AI client.

API usage terms · Privacy Policy · Subprocessors and service providers

Ask in plain language

Connect an agent to the server and try these. The agent picks the tool on its own.

  • "Plan a route from Camden Town to the London Eye"plan_transit_route returns available journey options with boarding stops, times and route geometry.
  • "Where can I get from Trafalgar Square in 30 minutes by transit and walking?"calculate_transit_isochrone returns cumulative travel-time polygons and a reachable stop count for the selected departure time.
  • "Find transit stops within 300m of 51.5074,-0.1278"find_nearby_stops returns stop ids, names, coordinates, and the lines serving each stop inside the radius.
  • "When is the next departure near London Waterloo, and is it delayed?"get_departures returns scheduled and live predicted times. Delay is realtimeDepartureTime minus scheduledDepartureTime.
  • "Show current vehicles in the area 51.45,-0.25,51.55,-0.05"get_vehicle_positions_in_area returns a current position snapshot inside the bounding box with route id, coordinates, direction, and timestamp.
  • "Are there service alerts for this route?"get_service_alerts returns current disruptions without loading the complete route timetable.
  • "How do I read real-time delays from departures?"The agent answers from the tool description and schema. Nobody pastes documentation into the chat.
  • "Explain the Voice Model-Ready endpoints and prove them with a live route request"The agent reads busmaps://compact-api, inspects the matching schemas and examples, then calls the compact_* tools through the public explorer.

Ready to build?

Check your current API access in your profile. Eligible confirmed accounts can try London Demo examples; paid or individually agreed access uses its assigned coverage and limits.

Request data / API access

MCP and REST share your account allowance. Connecting an AI client does not start a paid subscription. Request additional coverage or capacity when your project needs it.