# Shopify — how to use (mcp.ai)

Shopify in natural language: manage your store's products, orders, customers, collections and inventory. You connect with your store subdomain and your Admin API access token, generated in Shopify's app settings. Multiple stores can be connected to the same MCP.

## Option A — via MCP (recommended)
Remote MCP endpoint (HTTP, streamable): `https://api.mcp.ai/p_shopify?ms=1781542020000`
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. `shopify_add_product_to_collection`).

## Option B — via direct REST API
Base URL: `https://api.mcp.ai/api/shopify`
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/shopify/_endpoints`

### Endpoints
- `POST https://api.mcp.ai/api/shopify/add/product/to/collection` — Adds a product to an existing *custom collection*, optionally specifying its `position` if the collection is manually sorted.
  - body: { position?: integer, product_id: integer, collection_id: integer }
- `POST https://api.mcp.ai/api/shopify/count/product/images` — Retrieves the total count of images for a shopify product, useful for inventory management or display logic; the provided `product id` must exist in the store.
  - body: { product_id: string }
- `POST https://api.mcp.ai/api/shopify/create/custom/collection` — Creates a new custom collection in a shopify store, requiring a unique title for manually curated product groupings (e.g., 'new arrivals', 'seasonal specials').
  - body: { title: string }
- `POST https://api.mcp.ai/api/shopify/create/customer` — Tool to create a new customer in shopify. use when you need to add a new customer record to the store.
  - body: { note?: string, tags?: string, email: string, phone?: string, password?: string, addresses?: object[], last_name?: string, first_name?: string, verified_email?: boolean, send_email_invite?: boolean, send_email_welcome?: boolean, password_confirmation?: string }
- `POST https://api.mcp.ai/api/shopify/create/order` — Creates a new order in shopify, typically requiring line items; if `customer id` is provided, it must correspond to an existing customer.
  - body: { currency?: string, total_tax?: number, line_items: object[], customer_id?: string, transactions?: object[] }
- `POST https://api.mcp.ai/api/shopify/create/product` — Creates a new product in a shopify store; a product title is generally required.
  - body: { title?: string, vendor?: string, variants?: object[], body_html?: string, product_type?: string }
- `POST https://api.mcp.ai/api/shopify/create/product/image` — Tool to create a new product image for a given product. use when you need to add an image to a product by providing the image source url or attachment.
  - body: { image: object, product_id: string }
- `POST https://api.mcp.ai/api/shopify/delete/custom/collection` — Permanently deletes a custom collection from a shopify store using its `collection id`; this action is irreversible and requires a valid, existing `collection id`.
  - body: { collection_id: string }
- `POST https://api.mcp.ai/api/shopify/delete/product` — Deletes a specific, existing product from a shopify store using its unique product id; this action is irreversible.
  - body: { id?: string }
- `POST https://api.mcp.ai/api/shopify/delete/product/image` — Deletes a specific image from a product in shopify, requiring the `product id` of an existing product and the `image id` of an image currently associated with that product.
  - body: { image_id: string, product_id: string }
- `POST https://api.mcp.ai/api/shopify/get/all/customers` — Retrieves customer records from a shopify store, with options for filtering, selecting specific fields, and paginating through the results.
  - body: { ids?: string[], limit?: integer, fields?: string, since_id?: string, created_at_max?: string, created_at_min?: string, updated_at_max?: string, updated_at_min?: string }
- `POST https://api.mcp.ai/api/shopify/get/collection/by/id` — Retrieves a specific shopify collection by its `collection id`, optionally filtering returned data to specified `fields`.
  - body: { fields?: string, collection_id: string }
- `POST https://api.mcp.ai/api/shopify/get/collects` — Retrieves a list of collects from a shopify store, where a collect links a product to a custom collection.
  - body: { limit?: integer, fields?: string, since_id?: integer }
- `POST https://api.mcp.ai/api/shopify/get/collects/count` — Retrieves the total count of collects (product-to-collection associations) in a shopify store.
- `POST https://api.mcp.ai/api/shopify/get/custom/collections` — Retrieves a list of custom collections from a shopify store, optionally filtered by ids, product id, or handle.
  - body: { ids?: string, limit?: integer, handle?: string, product_id?: integer }
- `POST https://api.mcp.ai/api/shopify/get/custom/collections/count` — Retrieves the total number of custom collections in a shopify store.
- `POST https://api.mcp.ai/api/shopify/get/customer` — Retrieves detailed information for a specific customer from a shopify store, provided their valid and existing `customer id`.
  - body: { customer_id: string }
- `POST https://api.mcp.ai/api/shopify/get/customer/orders` — Retrieves all orders for a specific, existing customer in shopify using their unique customer id.
  - body: { customer_id: string }
- `POST https://api.mcp.ai/api/shopify/get/order/list` — Retrieves a list of orders from shopify using default api settings and filters.
- `POST https://api.mcp.ai/api/shopify/get/ordersby/id` — Retrieves a specific shopify order by its unique id, which must correspond to an existing order.
  - body: { fields?: string, order_id: string }
- `POST https://api.mcp.ai/api/shopify/get/product` — Retrieves details for an existing shopify product using its unique product id.
  - body: { product_id: string }
- `POST https://api.mcp.ai/api/shopify/get/product/image` — Retrieves detailed information for a specific product image, identified by its id and its associated product id, from a shopify store.
  - body: { image_id: string, product_id: string }
- `POST https://api.mcp.ai/api/shopify/get/product/images` — Retrieves all images for a shopify product, specified by its `product id` which must correspond to an existing product.
  - body: { fields?: string, since_id?: string, product_id: string }
- `POST https://api.mcp.ai/api/shopify/get/products` — Retrieves a list of products from a shopify store.
  - body: { ids?: string }
- `POST https://api.mcp.ai/api/shopify/get/products/count` — Retrieves the total, unfiltered count of all products in a shopify store.
- `POST https://api.mcp.ai/api/shopify/get/products/in/collection` — Retrieves all products within a specified shopify collection, requiring a valid `collection id`.
  - body: { limit?: integer, collection_id: string }
- `POST https://api.mcp.ai/api/shopify/get/shop/details` — Retrieves comprehensive administrative information about the authenticated shopify store, as defined by the shopify api.
- `POST https://api.mcp.ai/api/shopify/update/order` — Updates the phone number for an existing shopify order, identified by its id; pass `phone=none` to remove the current phone number.
  - body: { id: integer, phone?: string }

## Example prompts
- "List my store's 10 most recent orders"
- "Which products have inventory below 5 units?"
- "Create a draft product from these details"

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