# Shopify — MCP server on 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. By: mcp.ai · official Page: https://mcp.ai/shopify ## Connect (MCP protocol) Remote MCP endpoint (HTTP, streamable): https://api.mcp.ai/p_shopify?ms=1788883800000 Add it as a custom/remote MCP connector, then authenticate when prompted. ## REST API (no MCP client required) Every tool is also a REST endpoint, authed with a workspace API key. Discover: GET https://api.mcp.ai/api/shopify/_endpoints # public; lists every endpoint Call: POST https://api.mcp.ai/api/shopify/ Authorization: Bearer sk_live_… # create one at https://mcp.ai/settings/api-keys Content-Type: application/json Body: { …args } → { "ok": true, "tool": "", "result": { … } } ## Developer docs How to use (MCP or REST), markdown: https://mcp.ai/shopify/skill.md Postman collection (v2.1): https://mcp.ai/shopify/postman.json ## Tools - shopify_add_product_to_collection(position?: integer, product_id: string, collection_id: integer) — DEPRECATED: Use SHOPIFY_ADDS_A_PRODUCT_TO_A_CUSTOM_COLLECTION instead. Adds a product to an existing *custom collection*, optionally specifying its `position` if the collection is manually sorted. - shopify_count_product_images(product_id: string) — Retrieves the total count of images for a specific Shopify product. Use when you need to know how many images are associated with a product. - shopify_create_custom_collection(image?: object, title: string, handle?: string, collects?: object[], body_html?: string, published?: boolean, metafields?: object[], sort_order?: string, published_scope?: string, template_suffix?: string) — Create a new custom (manually curated) collection in Shopify. Does not support smart collections. Use when you need to manually curate and group products for easier store browsing. Custom collections - shopify_create_customer(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) — Create a new customer in Shopify. Use to add a customer record to the store with contact details, addresses, and marketing preferences. Requires at least one of: email, phone, or both first_name and l - shopify_create_order(note?: string, tags?: string, email?: string, phone?: string, currency?: string, customer?: object, total_tax?: string, line_items: object[], send_receipt?: boolean, transactions?: object[], discount_codes?: object[], shipping_lines?: object[], billing_address?: object, financial_status?: string, shipping_address?: object, fulfillment_status?: string, inventory_behaviour?: string, send_fulfillment_receipt?: boolean) — Create a fully committed (real) order in Shopify without payment processing. Use when programmatically generating orders with line items, customer information, and addresses. Creates a live order imme - shopify_create_product(title: string, vendor?: string, variants?: object[], body_html?: string, product_type?: string) — DEPRECATED: Use SHOPIFY_CREATES_A_NEW_PRODUCT instead. Creates a new product in a Shopify store; a product title is generally required. Note: The Product REST API is deprecated as of API version 2025- - shopify_create_product_image(image: object, product_id: string) — DEPRECATED: Use SHOPIFY_CREATE_A_NEW_PRODUCT_IMAGE instead. Creates a new product image for a Shopify product. Use this tool to add images to products either by providing a publicly accessible image U - shopify_delete_custom_collection(collection_id: string) — DEPRECATED: Use SHOPIFY_DELETES_A_CUSTOM_COLLECTION instead. Permanently deletes a custom collection from a Shopify store using its `collection_id`; this action is irreversible and requires a valid, e - shopify_delete_product(product_id: string) — Permanently deletes a product from a Shopify store by its product ID. This action is irreversible - deleted products cannot be recovered. Deleting a product also removes all associated variants, image - shopify_delete_product_image(image_id: string, product_id: string) — 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. - shopify_get_collection_by_id(fields?: string, collection_id: string) — Retrieves a specific Shopify collection by its `collection_id`, optionally filtering returned data to specified `fields`. - shopify_get_collects(limit?: integer, fields?: string, since_id?: integer, product_id?: integer, collection_id?: integer) — Retrieves a list of collects from a Shopify store, where a collect links a product to a custom collection. Returns only collect mapping records (collect_id, collection_id, product_id, position, etc.), - shopify_get_collects_count(product_id?: string, collection_id?: string) — Retrieves a count of collects (product-collection relationships). Use when you need to know the total number of collects, optionally filtered by collection_id or product_id. - shopify_get_custom_collections(ids?: string, limit?: integer, title?: string, fields?: string, handle?: string, since_id?: integer, product_id?: integer, updated_at_max?: string, updated_at_min?: string, published_at_max?: string, published_at_min?: string, published_status?: string) — Retrieves a list of custom collections from a Shopify store. Supports filtering by IDs, handle, title, product ID, publication status, and date ranges (published/updated). Use the fields parameter to - shopify_get_custom_collections_count(title?: string, product_id?: string, updated_at_max?: string, updated_at_min?: string, published_at_max?: string, published_at_min?: string, published_status?: string) — Retrieves the total count of custom collections in a Shopify store with optional filters. Use this action to get the number of custom collections, optionally filtered by: - Product ID (collections con - shopify_get_customer(fields?: string, customer_id: string) — Retrieve a single customer by their unique identifier. Use when you need to fetch detailed information about a specific customer. - shopify_get_customer_orders(limit?: integer, status?: string, since_id?: integer, page_info?: string, customer_id: string) — Retrieves all orders for a specific, existing customer in Shopify using their unique customer ID. - shopify_get_order_list(ids?: string|integer[], name?: string, limit?: integer, fields?: string|string[], status?: string, since_id?: string, page_info?: string, created_at_max?: string, created_at_min?: string, updated_at_max?: string, updated_at_min?: string, financial_status?: string, processed_at_max?: string, processed_at_min?: string, attribution_app_id?: string, fulfillment_status?: string) — Retrieves a list of orders from Shopify with optional filters and pagination. - shopify_get_ordersby_id(fields?: string, order_id: string) — Retrieves a specific Shopify order by its unique ID, which must correspond to an existing order. - shopify_get_product(product_id: string) — Retrieves details for an existing Shopify product using its unique product ID. - shopify_get_product_image(image_id: string, product_id: string) — Retrieve a single product image by ID for a specific product. Use when you need to get details about a specific image associated with a product. - shopify_get_product_images(fields?: string, since_id?: string, product_id: string) — Retrieves all images for a Shopify product, specified by its `product_id` which must correspond to an existing product. - shopify_get_products(ids?: string, limit?: integer, since_id?: integer, page_info?: string) — Retrieves a list of products from a Shopify store. Results are paginated; for large catalogs, use SHOPIFY_GET_PRODUCTS_PAGINATED to iterate all pages, as this tool may return only a partial set. Produ - shopify_get_products_in_collection(limit?: integer, collection_id: string) — Retrieves products that belong to a specific Shopify collection. Returns detailed product information including variants, images, and options. Products are sorted according to the collection's configu - shopify_get_shop_details() — Retrieves comprehensive administrative information about the authenticated Shopify store. The returned `iana_timezone` field is critical for date-based filtering in other tools (e.g., `created_at_min` - shopify_update_order(id: string, note?: string, tags?: string, email?: string, phone?: string, po_number?: string, metafields?: object[], tax_exempt?: boolean, send_receipt?: boolean, billing_address?: object, note_attributes?: object[], shipping_address?: object, buyer_accepts_marketing?: boolean, send_fulfillment_receipt?: boolean) — Updates mutable fields on an existing Shopify order. ## Example prompts - "List my store's 10 most recent orders" - "Which products have inventory below 5 units?" - "Create a draft product from these details" ## Links Docs: https://mcp.ai/docs/mcps/shopify Website: https://mcp.ai/mcps/shopify