Routing24 as an MCP serverCopy link
Routing24 publishes a Model Context Protocol server at
https://routing24.ai/mcp. An assistant that speaks MCP lists the tools
Routing24 offers and calls them. This page covers how a call reaches your plan, the 45 tools the
server exposes, what the app shows while a connected assistant works, and
what each failure means.
How a call reaches your planCopy link
A call travels in three steps. The work happens at the last one:
- The connected assistant sends the call to
https://routing24.ai/mcp. - The server routes it into your signed-in Routing24 browser tab.
- The tab performs the work on the plan it holds, and answers.
Three conditions follow from that routing. Most failures on this page come from one of them:
- You are signed in to Routing24 in a browser.
- A
routing24.com/apptab is open. Any page of the app qualifies. - You approved the connection once from that browser. See Connect Claude and ChatGPT.
One browser at a time serves the account. When you approve the connection in a second browser, the first one stops answering.
The assistant in the app does the same work through the same tools. The two differ in what surrounds them:
| The assistant in the app | A connected assistant |
|---|---|
| Opens in the app, no setup | Connect once with a URL and an approval |
| Reaches the plan and nothing else | Reaches your files, mail, and other tools too |
| Imports a file you attach, saves a converter, reviews an address repair | Uses the 45 tools only |
| Spends the account's AI budget | Spends its own provider budget |
| Runs while the pane is open | Needs any app tab open, on any page |
What Routing24 exposesCopy link
Every tool is prefixed routing24_. The vocabulary a connected assistant
reads is the vocabulary the app uses: time windows, capacities, shifts,
priorities, tags, breaks, transfers, sequences, reloads, and costs.
Plans and the account
| Tool | What it does |
|---|---|
routing24_get_auth_user | The signed-in account a saved plan will belong to |
routing24_list_plans | The saved plans: id, name, timestamps, entity counts, and which one is loaded |
routing24_load_plan | Load a saved plan by id, saving the replaced plan's unsaved changes first |
routing24_new_plan | Start a fresh empty plan, replacing the loaded one after saving its unsaved changes |
routing24_save | Persist the plan and return its link |
routing24_plan_url | The current plan's link |
Reading the routing plan
| Tool | What it does |
|---|---|
routing24_status | Progress plus the routing plan overview: rollups, cost, and per-route stats |
routing24_route | One route's ordered stops by its on-screen route number: ETAs, loads, waits, and problems |
routing24_unassigned | Which orders are unassigned and why: ids, prose diagnostics, and ready-to-serve quotes |
Plan data
| Tool | What it does |
|---|---|
routing24_list_stops | Read the plan's orders, paged and filterable |
routing24_list_vehicles | Read the plan's vehicle types |
routing24_list_depots | Read the plan's depots |
routing24_list_addresses | Read the address book, with usage counts |
routing24_upsert_stops | Create or update orders by id |
routing24_upsert_vehicles | Create or update vehicle types by id |
routing24_upsert_depots | Create or update depots by id |
routing24_upsert_addresses | Create or update address-book rows |
routing24_delete_stops | Delete orders by id |
routing24_delete_vehicles | Delete vehicle types by id |
routing24_delete_depots | Delete depots: the vehicles referencing them go too |
routing24_delete_addresses | Delete addresses: the orders and depots at them go too |
Route editing
| Tool | What it does |
|---|---|
routing24_edit_move_stops | Move stops to another route or another position, anchored or at the cheapest spot |
routing24_edit_unassign_stops | Take stops off their routes |
routing24_edit_set_route_vehicle | Give a route a different vehicle |
routing24_edit_create_route | Add an empty route for a vehicle |
routing24_edit_remove_routes | Delete routes: stops still on them are unassigned in the same edit |
routing24_edit_split_route | Split a route in two after a stop |
routing24_edit_merge_routes | Move other routes' stops onto one route |
routing24_edit_mark_user_assigned | Mark stops as placed by hand, with a report of what that breaks |
routing24_edit_clear_user_assigned | Drop that mark and its report |
routing24_undo | Step back through the shared edit history |
routing24_redo | Step forward again |
Optimization
| Tool | What it does |
|---|---|
routing24_reoptimize_plan | Optimize the loaded plan in place |
routing24_reoptimize_route | Re-sequence one route, synchronously |
routing24_cancel | Abort a long optimization, keeping the best routing plan so far |
Data and scripting
| Tool | What it does |
|---|---|
routing24_sql_query | Read the plan with SQL over eight live tables, orders to routing plan stops |
routing24_sql_update | Bulk field updates with SQL, validated and applied atomically |
routing24_run_script | Sandboxed JavaScript transforms and analysis over a draft of the plan |
The app and the output
| Tool | What it does |
|---|---|
routing24_render | Navigate to the optimization page so the routes draw |
routing24_open_page | Open one of the app's pages |
routing24_show_on_map | Fly the map to an order, depot, or address |
routing24_export_excel | Download the plan as an Excel workbook |
routing24_map_image | Snapshot the plan as a Retina map image, pins and route lines |
routing24_session_log | Read an assistant session's action log, for handovers and audits |
Tabs and sessions
| Tool | What it does |
|---|---|
routing24_list_loaded_plans | The open tabs, the plan each one holds, and the assistant session editing it |
Which plan a call reachesCopy link
A browser can hold several plans, one per tab. Two inputs decide where a call lands.
plan_id names the plan the call must operate on. That plan has to be
open in a tab already. When no tab holds it, the call fails and names the
plans that are open.
session_id is a connected assistant's own editing lane. Routing24
mints one on the assistant's first change to a plan and returns it in the
result. An assistant that pins that id on every later call keeps its own
plan, even when you switch to a different tab. Read-only calls never mint a
session.
routing24_list_loaded_plans reports the open tabs, the plan each one
holds, whether the tab is empty, focused, or visible, and the assistant
session editing it. Two assistants working on two plans use it to stay apart.
With neither input, the call lands on the caller's own session plan. With no session, it lands on the focused tab, then on a visible one, then on the tab seen most recently. A focused tab moves whenever you click another one.
What you see while a connected assistant worksCopy link
- The header badge. On plan-scoped pages, a green badge reads the
client name and how long ago it called, for example
Claude (now)orChatGPT (3 min ago). Its tooltip names the last tool by its wire name: "Last action by Claude: routing24_reoptimize_plan. Click for the session log." The badge disappears five minutes after the last call. Press it to open the assistant pane on the log. - The session log. The assistant pane lists each session under a
heading reading
Session a1b2c3d4 (Claude), then one row per call with the time, the action in plain words, and whether it failed. Lifecycle rows read "started this session", "took over this session", and "resumed in another tab". - The disconnect bar. Below the message box, a bar reads "Claude is connected to your account" with a Disconnect button. See Connect Claude and ChatGPT.
- The lock. An edit puts the app behind a full-screen overlay titled Agent controlled, reading "An AI agent is editing this plan. The screen is locked while it works; every change lands in the shared undo history.", with a counter of the changes applied so far. Press Take control to take the app back at any moment.
- The pane. While a connected assistant is working, the message box is replaced by "Claude is working on this plan" and a Take control button.
A connected assistant's deletes and bulk field changes apply without a review. The review dialogs belong to the assistant in the app.
Shared editingCopy link
The connected assistant's edits and your own edits walk one undo history. Continue by hand exactly where the assistant stopped. See Query, edit, and export a plan with AI.
When the plan changed since the connected assistant last read it, Routing24 rejects that assistant's next edit. Nothing is written. The rejection carries the plan's current revision and the last editor, the assistant re-reads the plan, and the same call succeeds on the retry. The app shows nothing while this happens.
What the errors meanCopy link
A connected assistant reports these in its own transcript.
| What the assistant reports | What happened |
|---|---|
| No Routing24 browser tab is connected | No signed-in browser is attached. Open the app and sign in |
| No Routing24 app tab is open | The browser is attached, but no app tab is open. Open routing24.com/app |
| The tab closed while running a tool | The tab closed mid-call. The change may or may not have applied |
| The tab did not answer within 60s | A tool exceeded the 60-second limit. A running optimization keeps going in the tab |
| Another tab took over while this call was running | A second browser attached and superseded the first |
| Plan state drifted | The plan changed since the assistant last read it. It re-reads and retries |
A long optimization always passes the 60-second limit. The optimization
keeps running in the tab. The assistant polls routing24_status for the
result instead of repeating the call.
LimitsCopy link
- Eight calls in flight at once per session.
- 120 requests a minute per account.
- 60 seconds per call.
- A map image of around 600 KB.
- A visible tab for a map image. A hidden window stops painting, so the capture times out.
- One browser attached per account. A connected assistant works through that browser and nowhere else: Routing24 runs nothing on its own behalf while every tab is closed.
Where the work runsCopy link
The optimization runs in your browser tab. Geocoding and distance matrices run on Routing24 servers under your own session. The MCP endpoint is the only Routing24 server a connected assistant reaches, with a token minted when you approve the connection.
What it costsCopy link
Connecting an assistant is available on every tier. A connected assistant spends its own provider budget rather than the account's AI budget. An optimization it starts spends the same allowance as the Optimize button. See Describe constraints in plain language and Plans, billing, and free limits.
The Optimization API is a separate Pro product for system-to-system integration, set up with the team. See Integrations.
Next stepCopy link
Connect Claude and ChatGPT covers the connection itself: the URL, the approval, and the first run.