MCP Server · 136 Tools

Give your AI agents
full Shopify access

An MCP server that connects AI agents to the Shopify Admin API. Manage products, orders, customers, inventory, discounts, themes, and more — powered by the Admin GraphQL API.

Get Started View on GitHub
$ npx @kockatoos/shopify-mcp
136
Tools
18
Categories
GraphQL
Admin API
OAuth
Authentication

Available Tools

136 tools across 18 categories covering the full Shopify Admin API surface.

Shop

1 tool
  • get_shop_info — Store name, domain, email, plan, currency, timezone

Products

11 tools
  • list_products — List with filters and pagination
  • get_product — Full details with variants and images
  • create_product — Create with variants and images
  • update_product — Update fields
  • delete_product — Permanently delete
  • list_product_metafields — List metafields (GraphQL)
  • get_product_metafield — Get by namespace/key (GraphQL)
  • set_product_metafield — Create/update via metafieldsSet (GraphQL)
  • delete_product_metafield — Delete metafield (GraphQL)
  • list_metafield_definitions — List definitions (GraphQL)
  • create_metafield_definition — Create definition with validation rules (GraphQL)

Product Images

5 tools
  • list_product_images — List all images
  • get_product_image — Get a specific image
  • create_product_image — Add by URL, set position and variants
  • update_product_image — Update alt text, position, or variant links
  • delete_product_image — Remove an image

Variants

5 tools
  • list_variants — List all variants of a product
  • get_variant — Get a specific variant
  • create_variant — Add a variant
  • update_variant — Update price, SKU, inventory
  • delete_variant — Remove a variant

Collections

13 tools
  • list_custom_collections — List manual collections
  • list_smart_collections — List automated collections
  • get_custom_collection / get_smart_collection — Get by ID
  • create_custom_collection / create_smart_collection — Create collections
  • update_custom_collection / update_smart_collection — Update collections
  • delete_custom_collection — Delete collection
  • add_product_to_collection — Add a product
  • remove_product_from_collection — Remove a product
  • reorder_collection_products — Reorder manual collections
  • list_collection_products — List products in collection

Orders

9 tools
  • list_orders — List with filters and date range
  • get_order — Full details with line items
  • update_order — Update notes, tags, email
  • close_order — Mark as closed
  • cancel_order — Cancel with reason and restock
  • list_order_metafields — List metafields (GraphQL)
  • get_order_metafield — Get by namespace/key (GraphQL)
  • set_order_metafield — Create/update (GraphQL)
  • delete_order_metafield — Delete metafield (GraphQL)

Customers

9 tools
  • list_customers — List with pagination
  • search_customers — Search by email, name, country
  • get_customer — Full details and addresses
  • create_customer — Create with addresses
  • update_customer — Update fields
  • list_customer_metafields — List metafields (GraphQL)
  • get_customer_metafield — Get by namespace/key (GraphQL)
  • set_customer_metafield — Create/update (GraphQL)
  • delete_customer_metafield — Delete metafield (GraphQL)

Inventory

5 tools
  • list_locations — List all locations
  • get_location — Get location details
  • list_inventory_levels — Stock quantities at a location
  • adjust_inventory — Adjust stock by +/−
  • set_inventory — Set absolute quantity

Draft Orders

7 tools
  • list_draft_orders — List with pagination
  • get_draft_order — Get by ID
  • create_draft_order — Create with line items
  • update_draft_order — Update draft
  • complete_draft_order — Convert to real order
  • send_draft_order_invoice — Email invoice
  • delete_draft_order — Delete draft

Discounts

30 tools
  • list_code_discounts / list_automatic_discounts — List discounts
  • get_code_discount / get_automatic_discount — Get by ID
  • create_code_discount_basic|bxgy|free_shipping — Create code discounts
  • create_automatic_discount_basic|bxgy|free_shipping — Create automatic discounts
  • update_*_discount_* — Update any discount type
  • activate_* / deactivate_* / delete_* — Manage discount lifecycle
  • *_price_rule, *_discount_code — Legacy-named compatibility wrappers (GraphQL under the hood)

Fulfillments

5 tools
  • list_fulfillment_orders — List fulfillment orders
  • list_fulfillments — List fulfillments
  • create_fulfillment — Create with tracking
  • update_fulfillment_tracking — Update tracking
  • cancel_fulfillment — Cancel fulfillment

Webhooks

5 tools
  • list_webhooks — List all webhooks
  • get_webhook — Get by ID
  • create_webhook — Register a webhook
  • update_webhook — Update callback URL
  • delete_webhook — Remove a webhook

Pages

5 tools
  • list_pages — List online store pages with filters
  • get_page — Full details with body HTML
  • create_page — Create a page
  • update_page — Update content, handle, publish state
  • delete_page — Permanently delete

Menus

5 tools
  • list_menus — List navigation menus
  • get_menu — Get full nested item tree by handle
  • create_menu — Create with nested items
  • update_menu — Replace title, handle, items
  • delete_menu — Delete non-default menus

Files

5 tools
  • list_files — List files in Content → Files
  • create_file — Upload from an external URL
  • update_file — Rename or update alt text
  • delete_files — Delete one or more files
  • stage_upload — Create staged upload targets

Themes

10 tools
  • list_themes / get_theme — Inspect installed themes
  • create_theme — Install from a ZIP URL
  • update_theme — Rename a theme
  • publish_theme — Make a theme live
  • delete_theme — Remove a theme
  • list_theme_files / get_theme_files — Browse and read files
  • upsert_theme_files — Create or update files
  • delete_theme_files — Delete files

Bundles

4 tools
  • create_bundle — Create a fixed product bundle
  • update_bundle — Update bundle components
  • get_bundle — Get bundle with components
  • get_bundle_operation — Poll async bundle operations

Apps

2 tools
  • list_app_installations — List installed apps
  • get_app_installation — Get install details and scopes

Quick Setup

Add to your MCP client configuration and start using it immediately.

{
  "mcpServers": {
    "kockatoos-shopify-mcp": {
      "command": "npx",
      "args": ["-y", "@kockatoos/shopify-mcp"],
      "env": {
        "SHOPIFY_STORE_NAME": "your-store-name",
        "SHOPIFY_CLIENT_ID": "your-client-id",
        "SHOPIFY_CLIENT_SECRET": "your-client-secret"
      }
    }
  }
}
VariableRequiredDescription
SHOPIFY_STORE_NAME Required Your store name (not the full .myshopify.com domain)
SHOPIFY_ACCESS_TOKEN Option A Admin API access token (shpat_...) — works for any app type
SHOPIFY_CLIENT_ID Option B App client ID (store-created custom apps)
SHOPIFY_CLIENT_SECRET Option B App client secret (store-created custom apps)
SHOPIFY_API_VERSION Optional API version (defaults to 2026-01)

Authentication

Two ways to authenticate: a direct Admin API access token, or the client_credentials OAuth grant for store-created custom apps.

Option A — Access token

Set SHOPIFY_ACCESS_TOKEN to an Admin API token. For Partner Dashboard apps, run npx shopify-mcp-get-token to complete browser OAuth once and obtain a token.

Option B — Client credentials

For custom apps created in the Shopify admin, set SHOPIFY_CLIENT_ID and SHOPIFY_CLIENT_SECRET. Tokens are fetched and refreshed automatically — no browser auth needed.

Required App Scopes

Configure in Shopify Admin → Apps and sales channels → Develop apps → API access. Grant only the scopes for the tool groups you plan to use.

read_products, write_products
read_orders, write_orders
read_customers, write_customers
read_inventory, write_inventory
read_locations
read_draft_orders, write_draft_orders
read_discounts, write_discounts
read_fulfillments, write_fulfillments
read_shipping, write_shipping
read_themes, write_themes
read_content, write_content
read_online_store_pages, write_online_store_pages
read_online_store_navigation, write_online_store_navigation
read_files, write_files