Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Description from the maker (original English)
Read Spoke Dispatch plans, stops, routes and drivers; create and optimize plans; send routes.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
You need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Works in Claude on the web, desktop and mobile:
https://spoke-dispatch.usefulapi.io/mcpRun this in your terminal
claude mcp add --transport http spoke-dispatch https://spoke-dispatch.usefulapi.io/mcpPaste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"spoke-dispatch": {
"url": "https://spoke-dispatch.usefulapi.io/mcp"
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"spoke-dispatch": {
"type": "http",
"url": "https://spoke-dispatch.usefulapi.io/mcp"
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
ChatGPT connects only to servers on the internet:
https://spoke-dispatch.usefulapi.io/mcpMenu names can differ slightly by plan and over time.
Your choice stays on this device in a cookie; no account needed.
These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Tool names and descriptions exactly as the server reported them on Nov 6, 2026. The maker wrote them, not us; we show them as plain text.
spoke_list_plansList 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.
spoke_get_planOne plan: title, start date, depot, driver ids, route ids, whether it is distributed/writable, optimization state and route overrides. GET /plans/{planId}.
spoke_list_plan_stopsList 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.
spoke_get_stopOne 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}.
spoke_search_stopsSearch 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, recipien
spoke_list_unassigned_stopsList 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.
spoke_get_unassigned_stopOne unassigned stop by id. Contains personal data. GET /unassignedStops/{id}.
spoke_list_driversList the team's drivers (name, e-mail/phone, active flag, depots, route overrides), up to 50 per page. Contains personal data. GET /drivers.
spoke_get_driverOne driver by id. Contains personal data. GET /drivers/{driverId}.
spoke_list_depotsList depots (start/end addresses, working hours, vehicle type, max stops), up to 20 per page. Use the ids when creating plans. GET /depots.
spoke_get_depotOne depot by id. GET /depots/{depotId}.
spoke_list_routesList routes (one driver's run of a plan: stop count, driver, distributed/started/completed state), up to 20 per page. GET /routes.
spoke_get_routeOne route: title, driver, stop count and state (distributed, started, completed, recipients notified). GET /routes/{routeId}.
spoke_list_route_stopsList 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.
spoke_list_operationsList long-running operations (plan optimizations): type, done flag, who started it, result (optimized and skipped stops), up to 20 per page. GET /operations.
spoke_get_operationOne operation, e.g. the optimization started by spoke_optimize_plan: poll until done is true. GET /operations/{operationId}.
spoke_list_custom_stop_propertiesThe 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.
spoke_create_planWRITE: 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.
spoke_update_planWRITE: 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}.
spoke_create_stopWRITE: 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_imp
spoke_import_stopsWRITE: 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 no
spoke_optimize_planWRITE: 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: po
spoke_distribute_planWRITE (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 expl
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 6, 2026
The registry name was verified against the domain usefulapi.io (the registry checks domain ownership)
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
Responded in 18 ms (HTTP 200)
No sign-in needed
Read 23 tool descriptions and found no hidden instructions to the AI
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 3 of 3 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
The registry does not list a required key, though some servers ask you to sign in on first use.
It runs in the maker’s cloud. Connect over the internet with nothing to install, but what you send passes through the maker’s servers.
The GitHub repo last changed –, and the latest version (1.22.3) reached the registry yesterday.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. It connects by URL, so apps that accept remote MCP servers work too, such as ChatGPT in developer mode.
In the same category: Spec Driven Development, Remote Desktop Commander, DepTime
Servers in the same category from other makers, sorted by stars.
Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
What changed in a Python library, in which release, and what replaces it. Answered locally.
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
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
https://spoke-dispatch.usefulapi.io/mcp.claude mcp add --transport http spoke-dispatch https://spoke-dispatch.usefulapi.io/mcp, then run /mcp to log in.{
"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/
| Tool | Type | What it does |
|---|---|---|
spoke_list_plans | read | List plans |
spoke_get_plan | read | Get plan |
spoke_list_plan_stops | read | List plan stops |
spoke_get_stop | read | Get stop |
spoke_search_stops | read | Search stops |
spoke_list_unassigned_stops | read | List unassigned stops |
spoke_get_unassigned_stop | read | Get unassigned stop |
spoke_list_drivers | read | List drivers |
spoke_get_driver | read | Get driver |
spoke_list_depots | read | List depots |
spoke_get_depot | read | Get depot |
spoke_list_routes | read | List routes |
spoke_get_route | read | Get route |
spoke_list_route_stops | read | List route stops |
spoke_list_operations | read | List operations |
spoke_get_operation | read | Get operation |
spoke_list_custom_stop_properties | read | List custom stop properties |
spoke_create_plan | write | Create plan |
spoke_update_plan | write | Update plan |
spoke_create_stop | write | Create stop |
spoke_import_stops | write | Import stops |
spoke_optimize_plan | write | Optimize plan |
spoke_distribute_plan | write | Distribute plan to drivers |
spoke_usage_status | meta | Usage status (free-tier meter) |
spoke_request_feature | meta | Request a missing feature |
spoke_upgrade | meta | Upgrade to Pro or Pro+ |
spoke_cancel_subscription | meta | Cancel 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.
| Plan | Price | Limit |
|---|---|---|
| Free | $0 | 50 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 support@usefulapi.io.
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 support@usefulapi.io.
MIT © usefulapi. Not affiliated with or endorsed by Spoke Dispatch.