# Order Desk — how to use (mcp.ai)

Connect your Order Desk account and use 20 tools for ecommerce straight from your AI agent. Connect with your own API key. Order Desk is an order management platform for managing orders, shipments, inventory, and store data across ecommerce integrations.

## Option A — via MCP (recommended)
Remote MCP endpoint (HTTP, streamable): `https://api.mcp.ai/p_order_desk?ms=1787291280000`
Add it as a custom/remote MCP connector in your client (Claude, Cursor, VS Code…), then authenticate when prompted. Once connected, ask the agent to use the server's tools (e.g. `order_desk_add_order_history_note`).

## Option B — via direct REST API
Base URL: `https://api.mcp.ai/api/order_desk`
Auth: `Authorization: Bearer sk_live_…` — create a workspace API key at https://mcp.ai/settings/api-keys
Discover endpoints: `GET https://api.mcp.ai/api/order_desk/_endpoints`

### Endpoints
- `POST https://api.mcp.ai/api/order_desk/add/order/history/note` — Append a timestamped note permanently to an existing order's history. Order history is append-only, so this tool cannot edit or remove the entry.
  - body: { note: string, order_id: integer, source_name?: string }
- `POST https://api.mcp.ai/api/order_desk/add/order/item` — Add one line item to an existing order.
  - body: { code?: string, name: string, price?: number, weight?: number, metadata?: object, order_id: integer, quantity?: integer, category_code?: string, delivery_type?: string, variation_list?: object }
- `POST https://api.mcp.ai/api/order_desk/add/order/items` — Add two to 10 line items sequentially to the same order and return a result for every processed item. This batch is not atomic.
  - body: { items: object[], order_id: integer }
- `POST https://api.mcp.ai/api/order_desk/create/inventory/item` — Create one inventory item with a unique SKU and return its positive Order Desk ID and complete created representation.
  - body: { code: string, cost?: number, name: string, price?: number, stock?: number, weight?: number, location?: string, metadata?: object, update_source?: string, variation_list?: object, manufacturer_sku?: string }
- `POST https://api.mcp.ai/api/order_desk/create/inventory/items` — Create two to 10 inventory items sequentially and return each created ID or error. This batch is not atomic.
  - body: { items: object[] }
- `POST https://api.mcp.ai/api/order_desk/create/shipments` — Create one or more shipment records across orders in one request and report the success or error returned for every shipment.
  - body: { shipments: object[] }
- `POST https://api.mcp.ai/api/order_desk/delete/inventory/item` — Permanently delete one inventory item by its positive Order Desk ID. This destructive action cannot be undone; verify the ID before calling it.
  - body: { inventory_item_id: integer }
- `POST https://api.mcp.ai/api/order_desk/delete/order/item` — Permanently remove one line item from an order. This destructive action cannot be undone by this tool; verify both IDs before calling it.
  - body: { order_id: integer, order_item_id: integer }
- `POST https://api.mcp.ai/api/order_desk/delete/shipment` — Permanently remove one shipment record from an order. This destructive action cannot be undone by this tool; verify both IDs before calling it.
  - body: { order_id: integer, shipment_id: integer }
- `POST https://api.mcp.ai/api/order_desk/get/inventory/item` — Get one inventory item by its positive Order Desk ID.
  - body: { inventory_item_id: integer }
- `POST https://api.mcp.ai/api/order_desk/get/order` — Get one order and its addresses, line items, shipments, metadata, notes, and discounts by Order Desk internal ID.
  - body: { order_id: integer }
- `POST https://api.mcp.ai/api/order_desk/get/store/metadata` — Return safe store identity, locale, timezone, page-size settings, and folder IDs and names without exposing credentials or email configuration.
- `POST https://api.mcp.ai/api/order_desk/list/inventory/items` — Search inventory items in the connected store by ID, SKU, name, metadata, manufacturer SKU, location, or update time.
  - body: { code?: string, name?: string, search?: string, location?: string, metadata?: string, manufacturer_sku?: string, inventory_item_id?: integer, updated_start_date?: string, exclude_update_source?: string }
- `POST https://api.mcp.ai/api/order_desk/list/order/items` — Return all line items for one order.
  - body: { order_id: integer }
- `POST https://api.mcp.ai/api/order_desk/list/order/shipments` — Return all shipments recorded for one order.
  - body: { order_id: integer }
- `POST https://api.mcp.ai/api/order_desk/list/orders` — Find orders in the connected store using at least one narrowing filter and return one bounded page. Use next_cursor to continue the same query.
  - body: { email?: string, limit?: integer, order_by?: string, folder_id?: string, source_id?: string, sort_order?: string, customer_id?: string, folder_name?: string, next_cursor?: string, source_name?: string, search_end_date?: string, customer_company?: string, shipping_company?: string, modified_end_date?: string, search_start_date?: string, customer_last_name?: string, shipping_last_name?: string, customer_first_name?: string, modified_start_date?: string, shipping_first_name?: string, include_order_history?: boolean, search_end_date_local?: string, search_start_date_local?: string }
- `POST https://api.mcp.ai/api/order_desk/move/orders` — Move one or more orders to exactly one destination folder selected by positive ID or exact name, with a result for every order.
  - body: { order_ids: integer[], destination_folder_id?: integer, destination_folder_name?: string }
- `POST https://api.mcp.ai/api/order_desk/update/inventory/items` — Safely update selected fields on one or more inventory items while preserving every omitted field.
  - body: { updates: object[] }
- `POST https://api.mcp.ai/api/order_desk/update/order/item` — Safely update selected fields on one order line item while preserving every omitted field.
  - body: { changes: object, order_id: integer, order_item_id: integer }
- `POST https://api.mcp.ai/api/order_desk/update/shipment` — Safely update selected fields on one shipment while preserving every omitted field.
  - body: { changes: object, order_id: integer, shipment_id: integer }

## Example prompts
- "What can I do in Order Desk?"
- "Show me a summary of my Order Desk account"

## More
- Page: https://mcp.ai/order_desk
- Agent spec (llms.txt): https://mcp.ai/order_desk/llms.txt
- Postman collection: https://mcp.ai/order_desk/postman.json
