Shipday MCP by usefulapi

Read Shipday orders, carriers and delivery status; create orders and assign drivers.

我该使用它吗

质量与安全性

A
描述质量
97%
模式完整度
84%
命名质量
97%
投毒风险
100%
权限匹配度
100%
协议合规性
100%

基于对工具定义和协议合规性的自动分析。

上下文开销

~3,148token 数(工具定义)
~1.6 KB典型响应大小
对注意力有显著影响(占 128k 上下文窗口的 2.46%)

这是每次将服务器的工具加载到模型上下文窗口时所消耗的大致 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"
}

社区

评价此服务器

证据

最近观测

已验证未记录版本14 个工具