WebMCP: Routing24 as an AI toolCopy link
Ask an assistant to "plan tomorrow's deliveries" and it has two ways into most software: read the screen and click things like a person, or call a public API, which most sites do not have. WebMCP is a third. The website hands the assistant a set of tools, and the assistant calls them directly.
Routing24 publishes 13 such tools. With them, an assistant sitting in your browser can geocode addresses, start an optimization, watch it finish, read the resulting routes stop by stop, edit them, and save the plan, without going through the UI and without an API key.
What WebMCP actually isCopy link
WebMCP brings the Model Context Protocol, the standard AI assistants already
use to talk to external tools, into the web page itself. A site registers its
tools on document.modelContext. Any agent operating in that tab can list
them and call them, the way a desktop assistant calls an MCP server.
Compared with scraping or clicking the page:
| Clicking the page | Calling a tool |
|---|---|
| Breaks when a button moves | Named, versioned, described contract |
| Guesses what a field means | Typed input, validated on the way in |
| Reads numbers off screenshots | Gets structured data back |
| Cannot tell success from a stuck spinner | Explicit result, explicit error |
WebMCP is being drafted at the W3C, in the Web Machine Learning Community Group, and Chrome is running a public origin trial of the browser API while travel, retail, and finance sites test it on their own pages. It is not a finished standard yet: Firefox and Safari have not stated a position, and the shape of the API has already changed once.
The app bundles a polyfill, so the tools exist in any modern browser, and a native browser implementation takes over automatically once one is present.
What Routing24 exposesCopy link
Every tool is prefixed routing24_. They cover the full working cycle:
| Tool | What it does |
|---|---|
routing24_geocode | Batch-geocode addresses, with a clear "not found" per row |
routing24_optimize | Create a plan and start optimizing: stops, vehicles, a depot, and the full constraint set |
routing24_status | Progress, routes, distance, duration, feasibility, unassigned count |
routing24_solution | The whole solution: per route, the ordered stops with ETAs, loads, waits, and problems, plus the unassigned list and why |
routing24_edit | Manual edits as an all-or-nothing batch: move, unassign, split, merge, change vehicle, create and remove routes |
routing24_optimize_route | Re-sequence one route, synchronously |
routing24_undo / routing24_redo | Walk the same history as your own edits |
routing24_render | Draw the current routes on the map in your tab |
routing24_save | Persist the plan and return its link |
routing24_plan_url | The current plan's link |
routing24_cancel | Abort a long solve, keeping the best solution so far |
routing24_get_auth_user | Who a saved plan will belong to, or "anonymous" |
The inputs are generated from Routing24's own types, so the constraint vocabulary an assistant sees is the same one the app uses: time windows, capacities, shifts, priorities, tags, breaks, transfers, sequences, reloads, costs.
Route optimization runs in your browser, in your own tab. Geocoding, distance matrices, and our ML services run on Routing24 servers, reached with a token issued for your session. The assistant never talks to a Routing24 server directly. It drives your tab. There is no API key and no server API in the loop, and the flow works without signing in.
How to query it todayCopy link
Native WebMCP support is not required, in the browser or in the assistant. Any assistant that can open a page and run code in it, which is what Claude Cowork does when it works in your browser, reaches the same tools through the polyfill the page already loaded.
The mechanics:
const mc = document.modelContext ?? navigator.modelContext;
const tools = await mc.getTools(); // 13 routing24_* tools
const tool = tools.find(t => t.name === 'routing24_status');
JSON.parse(await mc.executeTool(tool, '{}'));
The Routing24 skill supplies the calling convention, the constraint schema, and the working procedure to your assistant.
Everything an assistant needs to drive Routing24 is published as a single document at routing24.com/llms.txt, regenerated from the live types on every release. An assistant working from a stale copy can refetch it.
What this does not changeCopy link
- Agent control is explicit. The moment an assistant edits routes, the app locks behind an Agent controlled overlay with a Take control button. Its edits share one undo history with yours, so you can review and roll back its work exactly like your own.
- Your data follows the same paths. Same tab, same session, same storage. Nothing is copied to a separate AI service.
- The assistant reads the same results as the screen. Optimization results, problems, and unassigned orders are the same ones the screen shows.
AI assistants integration is part of the Starter and Pro plans, see Plans, billing, and free limits.
Next stepCopy link
Install the skill in Claude Cowork, then work through what it can do: convert data and fix addresses, describe constraints in plain language, and query, edit, and export a plan.