100+ integrations are ready to connect to your AI.Connect your first MCP

Shopify MCP server for your AI

Pull orders, refunds and transactions, set stock levels at a location, edit products and collections, and react to new orders, cancellations and customer updates as they happen.

PopMCPShopify

How many orders came in last week and which ones are still unfulfilled

Supported Shopify tools

Every read, write and webhook trigger this connection exposes, from order lookups to inventory updates — search the grid to see what your agent can call.

234 tools in the full catalog: 130 read and 104 write. 35 load by default, and the rest are found with tool search.

shopify_get_metafields

List shop-level metafields.

shopify_get_collection_products

List products in a collection.

shopify_get_custom_collections

List custom (manual) collections.

shopify_get_fulfillment_orders

List fulfillment orders for an order (modern fulfillment flow).

shopify_get_smart_collections

List smart (rule-based) collections.

shopify_create_order

Create an order.

shopify_get_order

Retrieve a single order by ID.

shopify_get_order_transactions

List transactions for an order.

shopify_get_orders

List orders, filtered by date (created_at, processed_at, updated_at), status, payment status or fulfillment status: today's or yesterday's orders, last week's orders, open, unpaid or unfulfilled orders.

shopify_update_order

Update an order by ID.

shopify_get_customer

Retrieve a single customer by ID.

shopify_get_customer_orders

List orders belonging to a customer.

shopify_get_customers

List customers.

shopify_get_discount_codes

List discount codes for a price rule.

shopify_get_price_rules

List price rules (discounts).

shopify_search_customers

Search customers with a query string.

shopify_get_inventory_levels

List inventory levels.

shopify_get_locations

List inventory locations.

shopify_set_inventory_level

Set the available quantity at a location.

shopify_get_draft_orders

List draft orders.

shopify_duplicate_theme

Duplicate a theme (usually the live one) into a new unpublished copy and return the new theme's id.

shopify_get_theme_file

Read one theme file.

shopify_get_themes

List the store's themes with id, name, role and updated_at.

shopify_list_theme_files

List every file in a theme: key (e.g. sections/header.liquid), size in bytes and updated_at.

shopify_put_theme_file

Create or replace one theme file and return its new checksum and updated_at.

shopify_create_product

Create a product.

shopify_get_product

Retrieve a single product by ID.

shopify_get_product_variants

List variants for a product.

shopify_get_products

List products.

shopify_get_variant

Retrieve a single variant by ID.

shopify_get_webhooks

List webhook subscriptions.

shopify_update_product

Update a product by ID.

shopify_graphql_query

Run a read-only GraphQL Admin API query.

shopify_get_shop

Retrieve the shop's configuration and account details.

shopify_shopifyql_query

Run a ShopifyQL query: the language behind Shopify Analytics, so the figures match the Analytics reports exactly (total sales, net sales, returns, orders, sessions, conversion rate, by day, product, channel, country and more).

shopify_count_metafields

Count the shop-level metafields.

shopify_create_article_metafield

Add a metafield to a blog article.

shopify_create_blog_metafield

Add a metafield to a blog.

shopify_create_collection_metafield

Add a metafield to a collection.

shopify_create_customer_metafield

Add a metafield to a customer.

shopify_create_draft_order_metafield

Add a metafield to a draft order.

shopify_create_metafield

Create a shop-level metafield.

shopify_create_order_metafield

Add a metafield to an order.

shopify_create_page_metafield

Add a metafield to an online store page.

shopify_create_product_metafield

Add a metafield (a custom namespaced value) to a product.

shopify_create_variant_metafield

Add a metafield to a product variant.

shopify_delete_metafield

Delete a metafield by ID through the shop-level metafields path.

shopify_get_article_metafields

List the metafields on a blog article.

shopify_get_blog_metafields

List the metafields on a blog.

shopify_get_collection_metafields

List the metafields on a collection.

shopify_get_customer_metafields

List the metafields on a customer.

shopify_get_draft_order_metafields

List the metafields on a draft order.

shopify_get_metafield

Retrieve one metafield by ID through the shop-level metafields path, with its namespace, key, type and value.

shopify_get_order_metafields

List the metafields on an order.

shopify_get_page_metafields

List the metafields on an online store page.

shopify_get_product_metafields

List metafields for a product.

shopify_get_variant_metafields

List the metafields on a product variant.

shopify_update_metafield

Change a metafield's value (and type) through the shop-level metafields path.

shopify_cancel_fulfillment

Cancel a fulfillment.

shopify_cancel_fulfillment_order

Cancel a fulfillment order.

shopify_close_fulfillment_order

Mark an in-progress fulfillment order as incomplete.

shopify_count_collects

Count collects, the links that place products in custom collections, optionally for one product or one collection.

shopify_count_custom_collections

Count custom (manual) collections, optionally only those containing a product or matching a title or publish state.

shopify_count_order_fulfillments

Count the fulfillments on an order.

shopify_count_smart_collections

Count smart (rule-based) collections, optionally only those containing a product or matching a title or publish state.

shopify_create_collect

Add a product to a custom collection.

shopify_create_custom_collection

Create a custom collection.

shopify_create_fulfillment

Create a fulfillment.

shopify_create_fulfillment_event

Record a shipment status update on a fulfillment, for example in_transit.

shopify_create_smart_collection

Create a smart collection whose products are picked automatically by rules, for example every product tagged sale.

shopify_delete_collect

Remove a product from a manual (custom) collection by deleting its collect.

shopify_delete_custom_collection

Delete a custom collection.

shopify_delete_smart_collection

Delete a smart collection by ID.

shopify_get_carrier_services

List carrier services, the apps that return live shipping rates at checkout.

shopify_get_collect

Retrieve one collect (the link placing a product in a custom collection) by ID.

shopify_get_collection

Retrieve a single collection by ID whether it is custom or smart; collection_type in the response says which.

shopify_get_collects

List collects (product↔collection links).

shopify_get_custom_collection

Retrieve one custom (manual) collection by ID, with its title, handle, body_html, image, sort_order and publish state.

shopify_get_fulfillment_events

List the shipment status events (for example in_transit) recorded on a fulfillment.

shopify_get_fulfillment_order

Retrieve one fulfillment order by ID, with its status, assigned location and line items.

shopify_get_fulfillment_order_fulfillments

List the fulfillments created from one fulfillment order.

shopify_get_fulfillment_order_locations_for_move

List the locations a fulfillment order could move to, each with movable true or false and a message when it cannot.

shopify_get_fulfillment_services

List fulfillment services, the third-party warehouses and apps that fulfill orders, with their names and callback URLs.

shopify_get_order_fulfillment

Retrieve one fulfillment on an order by ID.

shopify_get_order_fulfillments

List the fulfillments (shipments) already created for an order, with their status, tracking numbers and line items.

shopify_get_smart_collection

Retrieve one smart (rule-based) collection by ID, including its rules, disjunctive flag and sort_order.

shopify_hold_fulfillment_order

Put a fulfillment order on hold (status ON_HOLD) so it is not fulfilled, for example while payment or an address is checked.

shopify_move_fulfillment_order

Move a fulfillment order, or some of its line items, to another location that stocks the items.

shopify_open_fulfillment_order

Open a scheduled fulfillment order so work can start before its fulfill_at time.

shopify_release_fulfillment_order_hold

Release the holds on a fulfillment order so it can be fulfilled.

shopify_reorder_collection_products

Move products to new positions inside a manually sorted collection.

shopify_reschedule_fulfillment_order

Change when a scheduled fulfillment order becomes ready.

shopify_set_smart_collection_order

Set how a smart collection sorts its products, or pin chosen products to the top in a given order.

shopify_update_custom_collection

Update a custom collection.

shopify_update_fulfillment_tracking

Update tracking info on a fulfillment.

shopify_update_smart_collection

Update a smart collection's title, rules, sort order, image or publish state.

shopify_count_articles

Count the articles in one blog, optionally by publish state or date.

shopify_count_blogs

Count the online store's blogs.

shopify_count_pages

Count online store pages, optionally by title, publish state or date.

shopify_create_article

Create an article (blog post) in a blog.

shopify_create_blog

Create a blog to hold articles.

shopify_create_page

Create an online store page.

shopify_delete_article

Delete a blog article.

shopify_delete_blog

Delete a blog.

shopify_delete_page

Delete an online store page.

shopify_get_article

Retrieve one blog article by ID, including its body_html, tags and image.

shopify_get_article_authors

List the names of every article author in the store.

shopify_get_article_tags

List the tags used on articles across all blogs, optionally most popular first.

shopify_get_articles

List the articles (blog posts) in one blog, with their title, author, tags, body_html and publish state.

shopify_get_blog

Retrieve one blog by ID.

shopify_get_blogs

List the online store's blogs, the containers that hold articles, with their title, handle and comment policy.

shopify_get_page

Retrieve one online store page by ID, including its full body_html.

shopify_get_pages

List the online store's static pages (such as About or Contact) with their title, handle, body_html and publish state.

shopify_update_article

Update a blog article's title, content, author, tags, image or publish state.

shopify_update_blog

Update a blog's title, handle or comment policy.

shopify_update_page

Update an online store page's title, content, handle, author or publish state.

shopify_calculate_order_refund

Work out the refund transactions for a planned refund without changing anything.

shopify_cancel_order

Cancel an order.

shopify_close_order

Close an order.

shopify_count_order_transactions

Count the payment transactions on an order.

shopify_count_orders

Count orders matching optional filters.

shopify_create_order_refund

Create a refund for an order.

shopify_create_order_transaction

Capture or void a payment on an order: kind capture takes money that was authorized, kind void cancels a pending authorization.

shopify_delete_order

Delete an order by ID.

shopify_get_order_refund

Retrieve one refund on an order, with its refunded line items and transactions.

shopify_get_order_refunds

List refunds for an order.

shopify_get_order_transaction

Retrieve one payment transaction on an order, with its kind, status, amount and gateway.

shopify_get_tender_transactions

List tender transactions: money that moved between the store and its customers on orders, across every payment method (positive amounts are payments, negative are refunds).

shopify_open_order

Re-open a closed order.

shopify_count_customers

Count customers, optionally only those created or updated within a date range.

shopify_count_discount_codes

Count discount codes across all price rules, optionally by how many times they were used.

shopify_count_price_rules

Count the store's price rules.

shopify_create_customer

Create a customer.

shopify_create_customer_account_activation_url

Generate an one-time account activation URL for a customer whose account is not yet enabled.

shopify_create_customer_address

Add a new address to a customer.

shopify_create_discount_code

Create a discount code for a price rule.

shopify_create_discount_code_batch

Queue a job that creates up to 100 discount codes on a price rule at once.

shopify_create_price_rule

Create a price rule.

shopify_delete_customer

Delete a customer by ID.

shopify_delete_customer_address

Remove an address from a customer.

shopify_delete_discount_code

Delete one discount code from a price rule.

shopify_delete_price_rule

Delete a price rule.

shopify_get_customer_address

Retrieve one of a customer's addresses by ID.

shopify_get_customer_addresses

List a customer's saved addresses, including which one is the default.

shopify_get_discount_code

Retrieve one discount code of a price rule by ID, with its code text and usage_count.

shopify_get_discount_code_batch

Check a discount code creation job: its status is queued, running or completed.

shopify_get_discount_code_batch_codes

List the codes from a discount code creation job.

shopify_get_price_rule

Retrieve one price rule, the discount logic behind discount codes, by ID.

shopify_lookup_discount_code

Find a discount code by the text customers type and return it with its id and price_rule_id.

shopify_send_customer_invite

Email a customer an invitation to activate their store account, optionally with a custom subject and message.

shopify_set_default_customer_address

Make one of a customer's existing addresses their default address.

shopify_update_customer

Update a customer by ID.

shopify_update_customer_address

Update one of a customer's addresses.

shopify_update_discount_code

Change the text of an existing discount code.

shopify_update_price_rule

Update a price rule.

shopify_adjust_inventory_level

Adjust available quantity by a delta.

shopify_connect_inventory_level

Start stocking an inventory item at a location, creating its inventory level with available set to 0.

shopify_count_locations

Count the store's locations.

shopify_delete_inventory_level

Stop stocking an inventory item at a location by deleting its inventory level.

shopify_get_inventory_item

Retrieve one inventory item by ID: its SKU, unit cost and whether inventory is tracked.

shopify_get_inventory_items

List inventory items.

shopify_get_location

Retrieve a single location.

shopify_get_location_inventory_levels

List the inventory levels stocked at one location: one row per inventory item with its available quantity.

shopify_update_inventory_item

Update an inventory item (e.g. cost, tracked).

shopify_complete_draft_order

Complete a draft order, converting it to an order.

shopify_count_draft_orders

Count draft orders, optionally by status or last-updated date.

shopify_create_draft_order

Create a draft order.

shopify_delete_draft_order

Delete a draft order.

shopify_get_draft_order

Retrieve a draft order by ID.

shopify_send_draft_order_invoice

Email a draft order's invoice to the customer so they can review and pay it.

shopify_update_draft_order

Update a draft order.

shopify_count_countries

Count the countries the store has set up.

shopify_count_gift_cards

Count gift cards, optionally only enabled or only disabled ones.

shopify_create_gift_card

Issue a gift card with an initial value, optionally with a custom code or assigned to a customer; afterwards Shopify only ever returns the code's last four characters.

shopify_delete_theme_file

Delete one theme file.

shopify_disable_gift_card

Permanently disable a gift card so it can no longer be redeemed; it cannot be re-enabled, and gift cards cannot be deleted.

shopify_get_countries

List the countries the store has set up for shipping, with their codes and provinces.

shopify_get_country

Retrieve one of the store's countries by ID, with its provinces.

shopify_get_currencies

List the currencies enabled for selling on the store, with when each conversion rate was last updated.

shopify_get_gift_card

Retrieve one gift card by ID, with its balance and last four code characters.

shopify_get_gift_cards

List gift cards with their balance, initial value, expiry and last four code characters.

shopify_get_policies

List the store's legal policies (such as refund, privacy and terms of service) with their title, body and public URL.

shopify_get_provinces

List the provinces or states of one of the store's countries, with their codes.

shopify_get_shipping_zones

List shipping zones with their countries, provinces, weight-based rates and carrier rate providers.

shopify_get_theme

Retrieve one theme: name, role (main is live), whether it is still processing, and when it changed.

shopify_search_gift_cards

Search gift cards by fields such as last_characters, email or balance.

shopify_update_gift_card

Change a gift card's expiry date, internal note or template suffix, the only fields editable after creation.

shopify_count_marketing_events

Count marketing events.

shopify_count_product_images

Count a product's images.

shopify_count_product_variants

Count a product's variants.

shopify_count_products

Count products matching optional filters.

shopify_count_redirects

Count URL redirects, optionally for one path or target.

shopify_count_script_tags

Count script tags, optionally for one src URL.

shopify_count_webhooks

Count webhook subscriptions, optionally for one topic or delivery address.

shopify_create_marketing_event

Report a marketing campaign or ad to Shopify so its traffic and sales are attributed to it.

shopify_create_product_image

Add an image to a product from a public URL or base64 data (.png, .gif or .jpg, at most 250 per product).

shopify_create_redirect

Create a URL redirect so visits to an old path land on a new page or external URL, for example after a product's handle changes.

shopify_create_script_tag

Load a remote script on the online store's pages.

shopify_create_variant

Create a variant on a product.

shopify_create_webhook

Create a webhook subscription.

shopify_delete_marketing_event

Delete a marketing event.

shopify_delete_product

Delete a product by ID.

shopify_delete_product_image

Remove an image from a product.

shopify_delete_redirect

Delete a URL redirect.

shopify_delete_script_tag

Delete a script tag so its script stops loading on the store.

shopify_delete_variant

Delete a variant from a product.

shopify_delete_webhook

Delete a webhook subscription.

shopify_get_balance_transactions

List Shopify Payments balance transactions (charges, refunds, disputes, adjustments, payouts) with amount, fee and net, most recent first.

shopify_get_dispute

Retrieve one Shopify Payments dispute by ID, with its reason, amount, status and evidence due date.

shopify_get_disputes

List Shopify Payments disputes (chargebacks and inquiries), most recently initiated first.

shopify_get_marketing_event

Retrieve one marketing event by ID.

shopify_get_marketing_events

List marketing events, the campaigns and ads that apps have reported to Shopify for attribution.

shopify_get_payments_balance

Get the current Shopify Payments balance per currency: money collected but not yet paid out.

shopify_get_payout

Retrieve one Shopify Payments payout by ID, with its amount, status and summary.

shopify_get_payouts

List Shopify Payments payouts to the merchant's bank account, most recent first, with amount, status and a fee and gross summary.

shopify_get_product_image

Retrieve one product image by ID, with its src URL, alt text, position and linked variant_ids.

shopify_get_product_images

List a product's images with their src URLs, alt text, positions and linked variant_ids.

shopify_get_redirect

Retrieve one URL redirect by ID.

shopify_get_redirects

List URL redirects, each sending an old path on the online store to a new target.

shopify_get_script_tag

Retrieve one script tag by ID.

shopify_get_script_tags

List script tags, the remote JavaScript files loaded on the online store's pages.

shopify_get_webhook

Retrieve a webhook subscription by ID.

shopify_update_marketing_event

Update a marketing event's timestamps, remote_id or budget, the fields Shopify allows to change.

shopify_update_product_image

Change a product image's position, alt text or linked variants.

shopify_update_redirect

Change a URL redirect's path or target.

shopify_update_script_tag

Change the script URL a script tag loads.

shopify_update_variant

Update a variant by ID.

shopify_update_webhook

Update a webhook subscription.

shopify_count_events

Count store events, optionally within a date range.

shopify_get_event

Retrieve one store event by ID.

shopify_get_events

List store events, the activity log of things like a product being created or an order being confirmed.

shopify_get_order_events

List the events (activity log) for one order, such as its confirmation, payments and fulfillment.

shopify_graphql_mutation

Run one GraphQL Admin API mutation, for writes REST does not offer (metaobjects, markets, translations, bulk operations, discount automations).

shopify_get_abandoned_checkouts

List abandoned checkouts with the shopper's contact details, cart line items and abandoned_checkout_url recovery link.

Connect Shopify to Claude, ChatGPT and Claude Code

Authorize once, then an endpoint your client signs into. Nothing to deploy, and nothing to install on the Shopify side.

Create an app in your Shopify Dev Dashboard, paste both URLs into its URL settings, then enter Store domain, Client ID and Client secret and approve. Tokens refresh server-side; each store is its own connection.

Store domainyour-store.myshopify.com
Client IDe.g. 7f3c1e2b9a...
Client secret••••••••••••3f7a
Authorize PopMCP on ShopifyAuthorize

Then just ask for the work

  • “How many orders came in last week and which ones are still unfulfilled”

    • count_orders
    • get_orders
    • get_fulfillment_orders
  • “Set the Sydney warehouse stock to 40 for every variant of the merino tee”

    • get_products
    • get_product_variants
    • get_locations
    • set_inventory_level
  • “Create a product for the new canvas tote and add it to the Gifts collection”

    • create_product
    • get_custom_collections
    • create_collect
  • “Find Priya's account and total what she has spent since March, refunds included”

    • search_customers
    • get_customer_orders
    • get_order_refunds

Use Shopify from the assistant you already open

One hosted endpoint, registered once per client. The same tools and the same permissions, whichever window the request comes from.

Claude DesktopCustom connector

Add the PopMCP URL under Customize → Connectors and the tools appear in every chat.

Claude WebCustom connector

The same endpoint, registered in the browser. Nothing to install on the machine you are working from.

ChatGPTCustom connector

Register PopMCP as a custom connector, then let ChatGPT read and update the account.

CodexDesktop & CLI

Wire the endpoint into Codex or the Codex CLI when a task needs live business context, not a fixture.

OpenCodeCoding agent

Register the remote MCP server in OpenCode's config for terminal-first and scripted agent runs.

ZCodeDesktop app

Add PopMCP as an MCP server in Z.ai's desktop app and work the account from the same window.

Shopify MCP server questions

What teams ask before putting Shopify behind an AI client.

Do I paste a Shopify API key or access token?

No. You create an app in your Shopify Dev Dashboard, put the two URLs PopMCP shows into its URL settings, then supply Store domain, Client ID and Client secret and approve the authorization on your store. Access tokens are issued and refreshed server-side, so there is nothing to rotate by hand in your AI client.

Can one custom app connect all of my stores?

One custom app covers several stores only when they sit in the same Shopify Plus organization. Otherwise each store needs its own app. Either way each store is its own connection, because Shopify runs consent on the store's own domain — this is the step most people expect to skip and cannot.

How many tools does the connection expose, and does my client load all of them?

The connection covers 70 operations across 12 API modules, 32 read and 38 write. 28 load by default so your client's tool list stays workable, and the rest are searchable, and the agent pulls one in when it needs it. The biggest modules are Orders, Collections, Customers, Inventory and Products.

Can the agent cancel or refund an order?

Yes. Order writes include cancel_order, close_order, open_order, create_order_refund and delete_order, alongside create_order and update_order. Those move money and change what the customer sees as soon as the AI calls them, so tick Shopify on the consent screen only for clients that should make them, and keep reporting teammates on read-only.

Which store events can PopMCP watch?

There are 24 webhook triggers. They cover the order lifecycle — created, paid, updated, cancelled, fulfilled, partially fulfilled, refund issued and payment recorded on an order — plus checkout started, checkout updated, cart created, customer created, customer updated and product created. get_webhooks shows the subscriptions already sitting on the store.

How does the agent change stock levels?

Shopify holds quantities per location, so a stock change is two steps: get_locations to identify the warehouse or shop floor, then set_inventory_level to set the available quantity there. get_inventory_levels reads what is on hand right now. Name the location in your prompt, or the agent has to look it up before it can write anything.

Do I have to run or host the Shopify MCP server myself?

No. PopMCP hosts it and gives you a Streamable HTTP MCP URL. There is nothing to deploy, no callback URL to register, and no infrastructure to keep running or patch.

Which AI clients can use this MCP server?

Any client that supports a remote Streamable HTTP MCP server: Claude Desktop, Claude Web, Claude Code, ChatGPT custom connectors, Codex and the Codex CLI, OpenCode and Z.ai's ZCode, as well as editors such as Cursor, Windsurf and Zed. Your client signs in to PopMCP with OAuth; the provider credential never leaves the server.

How do I connect Shopify to Claude Code?

Connect Shopify in PopMCP first, then run claude mcp add --transport http popmcp https://app.popmcp.com/mcp in a terminal. Inside Claude Code, run /mcp and sign in to PopMCP in the browser window it opens, ticking Shopify on the consent screen. The Shopify tools are then available in that session, and no Shopify credential is stored on your machine.

Why do only 35 of the 234 tools load by default?

Loading 234 tool definitions into every conversation burns context before the work starts. PopMCP loads a curated 35-tool set covering the everyday workflows and keeps the rest searchable, so your AI pulls a specialist tool only when a task needs it. Every tool stays searchable, and on Scale the owner can load the full catalog for a teammate's connection.

What is the difference between a tool and a trigger?

A tool is something your AI calls, and there are 234 here. A trigger is something PopMCP watches for you: 24 Shopify events that can start work on the PopMCP side. Triggers never enter your AI client's context, and none of them ask you to paste a callback URL into Shopify.

Connect Shopify to your AI in minutes

Launch a hosted MCP endpoint for Shopify, keep tool access under control, and start testing real workflow prompts right away.

Connect your first MCP