Shipday MCP by usefulapi
by usefulapi.io · remote · no sign-in to list tools · v1.7.3 · published by io.usefulapi
Read Shipday orders, carriers and delivery status; create orders and assign drivers.
14 tools: 1 can delete or cancel things, 4 change things and 9 only read.
Scanned Oct 21, 2026
- Deletes or cancels1Claude Code: deny: see these tools
- Can't be undone0Claude Code: ask
- Changes things4Claude Code: ask: see these tools
- Only reads9Claude Code: allow: see these tools
No check matched anything in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http shipday https://shipday.usefulapi.io/mcpTools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
14 tools
Deletes or cancels 1Claude Code: deny
create_orderWRITE: insert a new delivery order into Shipday (it appears on the dispatch board; it is not assigned to a driver).No findings
Why it is in this group
- The name "create_order" says "create": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it WRITE: insert a new delivery order into Shipday (it appears on the dispatch board; it is not assigned to a driver). Returns the new orderId. Times are UTC. Shipday: POST /orders.
Annotations the server declares
- title: Create a delivery order
- readOnlyHint: false
- destructiveHint: true
Changes things 4Claude Code: ask
assign_order_to_carrierWRITE: assign a delivery order to one of the account's own carriers (drivers); the driver is notified in the Shipday driver app.No findings
Why it is in this group
- The name "assign_order_to_carrier" says "assign": a word for a change.
Description, as the server wrote it WRITE: assign a delivery order to one of the account's own carriers (drivers); the driver is notified in the Shipday driver app. Re-assigning to the same driver changes nothing. Shipday: PUT /orders/assign/{orderId}/{carrierId}.
Annotations the server declares
- title: Assign an order to a driver
- readOnlyHint: false
- idempotentHint: true
check_on_demand_availabilityQuote third-party on-demand delivery for a pickup and delivery address before creating an order: which services can deliver, their fee and pickup/delivery times.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Quote third-party on-demand delivery for a pickup and delivery address before creating an order: which services can deliver, their fee and pickup/delivery times. Read only: nothing is booked. Shipday: POST /on-demand/availability.
Annotations the server declares
- title: Check on-demand delivery availability
- readOnlyHint: true
set_order_ready_to_pickupWRITE: set or clear an order's ready-to-pickup flag (tells the driver the order is ready at the pickup location).No findings
Why it is in this group
- The name "set_order_ready_to_pickup" says "set": a word for a change.
Description, as the server wrote it WRITE: set or clear an order's ready-to-pickup flag (tells the driver the order is ready at the pickup location). Shipday: PUT /orders/{orderId}/meta.
Annotations the server declares
- title: Mark an order ready for pickup
- readOnlyHint: false
- idempotentHint: true
unassign_orderWRITE: remove the driver from a delivery order (it goes back to unassigned).No findings
Why it is in this group
- The name "unassign_order" says "unassign": a word for a change.
Description, as the server wrote it WRITE: remove the driver from a delivery order (it goes back to unassigned). Shipday: PUT /orders/unassign/{orderId}.
Annotations the server declares
- title: Unassign an order from its driver
- readOnlyHint: false
- idempotentHint: true
Only reads 9Claude Code: allow
get_delivery_progressReal-time delivery progress of an order by its tracking id: status (STARTED, PICKED_UP, ...), timestamps, the driver's current location and the ETA in minutes.No findings
Why it is in this group
- The name "get_delivery_progress" says "get": a word for reading.
Description, as the server wrote it Real-time delivery progress of an order by its tracking id: status (STARTED, PICKED_UP, ...), timestamps, the driver's current location and the ETA in minutes. The tracking id is the last part of the order's trackingLink. Shipday's Business Advanced plan only; at most 3 requests per minute per tracking id. Shipday: GET /order/progress/{trackingId}.
Annotations the server declares
- title: Get delivery progress and ETA
- readOnlyHint: true
get_on_demand_detailsDetails of the third-party on-demand delivery booked for an order: provider, reference id, third-party fee, Shipday charge, total billable amount and tracking URL.No findings
Why it is in this group
- The name "get_on_demand_details" says "get": a word for reading.
Description, as the server wrote it Details of the third-party on-demand delivery booked for an order: provider, reference id, third-party fee, Shipday charge, total billable amount and tracking URL. Shipday: GET /on-demand/details/{orderId}.
Annotations the server declares
- title: Get on-demand delivery details
- readOnlyHint: true
get_on_demand_estimateGet fee and time estimates from the third-party on-demand delivery services for an existing order (fee, pickup/delivery time, durations, per-service errors).No findings
Why it is in this group
- The name "get_on_demand_estimate" says "get": a word for reading.
Description, as the server wrote it Get fee and time estimates from the third-party on-demand delivery services for an existing order (fee, pickup/delivery time, durations, per-service errors). Read only: nothing is booked. Shipday: GET /on-demand/estimate/{orderId}.
Annotations the server declares
- title: Get on-demand delivery estimates
- readOnlyHint: true
get_orderGet the details of a delivery order by its order number (the merchant's reference, `orderNumber`).No findings
Why it is in this group
- The name "get_order" says "get": a word for reading.
Description, as the server wrote it Get the details of a delivery order by its order number (the merchant's reference, `orderNumber`). Returns an array, since several orders can share one order number. Includes the numeric orderId needed by the write tools, the carrier, tracking link and status. Shipday: GET /orders/{orderNumber}.
Annotations the server declares
- title: Get order by order number
- readOnlyHint: true
get_pickup_orderGet a pickup (customer collects it) order by its numeric id, with restaurant, customer, items, costs, expected pickup date/time and status.No findings
Why it is in this group
- The name "get_pickup_order" says "get": a word for reading.
Description, as the server wrote it Get a pickup (customer collects it) order by its numeric id, with restaurant, customer, items, costs, expected pickup date/time and status. Shipday: GET /pickup-orders/{orderId}.
Annotations the server declares
- title: Get a pickup order
- readOnlyHint: true
list_active_ordersList the account's active (not yet completed) delivery orders with customer, pickup location (restaurant), assigned carrier/driver, timeline (activityLog), costs, payment method an…No findings
Why it is in this group
- The name "list_active_orders" says "list": a word for reading.
Description, as the server wrote it List the account's active (not yet completed) delivery orders with customer, pickup location (restaurant), assigned carrier/driver, timeline (activityLog), costs, payment method and orderStatus.orderState. Good first call. Shipday: GET /orders.
Annotations the server declares
- title: List active orders
- readOnlyHint: true
list_carriersList the account's carriers (drivers) with id, name, phone, email, isOnShift, isActive and last known location.No findings
Why it is in this group
- The name "list_carriers" says "list": a word for reading.
Description, as the server wrote it List the account's carriers (drivers) with id, name, phone, email, isOnShift, isActive and last known location. Use an id here with assign_order_to_carrier. Shipday: GET /carriers.
Annotations the server declares
- title: List carriers (drivers)
- readOnlyHint: true
list_on_demand_servicesList the third-party on-demand delivery services (DoorDash, Uber, ...) available to the account and whether each is enabled.No findings
Why it is in this group
- The name "list_on_demand_services" says "list": a word for reading.
Description, as the server wrote it List the third-party on-demand delivery services (DoorDash, Uber, ...) available to the account and whether each is enabled. Shipday: GET /on-demand/services.
Annotations the server declares
- title: List on-demand delivery services
- readOnlyHint: true
query_ordersSearch delivery orders, including completed ones, by placement-time window and status, with row-based paging: start_cursor/end_cursor select rows (e.g.No findings
Why it is in this group
- The name "query_orders" says "query": a word for reading.
Description, as the server wrote it Search delivery orders, including completed ones, by placement-time window and status, with row-based paging: start_cursor/end_cursor select rows (e.g. 1–100, then 101–200; at most 100 per call) sorted newest first. Each row has timestamps (placement, assigned, picked up, delivered, failed), totals, driver payment, distance and carrier. Shipday: POST /orders/query.
Annotations the server declares
- title: Search orders (history)
- readOnlyHint: true
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 1.7.3. Values in angle brackets are yours to fill in.
claude mcp add --transport http shipday https://shipday.usefulapi.io/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__shipday__list_active_orders",
"mcp__shipday__get_order",
"mcp__shipday__query_orders",
"mcp__shipday__get_pickup_order",
"mcp__shipday__get_delivery_progress",
"mcp__shipday__list_carriers",
"mcp__shipday__list_on_demand_services",
"mcp__shipday__get_on_demand_estimate",
"mcp__shipday__get_on_demand_details"
],
"ask": [
"mcp__shipday__check_on_demand_availability",
"mcp__shipday__assign_order_to_carrier",
"mcp__shipday__unassign_order",
"mcp__shipday__set_order_ready_to_pickup"
],
"deny": [
"mcp__shipday__create_order"
]
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as shipday. Review it before you use it.