Kockatoos Shopify MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| SHOPIFY_CLIENT_ID | No | Client ID for Partner Dashboard app (alternative to access token) | |
| SHOPIFY_STORE_NAME | Yes | Your store subdomain (e.g. my-store, not the full .myshopify.com) | |
| SHOPIFY_API_VERSION | No | API version, defaults to 2026-01 | |
| SHOPIFY_ACCESS_TOKEN | No | Permanent access token from admin-created app or Partner Dashboard OAuth flow | |
| SHOPIFY_CLIENT_SECRET | No | Client secret for Partner Dashboard app (alternative to access token) |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_shop_infoA | Get basic information about the Shopify store: name, domain, email, plan, currency, timezone, and more. |
| list_productsA | List products in the store. Returns up to |
| get_productA | Get full details of a single product by its ID, including all variants, images, and options. |
| create_productA | Create a new product. At minimum provide a title. The product is created in 'draft' status by default. Variants can be provided to set prices, SKUs, and inventory. Note: images and variants are added in follow-up calls after the product is created; if one of those steps fails, the product still exists and the error message includes its ID so you can fix it with update tools. |
| update_productA | Update an existing product. Only provided fields are changed; omitted fields remain unchanged. |
| delete_productA | Permanently delete a product by its ID. This cannot be undone. |
| list_product_metafieldsA | List all metafields attached to a product via GraphQL. Returns key, namespace, type, jsonValue, and more. Optionally filter by namespace. |
| get_product_metafieldA | Get a single metafield by namespace and key for a given product via GraphQL. Uses jsonValue for proper serialization. |
| set_product_metafieldA | Create or update a metafield on a product using the GraphQL |
| delete_product_metafieldA | Permanently delete a metafield by its GID. This cannot be undone. |
| create_metafield_definitionA | Create a new metafield definition for products at the store level. Definitions establish structure and validation rules (e.g. allowed choices) for metafields. Use |
| list_metafield_definitionsA | List all metafield definitions for products at the store level. Returns namespace, key, type, name, description, and validations via GraphQL. |
| list_ordersB | List orders in the store. By default returns open orders. Use |
| get_orderA | Get full details of a single order by its ID, including line items, shipping address, fulfillments, and transactions. |
| update_orderA | Update an existing order. Typically used to add/edit notes or tags. Only provided fields are changed. |
| close_orderB | Close an order. Closed orders are considered completed and no longer active. |
| cancel_orderA | Cancel an order. Optionally specify a reason and whether to send a notification email to the customer. This may also trigger a refund depending on |
| list_order_metafieldsB | List all metafields for an order via GraphQL. |
| get_order_metafieldA | Get a single order metafield by namespace and key. |
| set_order_metafieldB | Create or update an order metafield using metafieldsSet (upsert). |
| delete_order_metafieldA | Delete an order metafield by its GID or numeric ID. |
| list_customersB | List customers in the store. Supports pagination and basic filtering by creation date. |
| search_customersA | Search for customers using a query string. Supports Shopify search syntax (e.g. 'email:john@example.com', 'country:US', or just a name). |
| get_customerA | Get full details of a single customer by their ID, including addresses, order count, and total spent. |
| create_customerA | Create a new customer. At minimum provide an email. Optionally include name, phone, address, and tags. |
| update_customerA | Update an existing customer. Only provided fields are changed; omitted fields remain unchanged. |
| list_customer_metafieldsB | List all metafields for a customer via GraphQL. |
| get_customer_metafieldB | Get a single customer metafield by namespace and key. |
| set_customer_metafieldA | Create or update a customer metafield using metafieldsSet (upsert). |
| delete_customer_metafieldA | Delete a customer metafield by its GID or numeric ID. |
| list_locationsA | List all locations (warehouses, stores, etc.) configured for this Shopify store. Each location has an ID used for inventory operations. |
| get_locationA | Get details of a single location by its ID. |
| list_inventory_levelsA | List inventory levels (stock quantities) for a given location. Returns available quantities for each inventory item at that location. |
| adjust_inventoryA | Adjust inventory by a relative amount (positive to add stock, negative to remove). Requires the inventory_item_id (from a product variant) and location_id. |
| set_inventoryA | Set inventory to an absolute quantity at a given location. This overwrites the current available quantity. |
| list_custom_collectionsA | List custom (manual) collections. These are collections where the merchant manually selects which products to include. |
| list_smart_collectionsC | List smart (automatic) collections. These are collections where products are automatically included based on rules. |
| get_custom_collectionA | Get full details of a single custom collection by its ID. |
| get_smart_collectionA | Get full details of a single smart collection by its ID, including its rules. |
| create_custom_collectionB | Create a new custom (manual) collection. Optionally include product IDs to add to it. |
| update_custom_collectionB | Update an existing custom collection. Only provided fields are changed. |
| delete_custom_collectionA | Permanently delete a custom collection. Products in it are NOT deleted. |
| create_smart_collectionA | Create a new smart (automatic) collection with rules that determine which products are included. |
| update_smart_collectionB | Update a smart (automatic) collection's sort order or other metadata. Only provided fields are changed. |
| reorder_collection_productsA | Reorder products in a custom collection. Provide an ordered array of product IDs. The collection's sort_order must be 'manual' for positions to be honoured on the storefront. |
| add_product_to_collectionB | Add a product to a custom collection. |
| remove_product_from_collectionB | Remove a product from a custom collection. |
| list_collection_productsA | List all products belonging to a specific collection (custom or smart). |
| list_variantsA | List all variants of a product. Each variant represents a specific purchasable SKU with its own price, inventory, and options. |
| get_variantB | Get full details of a single product variant by its ID. |
| create_variantA | Create a new variant for a product. Must specify at least one option value. |
| update_variantA | Update an existing product variant. Only provided fields are changed. |
| delete_variantA | Delete a product variant. A product must always have at least one variant. |
| list_draft_ordersC | List draft orders in the store. Draft orders can be used to create orders on behalf of customers. |
| get_draft_orderA | Get full details of a single draft order by its ID. |
| create_draft_orderB | Create a new draft order. Provide line items (variant-based or custom), an optional customer, and shipping/billing addresses. |
| update_draft_orderA | Update an existing draft order. Only provided fields are changed. |
| complete_draft_orderB | Complete a draft order, converting it into a real order. Optionally mark it as paid. |
| send_draft_order_invoiceB | Send an invoice email for a draft order with a secure checkout link. |
| delete_draft_orderA | Permanently delete a draft order. Cannot delete completed draft orders. |
| list_price_rulesC | List code discounts using the Admin GraphQL API. This compatibility tool replaces the older Price Rules workflow. |
| get_price_ruleC | Get a code discount by DiscountCodeNode ID. This compatibility tool replaces the older Price Rules workflow. |
| create_price_ruleB | Create a modern basic code discount through GraphQL. Preserves the legacy price-rule tool name for compatibility. |
| update_price_ruleB | Update a modern basic code discount through GraphQL. Preserves the legacy price-rule tool name for compatibility. |
| delete_price_ruleC | Delete a code discount by DiscountCodeNode ID. Preserves the legacy price-rule tool name for compatibility. |
| list_discount_codesC | List redeem codes for a GraphQL code discount node. |
| create_discount_codeC | Set the customer-facing code for a basic GraphQL code discount node. |
| delete_discount_codeB | Delete a redeem code from a GraphQL code discount node. |
| list_code_discountsB | List code discounts using the GraphQL API. Returns basic, BXGY, and free shipping code discounts. Supports filtering by status, type, and text search. |
| get_code_discountA | Get a code discount by its GID (e.g. 'gid://shopify/DiscountCodeNode/123') or by the code string customers enter at checkout. |
| create_code_discount_basicA | Create an amount-off code discount (percentage or fixed) that customers apply at checkout. Supports product/collection targeting, minimum requirements, and combination rules. |
| update_code_discount_basicC | Update an existing basic (amount-off) code discount. Only provided fields are changed. |
| create_code_discount_bxgyB | Create a Buy X Get Y (BXGY) code discount. Customers enter a code to get a discount when they buy specified items. |
| update_code_discount_bxgyC | Update an existing BXGY code discount. Only provided fields are changed. |
| create_code_discount_free_shippingC | Create a free shipping code discount. Customers enter a code to get free (or discounted) shipping. |
| update_code_discount_free_shippingC | Update an existing free shipping code discount. Only provided fields are changed. |
| activate_code_discountA | Activate a code discount that is currently inactive or scheduled. |
| deactivate_code_discountA | Deactivate (pause) a code discount without deleting it. |
| delete_code_discountA | Permanently delete a code discount by its GID. This cannot be undone. |
| list_automatic_discountsA | List automatic discounts (applied without a code) using the GraphQL API. Supports filtering by status, type, and text search. |
| get_automatic_discountA | Get an automatic discount by its GID (e.g. 'gid://shopify/DiscountAutomaticNode/123'). |
| create_automatic_discount_basicB | Create an automatic amount-off discount (percentage or fixed) that's applied without a code when cart meets criteria. |
| update_automatic_discount_basicB | Update an existing basic automatic discount. Only provided fields are changed. |
| create_automatic_discount_bxgyB | Create an automatic Buy X Get Y discount applied without a code. |
| update_automatic_discount_bxgyC | Update an existing automatic BXGY discount. Only provided fields are changed. |
| create_automatic_discount_free_shippingC | Create an automatic free shipping discount applied without a code when order meets criteria. |
| update_automatic_discount_free_shippingC | Update an existing automatic free shipping discount. Only provided fields are changed. |
| activate_automatic_discountA | Activate an automatic discount that is currently inactive or scheduled. |
| deactivate_automatic_discountA | Deactivate (pause) an automatic discount without deleting it. |
| delete_automatic_discountA | Permanently delete an automatic discount by its GID. This cannot be undone. |
| list_fulfillment_ordersA | List fulfillment orders for an order. Fulfillment orders represent groups of items to be fulfilled from a specific location. |
| list_fulfillmentsA | List all fulfillments for an order, including tracking info and status. |
| create_fulfillmentB | Create a fulfillment for one or more fulfillment orders. This marks items as shipped and optionally adds tracking info. |
| update_fulfillment_trackingB | Update tracking information for an existing fulfillment. |
| cancel_fulfillmentB | Cancel a fulfillment. This restocks the items and sets the fulfillment status to cancelled. |
| list_webhooksB | List all webhook subscriptions for this app. |
| get_webhookB | Get details of a single webhook subscription. |
| create_webhookA | Create a new webhook subscription. Common topics: orders/create, orders/updated, products/create, products/update, customers/create, app/uninstalled. |
| update_webhookA | Update an existing webhook subscription's callback URL. The topic cannot be changed after creation; delete and recreate the webhook to change topics. |
| delete_webhookB | Delete a webhook subscription. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/untitled-developers/shopify-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server