Spoke Dispatch MCP by usefulapi

io.usefulapiPublished by usefulapi.ioOfficial publisherv1.23.4Updated Nov 7, 2026

Read Spoke Dispatch plans, stops, routes and drivers; create and optimize plans; send routes.

The publisher's own server: Ably MCP by usefulapi

VerifiedStreamable HTTPWeb executableLocation & LifestyleProductivity & Workflow

Overview

AI-generated overview

Hosted Spoke Dispatch connector that lets an assistant read delivery plans, stops, routes and drivers, and create, optimize and distribute plans.

What you can do
  • List and inspect plans, plan stops, unassigned stops and stop search results, including recipient and delivery outcome details
  • List and inspect drivers, depots, routes and route stops in driving order
  • Track long-running plan optimization operations and read custom stop property definitions
  • Create and update plans, add single stops or import up to 100 stops into a writable plan
  • Start route optimization and distribute an optimized plan to drivers
  • Check usage, request a feature, upgrade or cancel the subscription
When to use it
Useful when a team runs deliveries through Spoke Dispatch and wants to ask an assistant about plans, drivers and routes, or to build and optimize a day's plan from chat. Also fits one-off jobs, since a paid plan can be cancelled and runs to the end of the period.
Requirements
Remote MCP endpoint over streamable HTTP; no local install. Connect with the URL only and sign in through OAuth with your own Spoke Dispatch credentials; no API key or Authorization header is added to the client config. A Spoke Dispatch team account is required, and custom stop properties need a subscription that includes them.
Before you install
Write tools change real data: create and update plans, add or import stops, and optimize plans, which rewrites existing routes and uses optimization quota. Distributing a plan immediately messages real drivers and locks the plan, and cannot be undone. Stops, drivers and unassigned stops contain personal data such as names, phones, e-mails and addresses, so page only as far as needed. Usage is metered: free tier is 50 calls a month, and paid plans are billed through payment links.

Installation

In SourceWeft

  1. Open Spoke Dispatch MCP by usefulapi in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.usefulapi%2Fspoke-dispatch/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "spoke-dispatch-by-usefulapi": {
      "type": "http",
      "url": "https://spoke-dispatch.usefulapi.io/mcp"
    }
  }
}

README

Spoke Dispatch MCP by usefulapi

Use Spoke Dispatch from Claude, Cursor, or any MCP client — delivery plans, stops, routes, drivers and depots, plus plan creation, optimization and distribution. Hosted, no local install: connect with your own Spoke Dispatch credentials.

Live endpoint: https://spoke-dispatch.usefulapi.io/mcp · Homepage: https://usefulapi.io/spoke-dispatch

Connect

  • Claude (claude.ai, Desktop): open Customize → Connectors, click + Add → Add custom connector, and paste https://spoke-dispatch.usefulapi.io/mcp.
  • Claude Code: claude mcp add --transport http spoke-dispatch https://spoke-dispatch.usefulapi.io/mcp, then run /mcp to log in.
  • VS Code: Add to VS Code.
  • Cursor and other clients: add the URL as a remote MCP server:
json
{  "mcpServers": {    "spoke-dispatch": {      "url": "https://spoke-dispatch.usefulapi.io/mcp"    }  }}

Add only the URL. Do not add an Authorization header or an API key to the client config: the server signs you in with OAuth, and the login page asks for your Spoke Dispatch credentials.

Step-by-step setup, where to find your credentials, and FAQ: https://usefulapi.io/spoke-dispatch/

Tools

ToolTypeWhat it does
spoke_list_plansreadList plans
spoke_get_planreadGet plan
spoke_list_plan_stopsreadList plan stops
spoke_get_stopreadGet stop
spoke_search_stopsreadSearch stops
spoke_list_unassigned_stopsreadList unassigned stops
spoke_get_unassigned_stopreadGet unassigned stop
spoke_list_driversreadList drivers
spoke_get_driverreadGet driver
spoke_list_depotsreadList depots
spoke_get_depotreadGet depot
spoke_list_routesreadList routes
spoke_get_routereadGet route
spoke_list_route_stopsreadList route stops
spoke_list_operationsreadList operations
spoke_get_operationreadGet operation
spoke_list_custom_stop_propertiesreadList custom stop properties
spoke_create_planwriteCreate plan
spoke_update_planwriteUpdate plan
spoke_create_stopwriteCreate stop
spoke_import_stopswriteImport stops
spoke_optimize_planwriteOptimize plan
spoke_distribute_planwriteDistribute plan to drivers
spoke_usage_statusmetaUsage status (free-tier meter)
spoke_request_featuremetaRequest a missing feature
spoke_upgrademetaUpgrade to Pro or Pro+
spoke_cancel_subscriptionmetaCancel the Pro subscription

read tools are read-only; write tools mutate data (clients should confirm them); meta tools report usage, manage your subscription or send a feature request.

Pricing

PlanPriceLimit
Free$050 tool calls / month
Pro (per team)$9/mo or $90/yr (2 months free)Unlimited*

*Pro has a fair use limit of 10,000 tool calls a month on this server. For more, write to [email protected].

Pro covers this server only. Subscribe with spoke_upgrade (it returns a Stripe Checkout link). Cancel any time with spoke_cancel_subscription: Pro continues to the end of the paid period, with no refund for the current period, and running spoke_upgrade before then undoes the cancel. Or write to [email protected].

License

MIT © usefulapi. Not affiliated with or endorsed by Spoke Dispatch.

Source: servers/spoke-dispatch/README.md at commit 4046075

Tools

23

spoke_list_plans

List plans

List route plans (a plan = one day's delivery job: date, depot, drivers, routes), newest first, in pages of up to 20. Filter with e.g. {"title":"Monday run"} or {"startsGte":"2026-10-01"}. GET /plans.

Parameterstitlefilterpage_tokenmax_page_sizestarts_on_or_after

spoke_get_plan

Get plan

One plan: title, start date, depot, driver ids, route ids, whether it is distributed/writable, optimization state and route overrides. GET /plans/{planId}.

Parametersplan_idrequired

spoke_list_plan_stops

List plan stops

List the stops of a plan, in pages of up to 10. Stops include recipient names, phones, e-mails and addresses (personal data): page only as far as needed. GET /plans/{planId}/stops.

Parametersplan_idrequiredpage_tokenmax_page_sizerecipient_external_id

spoke_get_stop

Get stop

One stop of a plan with address, recipient, timing, ETA, route and delivery outcome (attempted, succeeded, notes, photo/signature links). Contains personal data. GET /plans/{planId}/stops/{stopId}.

Parametersplan_idrequiredstop_idrequired

spoke_search_stops

Search stops

Search all stops of the team (planned, unassigned, past) by keyword and/or Spoke's filter language, up to 20 per page. Example filter: address.countryCode = "DE" and deliveryInfo.attempted = false. Filterable: planId, routeId, type, activity, notes, address.*, createdAt, recipient.name/email/phone/externalId, deliveryInfo.state/attempted/succeeded, orderInfo.*. Results include personal data. The search index lags real time by a short while. GET /stops:search.

Parametersfilterkeywordpage_tokensort_fieldsort_ordermax_page_size

spoke_list_unassigned_stops

List unassigned stops

List stops that are not on any plan yet (the inbox of imported orders), in pages of up to 20 (default 20). Contains personal data. GET /unassignedStops.

Parameterspage_tokenmax_page_size

spoke_get_unassigned_stop

Get unassigned stop

One unassigned stop by id. Contains personal data. GET /unassignedStops/{id}.

Parametersunassigned_stop_idrequired

spoke_list_drivers

List drivers

List the team's drivers (name, e-mail/phone, active flag, depots, route overrides), up to 50 per page. Contains personal data. GET /drivers.

Parametersactivepage_tokenmax_page_size

spoke_get_driver

Get driver

One driver by id. Contains personal data. GET /drivers/{driverId}.

Parametersdriver_idrequired

spoke_list_depots

List depots

List depots (start/end addresses, working hours, vehicle type, max stops), up to 20 per page. Use the ids when creating plans. GET /depots.

Parameterspage_tokenmax_page_size

spoke_get_depot

Get depot

One depot by id. GET /depots/{depotId}.

Parametersdepot_idrequired

spoke_list_routes

List routes

List routes (one driver's run of a plan: stop count, driver, distributed/started/completed state), up to 20 per page. GET /routes.

Parameterspage_tokenmax_page_sizestarts_on_or_after

spoke_get_route

Get route

One route: title, driver, stop count and state (distributed, started, completed, recipients notified). GET /routes/{routeId}.

Parametersroute_idrequired

spoke_list_route_stops

List route stops

List the stops of one route in driving order, in pages of up to 10. Contains personal data: page only as far as needed. GET /routes/{routeId}/stops.

Parametersroute_idrequiredpage_tokenmax_page_sizerecipient_external_id

spoke_list_operations

List operations

List long-running operations (plan optimizations): type, done flag, who started it, result (optimized and skipped stops), up to 20 per page. GET /operations.

Parameterspage_tokenmax_page_size

spoke_get_operation

Get operation

One operation, e.g. the optimization started by spoke_optimize_plan: poll until done is true. GET /operations/{operationId}.

Parametersoperation_idrequired

spoke_list_custom_stop_properties

List custom stop properties

The team's custom stop property definitions (ids and names). Their ids are the keys of customProperties on stops. Needs a subscription that includes custom properties (HTTP 403 otherwise). GET /team/customStopProperties.

Takes no parameters.

spoke_create_plan

Create plan

WRITE: create a new route plan for a date (no stops yet, nothing is sent to drivers). Optionally assign drivers (up to 50, they must be active and share the plan's depot) and a depot (default: the team's main depot). Does not optimize or distribute. POST /plans.

Parameterstitlerequireddepot_idstarts_onrequireddriver_ids

spoke_update_plan

Update plan

WRITE: change a plan's title, date, drivers and/or depot. Only the fields you pass change, but driver_ids REPLACES the plan's whole driver list. Fails if the plan is not writable (already distributed). Nothing is sent to drivers. PATCH /plans/{planId}.

Parameterstitleplan_idrequireddepot_idstarts_ondriver_ids

spoke_create_stop

Create stop

WRITE: add one stop to a writable (not yet distributed) plan. Needs an address (text fields or latitude+longitude). The recipient's phone/e-mail are stored on the stop and Spoke may contact the recipient later when the route runs; nothing is sent now. For many stops use spoke_import_stops. POST /plans/{planId}/stops.

Parametersstoprequiredplan_idrequired

spoke_import_stops

Import stops

WRITE: add up to 100 stops to a writable (not yet distributed) plan in one request (better geocoding than one at a time; Spoke limits imports to 30 requests a minute). Returns the created stop ids and any failures. Recipient contact data is stored on the stops; nothing is sent now. POST /plans/{planId}/stops:import.

Parametersstopsrequiredplan_idrequired

spoke_optimize_plan

Optimize plan

WRITE: start the route optimization of a plan (orders and assigns its stops to its drivers). Rewrites the plan's routes if it was optimized before, and uses Spoke's optimization quota (30 per minute, 100 per 10 minutes). Does NOT send anything to drivers. Returns an operation: poll spoke_get_operation until done. Needs at least one driver and one stop. POST /plans/{planId}:optimize.

Parametersplan_idrequired

spoke_distribute_plan

Distribute plan to drivers

WRITE (SENDS TO REAL PEOPLE): distribute an optimized plan, which immediately sends each driver of the plan their route on their phone (push notification / message) and locks the plan for edits. Cannot be undone. Only for a plan with 1-10 drivers, and only after the user has explicitly said to send the routes: set confirm_send_to_drivers to true. POST /plans/{planId}:distribute.

Parametersplan_idrequiredconfirm_send_to_driversrequired

Version history

19
  1. v1.23.4LatestNov 7, 2026
  2. v1.22.3Nov 5, 2026
  3. v1.22.2Nov 5, 2026
  4. v1.22.1Nov 4, 2026
  5. v1.22.0Nov 3, 2026
  6. v1.21.1Nov 3, 2026
  7. v1.20.0Nov 1, 2026
  8. v1.18.0Oct 31, 2026
  9. v1.17.0Oct 31, 2026
  10. v1.16.2Oct 30, 2026
  11. v1.16.0Oct 30, 2026
  12. v1.11.0Oct 26, 2026
  13. v1.8.3Oct 25, 2026
  14. v1.8.0Oct 25, 2026
  15. v1.7.0Oct 24, 2026
  16. v1.4.0Oct 23, 2026
  17. v1.3.4Oct 22, 2026
  18. v1.3.3Oct 21, 2026
  19. v1.0.0Oct 12, 2026

Score

100% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

Other Usefulapi integrations