# 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=1781542320000 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: integer, collection_id: integer) — 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 shopify product, useful for inventory management or display logic; the provided `product id` must exist in the store. - shopify_create_custom_collection(title: string) — Creates a new custom collection in a shopify store, requiring a unique title for manually curated product groupings (e.g., 'new arrivals', 'seasonal specials'). - 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) — Tool to create a new customer in shopify. use when you need to add a new customer record to the store. - shopify_create_order(currency?: string, total_tax?: number, line_items: object[], customer_id?: string, transactions?: object[]) — Creates a new order in shopify, typically requiring line items; if `customer id` is provided, it must correspond to an existing customer. - shopify_create_product(title?: string, vendor?: string, variants?: object[], body_html?: string, product_type?: string) — Creates a new product in a shopify store; a product title is generally required. - shopify_create_product_image(image: object, product_id: string) — 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. - shopify_delete_custom_collection(collection_id: string) — Permanently deletes a custom collection from a shopify store using its `collection id`; this action is irreversible and requires a valid, existing `collection id`. - shopify_delete_product(id?: string) — Deletes a specific, existing product from a shopify store using its unique product id; this action is irreversible. - 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_all_customers(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) — Retrieves customer records from a shopify store, with options for filtering, selecting specific fields, and paginating through the results. - 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) — Retrieves a list of collects from a shopify store, where a collect links a product to a custom collection. - shopify_get_collects_count() — Retrieves the total count of collects (product-to-collection associations) in a shopify store. - shopify_get_custom_collections(ids?: string, limit?: integer, handle?: string, product_id?: integer) — Retrieves a list of custom collections from a shopify store, optionally filtered by ids, product id, or handle. - shopify_get_custom_collections_count() — Retrieves the total number of custom collections in a shopify store. - shopify_get_customer(customer_id: string) — Retrieves detailed information for a specific customer from a shopify store, provided their valid and existing `customer id`. - shopify_get_customer_orders(customer_id: string) — Retrieves all orders for a specific, existing customer in shopify using their unique customer id. - shopify_get_order_list() — Retrieves a list of orders from shopify using default api settings and filters. - 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) — Retrieves detailed information for a specific product image, identified by its id and its associated product id, from a shopify store. - 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) — Retrieves a list of products from a shopify store. - shopify_get_products_count() — Retrieves the total, unfiltered count of all products in a shopify store. - shopify_get_products_in_collection(limit?: integer, collection_id: string) — Retrieves all products within a specified shopify collection, requiring a valid `collection id`. - shopify_get_shop_details() — Retrieves comprehensive administrative information about the authenticated shopify store, as defined by the shopify api. - shopify_update_order(id: integer, phone?: string) — Updates the phone number for an existing shopify order, identified by its id; pass `phone=none` to remove the current phone number. ## 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