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) |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| 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
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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