Platform / Live
MCP server

Run your deliveries from your AI assistant.

The EasyRoutes MCP server lets Claude, ChatGPT Desktop, Cursor or Codex read your routes, stops and drivers, and handle the everyday setup for you, like turning an order email into stops on tomorrow's route.

4.9 stars · 5,000+ businesses · 75+ countries

The Million Roses
Ecofuel
Propeller Brewing Company
Heys
Slice
Boschendal
Your Reformer
Sonno
Beretta Farms
Redstart Foods
Gilly
Country Life
Danzeisen Dairy
Trophy Cupcakes
MCP server

Your EasyRoutes account, inside your AI assistant.

Connect your assistant with your API keys, then ask for what you need in a conversation. The MCP accesses your account data and sets routes up by calling EasyRoutes tools.

Read the MCP docs →
Claudeeasyroutes

What's going out tomorrow? Who's driving, and is anything missing?

  1. list_routes4 routes for Thursday
  2. list_drivers4 active drivers

Four routes tomorrow, 52 stops in all. Three are set. North York has no driver yet, and Sam Patel is the only driver not on a route.

  1. DowntownJohn Smythe · 16 stops8:30
  2. East EndJane Doe · 14 stops9:00
  3. MidtownPriya Nair · 11 stops9:00
  4. North York11 stopsNo driver9:30
52 stops · 4 routes · Thursday
Claudeeasyroutes
4 orders, from Shopify admin#1203 · admin.shopify.com/…/orders/19360073646389#1204 · admin.shopify.com/…/orders/19360076988725#1205 · admin.shopify.com/…/orders/19360079282485#1206 · admin.shopify.com/…/orders/19360081969461

Make a Friday route from the shop with these, 5 minutes a stop.

  1. create_routeFri 9:00, 123 Main St
  2. update_route5 min a stop
  3. add_route_shopify_orders4 orders

Friday's route is ready to review: 5 minutes a stop, with each order's address and items.

  1. Amara Okafor3 yellow
  2. Daniel Kim2 red
  3. Sofia Marino1 white
  4. Liam Tremblay3 mixed
4 stops · 9 bouquets · 5 min a stop · not optimized
Claudeeasyroutes

Put Jane on Friday's route in the warehouse van, optimize it, and send it to her.

  1. list_driversJane Doe
  2. list_vehiclesWarehouse Cargo Van
  3. assign_route_driver
  4. assign_route_vehicle
  5. reoptimize_route24.1 → 18.6 km
  6. dispatch_routeSent to Jane

Done. Jane will be notified she has a new route in the EasyRoutes Delivery Driver app. The stops are in their best order:

  1. Sofia Marino9:18
  2. Amara Okafor9:41
  3. Liam Tremblay9:52
  4. Daniel Kim10:06
18.6 km · optimized · dispatched to Jane
Claudeeasyroutes
Text from Daniel Kim (#1204)Hi! For Friday, could the driver use the side door on Dovercourt? The front buzzer is broken.

Daniel sent this. Pass it on to Friday's driver.

  1. list_routesDaniel Kim, stop 2 · always allowed
  2. Claude wants to use update_route_stoproute: Friday – Shopify ordersstop: Daniel Kim (#1204)note: "Use the side door on Dovercourt." Allowed once
  3. update_route_stopNote added

Done. Daniel's stop now reads “Use the side door on Dovercourt.” Reading your routes runs on its own, since you allowed it always; I'll ask again before the next change.

Turn an email into a route.
Swap the driver and van.
Fix a stop without the app.
Check it before it goes out.
Optimize and fix in one ask.
Send it to your driver.
  1. You:
    ✉ Three more for tomorrowMarcus Chen · 220 Yonge St · 1 white bouquetElena Rossi · 55 Mill St · 3 yellow, 10 to noonPriya Shah · 2 Bloor St W · 2 red bouquets

    Here's an order email that just came in. Put these on a new route for tomorrow from the shop, and give it to Jane in the Warehouse Cargo Van.

    Claude:
    • list_routes
    • import_stops
    • create_route
    • add_route_stops
    • assign_route_driver
    • assign_route_vehicle

    Tomorrow's route is set: Jane in the Warehouse Cargo Van, leaving 123 Main Street at 9:00. I used that address because your recent routes start there.

    1. Marcus Chen9:24
    2. Elena Rossi9:34
    3. Priya Shah10:26
    28.6 km
  2. You:

    Jane's off tomorrow. Switch it to John, in the Sprinter.

    Claude:
    • list_drivers
    • list_vehicles
    • assign_route_driver
    • assign_route_vehicle

    Done. John's driving the Large Cargo Van (Holiday Rental), your Mercedes Sprinter. The stops and times haven't changed.

    Driver
    Jane Doechanged toJohn Smythe
    Vehicle
    Warehouse Cargo Vanchanged toLarge Cargo Van (Holiday Rental)
  3. You:

    Priya's flowers should go to her office instead: 100 King St W, M5X 1A9. Tell the driver to leave them at the front desk, 12th floor.

    Claude:
    • update_route_stop_location
    • update_route_stop

    Updated. Priya's stop is now 100 King St W, and the note reads “Leave at the front desk, 12th floor.” She's due at 10:19 instead of 10:26.

    Address
    2 Bloor St Wchanged to100 King St W
    Note
    Call when outsidechanged toLeave at the front desk, 12th floor.
    Arrival
    10:26changed to10:19
  4. You:

    Anything I should check before it goes out?

    Claude:
    • list_routes

    Two things. The route isn't optimized: the stops are still in the order the email listed them. And Elena asked for 10 to noon, but she's due at 9:34.

    1. Marcus Chen9:24
    2. Elena RossiBefore 10–129:34
    3. Priya Shah10:19
    23.3 km · not optimized
  5. You:

    Optimize it, and get Elena inside her window.

    Claude:
    • reoptimize_route
    • update_route

    Optimized: Marcus, Priya, then Elena, 19.5 km instead of 23.3. That still had John at Elena's at 9:40, so I moved the start to 9:25.

    1. Marcus Chen9:49
    2. Priya Shah9:55
    3. Elena RossiInside 10–1210:05
    19.5 km · optimized · leaves 9:25
  6. You:

    Looks good. Send it to John.

    Claude:
    • dispatch_route

    Dispatched. John will be notified he has a new route in the EasyRoutes Delivery Driver app. He leaves 123 Main Street at 9:25 with six bouquets:

    1. Marcus Chen1 white bouquet · Leave with the concierge.9:49
    2. Priya Shah2 red bouquets · Leave at the front desk, 12th floor.9:55
    3. Elena Rossi3 yellow bouquets · Between 10 and noon10:05
    19.5 km · leaves 9:25 · dispatched to John
CONNECT

Connect the EasyRoutes MCP server in a few minutes.

Setup is quick and easy — full details in the MCP docs.

  1. Get your API keys in EasyRoutes, under Settings > API. API access is included in every paid plan. See how.
  2. Add EasyRoutes to your preferred assistant. Use these snippets with your API keys for the most popular options.
  3. Choose what the MCP can do. Your assistant asks before every change. Pre-allow or turn off any tool in its settings.
  4. Try it: ask what's going out tomorrow.

Keep your keys private: they can change anything in your EasyRoutes account.

Run this in your terminal, then type /mcp to check it's connected. Full steps

Terminal
claude mcp add --transport http easyroutes https://easyroutes.roundtrip.ai/mcp \
  --header "Authorization: Bearer <client-id>:<secret-key>"

Add this to ~/.cursor/mcp.json, or under Cursor Settings > MCP. Full steps

mcp.json
{
  "mcpServers": {
    "easyroutes": {
      "url": "https://easyroutes.roundtrip.ai/mcp",
      "headers": {
        "Authorization": "Bearer <client-id>:<secret-key>"
      }
    }
  }
}

Needs Node.js. Add this under Settings > Developer > Edit Config, then restart Claude Desktop. Full steps

claude_desktop_config.json
{
  "mcpServers": {
    "easyroutes": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://easyroutes.roundtrip.ai/mcp",
        "--header",
        "Authorization:${EASYROUTES_AUTH}"
      ],
      "env": {
        "EASYROUTES_AUTH": "Bearer <client-id>:<secret-key>"
      }
    }
  }
}

Open Settings > MCP servers, click Add server and fill in these fields. This connects Codex too. Full steps

Add server
Name
EasyRoutes
Type
Streamable HTTP
URL
https://easyroutes.roundtrip.ai/mcp
Header key
Authorization
Header value
Bearer <client-id>:<secret-key>

Already set up ChatGPT Desktop? Codex is connected too. If not, add this to ~/.codex/config.toml, then restart Codex and run /mcp. Full steps

config.toml
[mcp_servers.easyroutes]
url = "https://easyroutes.roundtrip.ai/mcp"

[mcp_servers.easyroutes.http_headers]
Authorization = "Bearer <client-id>:<secret-key>"
Everything else in the EasyRoutes admin
5 questions

MCP questions, answered

What is the EasyRoutes MCP server?

MCP, the Model Context Protocol, is an open standard that lets AI assistants use another app's tools. The EasyRoutes MCP server gives assistants like Claude and Cursor a set of EasyRoutes tools, so you can ask about your routes, stops and drivers, or set up a route, in plain words.

See: MCP docs

Which EasyRoutes plans include it?

Every paid plan, on EasyRoutes for Shopify or EasyRoutes for Web. It uses the same client ID and secret key as the API, which you create under Settings > API.

See: EasyRoutes 101: Get Started with the API

Will my assistant change things without asking?

No. Your assistant asks before every change, and only goes ahead once you approve it. Lookups are marked read-only and change nothing.

You decide what it can use. In your assistant's settings you can pre-allow the tools you trust, like lookups, or turn any tool off entirely, and change that whenever you like. An approved change takes effect straight away, including on a route a driver already has.

Does it count against my API rate limit?

Yes. MCP calls share the rate limit of the API client whose keys you connected with.

Can I use it from Claude or ChatGPT on the web?

Not yet. Assistants on the web sign in to other apps through OAuth, which EasyRoutes doesn't support yet.

Your delivery day, planned before you get in.