TOOL EXPLORER
Know what your AI can call.
577 operations: 123 Free and 454 Pro, generated from the product manifest.
CAPABILITY REFERENCE
Find the operation you need.
Tier is plan access. Risk describes the operation; a Free tool can perform a recovery write. Your token, store scopes and tool requirements still apply.
No tools match these filters. Try a broader search or reset the filters.
shopify.seo.article_auditTechnical + duplicate-content SEO audit scoped to article resources.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- resources
- Output fields
- findings
Limitations
- Resource metadata is supplied by the caller; this tool does not call the Shopify Admin API itself.
shopify.seo.auditAggregate Pro SEO audit: technical, duplicate content, internal links, and crawlability, in one call.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId, resources, menuLinks
- Output fields
- findings, counts
Limitations
- Resource metadata is supplied by the caller; this tool does not call the Shopify Admin API itself.
shopify.seo.autopilot_statusReports the progress/checkpoint/ledger operation id of the last shopify.seo.bulk_optimize run for a given planId.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- planId
- Output fields
- status
Limitations
- Only tracks the most recent bulk_optimize run per planId; earlier runs are overwritten.
shopify.seo.bulk_optimizeValidates (seo-pro's validateProposals) and applies SEO title/description across many resources in one call via BulkRunner (sequential at/below the bulk threshold, Shopify Bulk Operations above it). Records ONE ledger operation with a Change per resource so rollback restores every resource.pro · bulk
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- inverse_operation
- Shopify scopes
- write_products, write_content
- Input fields
- planId, items, dryRun, approvalToken, resume
- Output fields
- dryRun, diffs, succeeded, failed, mode
Limitations
- Every item's mutation document is grouped by resource type; the Shopify Bulk Operations path is used per type-group once the WHOLE call exceeds the bulk threshold.
shopify.seo.canonical_auditChecks layout/theme.liquid for a canonical <link> tag and flags a hardcoded (non-Liquid-driven) href as a likely duplicate-content risk.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId
- Output fields
- findings
Limitations
- Static-source heuristic, cannot see the rendered canonical URL at runtime.
shopify.seo.collection_auditTechnical + duplicate-content SEO audit scoped to collection resources.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- resources
- Output fields
- findings
Limitations
- Resource metadata is supplied by the caller; this tool does not call the Shopify Admin API itself.
shopify.seo.content_gapFinds collections without descriptions, products without descriptions, and standard page intents (about/contact/shipping/returns/faq) missing entirely.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- resources
- Output fields
- findings
Limitations
- Resource metadata is supplied by the caller; this tool does not call the Shopify Admin API itself.
shopify.seo.crawlabilityChecks storefront password protection, presence of a custom robots.txt.liquid, and noindex directives in templates.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId
- Output fields
- findings
Limitations
- Resource metadata is supplied by the caller; this tool does not call the Shopify Admin API itself.
shopify.seo.duplicate_contentFlags resources that share an identical (or near-identical) description.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- resources
- Output fields
- findings
Limitations
- Resource metadata is supplied by the caller; this tool does not call the Shopify Admin API itself.
shopify.seo.heading_auditFlags files with more than one literal <h1> (static heuristic; conditional branches may mean only one renders).pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId
- Output fields
- findings
Limitations
- Static-source heuristic, not a rendered-DOM audit. Every finding is a hint, verify at runtime.
shopify.seo.image_alt_auditFinds <img> tags with no alt attribute or an empty alt in sections/snippets/blocks.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId
- Output fields
- findings
Limitations
- Static-source heuristic, not a rendered-DOM audit. Every finding is a hint, verify at runtime.
shopify.seo.indexability_basicChecks for a noindex robots meta tag in the layout and whether the storefront is password-protected (which blocks all indexing).pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId
- Output fields
- findings, passwordProtected
Limitations
- Static-source heuristic; robots.txt and Shopify-level search-engine-visibility settings are not inspected.
shopify.seo.internal_links_auditFlags collections/pages with zero inbound menu links, and reports deepest menu nesting.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- menuLinks, resources
- Output fields
- findings
Limitations
- Resource metadata is supplied by the caller; this tool does not call the Shopify Admin API itself.
shopify.seo.internal_links_basicLists navigation menus via the Admin API when available; otherwise derives header nav links statically from the theme's header section(s).pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId
- Output fields
- source, links
Limitations
- Without Admin access, only literal href="..." links inside header/footer sections are found, dynamic linklist-driven menus are not resolved.
shopify.seo.keyword_mapDeterministic token-frequency clustering across supplied resource titles/descriptions. ESTABLISHED_BEST_PRACTICE grouping aid, not a ranking or search-volume prediction.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- resources
- Output fields
- clusters
Limitations
- Resource metadata is supplied by the caller; this tool does not call the Shopify Admin API itself.
shopify.seo.keyword_researchDeterministic term-frequency keyword clustering + cannibalisation warnings across products/collections/pages/articles (ESTABLISHED_BEST_PRACTICE. No real search-volume data). The connected model should refine terms with its own knowledge before use.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- read_products, read_content
- Input fields
- scope, limit
- Output fields
- research
Limitations
- No real search-volume, competition, or ranking data, purely term-frequency clustering over the store's own content.
shopify.seo.metadata_auditChecks layout/theme.liquid for <title>, meta description, canonical, robots, and Open Graph title.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId
- Output fields
- findings
Limitations
- Static-source heuristic, not a rendered-DOM audit. Every finding is a hint, verify at runtime.
shopify.seo.optimize_articleValidates and applies an SEO title/description for one article (length/stuffing/duplicate checks via seo-pro's validateProposals). description may be refreshed only when explicitly provided.pro · write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- inverse_operation
- Shopify scopes
- read_content, write_content
- Input fields
- id, seoTitle, seoDescription, description, dryRun
- Output fields
- updated, diff
shopify.seo.optimize_collectionValidates and applies an SEO title/description for one collection (length/stuffing/duplicate checks via seo-pro's validateProposals). description may be refreshed only when explicitly provided.pro · write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- inverse_operation
- Shopify scopes
- read_products, write_products
- Input fields
- id, seoTitle, seoDescription, description, dryRun
- Output fields
- updated, diff
shopify.seo.optimize_pageValidates and applies an SEO title/description for one page (length/stuffing/duplicate checks via seo-pro's validateProposals). description may be refreshed only when explicitly provided.pro · write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- inverse_operation
- Shopify scopes
- read_content, write_content
- Input fields
- id, seoTitle, seoDescription, description, dryRun
- Output fields
- updated, diff
shopify.seo.optimize_productValidates and applies an SEO title/description for one product (length/stuffing/duplicate checks via seo-pro's validateProposals). description may be refreshed only when explicitly provided.pro · write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- inverse_operation
- Shopify scopes
- read_products, write_products
- Input fields
- id, seoTitle, seoDescription, description, dryRun
- Output fields
- updated, diff
shopify.seo.optimize_storeBuilds a whole-store SEO optimization plan (one PlanItem per product/collection/page/article, plus schema/alt-text/title-template sub-plans) and stores it for shopify.seo.bulk_optimize. All proposed copy is source:"deterministic_default", the connected model must rewrite it before applying.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- read_products, read_content
- Input fields
- scope, brandSuffix, includeSchema, includeAlt, includeRedirects, maxItems
- Output fields
- planId, plan, summary, nextActions
Limitations
- proposed.seoTitle/seoDescription are deterministic placeholders, not final copy, the client model must rewrite them before shopify.seo.bulk_optimize is called for real.
shopify.seo.page_auditTechnical + duplicate-content SEO audit scoped to page resources.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- resources
- Output fields
- findings
Limitations
- Resource metadata is supplied by the caller; this tool does not call the Shopify Admin API itself.
shopify.seo.product_auditTechnical + duplicate-content SEO audit scoped to product resources.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- resources
- Output fields
- findings
Limitations
- Resource metadata is supplied by the caller; this tool does not call the Shopify Admin API itself.
shopify.seo.redirect_bulkApplies a list of proposed redirects via the Admin API. Supports dryRun; requires an approval token above the shop's bulk threshold.pro · bulk
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- inverse_operation
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- redirects, dryRun, approvalToken
- Output fields
- applied, errors
shopify.seo.redirect_planDetects handle changes between a before/after resource list and proposes 301 redirects.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- before, after
- Output fields
- redirects
Limitations
- Resource metadata is supplied by the caller; this tool does not call the Shopify Admin API itself.
shopify.seo.redirects_basicCounts URL redirects via the Admin API when available; otherwise returns NOT_SUPPORTED as a warning (redirects are store-level, not theme-derivable).pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- No named fields declared.
- Output fields
- count
Limitations
- Requires Admin API access; redirects are a store-level resource, not derivable from theme source.
shopify.seo.regression_blockersFilters a list of regressions down to unapproved CRITICAL/HIGH release blockers.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- regressions, approvedKeys
- Output fields
- blockers
Limitations
- Resource metadata is supplied by the caller; this tool does not call the Shopify Admin API itself.
shopify.seo.regression_compareCompares two stored SEO baseline snapshots (or a baseline against freshly-built current data) and reports regressions.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- baselineId, againstBaselineId, currentResources, currentRenderedPages
- Output fields
- regressions
shopify.seo.regression_explainExplains a list of regressions in plain language, grouped by severity.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- regressions
- Output fields
- explanation
Limitations
- Resource metadata is supplied by the caller; this tool does not call the Shopify Admin API itself.
shopify.seo.regression_snapshotBuilds and stores an SeoBaseline snapshot (via ctx.snapshots, kind 'seo_baseline') from theme source, supplied resources, and/or rendered page HTML.pro · write
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId, label, resources, renderedPages
- Output fields
- snapshotId, pageCount
Limitations
- Resource metadata is supplied by the caller; this tool does not call the Shopify Admin API itself.
shopify.seo.schema_applyWrites snippets/cp-seo-schema.liquid (Organization + Product + BreadcrumbList JSON-LD) to the working theme and inserts a render tag before </head> in layout/theme.liquid if absent. Idempotent, safe to call more than once.pro · theme_write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- ledger_before_image
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId, dryRun
- Output fields
- themeId, snippetWritten, layoutPatched, themeCheckOffenses
Limitations
- Layout detection looks for the literal string "cp-seo-schema" in layout/theme.liquid to decide whether the render tag is already present.
shopify.seo.schema_basicFinds JSON-LD <script type="application/ld+json"> blocks and flags ones without a literal @type, or theme-wide absence of structured data.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId
- Output fields
- findings
Limitations
- Static-source heuristic, not a rendered-DOM audit. Every finding is a hint, verify at runtime.
shopify.seo.scorecardRuns the store's SEO audits (metadata, headings, canonical, indexability, internal links, schema, image alt, redirects, technical, duplicate content, product/collection/page audits) and returns a per-category score (0-100) with the evidence and top actions behind each number, instead of one meaningless global score.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- read_themes
- Input fields
- themeId, audits
- Output fields
- overall, categories, auditsRun, auditsFailed
Limitations
- Static analysis of theme + catalog; live crawl signals (404s in the wild, rankings) are out of scope.
- international is scored only when Markets tools land (Phase 5).
shopify.seo.site_architectureReports product/collection counts, average products per collection, and products with zero collection coverage.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- resources, productCollectionMap
- Output fields
- report
Limitations
- Resource metadata is supplied by the caller; this tool does not call the Shopify Admin API itself.
shopify.seo.summaryCombined SEO audit: metadata, headings, schema, and image alt findings in one call.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId
- Output fields
- findings, counts
Limitations
- Static-source heuristic, not a rendered-DOM audit.
shopify.seo.technical_auditTechnical SEO audit: canonical/hreflang/pagination presence in the theme, plus duplicate titles, missing/thin/long descriptions, long titles, and handle quality across supplied resources.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId, resources
- Output fields
- findings
Limitations
- Resource metadata is supplied by the caller; this tool does not call the Shopify Admin API itself.
shopify.seo.title_template_fixChecks layout/theme.liquid's <title> for the page_title + shop.name pattern and, if missing, patches it to the standard Dawn pattern on the working theme.pro · theme_write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- ledger_before_image
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId, dryRun
- Output fields
- themeId, compliant, patched
Limitations
- Only patches a literal <title>...</title> tag in layout/theme.liquid; custom layouts with a different structure are left alone (compliant:false, patched:false).
shopify.theme.architectureExtracts a theme's static architecture: layouts, templates, sections, blocks, snippets, assets, config, locales, warnings.free · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId
- Output fields
- themeId, architecture
Limitations
- Static analysis only, cannot see what Liquid actually renders at runtime.
shopify.theme.assetsLists a theme's asset files.free · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId
- Output fields
- themeId, files
shopify.theme.blocksLists a theme's standalone block files.free · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId
- Output fields
- themeId, files
shopify.theme.configSummarizes config/settings_schema.json: setting groups and their setting ids/types.free · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId
- Output fields
- themeId, groups
shopify.theme.currentReturns the store's live theme and the current working (unpublished ShopManager) theme, if any.free · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- No named fields declared.
- Output fields
- live, working
shopify.theme.dependenciesShows what a given theme file references and what references it, via the theme dependency graph.free · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId, key
- Output fields
- key, referencesOf, referencedBy
Limitations
- Static reference resolution only; dynamic {% render section_name %} with a variable is not resolved.
shopify.theme.file.diffDiffs one file's content between two themes, or between a theme and a snapshot.free · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- key, themeId, compareThemeId, compareSnapshotId
- Output fields
- key, diff, identical
Limitations
- Binary files are compared by presence only, not diffed byte-for-byte.
shopify.theme.file.readReads one theme file's contents, with secrets redacted. Binary files return metadata only.free · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId, key
- Output fields
- key, content, contentBase64, masked, exists
Limitations
- Binary files larger than 512KB return metadata only, not content.
shopify.theme.file.searchSearches a theme's files by text/regex query, optionally scoped to directories.free · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId, query, regex, dirs, maxResults, contextLines, caseSensitive
- Output fields
- matches
Limitations
- Static text/regex search only; results are capped by maxResults (default 100).
shopify.theme.find_referenceFinds where a symbol (settings id, section/snippet name, CSS class, or JS id) is referenced across the theme.free · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId, symbol
- Output fields
- matches
Limitations
- Best-effort pattern matching, not a real Liquid/CSS/JS parser resolving scope.
shopify.theme.inspectCombined theme overview: ThemeRef metadata, file counts by role, and an architecture summary.free · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId
- Output fields
- theme, counts, architectureSummary
shopify.theme.list_remoteLists all themes on the store (id, name, role, processing state).free · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- No named fields declared.
- Output fields
- themes
shopify.theme.localesLists a theme's locale (translation) files.free · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId
- Output fields
- themeId, files
shopify.theme.previewReturns a preview URL for a theme (defaults to the working theme).free · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId
- Output fields
- themeId, previewUrl
shopify.theme.searchText/regex search over a theme's files.free · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId, query, regex, dirs, maxResults
- Output fields
- matches
Limitations
- Static text/regex search only.
shopify.theme.sectionsLists a theme's section files.free · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId
- Output fields
- themeId, files
shopify.theme.settingsCurrent config/settings_data.json values, plus the app blocks/embeds referenced within it.free · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId
- Output fields
- themeId, current, appReferences
shopify.theme.snippetsLists a theme's snippet files.free · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId
- Output fields
- themeId, files
shopify.theme.templatesLists a theme's JSON + Liquid template files.free · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId
- Output fields
- themeId, files
shopify.theme.capabilitiesTheme-related capabilities only (theme.read/write/engine).pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- No named fields declared.
- Output fields
- capabilities
shopify.theme.delete_remotePermanently deletes a theme. Requires confirm:true. Refuses to delete the live theme. Snapshots the theme first.pro · destructive
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- snapshot
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId, confirm
- Output fields
- deletedThemeId, snapshotId
Limitations
- Deletion is permanent; use the returned snapshotId to restore files into a new theme.
shopify.theme.diffDiffs two themes' files (added/removed/changed), or a theme against its own live counterpart when only fromThemeId is given.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- fromThemeId, toThemeId
- Output fields
- fromThemeId, toThemeId, summary
Limitations
- Binary files are summarized by size, not diffed byte-for-byte.
shopify.theme.downloadDownloads a theme as a portable bundle: every file with text content (or base64 for binaries), plus a manifest of keys and checksums. Use it for off-Shopify backups, diffing across stores, or feeding shopify.theme.upload_bundle. Large binary assets can be excluded to stay under the 8 MB response cap.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- read_themes
- Input fields
- themeId, includeBinary, keys, prefix
- Output fields
- themeId, fileCount, bytes, truncated, files
Limitations
- Binary assets are skipped unless includeBinary:true; the bundle is capped at 8 MB and reports truncated:true beyond it.
shopify.theme.duplicateDuplicates a theme (defaults to the live theme) into a new unpublished theme.pro · write
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- sourceThemeId, name
- Output fields
- theme
shopify.theme.file.createCreates a new theme file. Fails with VERSION_CONFLICT if the key already exists, unless options.overwrite is set.pro · theme_write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- ledger_before_image
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId, key, content, contentBase64, dryRun, allowLiveWrite, options
- Output fields
- themeId, key, written
shopify.theme.file.deleteDeletes one theme file. Writes resolve to the working theme unless a non-live themeId is given.pro · theme_write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- ledger_before_image
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId, key, dryRun, allowLiveWrite
- Output fields
- themeId, key, deleted
shopify.theme.file.renameRenames (moves) a theme file: reads the old key, writes it under the new key, then deletes the old key, as one operation.pro · theme_write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- ledger_before_image
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId, fromKey, toKey, dryRun, allowLiveWrite
- Output fields
- themeId, fromKey, toKey, renamed
Limitations
- Not atomic against Shopify: if the delete step fails after the write, the file exists at both keys.
shopify.theme.file.restoreRestores one theme file's content from a snapshot or a prior operation's before-image.pro · theme_write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- ledger_before_image
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId, key, snapshotId, operationId, dryRun, allowLiveWrite
- Output fields
- themeId, key, restored
shopify.theme.file.updateWrites one theme file. Writes resolve to the working theme unless a non-live themeId is given. Supports dryRun (returns the diff without writing) and structural merge for config/settings_data.json and templates/*.json.pro · theme_write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- ledger_before_image
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId, key, content, contentBase64, patch, mode, dryRun, allowLiveWrite
- Output fields
- themeId, key, written, diff, fingerprintBefore, fingerprintAfter
Limitations
- Merge mode is only meaningful for config/settings_data.json and templates/*.json; other files must use content/contentBase64.
shopify.theme.files.applyApplies multiple file writes/deletes to a theme in one operation (the old 'push_unpublished' path). Snapshots the target theme first; supports dryRun.pro · theme_write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- snapshot
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId, files, dryRun, allowLiveWrite
- Output fields
- themeId, written, deleted, errors, snapshotId
Limitations
- Not transactional against Shopify; partial failures are reported per-file in `errors`.
shopify.theme.install_from_urlCreates a new unpublished theme from a remote theme zip URL. Requires confirm:true. Polls until Shopify finishes processing the upload (max 60s).pro · theme_write
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- src, name, confirm
- Output fields
- theme, processingTimedOut
Limitations
- Polling has a 60s cap; a theme that is still processing after that is returned with processingTimedOut:true rather than failing.
shopify.theme.publishPublishes a theme, making it the store's live theme. Requires confirm:true. Snapshots the previous live theme first.pro · publish
- Approval
- approval_token
- Dry-run
- Not supported
- Recovery declaration
- snapshot
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId, confirm
- Output fields
- theme, previousLiveThemeId, snapshotId
Limitations
- Snapshotting large themes may take a moment.
shopify.theme.redesignSequences plan -> build -> Theme Check -> preservation gate for one or more page types in a single call. Fails closed (QUALITY_GATE_FAILED, nothing written) if a critical app integration would be lost. Never publishes; publishing always requires a separate approval.pro · theme_write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- snapshot
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- manifestId, pages, themeId, dryRun
- Output fields
- stages, gates, previewUrl, diffRef, publishRequiresApproval
Limitations
- Synchronous in 0.x with the tool's own timeout; a task-mode variant for large multi-page redesigns is planned for a later release.
- Never publishes, publishing is always a separate, explicit step.
shopify.theme.upload_bundleCreates a new unpublished theme from a bundle (as produced by shopify.theme.download or hand-assembled): duplicates the live theme as the base, then writes every bundle file over it, optionally deleting base files not present in the bundle. Theme Check runs on the result. The live theme is never touched.pro · theme_write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- none
- Shopify scopes
- write_themes
- Input fields
- name, files, sourceThemeId, replaceAll, dryRun
- Output fields
- theme, written, deleted, themeCheckErrors, created
Limitations
- Shopify has no direct zip upload via the Admin API; the base is a duplicate of the source theme, so a complete bundle should set replaceAll:true to drop base files that the bundle does not contain.
shopify.theme.validate_structureStructural validation: missing layout, non-JSON templates (legacy .liquid templates), template section/block limits, and orphan references.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId
- Output fields
- findings
Limitations
- Static-source structural checks; not a runtime render validation.
shopify.theme.working.ensureEnsures a ShopManager working theme exists (returns the current one, or duplicates the live theme).pro · write
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- No named fields declared.
- Output fields
- theme
shopify.theme.working.statusReports the current working theme (if any) and the live theme, without creating one.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- No named fields declared.
- Output fields
- live, working
shopify.hydrogen.agent_storefront.statusProbes the store's buyer-facing Storefront MCP endpoint (https://<shop>/api/mcp: catalog search, product lookup, policies/FAQ, cart) and reports reachability and exposed tools. This is Shopify's shopper-facing agent surface, separate from this merchant MCP; it never exposes admin capabilities. Enabling/disabling is a Shopify admin setting (Online Store → Preferences / channel settings), so enable/disable return instructions, not a mutation.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- storeDomain
- Output fields
- endpoint, reachable, status, tools, instructions
Limitations
- Availability is controlled by Shopify per store/plan; the probe reports what the endpoint answers today.
shopify.hydrogen.analytics.auditAudits analytics: Analytics.Provider / standard events present, third-party pixels gated by consent.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- workspace
- Output fields
- findings, scores
Limitations
- Static analysis of the snapshot; findings are labelled DATA_SUPPORTED or HEURISTIC.
shopify.hydrogen.analytics.setupGenerates the Shopify analytics wiring (Analytics.Provider with shop + consent, page/product/collection/search/cart events) so the store's admin dashboards and Live View see the headless storefront, respecting Customer Privacy consent.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- workspace, flavour, framework
- Output fields
- files
Limitations
- Files are returned for the client to write/merge; 'patch' files describe the change to make in an existing file.
shopify.hydrogen.cache.auditAudits caching: customer/cart data never cached, catalog queries declare a strategy (CacheLong/CacheShort/CacheCustom), no cache on cart.get().pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- workspace
- Output fields
- findings, scores
Limitations
- Static analysis of the snapshot; findings are labelled DATA_SUPPORTED or HEURISTIC.
shopify.hydrogen.cache.configureReturns the recommended cache strategy per query type for the detected architecture (catalog CacheLong, product/collection CacheShort, search CacheShort, cart/customer CacheNone, custom stale-while-revalidate for menus) as a patch list against the workspace's storefront.query calls.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- workspace
- Output fields
- recommendations
shopify.hydrogen.cart.auditAudits the cart implementation: handler present, setCartId after mutations, checkout handoff, optimistic UI, cart never cached.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- workspace
- Output fields
- findings, scores
Limitations
- Static analysis of the snapshot; findings are labelled DATA_SUPPORTED or HEURISTIC.
shopify.hydrogen.cart.createGenerates the cart route (add/update/remove lines, discount codes, buyer identity, attributes, note, setCartId cookie, redirect handling, checkout URL) and a cart drawer component for the detected architecture.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- workspace, flavour, framework
- Output fields
- files
Limitations
- Files are returned for the client to write/merge; 'patch' files describe the change to make in an existing file.
shopify.hydrogen.connect_storeStores the PUBLIC Storefront API token (and API version) for this shop so the server can run Storefront API queries, verify the connection and smoke-test a Hydrogen storefront. Public tokens are safe to store; private tokens are refused. Get the token from the Hydrogen sales channel (Storefront settings) or `shopify hydrogen env pull`.pro · write
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- publicToken, apiVersion, storeDomain, clear
- Output fields
- stored, apiVersion, verified
shopify.hydrogen.customer_account.auditAudits customer-account wiring: client configured, handleAuthStatus before customer queries, private token never in client code, secrets never hard-coded.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- workspace
- Output fields
- findings, scores
Limitations
- Static analysis of the snapshot; findings are labelled DATA_SUPPORTED or HEURISTIC.
shopify.hydrogen.customer_account.setupGenerates Customer Account API wiring: account layout with handleAuthStatus, orders list with pagination, login / logout / authorize routes. Requires PUBLIC_CUSTOMER_ACCOUNT_API_CLIENT_ID and the Customer Account API enabled in the Hydrogen channel (documented in the files).pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- workspace, flavour, framework
- Output fields
- files
Limitations
- Files are returned for the client to write/merge; 'patch' files describe the change to make in an existing file.
shopify.hydrogen.deployment.deployProduces the deployment plan for the target (preview by default; production requires confirm:true): preconditions, exact commands, env, preview mechanics and rollback path. The hosted server cannot run the developer's CLI (Oxygen/Vercel/Wrangler need their own auth), so this returns MANUAL_ACTION_REQUIRED with the commands rather than pretending to deploy.pro · publish
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- workspace, target, environment, confirm
- Output fields
- executed, status, plan
Limitations
- Never deploys by itself.
shopify.hydrogen.deployment.inspectInspects the deployment setup (Oxygen / Vercel / Cloudflare Workers / Node / Deno) from the workspace: config files, CI workflows, target support for the detected Hydrogen flavour, preconditions, and the exact deploy/preview/rollback commands.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- workspace, target
- Output fields
- target, configFiles, ciDetected, plan
Limitations
- Deployment status/history lives in the host (Oxygen admin, Vercel dashboard); the server has no API access to it.
shopify.hydrogen.detectDetects what the workspace is: stable Hydrogen (React Router 7), legacy Remix Hydrogen, the Hydrogen SDK developer preview, or none; the framework (React Router, Next.js, SvelteKit, Nuxt, SolidStart, Astro), runtime target (Oxygen, Vercel, Cloudflare Workers, Node, Deno), Storefront API version, env variable presence (names only, never values), configured features (customer accounts, Markets, analytics, cart, caching, Shop Pay, predictive search, sitemap), routes, installed agent skills and bindings, each with evidence. Pass the repo snapshot: package.json, lockfile name, config files, env NAMES, and the route file list.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- workspace
- Output fields
- detection, adapter
Limitations
- Detection is static: it reads files, it does not run the project.
shopify.hydrogen.healthRuns the adapter's health checks (framework/version, required env, Storefront API version, cart, analytics, sitemap, redirect catch-all, private-token placement …) and a full static audit; returns per-area scores and findings labelled DATA_SUPPORTED or HEURISTIC.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- workspace, areas
- Output fields
- checks, scores, findings
shopify.hydrogen.images.auditAudits images: raw <img> for Shopify CDN images, <Image> without sizes, eager loading below the fold.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- workspace
- Output fields
- findings, scores
Limitations
- Static analysis of the snapshot; findings are labelled DATA_SUPPORTED or HEURISTIC.
shopify.hydrogen.images.optimizeReturns concrete rewrites for image usage: raw <img src=cdn.shopify.com> → <Image data sizes>, missing sizes attributes, loading/priority hints for hero vs grid images, and CDN transform parameters.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- workspace
- Output fields
- rewrites
shopify.hydrogen.markets.auditAudits Markets readiness: @inContext with country/language variables, locale-from-request present.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- workspace
- Output fields
- findings, scores
Limitations
- Static analysis of the snapshot; findings are labelled DATA_SUPPORTED or HEURISTIC.
shopify.hydrogen.markets.setupGenerates Markets/localization wiring: locale-from-request (subfolder or domain), i18n passed into the Hydrogen context so every query is @inContext(country, language), and where to add a country/language selector.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- workspace, flavour, framework
- Output fields
- files
Limitations
- Files are returned for the client to write/merge; 'patch' files describe the change to make in an existing file.
shopify.hydrogen.predictive_search.auditAudits search routes (search page, predictive search API) and their presence for the detected framework.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- workspace
- Output fields
- findings, scores
Limitations
- Static analysis of the snapshot; findings are labelled DATA_SUPPORTED or HEURISTIC.
shopify.hydrogen.routes.createGenerates a complete Shopify resource route for the detected architecture and framework: product page (variants, option links, encoded availability, pricing, compare-at, media, SEO meta, analytics, cart lines), collection page (filters, sorting, pagination, market-aware), collections index, search, predictive search API, cart (all CartForm actions with setCartId), account + orders (Customer Account API), sitemap, robots, catch-all with Shopify URL redirects. Returns the file for the client to write. Pass kinds or use routes.list's missing set.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- workspace, kind, kinds, flavour, framework
- Output fields
- files
Limitations
- Stable adapter emits React Router 7 files; other frameworks receive framework-agnostic loaders (SDK preview) plus the matching skill to consult.
shopify.hydrogen.routes.listLists the workspace's routes, maps them to Shopify resource routes (product, collection, collections, search, predictive search, cart, account, orders, sitemap, robots, catch-all for URL redirects) and reports which required routes are missing with the exact file to create for the detected framework.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- workspace
- Output fields
- present, missing, extra
shopify.hydrogen.seo.auditAudits headless SEO: sitemap and robots routes, meta exports on product/collection routes, JSON-LD, redirect catch-all.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- workspace
- Output fields
- findings, scores
Limitations
- Static analysis of the snapshot; findings are labelled DATA_SUPPORTED or HEURISTIC.
shopify.hydrogen.setupProduces the setup plan for a new or existing project: exact official commands (`npm create @shopify/hydrogen@latest` for stable, `npx @shopify/hydrogen@preview setup` for the SDK preview, framework scaffolds for Next.js/SvelteKit/Nuxt/SolidStart/Astro), the .env.example template (names only), and the files to add. Choose flavour explicitly or let detection decide.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- workspace, flavour, framework, runtime
- Output fields
- flavour, steps, files
Limitations
- The server cannot run the commands; apply the plan in the repo.
shopify.hydrogen.shop_pay.auditAudits Shop Pay presence on product and cart surfaces.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- workspace
- Output fields
- findings, scores
Limitations
- Static analysis of the snapshot; findings are labelled DATA_SUPPORTED or HEURISTIC.
shopify.hydrogen.shop_pay.setupReturns the Shop Pay button integration for the product page and cart (ShopPayButton with variantIds/quantities and storeDomain) for the detected architecture.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- workspace
- Output fields
- files
shopify.hydrogen.skills.listLists the Hydrogen agent skills installed in the workspace (name, folder, frontmatter, size) and the skills the installed Hydrogen version is expected to ship (developer preview: hydrogen-setup, hydrogen-storefront-client, hydrogen-request-handlers, hydrogen-routing, hydrogen-cart-ui, hydrogen-cart-drawer, hydrogen-collection-browser, hydrogen-predictive-search, hydrogen-variant-form, hydrogen-image, hydrogen-money, hydrogen-shop-pay, hydrogen-markets, hydrogen-customer-account, hydrogen-analytics, hydrogen-oxygen, hydrogen-smoke-test).pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- workspace, name
- Output fields
- installed, expected
Limitations
- Skills are read from the snapshot; include the skills folder files (SKILL.md) for frontmatter and size.
shopify.hydrogen.skills.validateCompares installed skills with the set the installed Hydrogen package ships (missing, unexpected, missing SKILL.md, version mismatches) and returns the official sync command. We never copy skill text ourselves: syncing is `npx @shopify/hydrogen@preview setup`, which keeps skills aligned with the installed version.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- workspace
- Output fields
- installed, missing, unexpected, withoutSkillFile, versionMismatch, syncCommand
shopify.hydrogen.smoke_testSmoke-tests a running Hydrogen storefront (preview or production URL): home, a real product, a real collection (handles pulled from the connected store), search, predictive search, cart, account login redirect, sitemap, robots, a redirect/404 path; checks status, latency, <title>, JSON-LD on PDP, cart form, no framework error page. Optionally exercises the cart end to end via the Storefront API (cartCreate + cartLinesAdd) and reports the checkout URL shape.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- read_products
- Input fields
- baseUrl, productHandle, collectionHandle, cartApi, paths
- Output fields
- passed, failed, pages, cart
Limitations
- HTTP-level checks; visual QA uses shopify.visual.capture_page on the same URLs.
shopify.hydrogen.storefront.queryExecutes a Storefront API query against the store with the stored PUBLIC token (or one passed inline) and returns data, errors and cost. Mutations are limited to cart mutations (cartCreate/cartLines*/cartDiscountCodesUpdate…) so an agent can exercise the cart end to end; customer mutations are refused.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- query, variables, publicToken, apiVersion, country, language
- Output fields
- data, errors, status, cost
shopify.hydrogen.storefront.schemaReturns the Storefront API root query/mutation fields this server validates against, plus the canonical query fragments Hydrogen uses (product with encoded variant availability, collection with filters/pagination, predictive search, cart), and the introspection query to fetch the full schema for the stored API version.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- introspect
- Output fields
- apiVersion, queryFields, mutationFields, fragments, introspection
Limitations
- introspect:true needs a stored token and returns type names only (full SDL is large).
shopify.hydrogen.storefront.validate_queryValidates a Storefront API document before it ships: balanced braces, known root fields (query and mutation), connections with first/last (≤ 250), @inContext usage for Markets-aware fields, legacy customerAccessToken patterns, declared variables.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- query
- Output fields
- valid, operation, rootFields, errors, warnings, variables
Limitations
- Structural checks only; field-level validation happens on the Storefront API (use storefront.query).
shopify.hydrogen.verify_connectionVerifies the stored Storefront API connection with canned queries (shop, first product, first collection, localization) and reports latency, API cost and any errors.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- No named fields declared.
- Output fields
- ok, apiVersion, results
shopify.design.anti_generic_auditDeterministically scans the live theme for the master anti-generic pattern list (generic centered heroes, repeated 3-card rows, glassmorphism, pill overuse, fake stats, generic AI wording, weak product prominence, and more). Not an aesthetic/AI originality score, the connected client model interprets the signal.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId, manifestId
- Output fields
- findings, countsBySeverity
Limitations
- Deterministic pattern detection only. No visual/AI judgement of aesthetic quality.
shopify.design.art_directionBuilds a structured art-direction brief from the design manifest, catalog facts, and the deterministically chosen layout grammar per page type. Returns rationale/rules for the connected client model to execute creatively, ShopManager AI never writes marketing copy itself.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- manifestId, references, catalogFacts
- Output fields
- manifestUsed, perPageType, paletteRules, typePairing, densityNote, imageryDirection
Limitations
- `references` are recorded for provenance only; this tool does not fetch or copy them (use shopify.design.reference_analyze for structural facts about a reference URL).
shopify.design.auditCompares the active design manifest against the live theme's extracted tokens and reports drift: off-palette colors, unlisted fonts, off-scale spacing, and contrast failures.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId
- Output fields
- findings
Limitations
- Deterministic drift detection only. No visual/AI judgement.
shopify.design.brand_directionSummarizes the manifest's brand signals (personality, tone, target customer, market position) into a short direction brief plus any semantic validation issues.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- manifestId
- Output fields
- manifestUsed, brand, issues
shopify.design.colorsExtracts just the color tokens (hex/rgb/hsl values and their sources) from theme settings and CSS.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId
- Output fields
- colors
Limitations
- Static extraction; does not resolve Liquid-computed color values.
shopify.design.compareDeterministically diffs two design manifest versions: color/typography/layout/commerce field differences.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- manifestIdA, manifestIdB
- Output fields
- differences
shopify.design.component_languageDerives a deterministic component-language brief (button/card/form treatment rules) from the manifest's declared components and the theme's extracted radius/shadow tokens.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId, manifestId
- Output fields
- manifestUsed, buttons, cards, radiusNote, shadowNote
shopify.design.componentsHeuristically detects button/card/badge/form component class patterns in CSS assets and section liquid.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId
- Output fields
- components
Limitations
- Pure regex class-name matching; does not verify the classes actually style a real component.
shopify.design.consistency_basicBasic, deterministic design-consistency checks over extracted tokens (grey-tone sprawl, off-scale spacing, too many fonts, oversized palette).pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId
- Output fields
- findings
Limitations
- No visual/AI judgement, purely numeric heuristics on extracted tokens.
shopify.design.create_manifestValidates and saves a new design manifest version (hand-authored or externally produced).pro · write
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- name, manifest
- Output fields
- See the operation response.
shopify.design.export_markdownRenders a design manifest (the active one by default) as a DESIGN.md document: one heading per area (Brand, Color, Typography, Layout, Components, Media, Motion, Commerce, Responsive) with `- key: value` lines. Save it in the repo, edit it by hand, and import it back with shopify.design.import_markdown.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- manifestId
- Output fields
- manifestId, name, markdown
Limitations
- Free-form component/responsive objects are rendered as fenced JSON blocks.
shopify.design.extract_manifestBuilds a design manifest from the theme's extracted design tokens, settings schema, and section inventory. Saves it as a new 'extracted' version.pro · write
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId
- Output fields
- manifest, record
Limitations
- Deterministic, non-AI extraction, only what is visible in settings/CSS.
shopify.design.get_exampleReturns one example direction as a full DESIGN.md document, to read as a worked example before writing this store's own manifest.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- id
- Output fields
- id, title, markdown
shopify.design.get_manifestReturns a design manifest by id, or the active manifest when no id is given.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- manifestId
- Output fields
- See the operation response.
shopify.design.import_markdownParses a DESIGN.md document into a design manifest and saves it as a new version (optionally activating it). Unknown keys are kept as notes, never silently invented. Use this when the merchant drops a DESIGN.md into the project, or after editing an exported one.pro · write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- markdown, name, activate, dryRun
- Output fields
- manifestId, name, manifest, notes, activated, written
Limitations
- Prose under a heading that is not a `- key: value` line is preserved as notes, not interpreted.
shopify.design.inspectCombined design overview: token summary plus basic consistency findings, in one call.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId
- Output fields
- tokens, findings
Limitations
- Static extraction from settings/CSS; does not render pages.
shopify.design.list_examplesLists the example design directions that ship with ShopManager AI (id, title, one-line summary). They show how a finished direction is argued (palette, type, density, motion and the reasoning) across light/dark grounds and serif/sans pairings. Read one with shopify.design.get_example; never apply one unchanged.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- No named fields declared.
- Output fields
- examples
Limitations
- Examples are static; they do not know this store.
shopify.design.list_manifestsLists all design manifest versions for this shop, most recent first.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- No named fields declared.
- Output fields
- manifests
shopify.design.motion_strategyReturns a deterministic motion strategy (hover/transition/reveal rules, reduced-motion handling) from the manifest's motion direction.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- manifestId
- Output fields
- manifestUsed, motion, reducedMotionNote
shopify.design.reference_analyzeCaptures a reference URL (desktop 1440 + mobile 390) and returns screenshots plus structural facts (script hosts, horizontal overflow). Source text/imagery are never copied, only structural evidence is returned for the connected client model to draw inspiration from.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- url
- Output fields
- facts
Limitations
- Never copies source text, imagery, or code, only structural facts (script hosts, overflow) and screenshots are returned.
shopify.design.reference_profileFetches a reference website (a brand the merchant admires) and extracts design facts: palette (darkest/lightest neutral, accent), font families and size scale, spacing rhythm, radii, layout width, motion level, hero headlines and CTA wording. Returns a suggested design-manifest patch. Use before shopify.design.create_manifest / the premium build loop.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- url, maxStylesheets
- Output fields
- url, page, css, stylesheetsFetched, manifestPatch
Limitations
- Static analysis of served HTML/CSS; sites that render everything client-side yield fewer facts.
- Copy is analysed for tone/length only; never reuse a reference site's copy or imagery.
shopify.design.responsive_strategyReturns the standard 360/768/1024+ breakpoint strategy, adjusted for any manifest-declared per-breakpoint overrides.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- manifestId
- Output fields
- manifestUsed, breakpoints
shopify.design.set_active_manifestMarks a specific manifest version as the active one for this shop.pro · write
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- manifestId
- Output fields
- See the operation response.
shopify.design.spacingExtracts spacing (margin/padding/gap) and border-radius values from theme CSS.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId
- Output fields
- spacing, radii
shopify.design.tokensExtracts design tokens (colors, typography, spacing, radii, shadows, breakpoints) from theme settings and CSS.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId
- Output fields
- See the operation response.
Limitations
- Static extraction from settings/CSS; does not render pages.
shopify.design.typographyExtracts font families, sizes, and line heights from theme settings and CSS.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId
- Output fields
- typography
shopify.design.update_manifestDeep-merges a patch into an existing manifest, saving the result as a new version.pro · write
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- manifestId, patch
- Output fields
- See the operation response.
shopify.design.validate_manifestValidates a manifest against the schema and runs semantic checks (contrast, font-family sprawl, missing scale).pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- manifest
- Output fields
- valid, schemaIssues, semanticIssues
Limitations
- Semantic checks are heuristic, not exhaustive design review.
shopify.performance.app_impactEstimates per-app script/CSS weight from theme files matching each known app's snippet/asset name patterns, plus observed script hosts.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId, url, scriptHosts
- Output fields
- apps
Limitations
- Static-source heuristics, optionally informed by a runtime capture; not a substitute for Lighthouse/real-user metrics.
shopify.performance.assetsReports the top 10 largest theme assets by size and flags large .js/.css assets that heuristically look unminified.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId
- Output fields
- findings, metrics
Limitations
- Unminified detection is a line-length heuristic, not an AST-based check.
shopify.performance.auditAggregate Pro performance audit: third-party classification, LCP/CLS/INP risk, and Liquid profile, optionally informed by a live capture's metrics.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId, url, scriptHosts
- Output fields
- findings
Limitations
- Static-source heuristics, optionally informed by a runtime capture; not a substitute for Lighthouse/real-user metrics.
shopify.performance.audit_basicCombined basic performance audit: asset sizes, script loading, image lazy-loading, fonts, and theme complexity.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId
- Output fields
- findings, metrics
Limitations
- Static-source heuristics only, not a substitute for Lighthouse or real-user metrics.
shopify.performance.clsCLS risk heuristics: images missing width/height, @font-face declarations without size-adjust/font-display swap.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId
- Output fields
- findings
Limitations
- Static-source heuristics, optionally informed by a runtime capture; not a substitute for Lighthouse/real-user metrics.
shopify.performance.compareBefore/after performance evidence: runs the performance audit on two themes (e.g. live vs working) or two snapshots of the same theme and reports the delta per category (assets, scripts, third-party, images, fonts, CLS/LCP/INP risks) with the concrete findings that appeared or disappeared. Use it to prove 'faster without changing the design'.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- read_themes
- Input fields
- beforeThemeId, afterThemeId, audit
- Output fields
- before, after, delta, resolved, introduced
Limitations
- Static audit deltas; field metrics (CWV) need a live measurement source.
shopify.performance.fontsCounts @font-face declarations, checks for font preload hints, and lists font families referenced in CSS.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId
- Output fields
- findings, metrics
Limitations
- Static-source heuristic; Shopify-hosted fonts loaded via settings are not resolved here.
shopify.performance.imagesFinds <img> tags missing width/height (layout shift risk) or loading="lazy" in sections/snippets/blocks.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId
- Output fields
- findings
Limitations
- Static-source heuristic; does not know which image is the LCP candidate.
shopify.performance.inp_riskINP (interaction latency) risk heuristics: large inline scripts and a high count of addEventListener calls in one block.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId
- Output fields
- findings
Limitations
- Static-source heuristics, optionally informed by a runtime capture; not a substitute for Lighthouse/real-user metrics.
shopify.performance.lcpLCP risk heuristics: hero/above-fold images without fetchpriority/eager loading, render-blocking stylesheets in the layout head.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId
- Output fields
- findings
Limitations
- Static-source heuristics, optionally informed by a runtime capture; not a substitute for Lighthouse/real-user metrics.
shopify.performance.liquid_profileTheme-level Liquid complexity profile plus nested-loop ({% for %} inside {% for %}) detection.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId
- Output fields
- findings, metrics
Limitations
- Static-source heuristics, optionally informed by a runtime capture; not a substitute for Lighthouse/real-user metrics.
shopify.performance.planAggregates every Pro performance check (third-party, LCP, CLS, INP, liquid profile) into one prioritized findings list.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId, url
- Output fields
- findings
Limitations
- Static-source heuristics, optionally informed by a runtime capture; not a substitute for Lighthouse/real-user metrics.
shopify.performance.regressionCompares current asset sizes/script counts against a stored performance snapshot and reports growth.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId, baselineId
- Output fields
- findings, before, after
Limitations
- Static asset sizes and script counts only.
shopify.performance.scriptsCounts <script> tags across layout/sections/snippets, lists external script hosts, and flags render-blocking scripts in <head>.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId
- Output fields
- findings, metrics
Limitations
- Static-source heuristic; cannot see scripts injected by apps at runtime.
shopify.performance.theme_complexityComputes a theme-level Liquid complexity score (lines, tags, nesting depth, loops, parse errors) with a plain-language explanation.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId
- Output fields
- findings, metrics
Limitations
- Deliberately simple, explainable weighting, not a research-backed model.
shopify.performance.third_partyClassifies external script hosts observed via a live capture (or supplied directly) against known Shopify apps, and flags unclassified hosts.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId, url, scriptHosts
- Output fields
- classified, unclassified, findings
Limitations
- Static-source heuristics, optionally informed by a runtime capture; not a substitute for Lighthouse/real-user metrics.
shopify.performance.verifyRe-runs the Pro performance plan and reports whether the given finding categories no longer appear.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId, url, categories
- Output fields
- resolved, stillPresent
Limitations
- Static-source heuristics, optionally informed by a runtime capture; not a substitute for Lighthouse/real-user metrics.
shopify.product.getReads a single product: core fields, seo, variants, media count, collections, publications count.free · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- read_products
- Input fields
- id
- Output fields
- product
shopify.product.archiveArchives (or un-archives) a product: sets status ARCHIVED so it disappears from channels without deleting it. Reversible via rollback (status restored).pro · write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- inverse_operation
- Shopify scopes
- write_products
- Input fields
- id, unarchiveTo, dryRun
- Output fields
- id, status, updated
shopify.product.assign_templateAssigns (or clears) a product's templateSuffix, separate from full product.update_basic.pro · write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- inverse_operation
- Shopify scopes
- write_products
- Input fields
- id, templateSuffix, dryRun
- Output fields
- product, updated, diff
shopify.product.bulk_updateUpdates basic fields (title, vendor, type, status, tags, template, seo) on many products in one ledger operation, with a before-image per product so rollback restores all of them. Up to 100 items per call; above the shop's bulk threshold an approval token is required.pro · bulk
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- inverse_operation
- Shopify scopes
- write_products
- Input fields
- items, dryRun, approvalToken
- Output fields
- attempted, succeeded, failed, skipped, errors
Limitations
- Sequential Admin API calls (one per product); use shopify.seo.bulk_optimize for SEO-only changes at scale.
shopify.product.collectionsLists the collections a product belongs to.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- read_products
- Input fields
- id
- Output fields
- collections
shopify.product.createCreates a product (title, description, vendor, productType, tags, status, templateSuffix). No variants/price on create; use variant.update afterwards.pro · write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- inverse_operation
- Shopify scopes
- write_products
- Input fields
- title, descriptionHtml, vendor, productType, tags, status, templateSuffix, dryRun
- Output fields
- product, created
shopify.product.deletePermanently deletes a product and its variants. Destructive; requires confirm:true. Shopify cannot restore a deleted product, so rollback is NOT available: the ledger keeps the product's before-image for manual recreation. Prefer shopify.product.archive.pro · destructive
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- none
- Shopify scopes
- write_products
- Input fields
- id, confirm, dryRun
- Output fields
- deletedId, deleted
Limitations
- Irreversible on Shopify's side; archive instead when in doubt.
shopify.product.duplicateDuplicates a product (options, variants, optionally images) as a new product with a new title, DRAFT by default. Rollback deletes the copy.pro · write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- inverse_operation
- Shopify scopes
- write_products
- Input fields
- id, newTitle, newStatus, includeImages, dryRun
- Output fields
- product, created
Limitations
- Metafields are copied by Shopify; publications are not.
shopify.product.media.attachAttaches an existing file (by id) or a new file (by source URL) as media on a product, via productCreateMedia.pro · write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- none
- Shopify scopes
- write_files, write_products
- Input fields
- productId, fileId, sourceUrl, alt, dryRun
- Output fields
- media
Limitations
- productCreateMedia expects a source URL, not a bare file id; when fileId is given this tool looks up its URL first via shopify.media.list-style lookup and re-submits it, so it may re-encode/re-host the asset rather than truly reusing the original file record.
shopify.product.metafieldsLists the metafields set on a product.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- read_products
- Input fields
- id, first, after
- Output fields
- items, hasNextPage, endCursor
shopify.product.publicationsLists which sales channels (publications) a product is published to.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- read_products
- Input fields
- id
- Output fields
- publications
shopify.product.publishPublishes a product to a sales channel (defaults to Online Store).pro · publish
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- inverse_operation
- Shopify scopes
- write_products, write_publications
- Input fields
- id, publicationName, dryRun
- Output fields
- published
shopify.product.unpublishUnpublishes a product from a sales channel (defaults to Online Store).pro · publish
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- inverse_operation
- Shopify scopes
- write_products, write_publications
- Input fields
- id, publicationName, dryRun
- Output fields
- published
shopify.product.update_basicUpdates title/vendor/productType/status/templateSuffix. Never touches price (use variant.update).pro · write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- inverse_operation
- Shopify scopes
- write_products
- Input fields
- id, title, vendor, productType, status, templateSuffix, dryRun
- Output fields
- product, updated, diff
Limitations
- Does not accept price/compareAtPrice/sku/barcode; use variant.update.
shopify.product.update_descriptionUpdates a product's descriptionHtml.pro · write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- inverse_operation
- Shopify scopes
- write_products
- Input fields
- id, descriptionHtml, dryRun
- Output fields
- product, updated, diff
shopify.product.update_seoUpdates a product's SEO title/description.pro · write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- inverse_operation
- Shopify scopes
- write_products
- Input fields
- id, seo, dryRun
- Output fields
- product, updated, diff
shopify.product.update_tagsReplaces a product's tag list.pro · write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- inverse_operation
- Shopify scopes
- write_products
- Input fields
- id, tags, dryRun
- Output fields
- product, updated, diff
shopify.accessibility.alt_textFinds <img> tags with no alt attribute or an empty alt in sections/snippets/blocks.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId
- Output fields
- findings
Limitations
- Static-source heuristic.
shopify.accessibility.ariaFlags non-standard ARIA roles and icon-only buttons with no aria-label.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId
- Output fields
- findings
Limitations
- Static-source heuristics only, not a substitute for axe-core, screen-reader testing, or manual keyboard testing.
shopify.accessibility.auditAggregate Pro accessibility audit: keyboard, modals, drawers, navigation, ARIA, and motion checks in one call.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId
- Output fields
- findings, counts
Limitations
- Static-source heuristics only, not a substitute for axe-core, screen-reader testing, or manual keyboard testing.
shopify.accessibility.audit_basicCombined basic accessibility audit: headings, alt text, form labeling, focus styles, and color contrast.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId
- Output fields
- findings, counts
Limitations
- Static-source heuristics only, not a substitute for axe-core or manual testing.
shopify.accessibility.contrast_basicComputes WCAG contrast ratio for background/text color pairs found in config/settings_data.json current values; flags pairs below 4.5:1.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId
- Output fields
- findings, pairs
Limitations
- Pairs colors by key-name heuristics (e.g. button_background/button_text); does not resolve which pairs are actually rendered together.
shopify.accessibility.drawersChecks drawer-shaped markup (cart drawers, nav drawers) for role=dialog, aria-modal, a close control, and a focus-trap marker.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId
- Output fields
- findings
Limitations
- Static-source heuristics only, not a substitute for axe-core, screen-reader testing, or manual keyboard testing.
shopify.accessibility.focus_basicFinds CSS assets and {% style %} blocks that suppress the focus outline (outline: none/0) without a :focus-visible fallback.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId
- Output fields
- findings
Limitations
- Static CSS-text heuristic; cannot see computed/cascaded styles.
shopify.accessibility.formsFinds <input>/<select>/<textarea> controls with no matching <label for>, aria-label, or aria-labelledby.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId
- Output fields
- findings
Limitations
- Regex-based; does not resolve labels wrapping their control implicitly (<label><input></label>).
shopify.accessibility.headingsChecks heading structure: multiple literal <h1> tags in one file, and skipped heading levels.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId
- Output fields
- findings
Limitations
- Static-source heuristic, cannot see which conditional branch renders at runtime.
shopify.accessibility.keyboardFinds elements removed from tab order (tabindex=-1) and click-only handlers on non-interactive elements.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId
- Output fields
- findings
Limitations
- Static-source heuristics only, not a substitute for axe-core, screen-reader testing, or manual keyboard testing.
shopify.accessibility.modalsChecks modal-shaped markup for role=dialog, aria-modal, a close control, and a focus-trap marker.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId
- Output fields
- findings
Limitations
- Static-source heuristics only, not a substitute for axe-core, screen-reader testing, or manual keyboard testing.
shopify.accessibility.motionFlags CSS animations/transitions with no prefers-reduced-motion media query.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId
- Output fields
- findings
Limitations
- Static-source heuristics only, not a substitute for axe-core, screen-reader testing, or manual keyboard testing.
shopify.accessibility.plan_fixPlans minimal, additive accessibility patches: a skip-to-content snippet (if missing) and a prefers-reduced-motion CSS asset (if animations exist without one). Never removes or rewrites existing markup.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId
- Output fields
- writes, description
Limitations
- Static-source heuristics only, not a substitute for axe-core, screen-reader testing, or manual keyboard testing.
shopify.accessibility.verifyRe-runs the Pro accessibility audit and reports whether the given finding categories no longer appear.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId, categories
- Output fields
- resolved, stillPresent
Limitations
- Static-source heuristics only, not a substitute for axe-core, screen-reader testing, or manual keyboard testing.
shopify.conflicts.apply_safe_fixApplies a case's safe fix plan to the working theme: snapshots the working theme, writes the patch, and runs Theme Check. Supports dryRun.pro · theme_write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- snapshot
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- caseId, themeId, dryRun
- Output fields
- applied, writes, themeCheckOffenses, snapshotId
Limitations
- Only remove_duplicate/scope_css/defer_script strategies are automated.
shopify.conflicts.correlateRe-runs correlation over the theme's static findings with fresh runtime evidence, without persisting a new scan.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId, consoleErrors, failedRequests, scriptHosts
- Output fields
- cases
shopify.conflicts.css_global_rulesFinds global (unscoped) CSS selectors inside a section's scoped {% style %} block, which can leak style to the rest of the page.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId
- Output fields
- findings
Limitations
- Static-source heuristics; cannot see runtime-rendered output or app-injected DOM/CSS.
shopify.conflicts.duplicate_schemaFinds duplicate setting ids within a single section/block schema.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId
- Output fields
- findings
Limitations
- Static-source heuristics; cannot see runtime-rendered output or app-injected DOM/CSS.
shopify.conflicts.duplicate_scriptsFinds the same asset or external <script src> included more than once across layout+sections.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId
- Output fields
- findings
Limitations
- Static-source heuristics; cannot see runtime-rendered output or app-injected DOM/CSS.
shopify.conflicts.explainReturns a plain-language explanation of one cached conflict case, suitable for surfacing to a merchant.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- caseId
- Output fields
- explanation
shopify.conflicts.inspectReturns full detail for one conflict case from the shop's last scan (run shopify.conflicts.scan first).pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- caseId
- Output fields
- case
shopify.conflicts.javascript_errorsStatic-only JavaScript conflict check. No JS execution/eval is performed: this only reports errors captured live via shopify.visual.capture_page when a browser plane is configured.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId, url
- Output fields
- findings
Limitations
- No sandboxed JS execution/eval is available in this environment (no acorn/JS-parser dependency): this tool cannot statically parse script syntax.
- Without a browser plane and a url, this always returns NOT_SUPPORTED as a warning with an empty findings list.
shopify.conflicts.orphan_referencesFinds references to sections/snippets/blocks that do not resolve to an existing file (via the dependency graph).pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId
- Output fields
- findings
Limitations
- Static-source heuristics; cannot see runtime-rendered output or app-injected DOM/CSS.
shopify.conflicts.plan_fixPlans a safe, minimal, reversible patch for one cached conflict case. Only remove_duplicate/scope_css/defer_script strategies produce writes; everything else returns a manual-review plan.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- caseId, themeId
- Output fields
- plan
Limitations
- Only a subset of fix strategies are automatable; others require manual review.
shopify.conflicts.root_causeReturns the likely root cause and owner attribution (theme / app:<handle> / unknown) for one cached conflict case.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- caseId
- Output fields
- likelyRootCause, owner, confidence
shopify.conflicts.scanPro conflict scan: runs every conflict signature detector over the theme, optionally correlating with a live browser capture (home/product/cart), and caches the result as this shop's last scan.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId, url
- Output fields
- cases, scannedAt
Limitations
- Static-source heuristics plus optional runtime capture; not a substitute for manual QA on a live store.
shopify.conflicts.scan_basicStatic conflict/quality scan: duplicate script includes, duplicate schema setting ids, global CSS leaking out of section-scoped style blocks, orphan file references.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId
- Output fields
- findings, counts
Limitations
- Static-source heuristics; cannot see runtime-rendered output or app-injected DOM/CSS.
shopify.conflicts.verify_fixRe-scans the theme (and, if a url is given, re-captures) and reports whether a previously-fixed case's signature still reproduces.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- caseId, themeId, url
- Output fields
- resolved, stillPresent
shopify.store.capabilitiesStore-level capabilities only (admin.read/write).free · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- No named fields declared.
- Output fields
- capabilities
shopify.store.job_statusReads back a shopify.store.* job record (stages + result) by jobId.free · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- jobId
- Output fields
- job
shopify.store.summaryBasic store facts: name, domain, plan, currency, password protection, theme count.free · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- No named fields declared.
- Output fields
- name, domain, primaryDomainUrl, planDisplayName, currencyCode, passwordProtected, themeCount
Limitations
- Falls back to theme-only data when Admin API is unavailable.
shopify.store.auditRuns theme structure, conflicts, SEO, accessibility, performance, security, and anti-generic audits (Pro variants when entitled), merges every finding into one severity-sorted list, and surfaces the top 10 next actions.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- scope
- Output fields
- jobId, stages, findings, counts, nextActions
Limitations
- Uses Free variants of each sub-audit when the corresponding Pro entitlement is not granted.
shopify.store.audit_everythingOne call, every audit the product has: theme structure/conflicts/SEO/a11y/perf/security (store.audit), CRO, mobile, merchandising, inventory, translations coverage, tracking doctor, webhook health, checkout, search zero-results and scope gaps. Returns one severity-sorted list with basis (DATA_SUPPORTED / HEURISTIC / EXPERIMENT_RECOMMENDED) and fixClass (AUTO_FIX_SAFE / NEEDS_REVIEW / MANUAL), per-area scores, an action plan grouped by fix class, and the list of areas skipped because a scope or entitlement is missing. Job record via shopify.store.job_status.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId, url, areas, maxFindings
- Output fields
- jobId
Limitations
- Areas whose scope or entitlement is missing are reported as skipped, never as passing.
shopify.store.buildBuilds a brand-new store end to end from a merchant brief: design manifest -> working theme -> snapshot -> every page type (header/home/pdp/plp/cart/search/footer) -> required static pages -> menu, then runs the Theme Check, preservation, and anti-generic quality gates. Never publishes.pro · theme_write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- snapshot
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- brief, requiredPages, baseThemeUrl, dryRun, __test_hooks
- Output fields
- jobId, stages, gates, manifestId, workingThemeId, previewUrl, operationIds, publishRequiresApproval
Limitations
- Synchronous in 0.x; a task-mode variant is planned for a later release.
- Never publishes, publishing is always a separate, explicit step.
shopify.store.configurationStore-level configuration facts relevant to theme/app work (currency, plan, password protection).pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- No named fields declared.
- Output fields
- name, domain, primaryDomainUrl, planDisplayName, currencyCode, passwordProtected, themeCount
Limitations
- Falls back to theme-only data when Admin API is unavailable.
shopify.store.health_basicBasic store health signal: reachability of admin and theme engine, and whether the storefront is password protected.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- No named fields declared.
- Output fields
- adminReachable, themeReachable, passwordProtected
shopify.store.inspectDeeper store inspection: summary plus store capabilities.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- No named fields declared.
- Output fields
- name, domain, primaryDomainUrl, planDisplayName, currencyCode, passwordProtected, themeCount, capabilities
Limitations
- Falls back to theme-only data when Admin API is unavailable.
shopify.store.migrate_to_hydrogenBuilds a Liquid → Hydrogen migration plan from the live theme and store: every template mapped to a Hydrogen route (with the route generator that produces it), sections → components inventory, theme app blocks/embeds that will NOT run in Hydrogen (each app needs a Storefront API / Hydrogen integration), metafields and metaobjects to keep, markets + locales → i18n, redirects to carry over for SEO parity, tracking → web pixel or Hydrogen Analytics, plus the setup commands from hydrogen.setup and, when a workspace snapshot is supplied, the detection result and generated route files. Phased with effort estimates; nothing is written to the store.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId, flavour, framework, workspace
- Output fields
- jobId
Limitations
- Areas whose scope or entitlement is missing are reported as skipped, never as passing.
shopify.store.optimize_everythingApplies the safe, additive fixes on the WORKING theme and store settings in one run: mobile.fix, accessibility.plan_fix + theme.files.apply, seo.schema_apply, seo.title_template_fix, conflicts.apply_safe_fix for planned cases, webhook uri repairs from webhooks.health, visual.repair when a plan exists, and seo.bulk_optimize only when include lists it (it writes catalog SEO). Runs performance.compare and seo.scorecard before/after as evidence. Default dryRun:true returns the plan; live run needs confirm:true. Every sub-operation is its own ledger entry (rollback per operation). Never publishes.pro · write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId, dryRun, include, confirm
- Output fields
- jobId
Limitations
- Areas whose scope or entitlement is missing are reported as skipped, never as passing.
shopify.store.prepare_for_launchLaunch readiness checklist with PASS / WARN / FAIL / SKIP per item and the tool that fixes it: theme (live theme set, no Theme Check errors, working theme not left unpublished), content (home/product/collection/cart/404/search templates, legal + contact + shipping pages, menus with items, no placeholder text), catalog (active products with images, prices, inventory), SEO (homepage title/description, schema, robots + sitemap reachable), commerce (markets active, locales published, discounts not expired, inventory not all zero), tracking (pixel or theme tracking, consent), ops (webhook health, scope gaps, app API version), storefront (password page still on, HTTPS primary domain, pages return 200 with a title). Read-only.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId, storeUrl, requiredPages
- Output fields
- jobId
Limitations
- Areas whose scope or entitlement is missing are reported as skipped, never as passing.
shopify.store.redesignRedesigns an existing store toward a stated goal: baselines (architecture, apps, SEO, visual) -> manifest -> per-page redesign -> Theme Check/visual/accessibility/performance checks -> preservation + SEO regression gates -> diff. Never publishes.pro · theme_write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- snapshot
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- goal, brandDirection, references, constraints, mustPreserve, targetAudience, seoProtection, pages, dryRun
- Output fields
- jobId, stages, gates, manifestId, workingThemeId, previewUrl, operationIds, publishRequiresApproval
Limitations
- Synchronous in 0.x.
- Never publishes, publishing is always a separate, explicit step.
shopify.store.repairDiagnoses a reported symptom by gathering Liquid/Theme-Check/conflict/asset evidence, ranks candidate root causes by keyword overlap + severity, applies only automated safe fixes, and verifies the result.pro · theme_write
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- snapshot
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- symptom, page, url
- Output fields
- jobId, stages, rootCauses, applied, declined, verification
Limitations
- Only applies fixes with a known automated safe-fix strategy; everything else is declined for manual review.
shopify.block.inspectInspects a section/block/template file: content summary, schema (for liquid), or structure (for JSON templates).free · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- kind, themeId, name
- Output fields
- See the operation response.
shopify.block.schemaReturns the {% schema %} block (parsed JSON) for a section/block, or the root structure for a template.free · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- kind, themeId, name
- Output fields
- See the operation response.
shopify.block.createCreates a new section/block/template file (fails if it already exists). Supports dryRun.pro · theme_write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- ledger_before_image
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- kind, themeId, name, content, json, dryRun
- Output fields
- themeId, key, written, diff
shopify.block.delete_localDeletes a section/block/template file from the working theme.pro · theme_write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- ledger_before_image
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- kind, themeId, name, dryRun
- Output fields
- themeId, key, deleted
shopify.block.designPlans a premium section/block: returns the scaffold (Liquid + schema) it would generate, without writing anything.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- kind, role, name, manifestId, blocks, settings, appBlocks
- Output fields
- key, liquid, schema
shopify.block.optimizeApplies deterministic hygiene fixes to an existing section/block: lazy-loads images, escapes unescaped setting output, and removes inline styles. No creative/structural change.pro · theme_write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- ledger_before_image
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- kind, themeId, name, dryRun
- Output fields
- themeId, key, written, diff, changesMade
shopify.block.redesignRegenerates an existing section/block's markup while preserving its original schema setting ids and any @app block slot.pro · theme_write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- ledger_before_image
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- kind, themeId, name, role, manifestId, dryRun
- Output fields
- themeId, key, written, diff, preservedSettingIds
shopify.block.referencesWhere this section/block/template is referenced from, and what it references, across the theme.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- kind, themeId, name
- Output fields
- references, referencedBy
Limitations
- Dynamic references are not resolved.
shopify.block.updateUpdates an existing section/block/template file (fails if it does not exist). Supports dryRun.pro · theme_write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- ledger_before_image
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- kind, themeId, name, content, json, dryRun
- Output fields
- themeId, key, written, diff
shopify.block.validateValidates a section/block/template file: JSON well-formedness and (for liquid) parse + schema errors.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- kind, themeId, name
- Output fields
- valid, errors
shopify.block.visual_repairApplies a scoped CSS repair patch (from prior shopify.visual.* findings) inside this section/block's own stylesheet block.pro · theme_write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- ledger_before_image
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- kind, themeId, name, issues, dryRun
- Output fields
- themeId, key, written, stepsApplied, unresolved
Limitations
- Only theme-owned issues with a deterministic CSS remedy are applied.
shopify.section.inspectInspects a section/block/template file: content summary, schema (for liquid), or structure (for JSON templates).free · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- kind, themeId, name
- Output fields
- See the operation response.
shopify.section.schemaReturns the {% schema %} block (parsed JSON) for a section/block, or the root structure for a template.free · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- kind, themeId, name
- Output fields
- See the operation response.
shopify.section.createCreates a new section/block/template file (fails if it already exists). Supports dryRun.pro · theme_write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- ledger_before_image
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- kind, themeId, name, content, json, dryRun
- Output fields
- themeId, key, written, diff
shopify.section.delete_localDeletes a section/block/template file from the working theme.pro · theme_write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- ledger_before_image
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- kind, themeId, name, dryRun
- Output fields
- themeId, key, deleted
shopify.section.designPlans a premium section/block: returns the scaffold (Liquid + schema) it would generate, without writing anything.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- kind, role, name, manifestId, blocks, settings, appBlocks
- Output fields
- key, liquid, schema
shopify.section.optimizeApplies deterministic hygiene fixes to an existing section/block: lazy-loads images, escapes unescaped setting output, and removes inline styles. No creative/structural change.pro · theme_write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- ledger_before_image
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- kind, themeId, name, dryRun
- Output fields
- themeId, key, written, diff, changesMade
shopify.section.redesignRegenerates an existing section/block's markup while preserving its original schema setting ids and any @app block slot.pro · theme_write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- ledger_before_image
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- kind, themeId, name, role, manifestId, dryRun
- Output fields
- themeId, key, written, diff, preservedSettingIds
shopify.section.referencesWhere this section/block/template is referenced from, and what it references, across the theme.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- kind, themeId, name
- Output fields
- references, referencedBy
Limitations
- Dynamic references are not resolved.
shopify.section.updateUpdates an existing section/block/template file (fails if it does not exist). Supports dryRun.pro · theme_write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- ledger_before_image
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- kind, themeId, name, content, json, dryRun
- Output fields
- themeId, key, written, diff
shopify.section.validateValidates a section/block/template file: JSON well-formedness and (for liquid) parse + schema errors.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- kind, themeId, name
- Output fields
- valid, errors
shopify.section.visual_repairApplies a scoped CSS repair patch (from prior shopify.visual.* findings) inside this section/block's own stylesheet block.pro · theme_write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- ledger_before_image
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- kind, themeId, name, issues, dryRun
- Output fields
- themeId, key, written, stepsApplied, unresolved
Limitations
- Only theme-owned issues with a deterministic CSS remedy are applied.
shopify.collection.getReads a collection: description, seo, image, ruleSet (if smart), metafields, and its products.free · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- read_products
- Input fields
- id, productsFirst
- Output fields
- collection
shopify.collection.add_productsAdds products to a manual collection.pro · write
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- write_products
- Input fields
- id, productIds
- Output fields
- added
shopify.collection.assign_templateAssigns (or clears) a collection's templateSuffix, separate from full collection.update.pro · write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- inverse_operation
- Shopify scopes
- write_products
- Input fields
- id, templateSuffix, dryRun
- Output fields
- collection, updated, diff
shopify.collection.createCreates a collection (title, descriptionHtml, and optionally a ruleSet for a smart collection).pro · write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- inverse_operation
- Shopify scopes
- write_products
- Input fields
- title, descriptionHtml, ruleSet, dryRun
- Output fields
- collection, created
shopify.collection.deleteDeletes a collection (products are not deleted). Destructive; requires confirm:true. Rollback recreates the collection from its before-image (title, description, rules, seo) but manual membership must be re-added.pro · destructive
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- inverse_operation
- Shopify scopes
- write_products
- Input fields
- id, confirm, dryRun
- Output fields
- deletedId, deleted
Limitations
- Storefront URLs to the collection start returning 404; add a redirect.
shopify.collection.metafieldsLists the metafields set on a collection.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- read_products
- Input fields
- id
- Output fields
- metafields
shopify.collection.productsLists the products in a collection.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- read_products
- Input fields
- id, productsFirst
- Output fields
- products
shopify.collection.remove_productsRemoves products from a manual collection. Rollback re-adds them.pro · write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- inverse_operation
- Shopify scopes
- write_products
- Input fields
- id, productIds, dryRun
- Output fields
- removed, jobId
shopify.collection.reorderMoves products to new positions in a manually-sorted collection (moves: [{ id, newPosition }]). Records the previous order so rollback can restore it.pro · write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- inverse_operation
- Shopify scopes
- write_products
- Input fields
- id, moves, dryRun
- Output fields
- moved, jobId
Limitations
- Only collections with sort order MANUAL accept moves.
shopify.collection.updateUpdates a collection's title/descriptionHtml/ruleSet.pro · write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- inverse_operation
- Shopify scopes
- write_products
- Input fields
- id, title, descriptionHtml, ruleSet, dryRun
- Output fields
- collection, updated, diff
shopify.collection.update_seoUpdates a collection's SEO title/description.pro · write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- inverse_operation
- Shopify scopes
- write_products
- Input fields
- id, seo, dryRun
- Output fields
- collection, updated, diff
shopify.liquid.inspectFull Liquid inspection: renders, sections, schema, tags, filters, variables, nesting depth.free · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId, key
- Output fields
- See the operation response.
Limitations
- Static analysis; cannot see conditional runtime behavior.
shopify.liquid.parseParses a Liquid file and returns line count and parse errors.free · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId, key
- Output fields
- key, lineCount, errors
Limitations
- Static analysis; cannot see conditional runtime behavior.
shopify.liquid.validateValidates a Liquid file: true if it parses with no errors (including schema JSON errors).free · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId, key
- Output fields
- valid, errors
Limitations
- Static analysis; cannot see conditional runtime behavior.
shopify.liquid.complexityComplexity metrics for this file: lines, tags, nesting depth, loops, renders.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId, key
- Output fields
- See the operation response.
Limitations
- Static analysis; cannot see conditional runtime behavior.
shopify.liquid.dependenciesWhat this file references, and what references it, across the whole theme.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId, key
- Output fields
- references, referencedBy
Limitations
- Dynamic (variable) references are not resolved.
shopify.liquid.errorsParse errors only for this file.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId, key
- Output fields
- errors
Limitations
- Static analysis; cannot see conditional runtime behavior.
shopify.liquid.filtersLiquid filters used in this file.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId, key
- Output fields
- filters
Limitations
- Static analysis; cannot see conditional runtime behavior.
shopify.liquid.objectsLiquid variables/objects referenced in this file.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId, key
- Output fields
- variables
Limitations
- Static analysis; cannot see conditional runtime behavior.
shopify.liquid.referencesAll render/section/sections/content_for/asset references from this file.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId, key
- Output fields
- See the operation response.
Limitations
- Static analysis; cannot see conditional runtime behavior.
shopify.liquid.tagsLiquid tags used in this file.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId, key
- Output fields
- tags
Limitations
- Static analysis; cannot see conditional runtime behavior.
shopify.liquid.unusedSnippets/sections/blocks/assets not reachable from any layout or template.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId
- Output fields
- unused
Limitations
- Dynamic references (variables) are conservatively treated as unreachable, so this can over-report.
shopify.cro.auditAggregate CRO audit: home, PDP, collection, cart, navigation, trust, and friction checks in one call.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId, viewportWidth
- Output fields
- findings
Limitations
- Deterministic, rationale-stated friction/trust heuristics. Never a conversion or uplift guarantee.
shopify.cro.cartCart checks: visible checkout call-to-action, progress/upsell messaging.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId, viewportWidth
- Output fields
- findings
Limitations
- Deterministic, rationale-stated friction/trust heuristics. Never a conversion or uplift guarantee.
shopify.cro.collectionCollection page checks: sort and filter/facet affordance.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId, viewportWidth
- Output fields
- findings
Limitations
- Deterministic, rationale-stated friction/trust heuristics. Never a conversion or uplift guarantee.
shopify.cro.frictionFlags unusually long forms in theme sections.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId, viewportWidth
- Output fields
- findings
Limitations
- Deterministic, rationale-stated friction/trust heuristics. Never a conversion or uplift guarantee.
shopify.cro.homeChecks that a home page template exists and is well-formed.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId, viewportWidth
- Output fields
- findings
Limitations
- Deterministic, rationale-stated friction/trust heuristics. Never a conversion or uplift guarantee.
shopify.cro.mobileMobile-focused PDP checks (sticky add-to-cart etc.) using a supplied viewportWidth hint.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId, viewportWidth
- Output fields
- findings
Limitations
- Deterministic, rationale-stated friction/trust heuristics. Never a conversion or uplift guarantee.
shopify.cro.pdpPDP friction/trust checks: sticky add-to-cart on mobile, trust signals near the buy box, shipping/returns info.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId, viewportWidth
- Output fields
- findings
Limitations
- Deterministic, rationale-stated friction/trust heuristics. Never a conversion or uplift guarantee.
shopify.cro.recommendAlias of shopify.cro.audit, sorted by severity (CRITICAL/HIGH first). Never a promise of conversion uplift.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId, viewportWidth
- Output fields
- findings
Limitations
- Deterministic, rationale-stated friction/trust heuristics. Never a conversion or uplift guarantee.
shopify.cro.trustTheme-wide trust/social-proof check (review app markers or review-related markup).pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId, viewportWidth
- Output fields
- findings
Limitations
- Deterministic, rationale-stated friction/trust heuristics. Never a conversion or uplift guarantee.
shopify.search.audit_basicFree: a small subset of the anti-generic checklist, plus (for pdp/cart) a check that a purchase form is actually present.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- target, themeId
- Output fields
- findings
Limitations
- Free subset only, see shopify.design.anti_generic_audit (Pro) for the full checklist.
shopify.search.buildGenerates scaffolds for every required role in the chosen grammar, writes the sections and the template/section-group JSON to the working theme, runs Theme Check and a preservation check, and returns the diff.pro · theme_write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- snapshot
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- target, themeId, manifestId, catalogFacts, dryRun
- Output fields
- themeId, templateKey, written, sectionsCreated, themeCheckErrors, themeCheckWarnings, preservationMissing, previewUrl
Limitations
- Builds only the grammar's required role slots; optional roles are left for a follow-up shopify.section.generate_premium call.
shopify.search.inspectFree: returns whether this page type's template/section-group exists and how many sections it has.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- target, themeId
- Output fields
- templateKey, exists, sectionCount
shopify.search.optimizeDeterministic hygiene on this page type's template/section-group: dedupes the section order against actual keys. No creative/structural change.pro · theme_write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- ledger_before_image
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- target, themeId, dryRun
- Output fields
- themeId, templateKey, written, diff
shopify.search.planChooses a layout grammar for this page type from the design manifest + catalog facts, lists the section role sequence, and surfaces any app integrations that must be preserved.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- target, themeId, manifestId, catalogFacts
- Output fields
- grammarId, grammarName, rationale, roles, preservationConstraints
shopify.search.redesignRe-evaluates the grammar for this page type and adds any required role missing from the existing template/section-group, leaving existing sections, settings, and app blocks untouched.pro · theme_write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- ledger_before_image
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- target, themeId, manifestId, catalogFacts, dryRun
- Output fields
- themeId, templateKey, written, rolesAdded, diff
shopify.search.structureFree: returns the ordered list of sections for this page type with a best-effort role guess per section.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- target, themeId
- Output fields
- sections
Limitations
- Role guesses are heuristic (derived from the section type name).
shopify.search.testRuns real searches for a list of terms and reports result counts, first hits and latency, so search.zero_results.analyze can be confirmed against what shoppers actually get. Uses the Storefront API predictiveSearch when a public token is connected (shopify.hydrogen.connect_store; works while the store is password-protected), otherwise the Online Store /search/suggest.json endpoint.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- terms, storeUrl
- Output fields
- results, zero, source
Limitations
- Uses the Online Store predictive search endpoint; Hydrogen storefronts use shopify.hydrogen.storefront.query with predictiveSearch.
shopify.search.visual_iterateAlias for shopify.visual.iterate scoped to this page type's default path.pro · theme_write
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- snapshot
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- target, themeId, url, maxIterations, qualityThreshold, timeBudgetMs
- Output fields
- iterations, finalScore, stopReason
Limitations
- Delegates entirely to shopify.visual.iterate.
shopify.search.zero_results.analyzePredicts zero-result and weak-result searches from the catalog itself: builds the vocabulary shoppers use (collection titles, menu labels, product types, tags) and checks which terms match no product title/tag/type, flags near-duplicates (plural/singular, hyphenation), products with sparse searchable text, and recommends tags/synonym coverage. When a search-terms list is supplied (from Shopify analytics export or a site-search tool), those terms are checked first and become DATA_SUPPORTED.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- read_products
- Input fields
- terms, maxProducts
- Output fields
- findings, zeroResultTerms, weakTerms
Limitations
- Shopify has no API for site-search query logs; pass terms exported from Analytics → Online store searches.
shopify.template.inspectInspects a section/block/template file: content summary, schema (for liquid), or structure (for JSON templates).free · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- kind, themeId, name
- Output fields
- See the operation response.
shopify.template.schemaReturns the {% schema %} block (parsed JSON) for a section/block, or the root structure for a template.free · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- kind, themeId, name
- Output fields
- See the operation response.
shopify.template.createCreates a new section/block/template file (fails if it already exists). Supports dryRun.pro · theme_write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- ledger_before_image
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- kind, themeId, name, content, json, dryRun
- Output fields
- themeId, key, written, diff
shopify.template.delete_localDeletes a section/block/template file from the working theme.pro · theme_write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- ledger_before_image
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- kind, themeId, name, dryRun
- Output fields
- themeId, key, deleted
shopify.template.generateGenerates a templates/*.json document from a list of section instances (<=25 sections), preserving any app blocks supplied per section.pro · theme_write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- ledger_before_image
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId, name, pageType, grammarId, sections, dryRun
- Output fields
- themeId, key, written, diff
shopify.template.optimizeDeterministic template hygiene: dedupes the order array against actual section keys, and warns if the section count is near the 25-section cap.pro · theme_write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- ledger_before_image
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId, name, dryRun
- Output fields
- themeId, key, written, diff, sectionCount
shopify.template.redesignReplaces a template's section arrangement while re-injecting any app blocks the current template held for sections that keep the same id.pro · theme_write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- ledger_before_image
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId, name, sections, dryRun
- Output fields
- themeId, key, written, diff, preservedAppBlockSections
shopify.template.referencesWhere this section/block/template is referenced from, and what it references, across the theme.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- kind, themeId, name
- Output fields
- references, referencedBy
Limitations
- Dynamic references are not resolved.
shopify.template.updateUpdates an existing section/block/template file (fails if it does not exist). Supports dryRun.pro · theme_write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- ledger_before_image
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- kind, themeId, name, content, json, dryRun
- Output fields
- themeId, key, written, diff
shopify.template.validateValidates a section/block/template file: JSON well-formedness and (for liquid) parse + schema errors.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- kind, themeId, name
- Output fields
- valid, errors
shopify.visual.auditCaptures a URL (or a page-type target with a default path) across viewports and runs deterministic visual checks (overflow, console/network errors). No aesthetic scoring, evidence for the connected client model.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- url, target, viewports
- Output fields
- sessionId, score, breakdown, issues
Limitations
- Deterministic checks only (overflow, console/network errors). Never an aesthetic/AI score.
shopify.visual.capture_matrixCaptures screenshots of a URL across the standard 7-viewport matrix (mobile-s through wide).pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- url, fullPage
- Output fields
- viewportsCaptured, metrics
Limitations
- Uses the fixed 7-viewport default matrix: mobile-s, mobile, mobile-l, tablet, laptop, desktop, wide.
shopify.visual.capture_pageCaptures screenshots of a single URL across one or more viewports, with basic layout metrics (overflow, console errors, failed requests).pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- url, viewports, fullPage
- Output fields
- viewportsCaptured, metrics
Limitations
- 0.1 does not persist screenshots server-side; large images degrade to resource_link placeholders the caller must resolve.
shopify.visual.compareCaptures two URLs at the same viewports and returns a metrics diff plus both sets of screenshots.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- urlA, urlB, viewports
- Output fields
- metricsDiff
shopify.visual.issueLooks up a single issue by id from a recent shopify.visual.audit session.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- issueId
- Output fields
- issue, sessionId
shopify.visual.iterateBounded capture -> check -> repair -> recapture loop against a URL/target. Stops when the quality threshold is met, the iteration/time budget is exhausted, or an iteration makes no progress. The quality gate is deterministic-checks-only. Never a hosted-model aesthetic score.pro · theme_write
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- snapshot
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- url, target, themeId, maxIterations, qualityThreshold, timeBudgetMs
- Output fields
- iterations, finalScore, stopReason
Limitations
- maxIterations is capped at 5. The quality gate is deterministic-checks-only; it does not judge aesthetics.
shopify.visual.plan_repairPlans (without writing) the scoped CSS repair for the theme-owned issues in a prior audit session.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId, sessionId
- Output fields
- steps, unresolved
shopify.visual.repairApplies the planned scoped CSS repair for theme-owned issues to the working theme (or plans it under dryRun).pro · theme_write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- ledger_before_image
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId, issues, dryRun
- Output fields
- themeId, written, filesChanged, unresolved
Limitations
- Only theme-owned issues with a deterministic CSS remedy are applied.
shopify.visual.scoreReturns the score/breakdown of a prior shopify.visual.audit session (or the most recent one for this shop).pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- sessionId
- Output fields
- sessionId, score, breakdown
shopify.visual.verifyRe-captures a URL and reports whether the score improved relative to a prior session.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- url, target, sessionId, viewports
- Output fields
- sessionId, previousScore, score, improved
shopify.media.listLists files in the Files library, paginated.free · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- read_files
- Input fields
- first, after, query
- Output fields
- items, hasNextPage, endCursor
shopify.media.alt_auditLists a product's media items missing alt text.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- read_products
- Input fields
- productId
- Output fields
- missingAlt
shopify.media.bulk_altApplies alt text to many files/product media items in one call via BulkRunner (fileUpdate, or productUpdateMedia when productId is given). Records ONE ledger operation with a Change per media item.pro · bulk
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- inverse_operation
- Shopify scopes
- write_files, write_products
- Input fields
- items, dryRun, approvalToken
- Output fields
- dryRun, succeeded, failed
Limitations
- Rollback restores alt text only; it does not track which product a file was attached to.
shopify.media.deleteDeletes files from Content > Files (images, videos, generic files) by id. Destructive; requires confirm:true. Not reversible on Shopify's side (the bytes are gone), so rollback is not offered; the ledger keeps the ids and alt text.pro · destructive
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- none
- Shopify scopes
- write_files
- Input fields
- fileIds, confirm, dryRun
- Output fields
- deletedIds, deleted
Limitations
- Files referenced by products or theme settings should be detached first.
shopify.media.import_urlImports a file into the Files library from a source URL (Shopify fetches it directly; no staged upload needed). Equivalent to shopify.media.upload with only sourceUrl set.pro · write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- none
- Shopify scopes
- write_files
- Input fields
- filename, sourceUrl, alt, dryRun
- Output fields
- fileId, url
Limitations
- Rollback is not supported for media imports; deleting a file is a separate, destructive tool not offered in Free.
shopify.media.inspectLists a product's media items with alt text and preview URLs.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- read_products
- Input fields
- productId
- Output fields
- media
shopify.media.update_altUpdates a file's or a product media item's alt text.pro · write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- inverse_operation
- Shopify scopes
- write_files, write_products
- Input fields
- id, alt, productId, dryRun
- Output fields
- id, alt, updated
Limitations
- Rollback restores alt text only; it does not track which product a file was attached to.
shopify.media.uploadUploads a file into the Files library, from either base64 content (via a staged upload) or a source URL (via fileCreate's originalSource).pro · write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- none
- Shopify scopes
- write_files
- Input fields
- filename, contentBase64, sourceUrl, alt, contentType, dryRun
- Output fields
- fileId, url
Limitations
- Rollback is not supported for media uploads; deleting a file is a separate, destructive tool not offered in Free.
shopify.media.usageReports which products reference a given media/file id (best-effort, single-product scope in 0.2).pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- read_products
- Input fields
- productId, mediaId
- Output fields
- used
Limitations
- Checks one product at a time; does not search the whole catalog.
shopify.cart.audit_basicFree: a small subset of the anti-generic checklist, plus (for pdp/cart) a check that a purchase form is actually present.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- target, themeId
- Output fields
- findings
Limitations
- Free subset only, see shopify.design.anti_generic_audit (Pro) for the full checklist.
shopify.cart.buildGenerates scaffolds for every required role in the chosen grammar, writes the sections and the template/section-group JSON to the working theme, runs Theme Check and a preservation check, and returns the diff.pro · theme_write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- snapshot
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- target, themeId, manifestId, catalogFacts, dryRun
- Output fields
- themeId, templateKey, written, sectionsCreated, themeCheckErrors, themeCheckWarnings, preservationMissing, previewUrl
Limitations
- Builds only the grammar's required role slots; optional roles are left for a follow-up shopify.section.generate_premium call.
shopify.cart.inspectFree: returns whether this page type's template/section-group exists and how many sections it has.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- target, themeId
- Output fields
- templateKey, exists, sectionCount
shopify.cart.optimizeDeterministic hygiene on this page type's template/section-group: dedupes the section order against actual keys. No creative/structural change.pro · theme_write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- ledger_before_image
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- target, themeId, dryRun
- Output fields
- themeId, templateKey, written, diff
shopify.cart.planChooses a layout grammar for this page type from the design manifest + catalog facts, lists the section role sequence, and surfaces any app integrations that must be preserved.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- target, themeId, manifestId, catalogFacts
- Output fields
- grammarId, grammarName, rationale, roles, preservationConstraints
shopify.cart.redesignRe-evaluates the grammar for this page type and adds any required role missing from the existing template/section-group, leaving existing sections, settings, and app blocks untouched.pro · theme_write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- ledger_before_image
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- target, themeId, manifestId, catalogFacts, dryRun
- Output fields
- themeId, templateKey, written, rolesAdded, diff
shopify.cart.structureFree: returns the ordered list of sections for this page type with a best-effort role guess per section.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- target, themeId
- Output fields
- sections
Limitations
- Role guesses are heuristic (derived from the section type name).
shopify.cart.visual_iterateAlias for shopify.visual.iterate scoped to this page type's default path.pro · theme_write
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- snapshot
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- target, themeId, url, maxIterations, qualityThreshold, timeBudgetMs
- Output fields
- iterations, finalScore, stopReason
Limitations
- Delegates entirely to shopify.visual.iterate.
shopify.discounts.getReads one discount node (code or automatic).free · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- read_discounts
- Input fields
- id
- Output fields
- discount
shopify.discounts.listLists code and automatic discounts (basic amount-off, buy-X-get-Y, free shipping, app/Functions discounts) with status, schedule, usage, codes and combination rules. Shopify search syntax in `query` (status:active, discount_type:percentage, title:…).free · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- read_discounts
- Input fields
- first, after, query
- Output fields
- items, hasNextPage, endCursor
shopify.discounts.activateRe-activates a deactivated/expired discount (code or automatic).pro · commerce_sensitive
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- inverse_operation
- Shopify scopes
- write_discounts
- Input fields
- id, dryRun
- Output fields
- id, status
shopify.discounts.create_automaticCreates an automatic (no code) percentage or amount-off discount with the same targeting/minimum/schedule options as create_code. Shopify allows a limited number of active automatic discounts.pro · commerce_sensitive
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- inverse_operation
- Shopify scopes
- write_discounts
- Input fields
- title, percentage, amount, appliesOnEachItem, productIds, collectionIds, minimumSubtotal, minimumQuantity, startsAt, endsAt, combinesWith, dryRun
- Output fields
- discount
shopify.discounts.create_codeCreates a code discount: percentage (0–100) or fixed amount off, on all items / specific products / collections, optional minimum subtotal or quantity, schedule, usage limit, once-per-customer, combination rules. Money-affecting: FINANCIAL_IMPACT, refused by the production_safe profile.pro · commerce_sensitive
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- inverse_operation
- Shopify scopes
- write_discounts
- Input fields
- title, percentage, amount, appliesOnEachItem, productIds, collectionIds, minimumSubtotal, minimumQuantity, startsAt, endsAt, combinesWith, dryRun, code, usageLimit, appliesOncePerCustomer
- Output fields
- discount
shopify.discounts.create_free_shippingCreates a free-shipping code discount (all destinations) with optional minimum subtotal, schedule, usage limit and maximum shipping price.pro · commerce_sensitive
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- inverse_operation
- Shopify scopes
- write_discounts
- Input fields
- title, code, minimumSubtotal, startsAt, endsAt, usageLimit, appliesOncePerCustomer, maximumShippingPrice, dryRun
- Output fields
- discount
shopify.discounts.deactivateDeactivates a discount immediately (code or automatic); the discount is kept and can be re-activated.pro · commerce_sensitive
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- inverse_operation
- Shopify scopes
- write_discounts
- Input fields
- id, dryRun
- Output fields
- id, status
shopify.discounts.deleteDeletes a discount permanently (usage history is lost). Prefer deactivate. confirm:true required.pro · destructive
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- write_discounts
- Input fields
- id, confirm
- Output fields
- deletedId
shopify.header.audit_basicFree: a small subset of the anti-generic checklist, plus (for pdp/cart) a check that a purchase form is actually present.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- target, themeId
- Output fields
- findings
Limitations
- Free subset only, see shopify.design.anti_generic_audit (Pro) for the full checklist.
shopify.header.buildGenerates scaffolds for every required role in the chosen grammar, writes the sections and the template/section-group JSON to the working theme, runs Theme Check and a preservation check, and returns the diff.pro · theme_write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- snapshot
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- target, themeId, manifestId, catalogFacts, dryRun
- Output fields
- themeId, templateKey, written, sectionsCreated, themeCheckErrors, themeCheckWarnings, preservationMissing, previewUrl
Limitations
- Builds only the grammar's required role slots; optional roles are left for a follow-up shopify.section.generate_premium call.
shopify.header.inspectFree: returns whether this page type's template/section-group exists and how many sections it has.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- target, themeId
- Output fields
- templateKey, exists, sectionCount
shopify.header.optimizeDeterministic hygiene on this page type's template/section-group: dedupes the section order against actual keys. No creative/structural change.pro · theme_write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- ledger_before_image
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- target, themeId, dryRun
- Output fields
- themeId, templateKey, written, diff
shopify.header.planChooses a layout grammar for this page type from the design manifest + catalog facts, lists the section role sequence, and surfaces any app integrations that must be preserved.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- target, themeId, manifestId, catalogFacts
- Output fields
- grammarId, grammarName, rationale, roles, preservationConstraints
shopify.header.redesignRe-evaluates the grammar for this page type and adds any required role missing from the existing template/section-group, leaving existing sections, settings, and app blocks untouched.pro · theme_write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- ledger_before_image
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- target, themeId, manifestId, catalogFacts, dryRun
- Output fields
- themeId, templateKey, written, rolesAdded, diff
shopify.header.structureFree: returns the ordered list of sections for this page type with a best-effort role guess per section.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- target, themeId
- Output fields
- sections
Limitations
- Role guesses are heuristic (derived from the section type name).
shopify.header.visual_iterateAlias for shopify.visual.iterate scoped to this page type's default path.pro · theme_write
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- snapshot
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- target, themeId, url, maxIterations, qualityThreshold, timeBudgetMs
- Output fields
- iterations, finalScore, stopReason
Limitations
- Delegates entirely to shopify.visual.iterate.
shopify.home.audit_basicFree: a small subset of the anti-generic checklist, plus (for pdp/cart) a check that a purchase form is actually present.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- target, themeId
- Output fields
- findings
Limitations
- Free subset only, see shopify.design.anti_generic_audit (Pro) for the full checklist.
shopify.home.buildGenerates scaffolds for every required role in the chosen grammar, writes the sections and the template/section-group JSON to the working theme, runs Theme Check and a preservation check, and returns the diff.pro · theme_write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- snapshot
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- target, themeId, manifestId, catalogFacts, dryRun
- Output fields
- themeId, templateKey, written, sectionsCreated, themeCheckErrors, themeCheckWarnings, preservationMissing, previewUrl
Limitations
- Builds only the grammar's required role slots; optional roles are left for a follow-up shopify.section.generate_premium call.
shopify.home.inspectFree: returns whether this page type's template/section-group exists and how many sections it has.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- target, themeId
- Output fields
- templateKey, exists, sectionCount
shopify.home.optimizeDeterministic hygiene on this page type's template/section-group: dedupes the section order against actual keys. No creative/structural change.pro · theme_write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- ledger_before_image
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- target, themeId, dryRun
- Output fields
- themeId, templateKey, written, diff
shopify.home.planChooses a layout grammar for this page type from the design manifest + catalog facts, lists the section role sequence, and surfaces any app integrations that must be preserved.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- target, themeId, manifestId, catalogFacts
- Output fields
- grammarId, grammarName, rationale, roles, preservationConstraints
shopify.home.redesignRe-evaluates the grammar for this page type and adds any required role missing from the existing template/section-group, leaving existing sections, settings, and app blocks untouched.pro · theme_write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- ledger_before_image
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- target, themeId, manifestId, catalogFacts, dryRun
- Output fields
- themeId, templateKey, written, rolesAdded, diff
shopify.home.structureFree: returns the ordered list of sections for this page type with a best-effort role guess per section.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- target, themeId
- Output fields
- sections
Limitations
- Role guesses are heuristic (derived from the section type name).
shopify.home.visual_iterateAlias for shopify.visual.iterate scoped to this page type's default path.pro · theme_write
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- snapshot
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- target, themeId, url, maxIterations, qualityThreshold, timeBudgetMs
- Output fields
- iterations, finalScore, stopReason
Limitations
- Delegates entirely to shopify.visual.iterate.
shopify.pdp.audit_basicFree: a small subset of the anti-generic checklist, plus (for pdp/cart) a check that a purchase form is actually present.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- target, themeId
- Output fields
- findings
Limitations
- Free subset only, see shopify.design.anti_generic_audit (Pro) for the full checklist.
shopify.pdp.buildGenerates scaffolds for every required role in the chosen grammar, writes the sections and the template/section-group JSON to the working theme, runs Theme Check and a preservation check, and returns the diff.pro · theme_write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- snapshot
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- target, themeId, manifestId, catalogFacts, dryRun
- Output fields
- themeId, templateKey, written, sectionsCreated, themeCheckErrors, themeCheckWarnings, preservationMissing, previewUrl
Limitations
- Builds only the grammar's required role slots; optional roles are left for a follow-up shopify.section.generate_premium call.
shopify.pdp.inspectFree: returns whether this page type's template/section-group exists and how many sections it has.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- target, themeId
- Output fields
- templateKey, exists, sectionCount
shopify.pdp.optimizeDeterministic hygiene on this page type's template/section-group: dedupes the section order against actual keys. No creative/structural change.pro · theme_write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- ledger_before_image
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- target, themeId, dryRun
- Output fields
- themeId, templateKey, written, diff
shopify.pdp.planChooses a layout grammar for this page type from the design manifest + catalog facts, lists the section role sequence, and surfaces any app integrations that must be preserved.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- target, themeId, manifestId, catalogFacts
- Output fields
- grammarId, grammarName, rationale, roles, preservationConstraints
shopify.pdp.redesignRe-evaluates the grammar for this page type and adds any required role missing from the existing template/section-group, leaving existing sections, settings, and app blocks untouched.pro · theme_write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- ledger_before_image
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- target, themeId, manifestId, catalogFacts, dryRun
- Output fields
- themeId, templateKey, written, rolesAdded, diff
shopify.pdp.structureFree: returns the ordered list of sections for this page type with a best-effort role guess per section.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- target, themeId
- Output fields
- sections
Limitations
- Role guesses are heuristic (derived from the section type name).
shopify.pdp.visual_iterateAlias for shopify.visual.iterate scoped to this page type's default path.pro · theme_write
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- snapshot
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- target, themeId, url, maxIterations, qualityThreshold, timeBudgetMs
- Output fields
- iterations, finalScore, stopReason
Limitations
- Delegates entirely to shopify.visual.iterate.
shopify.plp.audit_basicFree: a small subset of the anti-generic checklist, plus (for pdp/cart) a check that a purchase form is actually present.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- target, themeId
- Output fields
- findings
Limitations
- Free subset only, see shopify.design.anti_generic_audit (Pro) for the full checklist.
shopify.plp.buildGenerates scaffolds for every required role in the chosen grammar, writes the sections and the template/section-group JSON to the working theme, runs Theme Check and a preservation check, and returns the diff.pro · theme_write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- snapshot
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- target, themeId, manifestId, catalogFacts, dryRun
- Output fields
- themeId, templateKey, written, sectionsCreated, themeCheckErrors, themeCheckWarnings, preservationMissing, previewUrl
Limitations
- Builds only the grammar's required role slots; optional roles are left for a follow-up shopify.section.generate_premium call.
shopify.plp.inspectFree: returns whether this page type's template/section-group exists and how many sections it has.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- target, themeId
- Output fields
- templateKey, exists, sectionCount
shopify.plp.optimizeDeterministic hygiene on this page type's template/section-group: dedupes the section order against actual keys. No creative/structural change.pro · theme_write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- ledger_before_image
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- target, themeId, dryRun
- Output fields
- themeId, templateKey, written, diff
shopify.plp.planChooses a layout grammar for this page type from the design manifest + catalog facts, lists the section role sequence, and surfaces any app integrations that must be preserved.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- target, themeId, manifestId, catalogFacts
- Output fields
- grammarId, grammarName, rationale, roles, preservationConstraints
shopify.plp.redesignRe-evaluates the grammar for this page type and adds any required role missing from the existing template/section-group, leaving existing sections, settings, and app blocks untouched.pro · theme_write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- ledger_before_image
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- target, themeId, manifestId, catalogFacts, dryRun
- Output fields
- themeId, templateKey, written, rolesAdded, diff
shopify.plp.structureFree: returns the ordered list of sections for this page type with a best-effort role guess per section.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- target, themeId
- Output fields
- sections
Limitations
- Role guesses are heuristic (derived from the section type name).
shopify.plp.visual_iterateAlias for shopify.visual.iterate scoped to this page type's default path.pro · theme_write
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- snapshot
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- target, themeId, url, maxIterations, qualityThreshold, timeBudgetMs
- Output fields
- iterations, finalScore, stopReason
Limitations
- Delegates entirely to shopify.visual.iterate.
shopify.aeo.answerabilityChecks for FAQ-shaped content and/or FAQPage JSON-LD schema.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId
- Output fields
- recommendations
Limitations
- Deterministic structural checks only; labels distinguish documented requirements from best-practice suggestions. Never a ranking or traffic promise.
shopify.aeo.auditAggregate AEO audit: entity clarity, product facts, brand clarity, answerability, and content structure.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId, resources
- Output fields
- recommendations
Limitations
- Deterministic structural checks only; labels distinguish documented requirements from best-practice suggestions. Never a ranking or traffic promise.
shopify.aeo.brand_clarityChecks for an About page among supplied resources.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- resources
- Output fields
- recommendations
Limitations
- Deterministic structural checks only; labels distinguish documented requirements from best-practice suggestions. Never a ranking or traffic promise.
shopify.aeo.content_structureChecks heading outlines in templates/sections for skipped levels.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId
- Output fields
- recommendations
Limitations
- Deterministic structural checks only; labels distinguish documented requirements from best-practice suggestions. Never a ranking or traffic promise.
shopify.aeo.entity_clarityChecks for an Organization JSON-LD block (name/logo/sameAs) in the layout head.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId
- Output fields
- recommendations
Limitations
- Deterministic structural checks only; labels distinguish documented requirements from best-practice suggestions. Never a ranking or traffic promise.
shopify.aeo.product_factsChecks Product JSON-LD completeness on product templates/sections (brand, sku/gtin, offers, availability).pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId
- Output fields
- recommendations
Limitations
- Deterministic structural checks only; labels distinguish documented requirements from best-practice suggestions. Never a ranking or traffic promise.
shopify.aeo.recommendAlias of shopify.aeo.audit, sorted with VERIFIED_TECHNICAL recommendations first, the highest-confidence, most actionable items.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId, resources
- Output fields
- recommendations
Limitations
- Deterministic structural checks only; labels distinguish documented requirements from best-practice suggestions. Never a ranking or traffic promise.
shopify.apps.detect_blocksDetects apps integrated as theme app blocks (shopify://apps/... in templates/section groups).pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId
- Output fields
- apps
Limitations
- Evidence-based reconstruction, not the merchant's authoritative installed-app list.
shopify.apps.detect_embedsDetects apps integrated as theme app embeds (config/settings_data.json blocks).pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId
- Output fields
- apps
Limitations
- Evidence-based reconstruction, not the merchant's authoritative installed-app list.
shopify.apps.detect_scriptsDetects apps installed via legacy ScriptTag API, using the Admin API when available. ScriptTags stop running after 2027-03-01.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- No named fields declared.
- Output fields
- scriptTags
Limitations
- Requires Admin API access. Legacy ScriptTags are sunsetting; most apps have already migrated to app embeds/blocks.
shopify.apps.detect_theme_referencesDetects apps referenced by theme-file fingerprints (known snippet/asset/CSS-class patterns) rather than block/embed integration.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId
- Output fields
- apps
Limitations
- Evidence-based reconstruction, not the merchant's authoritative installed-app list.
shopify.apps.list_detectedLists all apps detected across every evidence type (blocks, embeds, theme references) in one call. Equivalent to shopify.apps.scan.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId
- Output fields
- apps
Limitations
- Evidence-based reconstruction, never authoritative.
shopify.apps.preservation_manifest_basicWhere each detected app is integrated (per template/section-group), and a basic preservation manifest for theme-write operations.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId
- Output fields
- integrationMap, preservationManifest
Limitations
- Non-AI: importance is a static category lookup, not judged per-store.
shopify.apps.scanReconstructs installed apps from theme evidence: app blocks, app embeds, and known-app file/CSS fingerprints. Confidence-scored, never authoritative.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId
- Output fields
- apps
Limitations
- Evidence-based reconstruction, not the merchant's authoritative installed-app list, an app can be installed without theme footprint, or theme footprint can outlive uninstall.
shopify.metafields.definitionsLists metafield definitions for an owner type, paginated.free · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- read_products
- Input fields
- ownerType, first, after
- Output fields
- items, hasNextPage, endCursor
shopify.metafields.listLists the metafields set on a specific owner (product, collection, page, article, etc.), paginated.free · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- read_products
- Input fields
- ownerId, first, after
- Output fields
- items, hasNextPage, endCursor
shopify.metafields.bulk_previewPreviews a batch metafieldsSet call (up to 25 entries) without writing: validates namespaces and returns the before-image for each owner/key.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- read_products
- Input fields
- metafields
- Output fields
- preview, rejected
Limitations
- Read-only: does not call metafieldsSet.
shopify.metafields.definition_createCreates a metafield definition (namespace/key/type/owner) so values are validated, editable in admin and exposable to the storefront. Types are validated against Shopify's supported list before the call; list types use the 'list.' prefix.pro · write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- name, namespace, key, type, ownerType, description, pin, storefrontAccess, validations, dryRun
- Output fields
- definition, created
Limitations
- The owner resource's write scope is required (e.g. write_products for PRODUCT).
shopify.metafields.definition_updateUpdates a metafield definition's name, description, pin, storefront access or validations (type and key cannot change).pro · write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- namespace, key, ownerType, name, description, pin, storefrontAccess, validations, dryRun
- Output fields
- definition, updated
shopify.metafields.deleteDeletes metafields by owner/namespace/key. Refuses app-owned ($app:...) namespaces. Destructive; requires confirm:true.pro · destructive
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- inverse_operation
- Shopify scopes
- write_products
- Input fields
- metafields, confirm, dryRun
- Output fields
- deleted
shopify.metafields.setSets up to 25 metafields in one call. Refuses app-owned ($app:...) namespaces.pro · write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- inverse_operation
- Shopify scopes
- write_products
- Input fields
- metafields, dryRun
- Output fields
- metafields, updated
Limitations
- At most 25 metafields per call (Shopify's metafieldsSet limit).
shopify.auth.connectReturns an admin URL to complete or extend the store's connection to ShopManager AI. Never accepts secrets as input.free · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- No named fields declared.
- Output fields
- adminUrl
Limitations
- Never accepts or returns credentials; the user completes the flow in the browser.
shopify.auth.disconnectDisconnecting is only available from the Shopify admin UI, not through MCP.free · write
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- No named fields declared.
- Output fields
- See the operation response.
Limitations
- Never supported through MCP by design.
shopify.auth.doctorActionable checklist of what's wrong with this credential's setup and what to do about it.free · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- No named fields declared.
- Output fields
- issues
shopify.auth.permissionsReturns the full set of Shopify scopes and store capabilities available to this credential.free · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- No named fields declared.
- Output fields
- scopesGranted, capabilities, policy
shopify.auth.statusReports what kinds of access this credential has (admin, theme write) and the scopes granted, without ever revealing secrets.free · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- No named fields declared.
- Output fields
- kind, profile, scopesGranted, themeWriteAvailable, adminAvailable
Limitations
- Never returns tokens or secrets.
shopify.auth.validateProbes the theme engine (list themes) and admin API (shop query) to confirm the credential actually works.free · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- No named fields declared.
- Output fields
- themeProbeOk, adminProbeOk, errors
commerce.diagnosticsAggregates health, capabilities, and entitlement state into a single diagnostics report.free · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- No named fields declared.
- Output fields
- healthy, checks, capabilities, entitlementState
commerce.diagnostics.apiAdmin API health for this shop: reachable, API version in use vs the app's configured version, granted access scopes (from currentAppInstallation), throttle status from the last call, active app subscriptions. MANUAL findings for version drift.free · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- No named fields declared.
- Output fields
- reachable, apiVersion, installation, findings
commerce.diagnostics.extensionsWhat this app has deployed on the store: web pixel (and settings), Shopify Functions with what they are attached to (discount/transform/validation via the admin), checkout profiles, plus recommendations (no pixel → scaffold, no functions → what would help).free · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- No named fields declared.
- Output fields
- pixel, functions, checkoutProfiles, findings
commerce.diagnostics.permissionsScope gap analysis: compares the scopes granted to this install (credential + currentAppInstallation) with the app's configured scope list and with every registered tool's requiredShopifyScopes, and lists which tool families are blocked and by which scope. AUTO_FIX_SAFE = reconnect with the configured scope set.free · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- No named fields declared.
- Output fields
- granted, configured, missingFromInstall, blockedFamilies, findings
commerce.diagnostics.trackingAlias of shopify.tracking.audit inside the diagnostics family (theme trackers, duplicates, consent, script tags, pixel).free · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId
- Output fields
- detected, scriptTags, pixel, findings, themeFiles
commerce.diagnostics.webhooksAlias of shopify.webhooks.health inside the diagnostics family.free · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- No named fields declared.
- Output fields
- subscriptions, expected, receipts, findings, score
shopify.draft_orders.completeCompletes a draft order into a real order, marked paid (or paymentPending:true for pay-later). Creates a financial record: confirm:true required; refused by the production_safe profile.pro · commerce_sensitive
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- write_draft_orders
- Input fields
- id, paymentPending, confirm
- Output fields
- orderId
shopify.draft_orders.createCreates a draft order (variant lines or custom lines, customer by id or email, note, tags, order-level discount, shipping address). Nothing is charged until draft_orders.complete or the customer pays the invoice.pro · write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- inverse_operation
- Shopify scopes
- write_draft_orders
- Input fields
- lineItems, email, customerId, note, tags, appliedDiscount, shippingAddress, useCustomerDefaultAddress, reserveInventoryUntil, dryRun
- Output fields
- draftOrder
shopify.draft_orders.deleteDeletes a draft order. confirm:true required.pro · destructive
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- write_draft_orders
- Input fields
- id, confirm
- Output fields
- deletedId
shopify.draft_orders.listLists draft orders with status, total, customer, invoice URL and the order they became.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- read_draft_orders
- Input fields
- first, after, query
- Output fields
- items, hasNextPage, endCursor
shopify.draft_orders.send_invoiceEmails the draft order invoice to the customer (optional custom recipient, subject, message). Sends an email: confirm:true required.pro · write
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- write_draft_orders
- Input fields
- id, to, subject, customMessage, confirm
- Output fields
- invoiceUrl
shopify.draft_orders.updateUpdates an open draft order (line items replace the existing ones when given, email, note, tags, discount).pro · write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- none
- Shopify scopes
- write_draft_orders
- Input fields
- id, lineItems, email, customerId, note, tags, appliedDiscount, dryRun
- Output fields
- draftOrder
shopify.inventory.getInventory per variant per location for one product: available, on_hand, committed (and any other named quantity you ask for), plus the inventoryItemId and tracked flag the write tools need.free · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- read_inventory, read_products
- Input fields
- productId, names
- Output fields
- productId, title, rows
shopify.inventory.activateStarts stocking an inventory item at a location (creates the inventory level, optionally with an initial available quantity).pro · commerce_sensitive
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- none
- Shopify scopes
- write_inventory
- Input fields
- inventoryItemId, locationId, available, dryRun
- Output fields
- level
shopify.inventory.adjustAdjusts inventory by a delta (+/-) per variant + location (available or on_hand) with an audit reason. Prefer shopify.inventory.set when you know the target quantity; use adjust for receipts/shrinkage. Idempotency key attached.pro · commerce_sensitive
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- inverse_operation
- Shopify scopes
- write_inventory, read_products
- Input fields
- productId, name, reason, changes, dryRun
- Output fields
- changes, groupId
shopify.inventory.auditScans active products for inventory risks: sold out at every location, low stock (≤ threshold), untracked variants that show as always available, negative or oversold levels, and variants stocked nowhere. Read-only; returns concrete inventory.set inputs to fix each finding.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- read_inventory, read_products
- Input fields
- lowStockThreshold, maxProducts
- Output fields
- findings, productsScanned
shopify.inventory.item_updateUpdates an inventory item: tracked on/off, SKU, unit cost, requires shipping, country of origin, HS code.pro · write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- none
- Shopify scopes
- write_inventory
- Input fields
- inventoryItemId, tracked, sku, cost, requiresShipping, countryCodeOfOrigin, harmonizedSystemCode, dryRun
- Output fields
- item
shopify.inventory.setSets absolute inventory quantities (available or on_hand) per inventory item + location with compare-and-set: the current quantity is read first and sent as changeFromQuantity (required by Shopify since 2026-07) so a concurrent change is rejected instead of overwritten; it is also the before-image for rollback. Idempotency key attached to every call.pro · commerce_sensitive
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- inverse_operation
- Shopify scopes
- write_inventory, read_products
- Input fields
- productId, name, reason, quantities, ignoreCompareQuantity, dryRun
- Output fields
- changes, groupId
commerce.memory.deletePermanently deletes a memory (and its version history). Use when a memory is wrong, outdated, or the user asks you to forget it. Requires confirm:true.free · destructive
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- id, confirm
- Output fields
- deleted
Limitations
- Permanent; no rollback. Prefer updating (commerce.memory.save with id) over delete+recreate when the topic still applies but details changed.
commerce.memory.getReturns the full content of a single memory by id or name.free · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- id, name
- Output fields
- memory
Limitations
- Call after reading the memory index; feedback/project memories typically include **Why:** and **How to apply:** lines you should respect.
commerce.memory.listReturns the concise memory index (id, name, description, type, version, updatedAt) for every stored memory, optionally filtered by type.free · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- type
- Output fields
- memories, total
Limitations
- The memory index is also automatically prepended to discover-tools instructions; you typically do not need to call this if you can read it from there.
commerce.memory.restoreRestores a memory to a past version (recorded as a new version, a "reroll" rather than a rewind).free · write
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- id, version
- Output fields
- memory
commerce.memory.saveCreates a new memory or updates an existing one. You have a persistent, database-backed memory system scoped to this store. Build it up over time so future conversations can start with a complete picture of who the user is, how they collaborate with you, what to avoid or repeat, and the context behind the work.
If the user explicitly asks you to remember something, save it immediately as whichever type fits best. If they ask you to forget something, call commerce.memory.delete.
## Types of memory
- user, Role, goals, responsibilities, knowledge, preferences. Save when you learn details about who the user is. Avoid negative judgments.
- feedback, Guidance the user has given about how to approach work. Save from BOTH correction ("no, not that") AND confirmation ("yes exactly", accepting an unusual choice without pushback). Structure: rule, then **Why:** and **How to apply:** lines.
- project, Ongoing work, goals, bugs, decisions that aren't derivable from the store or its history. Convert relative dates to absolute dates before saving.
- reference, Pointers to where information lives in external systems (a Linear project, a dashboard).
- design, A block/section subtree in this store's own design vocabulary: what a pricing tier, hero, or testimonial set on this store is actually made of. Kept per store rather than shipped as a generic template.
## What NOT to save
- Theme code, product data, or credentials, read those live from the store; a memory is not a cache and can go stale in a way that misleads instead of helps.
- Anything derivable from the live store (current inventory, current theme files, current settings).
- Debugging solutions or fix recipes, the fix is in the code; there is no commit history to point to here, so restate the reasoning inline instead of citing one.
- Ephemeral task state: in-progress work, current conversation context.
## How to save
1. Check the memory index (either from discover-tools or by calling commerce.memory.list) first, prefer UPDATING (pass id) over creating duplicates.
2. Call commerce.memory.save with name, description (a specific one-line hook. This is how future-you decides relevance), type, and content.
3. Organize memories semantically by topic, not chronologically.
4. If a memory turns out to be wrong or outdated, update or delete it, don't accumulate stale entries.free · write
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- id, name, description, type, content
- Output fields
- memory
Limitations
- content is stored as plain text; any HTML markup is stripped.
- Never store theme code, product data, or credentials in memory.
commerce.memory.versionsLists the version history of a memory, newest first (up to the last 50 saves).free · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- id
- Output fields
- versions
Limitations
- Only the most recent 50 versions are retained.
shopify.page.getReads a page's body, isPublished, templateSuffix, and seo.free · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- read_content
- Input fields
- id
- Output fields
- page
shopify.page.createCreates an Online Store page.pro · write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- inverse_operation
- Shopify scopes
- write_content
- Input fields
- title, body, isPublished, seo, dryRun
- Output fields
- page, created
shopify.page.deleteDeletes an Online Store page. Destructive; requires confirm:true. Rollback recreates it from the before-image (title, body, SEO).pro · destructive
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- inverse_operation
- Shopify scopes
- write_content
- Input fields
- id, confirm, dryRun
- Output fields
- deletedId, deleted
shopify.page.redesignRedesigns a single page type. Thin wrapper over shopify.theme.redesign with pages:[target].pro · theme_write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- snapshot
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- target, manifestId, themeId, dryRun
- Output fields
- stages, gates, previewUrl, diffRef, publishRequiresApproval
Limitations
- Delegates entirely to shopify.theme.redesign.
shopify.page.updateUpdates a page's title/body/isPublished/seo.pro · write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- inverse_operation
- Shopify scopes
- write_content
- Input fields
- id, title, body, isPublished, seo, dryRun
- Output fields
- page, updated, diff
shopify.page.update_seoUpdates a page's SEO title/description.pro · write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- inverse_operation
- Shopify scopes
- write_content
- Input fields
- id, seo, dryRun
- Output fields
- page, updated, diff
shopify.price_lists.listLists price lists: currency, parent adjustment (percentage increase/decrease over base prices), catalog and count of fixed prices.free · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- read_products
- Input fields
- first, after
- Output fields
- items, hasNextPage, endCursor
shopify.price_lists.pricesLists the prices in a price list (fixed and adjusted) per variant.free · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- read_products
- Input fields
- id, first, after
- Output fields
- items, hasNextPage, endCursor
shopify.price_lists.createCreates a price list in a currency with a percentage adjustment over base prices (e.g. PERCENTAGE_INCREASE 10) and optionally links it to a catalog. Fixed per-variant prices are added with price_lists.set_prices.pro · commerce_sensitive
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- inverse_operation
- Shopify scopes
- write_products
- Input fields
- name, currency, adjustmentType, adjustmentValue, catalogId, compareAtMode, dryRun
- Output fields
- priceList
shopify.price_lists.deleteDeletes a price list and all its fixed prices. Destructive; confirm:true required.pro · destructive
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- write_products
- Input fields
- id, confirm
- Output fields
- deletedId
shopify.price_lists.remove_pricesRemoves fixed prices for variants from a price list (they fall back to the adjusted price). Records removed prices for rollback.pro · commerce_sensitive
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- inverse_operation
- Shopify scopes
- write_products
- Input fields
- priceListId, variantIds, dryRun
- Output fields
- deletedVariantIds
shopify.price_lists.set_pricesAdds or updates fixed per-variant prices (and optional compare-at) in a price list; the currency must match the list's. Records previous fixed prices for rollback.pro · commerce_sensitive
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- inverse_operation
- Shopify scopes
- write_products
- Input fields
- priceListId, prices, dryRun
- Output fields
- prices
shopify.webhooks.listLists this app's webhook subscriptions: topic, delivery uri (HTTPS / Pub/Sub / EventBridge), format, includeFields, filter, API version. Only subscriptions created by this app are visible (Shopify scopes webhooks per app).free · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- topics, first, after
- Output fields
- items, hasNextPage, endCursor
shopify.webhooks.createSubscribes this app to a topic (orders/create, products/update, inventory_levels/update, …) at an HTTPS uri, Google Pub/Sub topic (pubsub://project:topic) or EventBridge ARN, optionally restricting the payload with includeFields / metafieldNamespaces / filter. Rollback deletes the subscription. Note: the receiving endpoint must verify X-Shopify-Hmac-Sha256.pro · write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- inverse_operation
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- topic, uri, format, includeFields, metafieldNamespaces, filter, dryRun
- Output fields
- subscription
shopify.webhooks.deleteDeletes a webhook subscription. The topic/uri are recorded so rollback can re-create it. confirm:true required.pro · destructive
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- inverse_operation
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- id, confirm
- Output fields
- deletedId
shopify.webhooks.healthChecks the app's webhook wiring: every expected topic (lifecycle + mandatory GDPR) subscribed, uris point at this app over HTTPS, no duplicates, API version consistent, and when each topic was last received by this server. Findings are classified AUTO_FIX_SAFE / NEEDS_REVIEW / MANUAL with the exact tool call to fix them.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- No named fields declared.
- Output fields
- subscriptions, expected, receipts, findings, score
shopify.webhooks.testSends a signed sample delivery (X-Shopify-Hmac-Sha256 with the app secret, X-Shopify-Topic, X-Shopify-Shop-Domain, X-Shopify-Webhook-Id) for a topic to THIS app's receiver and reports the HTTP status and latency, proving HMAC verification + dedupe work end to end. Only the app's own URL is targeted; third-party uris are never called.pro · write
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- topic, payload
- Output fields
- url, status, ms, body, dedupedOnReplay
shopify.webhooks.updateUpdates a webhook subscription's uri, includeFields, metafieldNamespaces or filter. Before-image recorded for rollback.pro · write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- inverse_operation
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- id, uri, includeFields, metafieldNamespaces, filter, dryRun
- Output fields
- subscription
shopify.article.getReads a single article's body, isPublished, and seo.free · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- read_content
- Input fields
- id
- Output fields
- article
shopify.article.create_draftCreates an article as an unpublished draft. isPublished is always forced to false regardless of input.pro · write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- inverse_operation
- Shopify scopes
- write_content
- Input fields
- blogId, title, body, tags, dryRun
- Output fields
- article, created
Limitations
- Always creates a draft (isPublished:false); use article.update to publish.
shopify.article.deleteDeletes a blog article. Destructive; requires confirm:true. Rollback recreates it as a draft from the before-image.pro · destructive
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- inverse_operation
- Shopify scopes
- write_content
- Input fields
- id, confirm, dryRun
- Output fields
- deletedId, deleted
shopify.article.updateUpdates an article's title/body/isPublished/seo.pro · write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- inverse_operation
- Shopify scopes
- write_content
- Input fields
- id, title, body, isPublished, seo, dryRun
- Output fields
- article, updated, diff
shopify.article.update_seoUpdates an article's SEO title/description.pro · write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- inverse_operation
- Shopify scopes
- write_content
- Input fields
- id, seo, dryRun
- Output fields
- article, updated, diff
shopify.markets.getReads one market with regions, currency settings, web presences and catalogs.free · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- read_markets
- Input fields
- id
- Output fields
- market
shopify.markets.listLists Shopify Markets: regions (country codes), status, base currency / local currencies, web presences (domain or subfolder, default + alternate locales, root URLs) and linked catalogs.free · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- read_markets
- Input fields
- first, after, query
- Output fields
- items, hasNextPage, endCursor
shopify.markets.createCreates a region market (name, handle, ISO country codes, base currency) as DRAFT by default so pricing/domains can be configured before it goes live. Web presences and catalogs are attached afterwards (markets.update / catalogs.create).pro · write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- inverse_operation
- Shopify scopes
- write_markets
- Input fields
- name, handle, regions, baseCurrency, localCurrencies, status, dryRun
- Output fields
- market
shopify.markets.deleteDeletes a non-primary market. Destructive: web presences, catalogs links and market-specific translations/prices go with it; confirm:true required.pro · destructive
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- write_markets
- Input fields
- id, confirm
- Output fields
- deletedId
shopify.markets.updateUpdates a market: name, handle, status (ACTIVE/DRAFT), add regions.pro · write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- inverse_operation
- Shopify scopes
- write_markets
- Input fields
- id, name, handle, status, addRegions, dryRun
- Output fields
- market
shopify.orders.cancelCancels an order with a reason, optionally refunding and restocking and notifying the customer. Irreversible and money-moving: confirm:true required; the production_safe profile refuses it. Shopify runs it as a job; poll with shopify.store.job_status.pro · commerce_sensitive
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- write_orders
- Input fields
- id, reason, refund, restock, notifyCustomer, staffNote, confirm
- Output fields
- jobId
shopify.orders.closeCloses (archives) an order that is fully paid and fulfilled.pro · write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- none
- Shopify scopes
- write_orders
- Input fields
- id, dryRun
- Output fields
- order
shopify.orders.getReads one order: totals, line items, discount codes, shipping address (city/region only), fulfillment orders with remaining quantities (needed by fulfillment.create), fulfillments with tracking, returns.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- read_orders, read_merchant_managed_fulfillment_orders
- Input fields
- id
- Output fields
- order
shopify.orders.listLists orders (newest first) with financial/fulfillment status, total, customer, tags. Shopify search syntax in `query` (status:open, financial_status:paid, fulfillment_status:unfulfilled, created_at:>2026-01-01, tag:…). Without the read_all_orders scope Shopify returns only the last 60 days. Protected customer data.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- read_orders
- Input fields
- first, after, query, sortKey, reverse
- Output fields
- items, hasNextPage, endCursor
shopify.orders.updateUpdates an order's note, tags or contact email (no line-item edits). Before-image recorded; rollback restores note/tags.pro · write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- inverse_operation
- Shopify scopes
- write_orders
- Input fields
- id, note, tags, addTags, email, dryRun
- Output fields
- order
commerce.skills.deletePermanently deletes a custom skill. Requires confirm:true.free · destructive
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- name, confirm
- Output fields
- deleted
Limitations
- Permanent; no rollback.
commerce.skills.enableEnables or disables a skill (hides disabled skills from MCP prompts/list).free · write
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- name, enabled
- Output fields
- skill
commerce.skills.getReturns one skill's full body by name.free · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- name
- Output fields
- skill
commerce.skills.listLists this shop's skills (built-in file skills plus custom/overridden DB skills), including enabled state.free · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- No named fields declared.
- Output fields
- skills
Limitations
- Only reflects DB-stored skills; built-in file skills known to the server are merged in at the MCP layer, not here.
commerce.skills.writeCreates or updates a custom skill for this shop (becomes a custom copy if it overrides a built-in name).free · write
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- name, title, description, tier, body
- Output fields
- skill
Limitations
- Body must be plain text/Markdown without YAML frontmatter; frontmatter fields (title/description/tier) are supplied as separate inputs.
shopify.translations.getReads the translatable content of one resource (product, collection, page, article, menu, metafield, shop, theme…): keys, source values, digests (needed to register), and the existing translations for a locale (optionally market-scoped).free · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- read_translations
- Input fields
- resourceId, locale, marketId
- Output fields
- resource
shopify.translations.listLists translatable resources of one type (PRODUCT, COLLECTION, PAGE, ARTICLE, BLOG, MENU, ONLINE_STORE_THEME, METAFIELD, METAOBJECT, SHOP, …) with their content digests and, when a locale is given, what is already translated.free · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- read_translations
- Input fields
- resourceType, locale, first, after
- Output fields
- items, hasNextPage, endCursor
shopify.translations.auditTranslation coverage per enabled locale for products, collections, pages, articles and menus: which resources have no translation, partial coverage (missing keys) or outdated translations (source changed since). Returns exact register inputs (keys still to translate) so an AI client can fill the gaps.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- read_translations, read_locales
- Input fields
- locales, resourceTypes, maxPerType
- Output fields
- coverage, findings
shopify.translations.registerWrites translations for a resource in one locale. Reads the resource first to fetch current digests (so you pass only key/value), refuses unknown keys, records the previous translated values for rollback. Optional marketId scopes the translation to one market.pro · write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- inverse_operation
- Shopify scopes
- write_translations
- Input fields
- resourceId, locale, translations, marketId, dryRun
- Output fields
- translations, skipped
shopify.translations.removeRemoves translations for given keys and locales on a resource (the source content stays). Records removed values for rollback.pro · write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- inverse_operation
- Shopify scopes
- write_translations
- Input fields
- resourceId, locales, keys, marketIds, dryRun
- Output fields
- removed
shopify.catalogs.listLists catalogs (market, B2B company-location or app catalogs) with status, linked price list, publication and markets.free · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- read_products, read_markets
- Input fields
- first, after, query, type
- Output fields
- items, hasNextPage, endCursor
shopify.catalogs.createCreates a catalog for markets (marketIds) or B2B company locations (companyLocationIds), optionally attaching a price list and a publication. DRAFT by default.pro · write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- inverse_operation
- Shopify scopes
- write_products, write_markets
- Input fields
- title, status, marketIds, companyLocationIds, priceListId, publicationId, dryRun
- Output fields
- catalog
shopify.catalogs.deleteDeletes a catalog (optionally its price list and publication too). Destructive; confirm:true required.pro · destructive
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- write_products, write_markets
- Input fields
- id, deleteDependentResources, confirm
- Output fields
- deletedId
shopify.catalogs.updateUpdates a catalog: title, status, markets, price list, publication.pro · write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- none
- Shopify scopes
- write_products, write_markets
- Input fields
- id, title, status, marketIds, priceListId, publicationId, dryRun
- Output fields
- catalog
commerce.change.applyApplies a mutation through the full pipeline (identical to calling the tool directly) and returns the ledger operation id, changes, evidence and rollback info. Pass approvalToken when change.validate said one is required.free · write
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- tool, input, approvalToken
- Output fields
- tool, operationId, summary, rollback
commerce.change.diffReturns the recorded before/after diffs for a ledger operation (every change with its resource, kind, unified diff and fingerprints).free · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- operationId
- Output fields
- operationId, tool, status, changes
commerce.change.planPlans a mutation without applying it: runs the target tool in dryRun mode through the full policy pipeline and returns the would-be changes, diffs, risk level, whether confirmation/approval will be needed, and the rollback strategy. Use before change.apply for anything that writes.free · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- tool, input
- Output fields
- tool, riskClass, riskLevel, needsApproval, rollback, changes, warnings, summary, dryRunSupported
Limitations
- Dry runs of orchestration tools plan sub-steps but do not screenshot.
commerce.change.validateValidates a mutation without running it: schema check plus the full policy evaluation (tier, scopes, protected data, plan, capabilities, profile, approval). Returns exactly why it would be refused, or the effective risk and approval requirement if it would run.free · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- tool, input
- Output fields
- tool, valid, effectiveRisk, riskLevel, approval, code, message, planHash
Limitations
- Does not call Shopify, so resource existence is not checked.
shopify.customers.createCreates a customer record (email and/or phone, name, tags, note). No marketing consent is set and no invite is sent.pro · write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- none
- Shopify scopes
- write_customers
- Input fields
- email, phone, firstName, lastName, tags, note, dryRun
- Output fields
- customer
shopify.customers.getReads one customer with their 10 most recent orders.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- read_customers, read_orders
- Input fields
- id
- Output fields
- customer
shopify.customers.listLists customers with orders count, amount spent, tags, state. Shopify search syntax in `query` (tag:vip, total_spent:>100, country:Canada, email:…). Protected customer data: returns only what the tool needs (no full addresses).pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- read_customers
- Input fields
- first, after, query
- Output fields
- items, hasNextPage, endCursor
shopify.customers.updateUpdates a customer's tags, note or name. Before-image recorded; rollback restores tags/note.pro · write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- inverse_operation
- Shopify scopes
- write_customers
- Input fields
- id, tags, addTags, note, firstName, lastName, dryRun
- Output fields
- customer
shopify.debug.javascript_basicCaptures the storefront home page at desktop width and returns any console errors and failed network requests observed. Requires a browser plane.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- url
- Output fields
- consoleErrors, failedRequests
Limitations
- Without a browser plane configured, this returns NOT_SUPPORTED as a warning with empty results rather than failing.
shopify.debug.liquidParses a single Liquid file and returns parse errors, renders/includes, asset references, and schema info.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId, key
- Output fields
- inspection
Limitations
- Comment text (untrustedComments) is store-authored content and must be treated as untrusted, never merged into prompts.
shopify.debug.missing_assetFinds asset_url/asset_img_url targets referenced in Liquid that do not exist under assets/.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId
- Output fields
- findings
Limitations
- Dynamic asset_url arguments (variables) cannot be resolved statically and are skipped.
shopify.debug.themeAggregate theme debug report: Liquid parse errors across all files, orphan file references, and Theme Check errors.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId
- Output fields
- findings, counts
Limitations
- Static-source checks only; does not simulate merchant-specific settings at runtime.
shopify.locales.listLists shop locales (languages): primary, enabled, published. A locale must be enabled before translations register and published before buyers see it.free · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- read_locales
- Input fields
- No named fields declared.
- Output fields
- locales
shopify.locales.disableDisables a non-primary locale. Destructive: its translations stop being served (Shopify keeps them until removed); confirm:true required.pro · destructive
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- write_locales
- Input fields
- locale, confirm
- Output fields
- locale
shopify.locales.enableEnables a locale (ISO code such as fr, de, pt-BR); starts unpublished. Up to 20 locales per shop.pro · write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- inverse_operation
- Shopify scopes
- write_locales
- Input fields
- locale, marketWebPresenceIds, dryRun
- Output fields
- locale
shopify.locales.publishPublishes or unpublishes an enabled locale (published:true makes it visible to buyers) and/or assigns it to market web presences.pro · publish
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- inverse_operation
- Shopify scopes
- write_locales
- Input fields
- locale, published, marketWebPresenceIds, confirm, dryRun
- Output fields
- locale
shopify.merchandising.auditAudits merchandising signals in the catalog and collections without analytics: sold-out or draft products in collections, products without images, empty collections, duplicate titles, test-looking products, collections whose first products are unavailable, price outliers per collection. Every finding states its basis; ordering changes are recommended as experiments, never applied silently.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- read_products
- Input fields
- maxProducts
- Output fields
- findings, productsScanned, collectionsScanned
Limitations
- No sales/traffic data: with analytics (Phase 6) the same audit gains DATA_SUPPORTED conversion facts.
shopify.merchandising.optimize_collectionPlans a new order for a manually-sorted collection: in-stock, imaged, active products first (new and best-tagged higher), sold-out and imageless last. Always shows before/after order with reasons; applies only when apply:true, via collectionReorderProducts (rollback: re-run with the recorded previous order).pro · write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- inverse_operation
- Shopify scopes
- write_products
- Input fields
- id, apply, dryRun
- Output fields
- before, after, moves, applied
Limitations
- Heuristic order; A/B test against the previous order where possible.
shopify.merchandising.recommendRecommends products to feature (home page, collection top rows, campaigns) from catalog facts: active, in stock, has image, recency, best/featured tags, price band; excludes test-looking and clearance items. Returns a ranked list with the reasons for each rank and the exact featured-collection settings to apply. No sales data is used, so treat as EXPERIMENT_RECOMMENDED until analytics exist.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- read_products
- Input fields
- count, collectionId, excludeTags, maxProducts
- Output fields
- recommended, basis
Limitations
- Heuristic ranking; with analytics the ranking will weight views→cart conversion.
shopify.metaobject.createCreates a metaobject entry of a given type.pro · write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- inverse_operation
- Shopify scopes
- write_metaobjects
- Input fields
- type, handle, fields, dryRun
- Output fields
- metaobject, created
shopify.metaobject.deleteDeletes one metaobject entry. Destructive; requires confirm:true. The ledger keeps the entry's before-image (fields) so it can be recreated with shopify.metaobject.create.pro · destructive
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- none
- Shopify scopes
- write_metaobjects
- Input fields
- id, confirm, dryRun
- Output fields
- deletedId, deleted
Limitations
- References from products/metafields to this entry become dangling.
shopify.metaobject.updateUpdates a metaobject entry's field values.pro · write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- inverse_operation
- Shopify scopes
- write_metaobjects
- Input fields
- id, fields, dryRun
- Output fields
- metaobject, updated
shopify.metaobject.upsertCreates or updates a metaobject entry identified by type+handle.pro · write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- none
- Shopify scopes
- write_metaobjects
- Input fields
- type, handle, fields, dryRun
- Output fields
- metaobject, updated
shopify.metaobjects.definitionsLists metaobject definitions, paginated.free · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- read_metaobject_definitions
- Input fields
- first, after
- Output fields
- items, hasNextPage, endCursor
shopify.metaobjects.listLists metaobject entries of a given type, paginated.free · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- read_metaobjects
- Input fields
- type, first, after
- Output fields
- items, hasNextPage, endCursor
shopify.metaobjects.definition_createCreates a metaobject definition (type, name, fields, capabilities: publishable / translatable / renderable, storefront access) for structured content such as FAQs, testimonials, size guides or lookbook entries.pro · write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- none
- Shopify scopes
- write_metaobject_definitions
- Input fields
- type, name, description, fieldDefinitions, displayNameKey, storefrontAccess, publishable, translatable, renderable, dryRun
- Output fields
- definition, created
shopify.metaobjects.definition_updateUpdates a metaobject definition: rename, add/update/remove fields, change capabilities or storefront access. Removing a field deletes its values on every entry (destructive; requires confirm:true when fieldDeletes is non-empty).pro · write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- none
- Shopify scopes
- write_metaobject_definitions
- Input fields
- id, name, description, fieldCreates, fieldUpdates, fieldDeletes, displayNameKey, storefrontAccess, publishable, translatable, renderable, confirm, dryRun
- Output fields
- definition, updated
commerce.operation.approveMints an approval token for a specific tool + input plan hash, so a subsequent call can carry out a publish/critical-risk operation. Only the admin profile may call this.free · commerce_sensitive
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- tool, planHash, input
- Output fields
- token, expiresAt
commerce.operation.cancelCancels a running task-mode operation (job), if the job engine is configured.free · write
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- jobId
- Output fields
- job
Limitations
- 0.1 has no long-running task-mode tools, so this mostly applies to future/Pro tools.
commerce.operation.getFetches one operation record from the ledger by id.free · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- operationId
- Output fields
- operation
commerce.operation.listLists operations for this shop, optionally filtered by tool or status.free · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- tool, status, limit, cursor
- Output fields
- items, nextCursor
shopify.pixels.getReads this app's web pixel (an app can have exactly one, backed by a web_pixel_extension) and its settings JSON.free · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- read_pixels
- Input fields
- No named fields declared.
- Output fields
- pixel
shopify.pixels.configureCreates or updates this app's web pixel settings (the JSON must match the settings schema in the deployed web_pixel_extension's shopify.extension.toml; Shopify returns INVALID_SETTINGS otherwise). Requires the pixel extension to be deployed first (shopify.pixels.scaffold → shopify app deploy).pro · write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- inverse_operation
- Shopify scopes
- write_pixels, read_customer_events
- Input fields
- settings, dryRun
- Output fields
- pixel, created
shopify.pixels.deleteDeletes this app's web pixel (stops event collection). confirm:true required; settings are recorded so rollback can re-create it.pro · destructive
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- inverse_operation
- Shopify scopes
- write_pixels
- Input fields
- confirm
- Output fields
- deletedId
shopify.pixels.scaffoldGenerates a web_pixel_extension project (shopify.extension.toml with settings schema + src/index.js subscribing to the chosen standard events and forwarding them to an endpoint or analytics SDK, consent-aware via the customer privacy config). Returns files to write into the app repo plus the deploy plan (shopify app deploy, then shopify.pixels.configure).pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- name, settings, events, endpointUrl, privacy
- Output fields
- files, plan
shopify.redirects.listLists URL redirects, paginated.free · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- read_online_store_navigation
- Input fields
- first, after, query
- Output fields
- items, hasNextPage, endCursor
shopify.redirects.createCreates a URL redirect (path -> target).pro · write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- inverse_operation
- Shopify scopes
- write_online_store_navigation
- Input fields
- path, target, dryRun
- Output fields
- redirect, created
shopify.redirects.deleteDeletes a URL redirect. Destructive; requires confirm:true.pro · destructive
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- inverse_operation
- Shopify scopes
- write_online_store_navigation
- Input fields
- id, confirm, dryRun
- Output fields
- deleted
shopify.redirects.updateUpdates a URL redirect's path/target.pro · write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- inverse_operation
- Shopify scopes
- write_online_store_navigation
- Input fields
- id, path, target, dryRun
- Output fields
- redirect, updated
commerce.snapshot.createCreates a point-in-time snapshot of a theme's files (kind:'theme'), for use as a rollback target.free · write
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId, label
- Output fields
- snapshotId, fileCount
Limitations
- The docs/V0_1_IMPLEMENTATION_PLAN.md theme.pull path maps to this tool with kind 'theme'.
commerce.snapshot.diffDiffs two theme file sets, where each side is either a snapshot id or a live theme id.free · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- a, b
- Output fields
- a, b, summary
Limitations
- Binary files are summarized by size, not diffed byte-for-byte.
commerce.snapshot.getFetches metadata for one snapshot by id.free · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- snapshotId
- Output fields
- snapshot
commerce.snapshot.listLists snapshots for this shop, optionally filtered by kind.free · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- kind, limit
- Output fields
- snapshots
shopify.theme_check.inspect_issueRuns Theme Check and returns detail for offenses matching a given check name and/or file.free · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId, check, file
- Output fields
- offenses
shopify.theme_check.list_checksLists the Theme Check check names this environment's @shopify/theme-check-node can run, derived by running it once against the given theme (or a minimal built-in theme skeleton).free · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId
- Output fields
- checks
Limitations
- @shopify/theme-check-node does not export a static check registry in the version this package depends on, so this list is DERIVED empirically: it runs Theme Check once and reports the check names actually observed offending. A theme with zero offenses for a given check will not surface that check's name here. This is a lower bound on the available checks, not a complete registry.
shopify.theme_check.runRuns Theme Check, optionally scoped to a subset of file keys and/or filtered by minimum severity.free · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId, keys, severity
- Output fields
- counts, offenses
Limitations
- Runs against the theme's current files; does not simulate merchant-specific settings values.
shopify.theme_check.summaryRuns Theme Check across a theme's files and returns offense counts by severity, plus the full offense list.free · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId
- Output fields
- counts, offenses
Limitations
- Runs against the theme's current files; does not simulate merchant-specific settings values.
shopify.variant.createAdds variants to a product by option values (e.g. Size=M, Colour=Black), with price/compare-at/SKU/barcode. Option names must already exist on the product. Rollback deletes the created variants.pro · write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- inverse_operation
- Shopify scopes
- write_products
- Input fields
- productId, variants, replaceStandaloneVariant, dryRun
- Output fields
- variants, created
Limitations
- Does not create options; use product options first.
shopify.variant.deleteDeletes variants from a product. Destructive; requires confirm:true. Rollback recreates the variants from their before-image (option values, price, SKU, barcode); inventory levels are not restored.pro · destructive
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- inverse_operation
- Shopify scopes
- write_products
- Input fields
- productId, variantIds, confirm, dryRun
- Output fields
- deleted
Limitations
- A product must keep at least one variant.
shopify.variant.getReads one variant's price, sku, barcode, and inventory quantity.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- read_products
- Input fields
- id
- Output fields
- variant
shopify.variant.updateUpdates a variant's price, compareAtPrice, sku, and/or barcode. commerce_sensitive: escalates to the product.price.write policy key.pro · write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- inverse_operation
- Shopify scopes
- write_products
- Input fields
- productId, id, price, compareAtPrice, sku, barcode, dryRun
- Output fields
- variant, updated, diff
shopify.analytics.queryRuns a ShopifyQL query (FROM sales|products|orders|sessions … SHOW … GROUP BY … SINCE … UNTIL … ORDER BY … LIMIT …) and returns columns + rows. Needs the read_reports scope and Shopify's protected-data approval for customer columns; parse errors are returned verbatim.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- read_reports
- Input fields
- query
- Output fields
- columns, rows, parseErrors
shopify.analytics.sales_summarySales by day for the last N days with totals (sales, orders, AOV). Uses ShopifyQL when read_reports is granted; otherwise computes the same numbers from the orders list (read_orders, last 60 days max without read_all_orders) and says which source it used. Returned as DATA_SUPPORTED facts for merchandising/CRO decisions.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- read_orders
- Input fields
- days
- Output fields
- source, rows, totals
shopify.analytics.top_productsTop-selling products for the last N days (units + sales). ShopifyQL (FROM products) when read_reports is granted, else aggregated from order line items. DATA_SUPPORTED input for merchandising.recommend / optimize_collection.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- read_orders
- Input fields
- days, limit
- Output fields
- source, rows
shopify.blog.getReads a single blog.free · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- read_content
- Input fields
- id
- Output fields
- blog
shopify.blog.createCreates a blog (container for articles).pro · write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- none
- Shopify scopes
- write_content
- Input fields
- title, handle, commentPolicy, dryRun
- Output fields
- blog, created
Limitations
- Shopify exposes no blogDelete in the Admin GraphQL API we target, so rollback is not offered.
shopify.blog.updateUpdates a blog's title, handle or comment policy.pro · write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- ledger_before_image
- Shopify scopes
- write_content
- Input fields
- id, title, handle, commentPolicy, dryRun
- Output fields
- blog, updated
shopify.checkout.profilesLists checkout profiles (published + drafts) and whether the new thank-you / order-status pages are active. Requires access to the checkout editor; Shopify is moving this to checkoutAndAccountsConfigurations.free · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- read_checkout_branding_settings
- Input fields
- No named fields declared.
- Output fields
- profiles
shopify.checkout.auditPlan-aware checkout audit: checkout.liquid is gone for everyone (information/shipping/payment since 2024-08-13, thank-you/order-status since 2025-08-28), so it reports what still tries to customise checkout from the theme (checkout scripts, tracking, additional-scripts references), whether the plan allows checkout UI extensions on the information/shipping/payment steps (Plus) versus thank-you/order-status (all plans), the checkout profiles state and which Function-based customisations exist. Findings carry AUTO_FIX_SAFE / NEEDS_REVIEW / MANUAL.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- read_themes
- Input fields
- themeId
- Output fields
- plan, plus, findings, profiles, functions
shopify.checkout.extension.scaffoldGenerates a checkout UI extension (React + Preact-based @shopify/ui-extensions-react/checkout, api_version 2026-07): shopify.extension.toml with targeting + merchant settings, src/Checkout.jsx rendering a block with a merchant-editable text (banner / delivery note / trust message pattern), locales, package.json and the deploy plan. Targets on the checkout steps need Plus; thank-you / order-status work on all plans.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- name, target, settings, networkAccess
- Output fields
- files, plan, plusRequired
shopify.functions.listLists Shopify Functions deployed by this app (id, title, API type, API version, whether merchants configure it in admin). Function ids are needed by functions.attach.free · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- apiType
- Output fields
- functions
shopify.functions.attachActivates a deployed function on the store: discount → discountAutomaticAppCreate, cart_transform → cartTransformCreate, validation → validationCreate, delivery/payment customization → *CustomizationCreate. The optional configuration object is stored in the $app:default/function-configuration JSON metafield the scaffolds read. Money/checkout-affecting: FINANCIAL_IMPACT (discount) or CHECKOUT_CRITICAL; confirm:true required.pro · commerce_sensitive
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- none
- Shopify scopes
- write_discounts
- Input fields
- kind, functionId, title, configuration, startsAt, endsAt, discountClasses, blockOnFailure, confirm, dryRun
- Output fields
- id, kind
shopify.functions.scaffoldGenerates a Shopify Function extension (JavaScript, 2026-07 targets): discount (cart.lines.discounts.generate.run with product/order candidates read from the function-configuration metafield), cart_transform, validation, delivery_customization or payment_customization. Returns shopify.extension.toml, the input GraphQL query, run.js, package.json and the deploy + attach plan.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- kind, name, description
- Output fields
- files, plan
shopify.mobile.auditMobile UX audit of the theme: viewport meta and zoom, fixed widths that overflow 390px, sub-14px text, tap-target sizing, sticky/fixed stacking, sticky add-to-cart on PDP, menu drawer, responsive images without sizes; plus, when the browser plane is available, a live 390px capture with horizontal-overflow and console-error metrics. Findings carry basis DATA_SUPPORTED / HEURISTIC / EXPERIMENT_RECOMMENDED.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- read_themes
- Input fields
- themeId, url, live
- Output fields
- findings, score, live
Limitations
- Live metrics need the browser plane and (for password-protected stores) the stored storefront password.
shopify.mobile.fixApplies the safe mobile fixes on the working theme: adds the viewport meta if missing, removes zoom-disabling viewport flags, appends a mobile safety stylesheet (img/video/table max-width, overflow-wrap, 44px tap targets for theme buttons, 16px inputs) as assets/cp-mobile.css linked from layout/theme.liquid. Layout-changing fixes (fixed widths, sticky ATC) are reported, not applied.pro · theme_write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- ledger_before_image
- Shopify scopes
- write_themes
- Input fields
- themeId, dryRun
- Output fields
- applied, skipped, written
Limitations
- Only additive, low-risk CSS/meta changes; review the mobile.audit findings for the rest.
shopify.mobile.previewCaptures the page at 390×844 (and optionally 768) and returns screenshots with overflow/console metrics: the visual check after mobile.fix.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- url, tablet
- Output fields
- viewports
commerce.rollback.executeExecutes a previously planned rollback for an operation, restoring before-images.free · critical
- Approval
- confirm
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- operationId, confirm, force
- Output fields
- result
Limitations
- Rollback is a safety feature: production_safe profile is allowed to call this tool specifically.
commerce.rollback.planPlans how a given operation would be rolled back, without executing it.free · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- operationId
- Output fields
- plan
commerce.rollback.verifyVerifies whether a rollback for an operation was fully applied (all planned steps restored, no residual diff).free · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- operationId
- Output fields
- verified, plan
shopify.security.audit_basicHeuristic security hygiene audit: theme-file secrets, mixed content, unrecognized external scripts, eval/document.write, external form posts, unknown app embeds, plus (when connected) legacy script tag count and redirect loops.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId
- Output fields
- findings
Limitations
- Heuristic, not a real security scanner; a clean report is not a guarantee of safety.
- Admin-side checks (script tags, redirect loops) are skipped when no Admin client is configured.
shopify.security.external_resourcesLists external script/form hosts referenced by the theme that are not on the known-safe or known-app list.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId
- Output fields
- findings
Limitations
- Static analysis only; cannot see resources loaded dynamically by third-party scripts.
shopify.security.secrets_scanScans theme files for credential-shaped strings (API keys, tokens, passwords) that should not be committed to a theme.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId
- Output fields
- findings
Limitations
- Pattern-based; cannot catch secrets that don't match a known shape.
shopify.app.inspectLooks up a known app by handle and reports its theme-detected evidence, if any.free · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId, handle
- Output fields
- known, detected
Limitations
- Known-app registry currently has 26 entries; unrecognized apps return NOT_FOUND even if theme evidence exists.
shopify.app.integration_mapMaps every app-block/app-embed location in the theme architecture, without the preservation manifest.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- themeId
- Output fields
- integrationMap
commerce.capabilitiesReturns the store capabilities discovered for this credential, plus registered tool counts by availability.free · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- No named fields declared.
- Output fields
- capabilities, engineKind, toolCount
Limitations
- Registered tool count reflects this process's registry, not per-credential availability.
shopify.capabilitiesAll store capabilities discovered for this credential (admin, theme, browser, jobs).pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- No named fields declared.
- Output fields
- capabilities
commerce.config.getReturns this shop's stored configuration/settings, if a settings service is wired up.free · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- No named fields declared.
- Output fields
- settings
commerce.config.validateValidates a proposed configuration patch without applying it.free · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- patch
- Output fields
- valid, errors
shopify.flow.scaffoldGenerates a Shopify Flow trigger (flow_trigger extension; fire it later with shopify.flow.trigger) or action (flow_action extension + a runtime endpoint handler that verifies X-Shopify-Hmac-Sha256, answers within 10s, 2xx/4xx/5xx semantics, 429 Retry-After) as files plus the deploy plan.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- kind, name, description, fields, runtimeUrl
- Output fields
- files, plan
shopify.flow.triggerFires a deployed Flow trigger of this app (flowTriggerReceive) with a payload; every workflow the merchant built on that trigger runs. Payload keys must match the trigger's settings (custom keys verbatim, references as customer_id / order_id / product_id / company_id), under 50000 bytes.pro · write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- handle, payload, dryRun
- Output fields
- fired
shopify.returns.createOpens a return for fulfilled line items (reason per line, optional customer notification). Creates a reverse fulfillment order; refunds are a separate step in admin. confirm:true required.pro · commerce_sensitive
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- write_returns
- Input fields
- orderId, lineItems, notifyCustomer, confirm
- Output fields
- return
shopify.returns.listLists returns on an order and which fulfilled line items are still returnable (with the fulfillmentLineItemIds returns.create needs).pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- read_returns, read_orders
- Input fields
- orderId
- Output fields
- returns, returnable
shopify.script_tags.listLists legacy ScriptTags installed on the store (src, display scope). ScriptTags are deprecated and stop loading on 2027-03-01; each one is an app that has not migrated to app embeds / web pixels.free · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- read_script_tags
- Input fields
- first, after
- Output fields
- items, hasNextPage, endCursor
shopify.script_tags.deleteDeletes a ScriptTag. Only this app's own script tags can be deleted through the API (Shopify scopes them per app); other apps' tags must be removed by uninstalling the app. confirm:true required.pro · destructive
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- write_script_tags
- Input fields
- id, confirm
- Output fields
- deletedId
shopify.theme_extension.scaffoldGenerates a complete Theme App Extension project (shopify.extension.toml, app blocks and app embed blocks with schema, assets, snippets, locales) as files for the client to write into an app repo. This is the App Store-compliant way to add storefront UI without editing merchant theme code. Deployment itself happens with `shopify app deploy` (Shopify CLI, Partners auth); merchant activation instructions are included.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- extensionName, handle, blocks, embeds, locales, assets
- Output fields
- root, files, deployCommands, merchantSteps
Limitations
- Files are returned, not written to disk (the MCP server has no repo access); validate them with shopify.theme_extension.validate.
shopify.theme_extension.validateValidates Theme App Extension files (blocks/*.liquid with schema, assets, locales, shopify.extension.toml) against Shopify's structural rules and Theme Check: block schema present and parseable, targets valid, asset references resolvable, locale JSON valid, no more than 25 blocks / 25 embeds, asset size limits.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- files
- Output fields
- valid, errors, warnings, blocks, embeds, themeCheckErrors
Limitations
- Structural validation; the authoritative check is `shopify app deploy`.
shopify.admin.capabilitiesAdmin GraphQL capabilities only.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- No named fields declared.
- Output fields
- capabilities
shopify.admin_extension.scaffoldGenerates an Admin UI extension (block or action on product/order/customer/collection pages, api_version 2026-07) with shopify.extension.toml, src/BlockExtension.jsx using @shopify/ui-extensions-react/admin (reads the resource id from the extension api, calls the Admin GraphQL API with the extension's direct API access), locales and the deploy plan.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- name, target, title
- Output fields
- files, plan
commerce.api.capabilitiesLists the Shopify Admin API capabilities this server relies on (mutations, queries, platform features) with minimum API version, deprecation/replacement, required scopes, protected-customer-data and plan gating, and whether each is available for the connected store right now, with the exact reason when it is not. Use it before attempting Markets, checkout, Functions, orders or customer work.free · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- name, onlyUnavailable
- Output fields
- apiVersion, supportEndsOn, deprecations, capabilities
Limitations
- Entries marked verified:"docs" come from Shopify documentation and have not been exercised by our live sweeps yet.
shopify.articles.listLists articles, optionally scoped to a blog, paginated.free · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- read_content
- Input fields
- blogId, first, after, query
- Output fields
- items, hasNextPage, endCursor
shopify.blogs.listLists blogs, paginated.free · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- read_content
- Input fields
- first, after
- Output fields
- items, hasNextPage, endCursor
shopify.collections.listLists/searches collections, paginated.free · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- read_products
- Input fields
- first, after, query
- Output fields
- items, hasNextPage, endCursor
commerce.connectionsLists which AI clients (Claude Code, Cursor, Codex, etc.) have actually reached the MCP endpoint for this shop, and how much. One row per credential+client pair. Never returns secrets, tokens, or IPs.free · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- No named fields declared.
- Output fields
- connections
Limitations
- Never returns secrets, tokens, or IP addresses.
- Only reflects requests recorded through the MCP endpoint, not the admin UI.
shopify.dev.graphqlGuarded passthrough to Shopify's Admin GraphQL API for read-only queries: no mutations, root field allow-list, depth/cost caps, secret redaction. Only available to developer_full_access/admin profiles.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- query, variables
- Output fields
- data, extensions
Limitations
- Admins can additionally disable this entirely via policy key category.dev=false.
commerce.entitlementsReturns this shop's entitlement state (FREE/TRIAL/PRO_ACTIVE/...), plan, and entitlement list.free · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- No named fields declared.
- Output fields
- state, plan, entitlements, upgradeUrl
commerce.environmentReturns the configured Shopify Admin API version, demo-mode flag, and execution era.free · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- No named fields declared.
- Output fields
- apiVersion, demo, era
commerce.exportExports the ledger, the last stored store audit, a design manifest, the app preservation manifest, or a job report as JSON or Markdown.free · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- kind, id, format, since, limit
- Output fields
- document, format
Limitations
- kind:'audit' returns the most recently stored shopify.store.audit result, not a fresh audit.
shopify.fulfillment.createFulfils a fulfillment order (all remaining items, or specific fulfillment-order line items with quantities) with optional tracking number/company/URL and customer notification. Get fulfillmentOrderId and line item ids from shopify.orders.get. Cannot be undone (Shopify has no un-fulfil); confirm:true required.pro · commerce_sensitive
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- write_merchant_managed_fulfillment_orders, read_orders
- Input fields
- fulfillmentOrderId, lineItems, tracking, notifyCustomer, confirm
- Output fields
- fulfillment
commerce.healthRuns cheap reachability checks: theme engine, admin API, browser plane, ledger writability.free · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- No named fields declared.
- Output fields
- checks, healthy
Limitations
- Checks are best-effort and may themselves fail without failing the overall tool call.
shopify.locations.listLists the shop's locations (warehouses, retail stores, apps that stock inventory) with active/fulfils-online-orders flags. Needed for every inventory write.free · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- read_locations
- Input fields
- first, after, includeInactive
- Output fields
- items, hasNextPage, endCursor
commerce.operations.listAlias-style bulk listing of operations for this shop (same as commerce.operation.list).free · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- tool, status, limit, cursor
- Output fields
- items, nextCursor
shopify.pages.listLists/searches Online Store pages, paginated.free · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- read_content
- Input fields
- first, after, query
- Output fields
- items, hasNextPage, endCursor
commerce.privacy.explainExplains what data a given tool reads, writes, stores, and returns to the client.free · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- tool
- Output fields
- tool, dataCategories
shopify.products.listLists/searches products (Shopify search-syntax `query`), paginated.free · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- read_products
- Input fields
- first, after, query
- Output fields
- items, hasNextPage, endCursor
Limitations
- Search syntax follows Shopify's product search grammar.
shopify.publications.listLists sales channel publications and, when a product id is given, whether that product is published to each.free · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- read_publications
- Input fields
- productId
- Output fields
- publications
commerce.settings.storefront_passwordStores (or clears) the storefront password for this shop, encrypted at rest, so visual capture, audits and the design loop can screenshot a password-protected storefront without the password being passed on every call. The password is never returned.free · write
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- password, clear
- Output fields
- stored
Limitations
- Only the Online Store password page is handled; B2B/customer-account gates are not.
shopify.storefront.create_landing_pageBuilds a landing page end to end on the working theme: creates the Online Store page (with SEO), generates a dedicated page template (templates/page.<suffix>.json) from premium archetype sections in the requested order (hero, values, editorial grid, story, rail, testimonials, newsletter …), assigns the template to the page, and returns the preview path. Never touches the live theme; the page is created unpublished unless publishPage:true.pro · theme_write
- Approval
- none
- Dry-run
- Supported
- Recovery declaration
- snapshot
- Shopify scopes
- write_themes, write_content
- Input fields
- title, handle, body, seo, sections, manifestId, themeId, publishPage, dryRun
- Output fields
- page, templateKey, sections, previewPath, written
Limitations
- Section copy uses the archetype defaults; edit in the theme editor or with shopify.section.update.
shopify.tracking.auditTracking doctor: finds analytics/marketing tags in the theme (GA4, GTM, Meta, TikTok, Pinterest, Hotjar, Clarity, Klaviyo, Snap, dead Universal Analytics), duplicate initialisations, scripts outside the layout, missing customer-consent gating, the checkout blind spot of theme-level tracking, legacy ScriptTags (deprecated, off on 2027-03-01) and whether this app has a web pixel. Findings carry AUTO_FIX_SAFE / NEEDS_REVIEW / MANUAL.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- read_themes
- Input fields
- themeId
- Output fields
- detected, scriptTags, pixel, findings, themeFiles
shopify.variants.listLists a product's variants, paginated.pro · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- read_products
- Input fields
- productId, first, after
- Output fields
- items, hasNextPage, endCursor
commerce.versionReturns the product brand, product version, and supported MCP protocol versions.free · read
- Approval
- none
- Dry-run
- Not supported
- Recovery declaration
- none
- Shopify scopes
- No fixed scopes declared; runtime checks may apply.
- Input fields
- No named fields declared.
- Output fields
- brand, productVersion, mcpProtocolVersions
Limitations
- Static, no network calls.
NEXT STEP
Inspect your store with Free. Add Pro for everyday changes.
No card for Free. Pro from $17.42 a month billed yearly. Cancel any time.