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:

  1. The connected assistant sends the call to https://routing24.ai/mcp.
  2. The server routes it into your signed-in Routing24 browser tab.
  3. 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/app tab 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 appA connected assistant
Opens in the app, no setupConnect once with a URL and an approval
Reaches the plan and nothing elseReaches your files, mail, and other tools too
Imports a file you attach, saves a converter, reviews an address repairUses the 45 tools only
Spends the account's AI budgetSpends its own provider budget
Runs while the pane is openNeeds 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

ToolWhat it does
routing24_get_auth_userThe signed-in account a saved plan will belong to
routing24_list_plansThe saved plans: id, name, timestamps, entity counts, and which one is loaded
routing24_load_planLoad a saved plan by id, saving the replaced plan's unsaved changes first
routing24_new_planStart a fresh empty plan, replacing the loaded one after saving its unsaved changes
routing24_savePersist the plan and return its link
routing24_plan_urlThe current plan's link

Reading the routing plan

ToolWhat it does
routing24_statusProgress plus the routing plan overview: rollups, cost, and per-route stats
routing24_routeOne route's ordered stops by its on-screen route number: ETAs, loads, waits, and problems
routing24_unassignedWhich orders are unassigned and why: ids, prose diagnostics, and ready-to-serve quotes

Plan data

ToolWhat it does
routing24_list_stopsRead the plan's orders, paged and filterable
routing24_list_vehiclesRead the plan's vehicle types
routing24_list_depotsRead the plan's depots
routing24_list_addressesRead the address book, with usage counts
routing24_upsert_stopsCreate or update orders by id
routing24_upsert_vehiclesCreate or update vehicle types by id
routing24_upsert_depotsCreate or update depots by id
routing24_upsert_addressesCreate or update address-book rows
routing24_delete_stopsDelete orders by id
routing24_delete_vehiclesDelete vehicle types by id
routing24_delete_depotsDelete depots: the vehicles referencing them go too
routing24_delete_addressesDelete addresses: the orders and depots at them go too

Route editing

ToolWhat it does
routing24_edit_move_stopsMove stops to another route or another position, anchored or at the cheapest spot
routing24_edit_unassign_stopsTake stops off their routes
routing24_edit_set_route_vehicleGive a route a different vehicle
routing24_edit_create_routeAdd an empty route for a vehicle
routing24_edit_remove_routesDelete routes: stops still on them are unassigned in the same edit
routing24_edit_split_routeSplit a route in two after a stop
routing24_edit_merge_routesMove other routes' stops onto one route
routing24_edit_mark_user_assignedMark stops as placed by hand, with a report of what that breaks
routing24_edit_clear_user_assignedDrop that mark and its report
routing24_undoStep back through the shared edit history
routing24_redoStep forward again

Optimization

ToolWhat it does
routing24_reoptimize_planOptimize the loaded plan in place
routing24_reoptimize_routeRe-sequence one route, synchronously
routing24_cancelAbort a long optimization, keeping the best routing plan so far

Data and scripting

ToolWhat it does
routing24_sql_queryRead the plan with SQL over eight live tables, orders to routing plan stops
routing24_sql_updateBulk field updates with SQL, validated and applied atomically
routing24_run_scriptSandboxed JavaScript transforms and analysis over a draft of the plan

The app and the output

ToolWhat it does
routing24_renderNavigate to the optimization page so the routes draw
routing24_open_pageOpen one of the app's pages
routing24_show_on_mapFly the map to an order, depot, or address
routing24_export_excelDownload the plan as an Excel workbook
routing24_map_imageSnapshot the plan as a Retina map image, pins and route lines
routing24_session_logRead an assistant session's action log, for handovers and audits

Tabs and sessions

ToolWhat it does
routing24_list_loaded_plansThe 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) or ChatGPT (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 reportsWhat happened
No Routing24 browser tab is connectedNo signed-in browser is attached. Open the app and sign in
No Routing24 app tab is openThe browser is attached, but no app tab is open. Open routing24.com/app
The tab closed while running a toolThe tab closed mid-call. The change may or may not have applied
The tab did not answer within 60sA tool exceeded the 60-second limit. A running optimization keeps going in the tab
Another tab took over while this call was runningA second browser attached and superseded the first
Plan state driftedThe 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.