Can an AI agent use Shopify?
As of 6 Oct 2026, an AI agent gets into Shopify on its own and does 33% of the core work.
- Find: Some docs for agents: llms.txt and an MCP server.
- Access: Key by API.
- Use: 33% of the work.
- Pay: Payment not reached.
- Leave: Nothing to cancel: Can't delete what it made.
To reach L3 · Does the work: do half of the core work (now 33%).
With an account set up by a person: not measured yet.
What the levels meanDriven 6 Oct 20261 drive so farRules of 15 Oct 2026Claim this page
Written and checked by our agents from this drive's record. How we write.
Who gets in
- Agents on a serverGet in on their own.
- Signed agentsThe sign-up page opens.
- Agents in a person's browserNot measured yet.
Sign-up page checked 12 Oct 2026. Signed agents: the ones Cloudflare verifies. Where agents come from
What an agent can do in Shopify.
On its own
- Create a free, temporary store without signing up for anything
- Add products with options, variants, prices and photos
- Track stock levels at the store's location
9 more
- Publish products so they show in the online store and shop app
- Edit the store's theme files and add pages
- Attach custom extra information to products
- Bundle multiple products together
- Set a shipping price for a region
- Create a percentage-off discount code
- Clean up everything it created when done
- Look up business name ideas and check if a domain name is available, without logging in
- Browse a demo catalog and add items to a cart
What it can't, and why
- Sign up for or log into a real Shopify accountA Cloudflare human-verification check blocks it to pass it
- Take orders from real customers, register them, or fulfill shipmentsThe free temporary store isn't allowed those permissions
- Buy a paid plan or close/cancel onePurchasing a plan requires the account that's blocked by the human-verification check
2 more
- Delete the temporary store itselfThe delete command only works for stores owned by an organization, not this kind of store
- Connect its own app to Shopify's AI assistant serviceThat service only allows three named partner apps to connect
Can an AI agent sign up for Shopify on its own?
Not needed: Documented no-account route: `shopify store create preview` (Shopify CLI 4.8.4) made a working store with Admin API access, headless, no email. A real Shopify account (needed to keep the store, widen scopes, sell, pick a plan) is behind a Cloudflare 'Verify you are human' challenge on accounts.shopify.com.
Does Shopify have an MCP server, and can an agent connect to it?
Yes. Shopify has an official MCP server.
A new agent can get in on its own: in the drive of 6 Oct 2026, our agent got its key without signing up, and without a person. Through the MCP server, 2 of our agent's 4 attempts worked.
What the drive found
API–OpenAPIMCP · officialCLISDKllms.txtWebhooksSandboxHow does an AI agent get a Shopify API key?
In the drive of 6 Oct 2026, our agent got its Shopify API key over the API, without a browser or a person. The CLI stores a preview-store credential (app 'Shopify CLI Connector App', 37 scopes: products, inventory, themes, content, metaobjects, discounts, shipping, publications, read_orders...). No customer, order-write, markets or locales scopes; `store auth` is unavailable for preview stores.
Can an AI agent delete its Shopify account?
Not applicable: our agent used Shopify without an account, and it can't delete what it made.
Not tested in this drive: paying. Every checkpoint, in detail
For the team behind Shopify.
Where agents stop in Shopify today, and the fixes that get them further, highest impact first.
The fixes, highest impact first
- Let verified agents through account sign-inStep-by-step guide
- Grant customer and order scopes on preview stores
- Let agents claim a preview store by codeStep-by-step guide
3 more fixes
- Open Setup MCP OAuth to CIMD clients Step-by-step guide
- Let the CLI delete preview stores
- Support MCP (the 28 Jul 2026 spec) server/discover
- Claim it free and reply next to the result.
- A Drive, $49: your private report, with where agents stop, the evidence and the fixes that move your level.
- Fixed something? Order a Drive ($49) any time, or the Monthly drive ($29/month).
Details
Your API, MCP server or CLI is the product? An Audit ($299) also checks every documented route, MCP tool and CLI command against your docs. Compare plans.
Already claimed it? Open it in your dashboard.
Rather not be driven? Block AgentDrivesAgent in robots.txt or write to us. We stop driving it ourselves; this page stays, with its date.
Embed the badge on your site
Behind the level.
The part scores and the measures behind them.
Part scores and the measures · paid plans
Part scores
Agent-ready setup
- llms.txt: found
- OpenAPI: not found
- MCP server: found
- CLI: found
Not measured in this drive: Holds up, Docs match (part of an Audit).
The measures
- Work done33
- Reliability100
- Crash test–
Needs a paid plan
Not counted in the level. Our drive used no-account preview store (Shopify CLI).
| Capability | Plan |
|---|---|
| Customize checkout with branding | Plus or development store |
| B2B storefronts | plan with B2B access |
| Shopify Capital | active paid store with sales |
For agents and builders.
The drive as data, every checkpoint and all 48 attempts.
How an agent connects · 6 tips
/api/tools/shopify.json/tools/shopify.mdMCP get_tool {"slug":"shopify"}
- Start with `npx @shopify/cli store create preview --name ... --json`: a store with Admin API access, no account.
- Run Admin GraphQL with `shopify store execute -s <store> -j -q ... -v ...`; writes need --allow-mutations.
- Run `shopify store info --store <store> --json` to see the scopes you have before planning work.
- inventorySetQuantities on 2026-10 needs an @idempotent(key: "...") directive and changeFromQuantity; ignoreCompareQuantity is gone.
- `shopify doc search` needs --query; a positional query fails with a confusing 'Failed to prompt' error.
- The Setup MCP's no-auth tools (generate-domain-names, generate-business-names, search_docs_chunks, validate_graphql_codeblocks) are usable from any client.
Every checkpoint, in detail · 9 checkpoints
- DocsHeadlessshopify.dev pages as Markdown (.md URL and Accept: text/markdown with Vary: Accept), www.shopify.com/llms.txt and /SKILL.md, setup.shopify.com/agents.md and llms.txt. shopify.dev/llms.txt is 404 (points to shopify.dev/docs.md).
- Sign upNot neededDocumented no-account route: `shopify store create preview` (Shopify CLI 4.8.4) made a working store with Admin API access, headless, no email. A real Shopify account (needed to keep the store, widen scopes, sell, pick a plan) is behind a Cloudflare 'Verify you are human' challenge on accounts.shopify.com.
- VerifyNot neededThe preview store needs no email; account sign-up stopped at the Cloudflare challenge before any mail.
- KeyHeadlessThe CLI stores a preview-store credential (app 'Shopify CLI Connector App', 37 scopes: products, inventory, themes, content, metaobjects, discounts, shipping, publications, read_orders...). No customer, order-write, markets or locales scopes; `store auth` is unavailable for preview stores.
- First callHeadless`shopify store execute` query shop { name plan } -> AgentDrives Test, plan Preview.
- First actionHeadlessproductCreate via `shopify store execute --allow-mutations`, read back by product(id).
- PayNot reachedNo 402, x402, MPP, L402 or UCP purchase path on Shopify's own domains (x402./mpp./agents.shopify.com 404, www.shopify.com/.well-known/ucp 404); no Shopify-run listing in x402 Bazaar or mpp.dev. The free-trial page says 'Start for free, keep building for €1/month'; buying a plan happens in the admin after sign-up, and sign-up is behind Cloudflare 'Verify you are human'. No billing API; the preview store cannot be upgraded.
- CancelNot neededNothing to cancel: our agent started no paid plan.
- DeleteBlockedEvery resource we created was deleted headless via Admin GraphQL and read back empty. The preview store itself cannot be deleted: `shopify store delete --force` -> 'Could not determine which organization owns [redacted].' The store is described as temporary; its lifetime was not stated where we looked. No account existed to delete.
The attempt log · 48 attempts
| Capability | Route | Result | Evidence |
|---|---|---|---|
| MCP version: server/discover on https://setup.shopify.com/mcp | mcp | done ✓ | HTTP 400, JSON-RPC -32000 "Unsupported protocol version: 2026-07-28 (supported versions: 2025-11-25, 2025-06-18, 2025-03-26, 2024-11-05, 2024-10-07)"; initialize offering 2026-07-28 answered protocolVersion 2025-11-25, serverInfo shopify-mcp-server 1.0.0, Mcp-Session-Id issued |
| MCP auth discovery: PRM + AS metadata for Setup MCP | api | done ✓ | 401 WWW-Authenticate: Bearer resource_metadata="https://setup.shopify.com/.well-known/oauth-protected-resource"; PRM lists AS https://setup.shopify.com/auth; AS metadata: grant types authorization_code, refresh_token; PKCE S256; token_endpoint_auth none; no registration_endpoint, no client_id_metadata_document_supported, no device endpoint |
| Cards: ai-catalog, agent-card, agent.json, ucp, oauth wk on www.shopify.com; /mcp/server-card | api | failed ✓ | www.shopify.com/.well-known/ai-catalog.json, agent-card.json, agent.json, ucp, oauth-protected-resource, oauth-authorization-server: all 404 text/plain Not found |
| Agent docs: llms.txt, SKILL.md, markdown docs | api | done ✓ | www.shopify.com/llms.txt 200; www.shopify.com/SKILL.md 200 (shopify-onboarding-merchant bootstrap skill); setup.shopify.com/agents.md + llms.txt 200 text/markdown; shopify.dev/skill.md 200; shopify.dev/docs/api/admin-graphql.md 200 text/markdown; Accept: text/markdown on docs page -> 302 then 200 content-type text/markdown, vary: Accept |
| find docs: find API docs and agent onboarding headless | api | done ✓ | shopify.dev docs as markdown, SKILL.md routes agents to official host integrations or Shopify AI Toolkit / CLI; skill says dev account at dev.shopify.com no card; merchant store via shopify.com/free-trial no card |
| sign up: Start free trial at shopify.com/free-trial with the agent's inbox | browser | blocked ✓ | Email form on www.shopify.com/free-trial submitted; redirect to accounts.shopify.com/session-service/login?...ux=admin_store_signup... shows title Just a moment..., text Your connection needs to be verified before you can proceed, Cloudflare Verify you are human checkbox (screenshot browser/shots/003.png); did not clear after 25 s |
| sign up (no-account route): shopify store create preview --name "AgentDrives Test" --json (Shopify CLI 4.8.4) | cli | done ✓ | CLI returned status success, store id 111714074962, subdomain [redacted], message: This store is temporary. Create a free Shopify account to save it and start selling. |
| get API credentials: Preview store credential stored by CLI | cli | done ✓ | store create preview stored a store credential in the CLI; store execute works without any login |
| first API call: shopify store execute query { shop { name plan } } | cli | done ✓ | shop.name AgentDrives Test, myshopifyDomain [redacted], plan.displayName Preview, email placeholder-...@previewstore.invalid, currency EUR |
| first real action: Create product AgentDrives Test Mug | cli | done ✓ | productCreate -> gid://shopify/Product/11205760450898, read back via product(id) query |
| Create and manage products (variants, options, media): Create product with Color option, add Black variant at 19.00, set White to 18.00, attach image, read back | cli | done ✓ | productCreate (Product/11205760450898), productVariantsBulkCreate (Black 19.00), productVariantsBulkUpdate (White 18.00), productCreateMedia (MediaImage READY); read back: options Color [White, Black], prices 18.00/19.00, 1 image READY |
| Track and manage inventory across locations: Track inventory on White variant and set available=25 at Shoplocation, read back | cli | done ✓ | inventoryItemUpdate tracked=true; inventorySetQuantities delta available +25, on_hand +25; read back inventoryLevels Shoplocation available 25, on_hand 25 |
| Manage customer profiles and segments: customerCreate AgentDrives Test with tag agentdrives-test | cli | blocked ✓ | ACCESS_DENIED: Access denied for customerCreate field. Required access: write_customers access scope. shopify store auth --scopes write_customers -> `store auth` is unavailable for preview stores. Additional Admin API scopes cant be granted. |
| Build an online store from a theme or AI prompt: Create a store (CLI preview store comes with Horizon theme as MAIN), add a theme snippet and a page, read back | cli | done ✓ | themes: Horizon role MAIN (OnlineStoreTheme/208952131922); themeFilesUpsert snippets/agentdrives-note.liquid, read back via theme.files content matches; pageCreate Page/180162429266 about-agentdrives-test |
| Sell across channels (marketplaces, social, search): Publish the mug to Online Store and Shop channels, read back | cli | partial ✓ | publications: Online Store, Shop, Point of Sale; publishablePublish to Online Store + Shop -> no userErrors; publishedOnPublication: Online Store true, Shop true, POS false |
| Add custom structured content (metafields/metaobjects): Set product metafield custom.capacity_ml=350; create metaobject definition agentdrives_faq and one entry; read back | cli | done ✓ | metafieldsSet Metafield/75669260697938; metaobjectDefinitionCreate MetaobjectDefinition/49588273490; metaobjectCreate Metaobject/553820750162; read back metafield value 350 number_integer and metaobject fields question/answer |
| Configure shipping rates and print labels: Add rate AgentDrives Express 9.99 EUR to the Deutschland zone of the General profile, read back | cli | partial ✓ | deliveryProfileUpdate methodDefinitionsToCreate -> no userErrors; read back zone Deutschland methods include AgentDrives Express 9.99 |
| Customize checkout with branding and extensions: checkoutBrandingUpsert accent #1F6FEB, corner radius 6 on the published checkout profile | cli | plan_gated ✓ | ACCESS_DENIED: Access denied for checkoutBrandingUpsert field. Required access: access to checkout branding settings and the shop must be on a Plus plan or a Development store plan. |
| Translate and localize store content for markets: Register a French title for the mug | cli | blocked ✓ | translationsRegister -> userErrors INVALID_LOCALE_FOR_SHOP Locale is not a valid locale for the shop; shopLocaleEnable -> ACCESS_DENIED Required access: write_locales access scope (not grantable on preview store) |
| Build a headless/custom storefront (Hydrogen, Storefront API): Create a Storefront API token for our preview store | cli | blocked ✓ | storefrontAccessTokenCreate -> Access denied for storefrontAccessTokenCreate field. |
| Offer product bundles and multipacks: Create bundle AgentDrives Mug Duo = 2x Test Mug (White/Black), poll operation, read back components | cli | done ✓ | First call used a wrong componentOptionId -> userError Mapping of components targeting products need to map all of the options...; corrected with ProductOption/13908273824082 -> ProductBundleOperation/77743948114 CREATED; productOperation COMPLETE, Product/11205797609810 bundleComponents quantity 2 AgentDrives Test Mug |
| Fulfill, track, and manage orders: Create a test draft order / order for the mug, then fulfill it | cli | blocked ✓ | orders(first:5) -> [] (read_orders works); draftOrderCreate -> Access denied ... Required access: write_draft_orders; orderCreate -> Access denied ... Required access: write_orders |
| Sell internationally with localized pricing/currency (Shopify Markets): marketCreate AgentDrives FR for France | cli | blocked ✓ | Access denied for marketCreate field. Required access: read_markets ... write_markets |
| Run wholesale/B2B storefronts with custom catalogs: companyCreate AgentDrives | cli | plan_gated ✓ | Access denied for companyCreate field. Required access: write_customers or write_companies. Also: The shop must have access to B2B. Some operations may require additional plan capabilities. |
| Set brand assets (logo, colors) applied across store and checkout: Read/set shop brand via Admin GraphQL | cli | failed ✓ | query shop { brand } -> Field brand doesnt exist on type Shop (Admin 2026-10); 484 mutations introspected, none for brand (only checkoutBrandingUpsert, which is Plus/dev-store only) |
| Buy and connect a custom domain: Check availability and price of agentdrivestest.com via Setup MCP generate-domain-names (no auth) | mcp | partial ✓ | generate-domain-names -> agentdrivestest.com available true, price 16.00 USD, with signupUrl admin.shopify.com/signup?extra[selected_domain]=... |
| Manage store/app resources from the Shopify CLI: Create store, run Admin GraphQL reads and writes with shopify store execute | cli | done ✓ | shopify store create preview + store execute (queries, and mutations with --allow-mutations) created and read back products, inventory, metaobjects, bundle, shipping rate; store auth on preview store -> clear error listing the grantable scopes |
| Expose store to AI shopping agents/chat checkout (Agentic Storefronts, UCP): Check the UCP surface on Shopify demo store mock.shop: /.well-known/ucp and its UCP MCP | mcp | partial ✓ | mock.shop/.well-known/ucp -> ucp version 2026-08-25, service dev.ucp.shopping over mcp at https://mock.shop/api/ucp/mcp, capabilities cart + catalog.search; tools/list: search_catalog, create_cart, get_cart, update_cart, cancel_cart; search_catalog with profile https://agentdrives.com/ -> -32001 The agent profile must return application/json (profile_malformed) |
| Build a headless/custom storefront (Hydrogen, Storefront API): Query catalog and create a cart with the Storefront API on Shopify public demo store mock.shop | api | partial ✓ | POST https://mock.shop/api products -> Slides 25.0 CAD; cartCreate 2x Slides -> cart id + checkoutUrl; cart(id) read back totalQuantity 2, total 50.0 CAD |
| Use Sidekick AI assistant: Reach Sidekick | none | blocked | Sidekick lives in admin.shopify.com; admin login goes through accounts.shopify.com, which answers 403 cf-mitigated: challenge headless and Cloudflare Verify you are human in the browser |
| Take customer payment through Shopify Checkout / Shop Pay: Check out on own store | none | blocked | Preview storefront redirects to /password; accounts sign-in behind Cloudflare challenge; we may not pay |
| Accept and process payments: Set up payments / read transactions | none | blocked | No orders possible (write_orders/draft orders denied); payment setup is admin-only behind the account sign-in (Cloudflare challenge) |
| Sell in person via POS: POS sale | none | blocked | POS needs the POS app and a logged-in staff account; account sign-in behind Cloudflare challenge |
| Add staff accounts with role permissions: Add staff | none | blocked | No staff mutation exposed to the preview token; Setup MCP states staff management mutations are blocked; admin behind Cloudflare challenge |
| Customize storefront search and discovery: Configure Search & Discovery | none | blocked | Search & Discovery is an admin app; admin behind Cloudflare challenge |
| Shopify Capital: check eligibility | none | plan_gated | Capital offers need an active selling store on a paid plan with sales history |
| Build and publish third-party apps: shopify app init / Dev Dashboard app | cli | blocked | Needs a developer account; dev.shopify.com/dashboard redirects to accounts.shopify.com which shows Cloudflare Verify you are human |
| Install apps from the App Store: install an app | none | blocked | App install consent runs in admin.shopify.com; admin login behind Cloudflare challenge |
| Choose/change subscription plan: pick a plan | none | blocked | Preview store plan Preview; plan choice requires claiming the store with a Shopify account (sign-up behind Cloudflare Turnstile); no billing API |
| 24/7 support: contact support | none | skipped | Would mean messaging real people; not allowed by drive rules |
| Create discount codes: discountCodeBasicCreate AGENTDRIVES10 10% off, read back | cli | done ✓ | DiscountCodeNode/1934983987538 created; codeDiscountNodes lists AgentDrives 10 / AGENTDRIVES10 |
| delete account and data: Delete everything created, then the preview store | cli | partial ✓ | Deleted via Admin GraphQL: 2 products (productDelete), discount, metaobject + definition, page, theme snippet, shipping rate; read back products [] discounts []. shopify store delete --store [redacted] --force -> Could not determine which organization owns [redacted]. |
| pay step: Probe agent payment rails and self-serve purchase | api | blocked ✓ | x402./mpp./agents.shopify.com -> 404 Store unavailable; www.shopify.com/.well-known/ucp 404; no openapi.json; x402 Bazaar and mpp.dev list no Shopify-run service (mpp.dev has third-party KicksDB with /v3/shopify/* routes); free-trial page: Start for free, keep building for €1/month; plan purchase happens in the admin after sign-up, which sits behind Cloudflare Verify you are human; preview store plan shows Preview and cannot be upgraded by API |
| cancel plan: cancel | none | skipped | No plan was started |
| verify email: verify | none | skipped | Account sign-up stopped at Cloudflare challenge before any mail; preview store needs no email |
| Build a headless/custom storefront (Hydrogen, Storefront API): Tokenless Storefront API query on our preview store | api | blocked ✓ | POST https://[redacted]/api/2026-10/graphql.json -> HTTP 400 Online Store channel is locked. |
| Setup MCP OAuth for our own client: GET setup.shopify.com/oauth/authorize with PKCE, CIMD-style client_id URL, loopback redirect, resource=https://setup.shopify.com/mcp | api | blocked ✓ | HTTP 400 {"error":"invalid_request","error_description":"redirect_uri is not in the allowed origins list"} |
| Dev MCP (stdio): initialize + tools/list on @shopify/dev-mcp 1.16.0 | mcp | done ✓ | initialize offering 2026-07-28 answered 2025-11-25, serverInfo shopify-dev-mcp 1.16.0; tools: feedback, learn_shopify_api, search_docs_chunks, validate, validate_theme |
Also in E-commerce.
GumroadL2Gets in on its ownShopify vs Gumroad
BigCommerceL1Can't sign up on its ownShopify vs BigCommerce
EcwidL1Can't sign up on its ownShopify vs Ecwid