Skip to main content

Announcing StackOne Defender: leading open-source prompt injection guard for your agent Read More

Shopify MCP Server
for AI Agents

Production-ready Shopify MCP server with 85 extensible actions — plus built-in authentication, security, and optimized execution.

Shopify logo
Shopify MCP Server
Built by StackOne StackOne
DrataGPLocalyzeFlipMindtoolsScreenloop

Coverage

85 Agent Actions

Create, read, update, and delete across Shopify — and extend your agent's capabilities with custom actions.

Authentication

Agent Tool Authentication

Per-user OAuth in one call. Your Shopify MCP server gets session-scoped tokens with zero credentials stored on your infra.

Agent Auth →

Security

Agent Protection

Every Shopify tool response scanned for prompt injection in milliseconds — 88.7% accuracy, all running on CPU.

Prompt Injection Defense →

Performance

Max Agent Context. Min Cost.

Free up to 96% of your agent's context window to enhance reasoning and reduce cost, on every Shopify call.

Tools Discovery →

What is the Shopify MCP Server?

A Shopify MCP server lets AI agents read and write Shopify data through the Model Context Protocol — Anthropic's open standard for connecting LLMs to external tools. StackOne's Shopify MCP server ships with 85 pre-built actions, fully extensible via the Connector Builder — plus managed authentication, prompt injection defense, and optimized agent context. Connect it from MCP clients like Claude Desktop, Claude Code, Cursor, Goose, and VS Code, or from agent frameworks like OpenAI Agents SDK, LangChain, and Vercel AI SDK.

All Shopify MCP Tools and Actions

Every action from Shopify's API, ready for your agent. Create, read, update, and delete — scoped to exactly what you need.

Products

  • Create Product

    Create a new product with optional variants, images, options, metafields, SEO tags, and published_at. Only title is required — all other fields are optional

  • List Products

    Retrieve a paginated list of products with filtering by status, vendor, product type, collection, title, published_status (published/unpublished/any), and date ranges (created_at, published_at, updated_at). Returns next_page_info cursor for pagination — pass it as page_info input to fetch subsequent pages

  • Get Product

    Retrieve a single product by ID

  • Update Product

    Update an existing product by product_id. Supports updating title, description, vendor, tags, status, variants, images, options, metafields, and SEO tags

  • Delete Product

    Delete a product

Product Variants

  • Create Product Variant

    Add a new variant to a product with pricing, inventory, fulfillment, image, and metafields options. Requires product_id as path parameter

  • List Product Variants

    Retrieve all variants for a given product_id with pricing, SKU, inventory, and option values. Returns next_page_info cursor for pagination — pass it as page_info input to fetch subsequent pages

  • Get Product Variant

    Retrieve a specific product variant

  • Update Product Variant

    Update variant pricing, inventory, fulfillment, options, barcode, image, tax code, and metafields by variant_id. All fields optional — only pass fields to change

  • Delete Product Variant

    Remove a variant from a product

Product Images

  • Create Product Image

    Add a new image to a product

  • List Product Images

    Retrieve all images for a product

  • Get Product Image

    Retrieve a single product image

  • Update Product Image

    Modify a product image's position, alt text, variant associations, metafields, or replace image content via src URL

  • Delete Product Image

    Remove an image from a product

Orders

  • Create Order

    Create a new order with line items (supporting variant_id, title, price, SKU, quantity, grams, taxable, requires_shipping, product_id, vendor, gift_card, fulfillment_service, total_discount, properties, tax_lines, discount_allocations, duties, attributed_staffs), customer, billing/shipping addresses, tax lines, discount codes, fulfillment status, fulfillments, currency, inventory behaviour, shipping lines, transactions, note, tags, note_attributes, and metafields

  • List Orders

    Retrieve a paginated list of orders with filtering by status, fulfillment state, financial state, date ranges, and app attribution. Supports cursor-based pagination via page_info parameter

  • Get Order

    Retrieve a single order by ID

  • Update Order

    Update an existing order's properties including note, tags, email, phone, marketing preferences, note_attributes, and metafields

Customers

  • Create Customer

    Create a new customer with name, email, phone, addresses, tags, verified_email, send_email_welcome, and metafields options

  • List Customers

    Retrieve a paginated list of customers. Supports cursor-based pagination via page_info parameter

  • Get Customer

    Retrieve a single customer by ID

  • Search Customers

    Search customers by criteria with cursor-based pagination

  • Update Customer

    Update an existing customer by customer_id. Supports updating name, email, phone, addresses, tags, note, tax_exempt, verified_email, and metafields

Customer Address

  • Create Customer Address

    Add a new shipping or billing address to a customer by customer_id. All address fields (address1, city, country, etc.) are optional — only customer_id is required

  • Get Customer Address

    Retrieve a specific customer address

  • Update Customer Address

    Update an existing address

  • Delete Customer Address

    Remove an address from customer (cannot delete default address)

Inventory Items

  • List Inventory Items

    Retrieve inventory items by IDs (required on first request, max 100). Returns next_page_info cursor for pagination — pass it as page_info to fetch subsequent pages (omit ids when using page_info)

  • Update Inventory Item

    Update an inventory item's SKU, tracking status, shipping requirement, harmonized system code, and country/province of origin by inventory_item_id

Inventory Levels

  • List Inventory Levels

    Retrieve inventory levels across locations

  • Set Inventory Level

    Set absolute inventory quantity at a location

Locations

  • List Locations

    Retrieve all store locations with cursor-based pagination

  • Get Location

    Retrieve a specific location

Fulfillments

  • Create Fulfillment

    Create a fulfillment for fulfillment orders

  • List Fulfillments

    Retrieve fulfillments for an order. Supports cursor-based pagination via page_info parameter

Custom Collections

  • Create Custom Collection

    Create a new custom collection with title, description, image, sort order, collects (to include products), and metafields

  • List Custom Collections

    Retrieve all custom collections with cursor-based pagination

  • Update Custom Collection

    Update an existing custom collection by collection_id. Supports updating title, description, image, sort order, published status, collects (to add products), and metafields

  • Delete Custom Collection

    Permanently delete a custom collection

Collects

  • Create Collect

    Add a product to a collection

  • List Collects

    Retrieve product-collection associations with cursor-based pagination

  • Delete Collect

    Remove a product from a collection

Webhooks

  • Create Webhook

    Register a new webhook subscription with topic, address, format, fields, and metafield namespaces

  • List Webhooks

    Retrieve all registered webhooks. Supports cursor-based pagination via page_info parameter

  • Update Webhook

    Modify an existing webhook subscription

  • Delete Webhook

    Unregister a webhook subscription

Draft Orders

  • Create Draft Order

    Create a new draft order with line items (supporting variant_id, title, price, quantity, sku, grams, taxable, requires_shipping, gift_card, applied_discount, properties), billing/shipping addresses, order-level applied discount, and customer

  • List Draft Orders

    Retrieve all draft orders. Supports cursor-based pagination via page_info parameter

  • Get Draft Order

    Retrieve a single draft order by ID

  • Update Draft Order

    Modify an existing draft order

  • Delete Draft Order

    Permanently delete a draft order

Transactions

  • Create Transaction

    Create a payment transaction (requires existing authorization)

  • List Transactions

    Retrieve payment transactions for an order

Refunds

  • Create Refund

    Create a refund for order items (requires captured payment)

  • List Refunds

    Retrieve all refunds for a specific order_id, including line items, transactions, and adjustments. Returns next_page_info cursor for pagination — pass it as page_info to fetch subsequent pages

  • Get Refund

    Retrieve a specific refund by ID

Product Metafields

  • Create Product Metafield

    Create a metafield for a product

  • List Product Metafields

    Retrieve metafields for a product

  • Get Product Metafield

    Retrieve a specific metafield attached to a product by product_id and metafield_id. Use the fields query param to return only specific fields (e.g., id,namespace,key,value,type)

  • Update Product Metafield

    Update a product metafield's value or type

  • Delete Product Metafield

    Delete a metafield from a product

Customer Metafields

  • Create Customer Metafield

    Create a metafield for a customer

  • List Customer Metafields

    Retrieve metafields for a customer

  • Update Customer Metafield

    Update a customer metafield's value or type by customer_id and metafield_id. Only the value and type fields can be changed on an existing metafield

  • Delete Customer Metafield

    Delete a metafield from a customer

Order Metafields

  • Create Order Metafield

    Create a metafield for an order

  • List Order Metafields

    Retrieve metafields for an order

  • Update Order Metafield

    Update an order metafield's value or type by order_id and metafield_id. Only the value and type fields can be changed on an existing metafield

  • Delete Order Metafield

    Delete a metafield from an order

Price Rules

  • List Price Rules

    Retrieve all price rules

  • Get Price Rule

    Retrieve a single price rule by ID

Other (13)

  • List Customer Addresses

    Retrieve all addresses for a customer. Supports cursor-based pagination via page_info parameter

  • List Abandoned Checkouts

    Retrieve abandoned checkouts with filtering by status (open or closed), date ranges, and cursor-based pagination. Returns checkout details including customer info, line items, totals, and recovery URLs

  • Count Products

    Get total count of products

  • Count Product Variants

    Get count of variants for a product

  • Cancel Order

    Cancel an order

  • Count Orders

    Get total count of orders matching filter criteria for reporting and dashboards

  • Close Order

    Close an order

  • Open Order

    Reopen a closed order

  • Count Customers

    Get total count of customers

  • Adjust Inventory Level

    Adjust inventory quantity at a location (requires inventory tracking enabled)

  • Connect Inventory To Location

    Connect an inventory item to a location

  • Complete Draft Order

    Convert draft order to regular order

  • Calculate Refund

    Calculate refund amounts before processing with line items, restock type, location, already_stocked flag, and shipping

Set Up Your Shopify MCP Server in Minutes

One endpoint. Any framework. Your agent is talking to Shopify in under 10 lines of code.

MCP Clients

Agent Frameworks

Claude Desktop
{
  "mcpServers": {
    "stackone": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote@latest",
        "https://api.stackone.com/mcp?x-account-id=<account_id>",
        "--header",
        "Authorization: Basic <YOUR_BASE64_TOKEN>"
      ]
    }
  }
}

More Commerce MCP Servers

Klaviyo

162+ actions

Stripe

133+ actions

Magento

125+ actions

Square

125+ actions

BigCommerce

120+ actions

Eventbrite

83+ actions

WooCommerce

72+ actions

Shopify MCP Server FAQ

Shopify MCP server vs direct API integration — what's the difference?
A Shopify MCP server and direct API integration serve different use cases. Direct API integration is for software-to-software — backend code calling Shopify. A Shopify MCP server is for AI agents — MCP clients like Claude and Cursor, plus framework agents built with OpenAI, LangChain, or Vercel AI — discovering and calling Shopify at runtime. StackOne provides both.
How does Shopify authentication work for AI agents?
Shopify authentication for AI agents works through a StackOne Connect Session. Create one via the dashboard or the SDK — you get an auth link and ready-to-paste config for Claude Desktop, Cursor, and other MCP clients. Your user authenticates their own Shopify account; StackOne handles token exchange, storage, and refresh. Credentials never reach the LLM, and each user is isolated via origin_owner_id.
Are Shopify MCP tools vulnerable to prompt injection?
Yes — Shopify MCP tools can be vulnerable to indirect prompt injection. Any tool that reads user-written content — documents, messages, tickets, records, or free-text fields — is a potential vector. StackOne Defender scans every tool response before it enters the agent's context — regex patterns in ~1ms, then a MiniLM classifier in ~4ms. 88.7% accuracy, CPU-only.
What is the context bloat of a Shopify agent and how do I avoid it?
Context bloat happens when Shopify tool schemas and API responses eat your Shopify agent's memory, preventing it from reasoning effectively. A single Shopify query can return a massive JSON response, and connecting multiple tools compounds the problem. Tools Discovery and Code Mode reduce context bloat — loading only relevant tools per query and keeping raw responses out of the agent's context.
Can I limit which actions my Shopify agent can access?
Yes — you can limit which actions your Shopify agent can access directly from the StackOne dashboard. Toggle actions on or off, or restrict them to specific accounts, with no code changes to your agent. Session tokens can be scoped to exact actions so if one leaks, exposure stays contained.
Can I create custom agent actions for my Shopify MCP server?
Yes — you can create custom agent actions for your Shopify MCP server using Connector Builder. It's an integration agent your coding assistant (Claude Code, Cursor, or Copilot) can invoke to research Shopify's API, generate production-ready connector YAML, test against the live API, and validate before you ship.
When should I NOT use a Shopify MCP server?
Skip a Shopify MCP server if your integration is purely software-to-software — direct Shopify API integration is simpler when no AI agent is involved. For deterministic, compliance-critical operations (financial transactions, regulatory reporting), direct API gives you predictable behavior without agent-driven decision-making. MCP shines when AI agents need to dynamically discover and call Shopify actions at runtime.
What AI frameworks and AI clients does the StackOne Shopify MCP server support?
The StackOne Shopify MCP server supports both. MCP clients (paste-and-go apps): Claude Desktop, Claude Code, Cursor, VS Code, Goose. Agent frameworks (code SDKs you build with): OpenAI Agents SDK, Anthropic, Vercel AI, Google ADK, CrewAI, Pydantic AI, LangChain, LangGraph, Azure AI Foundry.

Put your AI agents to work

All the tools you need to build and scale AI agent integrations, with best-in-class connectivity, execution, and security.