We're live in beta — earn up to 12,000 credits by signing up today. Get started

Shopify MCP
for AI agents

FloConnector is a hosted Shopify MCP server. Securely connect Claude, ChatGPT and other AI clients to Shopify. Ask in plain English; it runs the 57 tools for you, behind one endpoint, with you deciding what it can touch.

Beta. Connect it today and every tool below is live. It is new enough that we are still testing it against real Shopify accounts, so tell us if something looks off and we will fix it fast.

Built in-house. We wrote this connector ourselves and call Shopify directly, with no third party in the path. Nothing in a request or response is retained by anyone but Shopify.

Single connection. One Shopify organisation per workspace. Connect another in a separate workspace.

Tools

Everything your AI can do in Shopify

57 tools your agent gets the moment Shopify is connected.

57 tools

  • list_products read

    List products

    List products in the store, newest first. Supports Shopify search syntax in `query` (e.g. `status:active`, `vendor:Acme`, `tag:summer`, `created_at:>2024-01-01`).

  • get_product read

    Get product

    Get one product by id, including its options and variants.

  • create_product write

    Create product

    Create a new product. Set `productOptions` (e.g. Color/Size) here if the product will have variants; add the variants afterwards with shopify_create_variants.

  • update_product write

    Update product

    Update an existing product's core fields (title, description, vendor, type, tags, handle, status). Does NOT update variants — use shopify_update_variants for those.

  • delete_product write

    Delete product

    Permanently delete a product and all its variants, media, and inventory. Irreversible — consider setting status to ARCHIVED with shopify_update_product instead.

  • create_variants write

    Create product variants

    Add one or more variants to a product in bulk. Each variant's `optionValues` must match the product's options (e.g. Color=Red). Set the product's options first with shopify_create_product.

  • update_variants write

    Update product variants

    Update one or more existing variants in bulk (price, compare-at price, SKU, barcode). Each variant must carry its `id`.

  • delete_variants write

    Delete product variants

    Permanently delete one or more variants from a product. Irreversible.

  • list_collections read

    List collections

    List product collections (manual and smart). Supports Shopify search syntax in `query` (e.g. `title:Sale`).

  • get_collection read

    Get collection

    Get one collection by id, with the first page of its products.

  • list_locations read

    List locations

    List the store's locations (warehouses, shops) with their ids. Needed before adjusting or setting stock, since inventory is tracked per location.

  • list_inventory_items read

    List inventory items

    List inventory items with their stock levels per location. Supports Shopify search syntax in `query` (e.g. `sku:ABC-123`, `tracked:true`). Each item maps 1:1 to a product variant.

  • get_inventory_item read

    Get inventory item

    Get one inventory item by id, with its stock level at every location it's stocked in.

  • adjust_inventory write

    Adjust inventory (by delta)

    Change stock by a RELATIVE amount (delta) at one or more locations — e.g. -2 when two sold, +10 on a delivery. STEP 2: read the current quantity with shopify_get_inventory_item first, since each change must carry it as `changeFromQuantity`. Prefer this over shopify_set_inventory: deltas compose safely if something else changes stock at the same time.

  • set_inventory write

    Set inventory (absolute)

    Set stock to an EXACT quantity at one or more locations — for a stocktake result. STEP 2: read the current quantity with shopify_get_inventory_item first, since each entry must carry it as `changeFromQuantity`. Use shopify_adjust_inventory instead when you know the change rather than the total.

  • update_inventory_item write

    Update inventory item

    Update an inventory item's SKU, unit cost, tracking, or shipping/customs fields. Does NOT change stock counts — use shopify_adjust_inventory or shopify_set_inventory for that.

  • list_discounts read

    List discounts

    List every discount on the store — both code discounts (the customer types a code) and automatic ones (applied with no code). Each result's `__typename` says which kind it is, and its id is what the deactivate/delete tools take. Supports Shopify search syntax in `query` (e.g. `status:active`, `title:summer`).

  • get_discount read

    Get discount

    Get one discount by id — code-based or automatic — including its codes (if any) and current status.

  • create_discount_code write

    Create discount code

    Create a discount the customer applies by typing a code at checkout (e.g. SUMMER20). Give either `percentage` (10 = 10% off) or a fixed `amount` off. Applies store-wide.

  • create_automatic_discount write

    Create automatic discount

    Create a discount applied automatically at checkout with no code entered. Give either `percentage` (10 = 10% off) or a fixed `amount` off. Applies store-wide.

  • deactivate_discount_code write

    Deactivate discount code

    Turn off an active code discount without deleting it (it can be reactivated in the store admin). Prefer this over deleting — the sale's history stays intact.

  • delete_discount_code write

    Delete discount code

    Permanently delete a code discount. Irreversible — consider shopify_deactivate_discount_code instead.

  • deactivate_automatic_discount write

    Deactivate automatic discount

    Turn off an active automatic discount without deleting it (it can be reactivated in the store admin). This is what to use when a merchant asks to stop or pause a sale — it takes effect immediately and keeps the sale's history intact.

  • delete_automatic_discount write

    Delete automatic discount

    Permanently delete an automatic discount. Irreversible — prefer shopify_deactivate_automatic_discount, which stops the sale just as immediately but can be undone.

  • list_blogs read

    List blogs

    List the store's blogs. A blog is the container articles are published into — you need its id to create an article.

  • list_articles read

    List blog articles

    List blog articles. Supports Shopify search syntax in `query` (e.g. `blog_title:News`, `published_status:published`).

  • create_article write

    Create blog article

    Publish a new article to a blog. `body` is HTML. Get `blogId` from shopify_list_blogs first. Set isPublished false to save it as a draft.

  • get_article read

    Get blog article

    Get one blog article by id, including its full HTML body, author, and publish state.

  • update_article write

    Update blog article

    Update an existing article's title, body, summary, tags, or publish state.

  • delete_article write

    Delete blog article

    Permanently delete a blog article. Irreversible — to take a post off the storefront while keeping it, set isPublished false with shopify_update_article instead.

  • list_pages read

    List pages

    List the store's static pages (About, Contact, policies…). Supports Shopify search syntax in `query`.

  • get_page read

    Get page

    Get one static page by id, including its full HTML body.

  • create_page write

    Create page

    Create a new static page. `body` is HTML. Set isPublished false to keep it hidden while drafting.

  • update_page write

    Update page

    Update an existing static page's title, body, handle, or publish state.

  • delete_page write

    Delete page

    Permanently delete a static page. Irreversible — consider unpublishing with shopify_update_page instead.

  • list_files read

    List files

    List files in the store's content library (images, videos, documents).

  • upload_file write

    Upload file by URL

    Add files to the store's content library by URL — Shopify fetches each one itself. Use the returned file id to attach an image to a product.

  • get_translatable_content read

    Get translatable content

    STEP 1 of translating: list a resource's translatable fields with the `digest` each one needs. Pass a product, collection, page, or article id. Feed the key + digest into shopify_register_translations.

  • register_translations write

    Register translations

    STEP 2 of translating: save translated values for a resource. Each entry needs the `key` and `translatableContentDigest` from shopify_get_translatable_content — Shopify rejects translations without them so a translation can't outlive its source text.

  • list_customers read

    List customers

    List customers, newest first. Supports Shopify search syntax in `query` (e.g. `email:jane@example.com`, `country:Australia`, `orders_count:>5`).

  • get_customer read

    Get customer

    Get one customer by id, including their order count, lifetime spend, and default address.

  • create_customer write

    Create customer

    Create a customer record. An email is normally required for the customer to be usable at checkout. Only set acceptsMarketing from real, given consent.

  • update_customer write

    Update customer

    Update an existing customer's details. Only the fields you pass change; omitted fields are left alone.

  • delete_customer write

    Delete customer

    Permanently delete a customer record. Irreversible, and it fails if the customer has orders (Shopify keeps order history intact). For a privacy erasure request, use the store admin's redact flow instead.

  • list_orders read

    List orders

    List orders, newest first. Supports Shopify search syntax in `query` (e.g. `financial_status:paid`, `fulfillment_status:unfulfilled`, `created_at:>2026-01-01`). Only reaches orders from the last 60 days unless the store has granted extended order access.

  • get_order read

    Get order

    Get one order by id, including line items, totals, customer, and shipping address.

  • update_order write

    Update order

    Update an order's internal note, tags, or email. Cannot change line items or prices — Shopify treats those as an order edit, which is not exposed here.

  • cancel_order write

    Cancel order

    Cancel an order, optionally refunding payment and restocking inventory. Irreversible — a cancelled order cannot be un-cancelled.

  • list_draft_orders read

    List draft orders

    List draft orders (quotes and manually-created orders). Supports Shopify search syntax in `query` (e.g. `status:open`).

  • create_draft_order write

    Create draft order

    Create a draft order (a quote). Each line item needs a `variantId` and quantity — or a `title` and `price` for a one-off custom item. Returns an `invoiceUrl` you can send to the customer to pay.

  • complete_draft_order write

    Complete draft order

    Turn a draft order into a real order. Set paymentPending true to mark it awaiting payment, false to treat it as already paid. This reserves inventory and is not easily undone.

  • delete_draft_order write

    Delete draft order

    Permanently delete a draft order. Irreversible. Does not affect completed orders.

  • get_fulfillment_orders read

    Get fulfillment orders

    STEP 1 of fulfilling: list an order's fulfillment orders (the per-location slices of it) with what's still fulfillable. Feed the returned id into shopify_fulfill_order.

  • fulfill_order write

    Fulfill order

    STEP 2 of fulfilling: mark a fulfillment order as fulfilled, optionally with tracking details. Omit `lineItems` to fulfil everything remaining. Get the fulfillmentOrderId from shopify_get_fulfillment_orders.

  • list_gift_cards read

    List gift cards

    List gift cards with their balances. Supports Shopify search syntax in `query` (e.g. `status:enabled`).

  • create_gift_card write

    Create gift card

    Issue a new gift card for an initial value. The full code is returned ONCE at creation and cannot be retrieved later — only the masked code is readable afterwards.

  • deactivate_gift_card write

    Deactivate gift card

    Disable a gift card so its remaining balance can no longer be spent. Use this for a card issued in error, or one whose code has leaked. Shopify has no delete for gift cards — deactivating is the only way to take one out of circulation, and it cannot be undone through this connector.

What it covers

Shopify through FloConnector

The Shopify connector covers the storefront's operational core: products and their variants, collections, inventory items and levels across locations, and the adjustments that move stock between them. It is a native FloConnector connector rather than a brokered one, because Shopify's protected customer data rules require the data path stay in our own custody.

Shopify scopes an install to a single store. Each storefront is its own connection.

Things people ask for

  • Check stock for a product across every location
  • Adjust inventory after a stocktake and record what changed
  • Create a product with its variants from a supplier sheet
  • List collections and what is currently in each
  • Find variants priced below a threshold

Questions, answered

How do I connect Shopify to Claude?

Create a FloConnector workspace, connect Shopify once from the dashboard, then add your FloConnector endpoint to Claude as a custom connector. Claude handles the sign-in prompt; there is no server to host and no code to write. The same endpoint works in ChatGPT.

What can Claude do in Shopify?

57 tools: 23 that read Shopify data and 34 that change it. Every tool is listed on this page, so you can see exactly what the model is able to call before you connect.

Does the AI see my Shopify password or API keys?

No. FloConnector holds the Shopify credential, encrypted before it is stored, and calls Shopify on the model's behalf. The AI client only ever sees the tools and their results, never the credential behind them.

Can I stop it changing anything in Shopify?

Yes. Each connection is exposed through a profile, and a profile carries only the tools you switch on. Leave the 34 write tools off and the connection is read-only.

Does this work with ChatGPT as well as Claude?

Yes. The endpoint is a standard hosted MCP server, so it works in any client that supports MCP connectors, including Claude and ChatGPT.