Stuart MCP by usefulapi

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

Quote, validate, book and track Stuart courier deliveries; cancel jobs and check zone coverage.

The publisher's own server: Ably MCP by usefulapi

VerifiedStreamable HTTPWeb executableLocation & LifestyleBusiness & Commerce

Overview

AI-generated overview

Hosted MCP server for Stuart courier deliveries: quote, validate, book, track and cancel delivery jobs and check zone coverage.

What you can do
  • Quote and validate before booking: price estimates, job validation, pickup and dropoff ETAs, address checks
  • List and inspect jobs: recent jobs with status, tracking URLs, driver and pricing, and full job details
  • Book and manage deliveries: create jobs with 1-8 dropoffs, update details, mark orders ready, cancel jobs or single deliveries
  • Check coverage and scheduling: zone GeoJSON areas and available time slots per zone and date
  • Get the anonymised courier phone number for an active delivery
  • Manage the service plan: usage status, upgrade, cancel subscription, request a feature
When to use it
Useful when you want an assistant to price and dispatch Stuart couriers, follow up on in-progress deliveries, or check whether an address falls inside a Stuart delivery zone, without writing API code.
Requirements
Remote endpoint over streamable HTTP; add only the URL, since sign-in uses OAuth. On first connect you choose production or sandbox and supply your Stuart API client ID and client secret from the Stuart admin console; the two environments have separate credentials. A free plan allows 50 tool calls per month.
Before you install
Creating a job on production books a real, charged courier; use the sandbox to experiment. Cancellations may incur a fee once a courier is on the way, and write tools change Stuart data, so confirm before running them. The login page asks for your Stuart API client ID and secret. Paid plans are billed through Stripe checkout links, and cancelling does not refund the current period.

Installation

In SourceWeft

  1. Open Stuart 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%2Fstuart/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": {
    "stuart-by-usefulapi": {
      "type": "http",
      "url": "https://stuart.usefulapi.io/mcp"
    }
  }
}

README

Stuart MCP by usefulapi

Quote, validate, book and track Stuart courier deliveries; cancel jobs and check zone coverage.

Live endpoint: https://stuart.usefulapi.io/mcp · Homepage: https://usefulapi.io/stuart

Connect

  • Claude (claude.ai, Desktop): open Customize → Connectors, click + Add → Add custom connector, and paste https://stuart.usefulapi.io/mcp.
  • Claude Code: claude mcp add --transport http stuart https://stuart.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": {    "stuart": {      "url": "https://stuart.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 Stuart credentials.

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

On first connect you'll pick the environment (production or sandbox) and paste your Stuart API client ID and API client secret (Stuart admin → API credentials: https://admin.stuart.com for production, https://admin.sandbox.stuart.com for the sandbox; the two environments have separate credentials). Creating a job on production books a real, charged courier: use the sandbox to try things out.

Tools

ToolTypeWhat it does
stuart_list_jobsreadList delivery jobs
stuart_get_jobreadGet a delivery job
stuart_estimate_pricereadGet a delivery price quote
stuart_validate_jobreadValidate a delivery job
stuart_estimate_pickup_etareadEstimate courier arrival at pickup
stuart_estimate_dropoff_etareadEstimate time to dropoff
stuart_validate_addressreadValidate a pickup or dropoff address
stuart_get_zone_coveragereadGet a zone's coverage area
stuart_get_zone_schedule_slotsreadGet a zone's scheduling slots
stuart_get_courier_phonereadGet the courier's anonymous phone number
stuart_create_jobwriteCreate a delivery job (dispatches a courier)
stuart_update_jobwriteUpdate delivery details
stuart_cancel_jobwriteCancel a delivery job
stuart_cancel_deliverywriteCancel one delivery
stuart_mark_order_readywriteSignal that an order is ready for pickup
stuart_usage_statusmetaUsage status (free-tier meter)
stuart_request_featuremetaRequest a missing feature
stuart_upgrademetaUpgrade to Pro or Pro+
stuart_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 user)$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 stuart_upgrade (it returns a Stripe Checkout link). Cancel any time with stuart_cancel_subscription: Pro continues to the end of the paid period, with no refund for the current period, and running stuart_upgrade before then undoes the cancel. Or write to [email protected].

License

Source: servers/stuart/README.md at commit 4046075

Tools

15

stuart_list_jobs

List delivery jobs

List the delivery jobs of the last 90 days, newest pickup first, with status, deliveries (tracking URLs, courier proof), driver and pricing. Filter by status, active or your client_reference. Paginated: when a page returns per_page rows, ask for the next page. Stuart: GET /v2/jobs.

Parameterspageactivestatusper_pageclient_reference

stuart_get_job

Get a delivery job

One job in full: status, each delivery with tracking URL, pickup/dropoff addresses and contacts, ETA, cancellation, proof of delivery, driver, distance and pricing. Stuart: GET /v2/jobs/{jobId}.

Parametersjob_idrequired

stuart_estimate_price

Get a delivery price quote

Price of a job before you create it: amount excluding and including tax, and currency. Nothing is booked. Needs pickup address, dropoff address and package type. Stuart: POST /v2/jobs/pricing.

Parameterspickuprequireddropoffsrequiredpickup_at

stuart_validate_job

Validate a delivery job

Check that a job would be accepted (addresses geocode inside a covered zone, fields valid) without creating it. Returns {valid}. Stuart: POST /v2/jobs/validate.

Parameterspickuprequireddropoffsrequiredpickup_at

stuart_estimate_pickup_eta

Estimate courier arrival at pickup

Estimated seconds until a courier could arrive at the pickup address, for the same job body as create. Nothing is booked. Stuart: POST /v2/jobs/eta.

Parameterspickuprequireddropoffsrequiredpickup_at

stuart_estimate_dropoff_eta

Estimate time to dropoff

Estimated seconds to reach the destination address for a job (coordinates need the text address too). Nothing is booked. Stuart: POST /v2/jobs/cpt.

Parameterspickuprequireddropoffsrequiredpickup_at

stuart_validate_address

Validate a pickup or dropoff address

Check that an address can be geocoded and lies inside a Stuart zone, as a pickup (picking) or a dropoff (delivering). A phone number is needed when the address is approximate. Stuart: POST /v2/addresses/validate.

Parameterstyperequiredphoneaddressrequiredcoordinates

stuart_get_zone_coverage

Get a zone's coverage area

GeoJSON of the picking or delivery area of an open Stuart zone (for example paris, london). Stuart: GET /v2/areas/{zone}.

Parameterstyperequiredzonerequired

stuart_get_zone_schedule_slots

Get a zone's scheduling slots

Available time slots (start and end, 15-minute steps) in a zone for a date, from the time of the request onward. Use a future date. Stuart: GET /v2/jobs/schedules/{zone}/{type}/{date}.

Parametersdaterequiredtyperequiredzonerequired

stuart_get_courier_phone

Get the courier's anonymous phone number

Anonymised phone number of the courier assigned to a delivery. Only works once a courier is assigned; expires when the delivery ends. Stuart: GET /v2/deliveries/{deliveryId}/phone_number.

Parametersdelivery_idrequired

stuart_create_job

Create a delivery job (dispatches a courier)

BOOKS A REAL, CHARGED DELIVERY: creates a job with one pickup and 1-8 dropoffs and starts looking for a courier right away (unless pickup_at schedules it: up to 4 days ahead, 30 for corporate accounts). Get a quote with stuart_estimate_price and check with stuart_validate_job first, and confirm with the user. Use the sandbox environment for tests. Stuart: POST /v2/jobs.

Parameterspickuprequireddropoffsrequiredpickup_atassignment_code

stuart_update_job

Update delivery details

Change allowed details of a delivery in a job: client_reference, package_description, and the pickup/dropoff comment and contact (what is editable depends on the delivery status: once delivered only client_reference). Stuart: PATCH /v2/jobs/{jobId}.

Parametersjob_idrequiredpickupdropoffdelivery_idrequiredclient_referencepackage_description

stuart_cancel_job

Cancel a delivery job

Cancels a whole job and all its deliveries. Stuart may charge a cancellation fee once a courier is on the way; confirm with the user first. Give a reason key for reporting. Stuart: POST /v2/jobs/{jobId}/cancel.

Parametersjob_idrequiredcommentpublic_reason_key

stuart_cancel_delivery

Cancel one delivery

Cancels a single delivery (one dropoff) of a multi-drop job. A cancellation fee may apply; confirm with the user first. Stuart: POST /v2/deliveries/{deliveryId}/cancel.

Parameterscommentdelivery_idrequiredpublic_reason_key

stuart_mark_order_ready

Signal that an order is ready for pickup

Tell Stuart the order is packed and ready for the courier to collect. Pass exactly one of job_id (all orders of the job) or delivery_id (one order). Send it only when the order is really ready. Stuart: POST /v2/jobs/{jobId}/order_ready or /v2/deliveries/{deliveryId}/order_ready.

Parametersjob_iddelivery_idorder_ready_at

Version history

14
  1. v1.15.4LatestNov 7, 2026
  2. v1.14.3Nov 5, 2026
  3. v1.14.2Nov 5, 2026
  4. v1.14.1Nov 4, 2026
  5. v1.14.0Nov 3, 2026
  6. v1.13.1Nov 3, 2026
  7. v1.12.0Nov 1, 2026
  8. v1.10.0Oct 31, 2026
  9. v1.9.0Oct 31, 2026
  10. v1.8.2Oct 30, 2026
  11. v1.8.0Oct 30, 2026
  12. v1.3.0Oct 26, 2026
  13. v1.0.3Oct 25, 2026
  14. v1.0.0Oct 25, 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