Shipday MCP by usefulapi

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

¿Debería usar esto?

Calidad y seguridad

A
Calidad de la descripción
97%
Integridad del esquema
84%
Calidad de los nombres
97%
Riesgo de envenenamiento
100%
Coincidencia de permisos
100%
Cumplimiento del protocolo
100%

Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.

Costo de contexto

~3,148Tokens (definiciones de herramientas)
~1.6 KBTamaño de respuesta típico
Impacto significativo en la atención (2.46% del contexto de 128k)

Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.

Instalar

Instalación con un clic

Agrega esto a tu archivo `claude_desktop_config.json`:

{
  "mcpServers": {
    "shipday": {
      "url": "https://shipday.usefulapi.io/mcp"
    }
  }
}

Puntos de conexión remotos

https://shipday.usefulapi.io/mcpstreamable-http

Qué puede hacer

Inventario de herramientas

Herramientas (14)

🟢 Solo lectura🟡 Escritura🔴 Eliminación⚪ Desconocido
🟢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.

Esquema de entrada

{
  "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}.

Esquema de entrada

{
  "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.

Esquema de entrada

{
  "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}.

Esquema de entrada

{
  "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}.

Esquema de entrada

{
  "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.

Esquema de entrada

{
  "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.

Esquema de entrada

{
  "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}.

Esquema de entrada

{
  "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}.

Esquema de entrada

{
  "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.

Esquema de entrada

{
  "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.

Esquema de entrada

{
  "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}.

Esquema de entrada

{
  "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}.

Esquema de entrada

{
  "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.

Esquema de entrada

{
  "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"
}

Comunidad

Califica este servidor

Evidencia

Observaciones recientes

verificadoversión no registrada14 herramientas