Shipday MCP by usefulapi
Read Shipday orders, carriers and delivery status; create orders and assign drivers.
我該用這個嗎
品質與安全性
根據工具定義與協定合規性的自動化分析。
上下文成本
這是每次將伺服器的工具載入模型上下文時所消耗的約略 token 數量。數量越高,可用於其他工作的注意力就越少。
安裝
一鍵安裝
將以下內容加入你的 `claude_desktop_config.json` 檔案:
{
"mcpServers": {
"shipday": {
"url": "https://shipday.usefulapi.io/mcp"
}
}
}遠端端點
https://shipday.usefulapi.io/mcpstreamable-http它能做什麼
工具清單
工具(14)
🟢list_active_orders
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.
輸入結構描述
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢get_order(order_number)
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}.
輸入結構描述
{
"type": "object",
"properties": {
"order_number": {
"type": "string",
"minLength": 1,
"description": "The order number (orderNumber) of the order, e.g. \"75637\"."
}
},
"required": [
"order_number"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢query_orders(start_time, end_time, order_status, start_cursor, end_cursor)
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.
輸入結構描述
{
"type": "object",
"properties": {
"start_time": {
"description": "Only orders placed at/after this ISO 8601 time (UTC), e.g. 2026-10-01T00:00:00Z.",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}(:\\d{2}(\\.\\d+)?)?(Z|[+-]\\d{2}:?\\d{2})$"
},
"end_time": {
"description": "Only orders placed at/before this ISO 8601 time (UTC).",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}(:\\d{2}(\\.\\d+)?)?(Z|[+-]\\d{2}:?\\d{2})$"
},
"order_status": {
"description": "Only orders in this status.",
"type": "string",
"enum": [
"ACTIVE",
"NOT_ASSIGNED",
"NOT_ACCEPTED",
"NOT_STARTED_YET",
"STARTED",
"PICKED_UP",
"READY_TO_DELIVER",
"ALREADY_DELIVERED",
"FAILED_DELIVERY",
"INCOMPLETE"
]
},
"start_cursor": {
"description": "First row to return (1-based, default 1).",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
},
"end_cursor": {
"description": "Last row to return (default start_cursor + 99). At most 100 rows per call.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢get_pickup_order(order_id)
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}.
輸入結構描述
{
"type": "object",
"properties": {
"order_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Numeric id of the pickup order."
}
},
"required": [
"order_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢get_delivery_progress(tracking_id, include_static_data)
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}.
輸入結構描述
{
"type": "object",
"properties": {
"tracking_id": {
"type": "string",
"minLength": 1,
"description": "The order's tracking id (from its trackingLink)."
},
"include_static_data": {
"description": "true = also return fixed details (customer, restaurant, carrier). Default false.",
"type": "boolean"
}
},
"required": [
"tracking_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢list_carriers
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.
輸入結構描述
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢list_on_demand_services
List the third-party on-demand delivery services (DoorDash, Uber, ...) available to the account and whether each is enabled. Shipday: GET /on-demand/services.
輸入結構描述
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢get_on_demand_estimate(order_id)
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}.
輸入結構描述
{
"type": "object",
"properties": {
"order_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Shipday's internal numeric order id (the `orderId` field, not the order number)."
}
},
"required": [
"order_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢get_on_demand_details(order_id)
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}.
輸入結構描述
{
"type": "object",
"properties": {
"order_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Shipday's internal numeric order id (the `orderId` field, not the order number)."
}
},
"required": [
"order_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢check_on_demand_availability(pickup_address, delivery_address, pickup_time, delivery_time)
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.
輸入結構描述
{
"type": "object",
"properties": {
"pickup_address": {
"type": "string",
"minLength": 1,
"description": "Full pickup address."
},
"delivery_address": {
"type": "string",
"minLength": 1,
"description": "Full delivery address."
},
"pickup_time": {
"description": "Expected pickup time, ISO 8601 UTC.",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}(:\\d{2}(\\.\\d+)?)?(Z|[+-]\\d{2}:?\\d{2})$"
},
"delivery_time": {
"description": "Expected delivery time, ISO 8601 UTC.",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}(:\\d{2}(\\.\\d+)?)?(Z|[+-]\\d{2}:?\\d{2})$"
}
},
"required": [
"pickup_address",
"delivery_address"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴create_order(order_number, customer_name, customer_address, customer_phone_number, customer_email, ...)
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.
輸入結構描述
{
"type": "object",
"properties": {
"order_number": {
"type": "string",
"minLength": 1,
"description": "Your reference for the order (orderNumber)."
},
"customer_name": {
"type": "string",
"minLength": 1,
"description": "Customer name."
},
"customer_address": {
"type": "string",
"minLength": 1,
"description": "Delivery address."
},
"customer_phone_number": {
"type": "string",
"minLength": 1,
"description": "Customer phone number with country code, e.g. +14155550100."
},
"customer_email": {
"description": "Customer email.",
"type": "string"
},
"restaurant_name": {
"type": "string",
"minLength": 1,
"description": "Pickup location / store name."
},
"restaurant_address": {
"type": "string",
"minLength": 1,
"description": "Pickup address."
},
"restaurant_phone_number": {
"description": "Pickup location phone with country code.",
"type": "string"
},
"expected_delivery_date": {
"description": "Expected delivery date, yyyy-mm-dd (UTC).",
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"expected_pickup_time": {
"description": "Expected pickup time, hh:mm:ss (UTC).",
"type": "string",
"pattern": "^\\d{2}:\\d{2}:\\d{2}$"
},
"expected_delivery_time": {
"description": "Expected delivery time, hh:mm:ss (UTC).",
"type": "string",
"pattern": "^\\d{2}:\\d{2}:\\d{2}$"
},
"pickup_latitude": {
"description": "Pickup latitude.",
"type": "number",
"minimum": -90,
"maximum": 90
},
"pickup_longitude": {
"description": "Pickup longitude.",
"type": "number",
"minimum": -180,
"maximum": 180
},
"delivery_latitude": {
"description": "Delivery latitude.",
"type": "number",
"minimum": -90,
"maximum": 90
},
"delivery_longitude": {
"description": "Delivery longitude.",
"type": "number",
"minimum": -180,
"maximum": 180
},
"order_items": {
"description": "Items in the order.",
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"description": "Item name."
},
"quantity": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Quantity."
},
"unit_price": {
"description": "Price per unit.",
"type": "number",
"minimum": 0
},
"detail": {
"description": "Item note.",
"type": "string"
},
"add_ons": {
"description": "Add-ons.",
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"name",
"quantity"
]
}
},
"tips": {
"description": "Tip amount.",
"type": "number",
"minimum": 0
},
"tax": {
"description": "Tax amount.",
"type": "number",
"minimum": 0
},
"discount_amount": {
"description": "Discount amount.",
"type": "number",
"minimum": 0
},
"delivery_fee": {
"description": "Delivery fee.",
"type": "number",
"minimum": 0
},
"total_order_cost": {
"description": "Total order cost.",
"type": "number",
"minimum": 0
},
"pickup_instruction": {
"description": "Instructions for the pickup.",
"type": "string"
},
"delivery_instruction": {
"description": "Instructions for the driver at delivery.",
"type": "string"
},
"order_source": {
"description": "Where the order came from (free text).",
"type": "string"
},
"additional_id": {
"description": "An extra reference id.",
"type": "string"
},
"payment_method": {
"description": "Payment method.",
"type": "string",
"enum": [
"cash",
"credit_card"
]
}
},
"required": [
"order_number",
"customer_name",
"customer_address",
"customer_phone_number",
"restaurant_name",
"restaurant_address"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟡assign_order_to_carrier(order_id, carrier_id)
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}.
輸入結構描述
{
"type": "object",
"properties": {
"order_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Shipday's internal numeric order id (the `orderId` field, not the order number)."
},
"carrier_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Numeric carrier (driver) id from list_carriers."
}
},
"required": [
"order_id",
"carrier_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴unassign_order(order_id)
WRITE: remove the driver from a delivery order (it goes back to unassigned). Shipday: PUT /orders/unassign/{orderId}.
輸入結構描述
{
"type": "object",
"properties": {
"order_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Shipday's internal numeric order id (the `orderId` field, not the order number)."
}
},
"required": [
"order_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴set_order_ready_to_pickup(order_id, ready_to_pickup)
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.
輸入結構描述
{
"type": "object",
"properties": {
"order_id": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 9007199254740991,
"description": "Shipday's internal numeric order id (the `orderId` field, not the order number)."
},
"ready_to_pickup": {
"description": "true = ready (default), false = not ready.",
"type": "boolean"
}
},
"required": [
"order_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}社群
證據