Route optimisation, orders, booking and fleet management for a SmartRoutes depot.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
Expose your SmartRoutes route-optimisation and dispatch tools to AI assistants like Claude Desktop, Claude Code, Cursor, Windsurf, and any other Model Context Protocol client β working against your live data.
The MCP server connects an AI tool to your live SmartRoutes account. Ask your AI Assistant which orders are still unscheduled, review a route plan, or kick off an optimisation β all in chat, against your real data.
It exposes the same operations as the SmartRoutes REST API, shaped as clean tools an agent can call directly. Everything is scoped to a single account by your API key.
| Tool | Type | Description |
|---|---|---|
list_orders | Read | Orders for the depot (filter by status, customer, order number, or last-updated time; paginated) |
get_order | Read | Full detail for a single order |
add_order | Write | Create a new order (pickup, delivery, or shipment) |
check_booking_availability | Read | Whether a time window + address can be served |
optimise_plan_for_date | Write | Trigger route optimisation for a date |
get_optimisation_status | Read | Poll an optimisation job until it finishes |
get_plan | Read | Plan-level totals and route summary, by plan id |
get_route | Read | Per-stop detail for a single route |
list_vehicles | Read | Fleet vehicles with shifts, capacities, and skills |
get_vehicle | Read | Full detail for a single vehicle |
list_customers | Read | Customers for the depot |
Every tool is annotated so your AI client can tell reads from writes. The nine read tools are marked read-only; add_order and optimise_plan_for_date are marked as writes, and optimise_plan_for_date is additionally marked destructive because auto-dispatch publishes the plan to drivers and notifies customers. Clients that gate destructive calls will ask you to confirm before running it.
Those annotations are hints your client chooses to honour. To make writes impossible, add one header:
The server then exposes only the nine read tools. add_order and optimise_plan_for_date are absent from the tool list entirely and cannot be called, so there is nothing for an assistant to invoke by accident β useful while testing, or for people who should only ever look things up.
Omit the header for the full tool set. Any other value is rejected with a 400, rather than being ignored, so a typo can never quietly restore write access.
Register both entries side by side and pick per conversation. Any client that lets you set request headers supports this.
The MCP server uses your existing SmartRoutes API key β the same one you already use for the REST API. There is no separate MCP credential, no sign-in flow, and no token that expires or needs refreshing.
To generate an API Key, login to your SmartRoutes account and go to Settings > Integrations > SmartRoutes Open API and click on the Generate API Key button.
Treat the key as a secret; it grants access to your account's data.
Two headers are accepted and they are interchangeable β the value is the same API key either way:
| Header | When to use it |
|---|---|
Authorization: Bearer <your-api-key> | Works everywhere. Use this on hosted platforms whose only credential field is Authorization β Mistral Studio and most connector directories. |
x-access-key: <your-api-key> | Equally valid and unchanged. Use it wherever you can name the header yourself: Claude Code, Claude Desktop, Cursor, Windsurf, VS Code, your own scripts. |
A few things worth knowing:
Bearer, bearer and BEARER all work. The key itself is case-sensitive, so copy it exactly.Basic and Digest are not supported. If the tool you're configuring only offers a username/password style credential, get in touch rather than base64-encoding the key yourself β it will be rejected.Ready-to-copy config files for every client live in
examples/β drop in your key and go.
This repo includes a pre-configured .mcp.json. Just replace <your-api-key>:
Claude Code auto-discovers this file when you open the project.
Add a Custom Connector for SmartRoutes by going to: Settings β Connectors β Add custom connector
Here you can add the following details:
Add your authentication header under Advanced settings / Request headers in that same dialog:
Alternatively, you can add the following to your Claude Desktop config (claude_desktop_config.json):
Register SmartRoutes as a Connector:
https://mcp.smartroutes.io/mcpAuthorizationBearer <your-api-key>Mistral's Connectors Debugger lets you validate a server before registering it, and it asks for the credential as an Authorization header β which is exactly what the Bearer form above is for. The Debugger is in public preview, so field labels may move; the URL and the header value are what matter.
In Cursor settings, add an MCP server:
https://mcp.smartroutes.io/mcpx-access-key: <your-api-key>Add to your Windsurf MCP config (mcp_config.json):
The server uses Streamable HTTP transport. Either header works:
Any MCP client that speaks Streamable HTTP can connect. Legacy SSE clients are handled automatically.
Against a locally-running server the endpoint is (use whatever port your local app listens on):
Note the path is /mcp-api locally β the shorter /mcp on mcp.smartroutes.io is a public alias for the same endpoint. Both headers work locally exactly as they do in production.
Once connected, you can ask your assistant things like:
Your MCP key is your SmartRoutes API key.
| Action | Description |
|---|---|
| Use | The same key as the REST API, sent as either Authorization: Bearer or x-access-key; scoped to one depot. |
| Disable | Disabling a key in your SmartRoutes account immediately blocks both MCP and REST access. |
401 UNAUTHORIZEDThe server didn't get a usable key. The description in the response body tells you which case you hit:
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/smartroutes)<a href="https://allmcps.com/mcp/smartroutes"><img src="https://allmcps.com/api/badge/smartroutes?style=directory" alt="Smartroutes on AllMCPs" /></a>