Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

io.github.alex-brecher/shopify-multi-store

NPM · SHOPIFY-MULTI-STORE-MCP-SERVER

Connect AI agents to multiple Shopify Admin stores for reports, comparisons, and guarded updates.

0 this week 91 Trust /100

Last scanned (21 hours ago)

Scores higher than 94% of npm servers

Category E-commerce

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security100
  • No malware found by supply-chain analysis.Pass
  • No known CVEs affecting this package version or its production dependencies.Pass
  • No install/post-install scripts declared.Pass
  • 3 of 53 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency100
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Cryptographically verified build provenance (signed, bound to alex-brecher/shopify-multi-store). View diagnostics → Pass
  • Clear OSI-approved license (MIT).Pass
  • Actively maintained (last published 12 days ago).Pass
  • Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability61
  • AI-judged instruction clarity (good).Pass
  • Context-footprint check failed: tool/resource definitions use about 5331 tokens (~183/item across 29 items; 29 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management100
  • No destabilizing schema changes in the last 30 days.Pass
Tool Coverage80
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 41% of tool parameters carry a description.Partial
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • We read all 29 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
  • An AI judge read all 29 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 4 Nov 26 0
    • Stability: 0.97 → pass security
  • 3 Nov 26 0
    • Stability: pass → 0.97 functional
  • 31 Oct 26 0
    • Security disclosure: unverified → pass ▲ functional
  • 29 Oct 26 0
    • Security disclosure: pass → unverified ▼ functional
  • 28 Oct 26 +11
    • Stability: fail → pass ▲ security
  • 24 Oct 26 +15
    • Malware scan: unverified → pass ▲ security
  • 23 Oct 26 −15
    • Malware scan: pass → unverified ▼ security
    • Package version: 1.6.0 → 2.0.3 functional
  • 21 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 14 to 18.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 4 Nov 2026 · Analysed npm/shopify-multi-store-mcp-server@2.0.3

Provenance Verified

A signed build attestation was found and verified, binding this exact artifact to the source repository it claims to come from.

Result Verified
Ecosystem npm
Reason Verified
Discovered via Registry attestation endpoint
Source repo alex-brecher/shopify-multi-store
Certificate issuer https://token.actions.githubusercontent.com
Certificate SAN https://github.com/alex-brecher/shopify-multi-store/.github/workflows/publish.yml@refs/tags/v2.0.3
Rekor log index 3411825223
Predicate type SLSA build provenance https://slsa.dev/provenance/v1
Subject digest sha512:313b0267e61be8cf54ebb11e066a215511a56d3c4c05ba5a1a30b1b29ca07e120a7fff4de2c75104140ee51deb90f1c129a251a370fb47d71f4f10421

Background: How many MCP packages publish verified provenance →

Dependencies 53 packages
Packages resolved 53
Stale 3
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 29 exposed · ~5,331 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
shopify_check_access ~83

For one or many stores, report the shop identity and granted Admin API access scopes, compare them against every tool's requirement (see src/scope-requirements.ts; tools with several resources or reports are listed as tool:resource), and report missing scopes and which tools would fail. Omit stores to check every configured store.

NameTypeReqDescription
storesarray––

No output schema declared.

No examples provided.

shopify_create_collection ~162

Create a manual collection (optional productIds) or a smart collection (ruleSet). Pass publicationIds to publish to explicitly selected channels. Defaults to dryRun:true, which previews the input without creating anything.

NameTypeReqDescription
descriptionHtmlstring––
dryRunboolean–True (the default) returns a before/after preview without changing anything in Shopify. Pass false, after the user authorizes this store and exact change, to apply it; the tool then reads the result…
imageobject––
productIdsarray––
publicationIdsarray––
ruleSetobject––
sortOrderstring––
storestringyes–
titlestringyes–

No output schema declared.

No examples provided.

shopify_create_discount ~202

Create a percentage discount code with an explicit start date and customer audience. Defaults to dryRun:true, which resolves segments and previews the discount without creating it.

NameTypeReqDescription
appliesOncePerCustomerboolean––
codestringyes–
collectionIdstring––
customerEligibilitystring––
customerSegmentsarray––
dryRunboolean–True (the default) returns a before/after preview without changing anything in Shopify. Pass false, after the user authorizes this store and exact change, to apply it; the tool then reads the result…
endsAtstring––
minimumPurchaseAmountnumber––
minimumQuantityinteger––
percentagenumberyes–
productIdsarray––
startsAtstringyes–
storestringyes–
titlestringyes–
usageLimitinteger––

No output schema declared.

No examples provided.

shopify_create_fulfillment ~169

Fulfill the remaining quantities of an order's OPEN and IN_PROGRESS fulfillment orders with optional tracking. notifyCustomer defaults to false. Requires read_merchant_managed_fulfillment_orders and write_merchant_managed_fulfillment_orders (Shopify reports any other missing scope, such as for fulfillment orders assigned to a fulfillment service). Defaults to dryRun:true.

NameTypeReqDescription
dryRunboolean–True (the default) returns a before/after preview without changing anything in Shopify. Pass false to apply the change; the tool then reads the result back.
notifyCustomerboolean––
orderIdstringyes–
storestringyes–
trackingCompanystring––
trackingNumberstring––
trackingUrlstring––

No output schema declared.

No examples provided.

shopify_create_product ~185

Create a product with options, variants and images, and optionally add it to a manual collection. Defaults to status DRAFT and to dryRun:true, which previews the input without creating anything.

NameTypeReqDescription
collectionIdstring––
descriptionHtmlstring––
dryRunboolean–True (the default) returns a before/after preview without changing anything in Shopify. Pass false, after the user authorizes this store and exact change, to apply it; the tool then reads the result…
imagesarray––
optionsarray––
pricestring––
productTypestring––
statusstring––
storestringyes–
tagsarray––
titlestringyes–
variantsarray––
vendorstring––

No output schema declared.

No examples provided.

shopify_describe_action ~158

Full signature of one Admin API mutation: arguments with types, the expanded input object fields (required markers, enum values, descriptions), the payload fields, a ready-to-edit GraphQL document with a default selection, a variables template with the required fields, a scope hint, and whether it is destructive (then shopify_run_action needs confirm set to the mutation name).

NameTypeReqDescription
apiVersionstring–Admin API version, such as 2026-07. Defaults to the store's version, or the server default.
depthinteger–How many levels of nested input objects to expand
mutationstringyesMutation name, such as orderCancel
storestring–Use this store's API version.

No output schema declared.

No examples provided.

shopify_find_actions ~181

Search every Shopify Admin API mutation (hundreds of write actions, most without a dedicated tool) by keyword and optional category. Returns each action's name, one-line description, category, whether it is destructive, which dedicated tools already cover it, and a scope hint. Next: shopify_describe_action for the full signature, then shopify_run_action.

NameTypeReqDescription
apiVersionstring–Admin API version, such as 2026-07. Defaults to the store's version, or the server default.
categorystring––
includeDeprecatedboolean––
limitinteger––
offsetinteger––
querystring–Keywords, such as "cancel order" or "gift card". Omit to list a category.
storestring–Use this store's API version.

No output schema declared.

No examples provided.

shopify_get ~331

Read one record by GID from one store. Follow each returned cursor independently. Resources: - product: Product details, variants (first/after) and media (mediaAfter). id: Product GID. - collection: Collection details, rules and a page of products. id: Collection GID. - order: Order, shipping, fulfillment, tracking and a page of line items. id: Order GID. - inventory: Inventory by product (id: Product GID) or inventory item (id: InventoryItem GID, pages through locations). - metafields: Metafields of any owner (id: owner GID); optional namespace and key. - theme_files: Theme file contents. id: OnlineStoreTheme GID; optional filenames, else pages through every file. - blog_articles: A blog's articles. id: Blog GID. - uploaded_image: Image processing status and CDN URL. id: MediaImage GID. - bulk_operation: A bulk operation's status and result URLs. id: BulkOperation GID. Partial exports stay marked incomplete.

NameTypeReqDescription
afterstring––
filenamesarray–theme_files: only these files.
firstinteger––
idstringyesThe record's GID, such as gid://shopify/Product/123.
keystring–metafields: only this key.
mediaAfterstring–product: cursor for the media page.
namespacestring–metafields: only this namespace.
resourcestringyes–
storestringyes–

No output schema declared.

No examples provided.

shopify_get_shop_info ~59

Get identity and account information from one named Shopify Admin store. Use this tool before a sensitive change to make sure that the selected store is correct.

NameTypeReqDescription
storestringyesConfigured store alias, such as main-store or wholesale-store

No output schema declared.

No examples provided.

shopify_graphql_mutation ~220

Run one GraphQL Admin API mutation against one named store. Set confirm to true only after the user authorizes the exact store and change. Destructive mutations (see shopify_describe_action; some are destructive only with certain arguments, such as a product status of ARCHIVED or notifyCustomer true) need confirm set to the mutation name instead, and denylisted mutations are refused, exactly as in shopify_run_action. The result reports each top-level mutation field as applied, rejected, or unknown, and the store as applied, rejected, partial, or unknown; after partial or unknown, retry only the rejected fields in a new document.

NameTypeReqDescription
confirm–yesTrue after the user authorizes the exact change and store. Destructive mutations need the mutation name instead (several: comma-separated, in document order).
mutationstringyesA GraphQL mutation document.
storestringyesConfigured store alias, such as main-store or wholesale-store
variablesobject–GraphQL variables as a JSON object

No output schema declared.

No examples provided.

shopify_graphql_query ~84

Run one read-only GraphQL Admin API query against one named store. Use cursor pagination and request only necessary fields.

NameTypeReqDescription
querystringyesA GraphQL query document. Mutations are rejected.
storestringyesConfigured store alias, such as main-store or wholesale-store
variablesobject–GraphQL variables as a JSON object

No output schema declared.

No examples provided.

shopify_graphql_query_many ~86

Run the same read-only GraphQL Admin API query across multiple named stores in parallel. Each store returns its own success or error result.

NameTypeReqDescription
querystringyesA read-only GraphQL query document. Mutations are rejected.
storesarrayyesOne to one hundred configured store aliases
variablesobject–GraphQL variables as a JSON object

No output schema declared.

No examples provided.

shopify_graphql_schema ~39

Explore the Admin GraphQL schema for this store's API version.

NameTypeReqDescription
storestringyes–
type_namestringyes–

No output schema declared.

No examples provided.

shopify_list_stores ~63

List every Shopify Admin store that remains connected to this plugin. On a hosted server in per-user mode, lists only the stores you have connected with your own Shopify account and names the others with a link to connect them. This tool does not expose access tokens.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

shopify_metafields ~117

Set (metafieldsSet) and/or delete (metafieldsDelete) up to 25 metafields each, for any owner GID. Read them with shopify_get resource metafields. Defaults to dryRun:true.

NameTypeReqDescription
deletearray––
dryRunboolean–True (the default) returns a before/after preview without changing anything in Shopify. Pass false to apply the change; the tool then reads the result back.
setarray––
storestringyes–

No output schema declared.

No examples provided.

shopify_redirects ~126

Create and/or delete up to 100 URL redirects each, with a per-redirect outcome (applied, rejected or unknown) and a store status. List them with shopify_search resource redirects. Requires write_online_store_navigation. Defaults to dryRun:true.

NameTypeReqDescription
createarray––
deletearray–Redirect IDs to delete.
dryRunboolean–True (the default) returns a before/after preview without changing anything in Shopify. Pass false to apply the change; the tool then reads the result back.
storestringyes–

No output schema declared.

No examples provided.

shopify_report ~690

Run one read-only report across selected stores; each store returns its own result and completeness indicators. Reports: - portfolio_snapshot: Shop identity and product, order, customer and location counts. stores optional (all stores). - store_locations: Active, inactive, legacy, fulfillment, inventory and address status of locations. stores optional (all stores). - compare_inventory: Inventory, price, status and catalog details for exact SKUs. Needs skus (1-50). - compare_prices: Price and compare-at price for exact SKUs, with mismatches and missing variants. Needs skus (1-50). - get_product_everywhere: One exact SKU or handle across stores. Needs identifier and matchBy (sku or handle). - compare_catalog: Titles, status, vendor, type and inventory for exact product handles. Needs handles (1-50). - compare_collections: Titles, sort order, product counts, SEO and images for exact collection handles. Needs handles (1-50). - catalog_gap_report: Products missing or with different status across stores. first: products scanned per store (default 250). - catalog_health: Missing vendor, type, SEO, media, alt text, and active products without inventory. first (default 100). - duplicate_sku_report: SKUs repeated inside a store and shared across stores. first: variants scanned per store (default 250). - low_stock_report: Active variants at or below threshold (default 10), separating low, zero and negative. - recent_product_changes: Products updated in the last days (default 7). first (default 100). - list_unfulfilled_orders: Recent open unfulfilled orders. days (default 7), first (default 25). - fulfillment_sla_report: Open unfulfilled orders by age bucket and SLA breaches. lookbackDays (default 90), slaDays (default 2), first (default 100). - order_summary: Order values, discounts, shipping, tax, cancellations and statuses; currencies separate. days (default 30), first (default 100). - customer_growth: New customers in the current and previous period of days (default 30). -…

NameTypeReqDescription
daysinteger–Lookback or period length in days.
firstinteger–Rows per store; each report has its own default and maximum.
handlesarray–compare_catalog, compare_collections: exact handles.
identifierstring–get_product_everywhere: the exact SKU or product handle.
lookbackDaysinteger–fulfillment_sla_report: how far back to look.
matchBystring–get_product_everywhere: whether identifier is a SKU or a handle.
querystring–analytics: a ShopifyQL query.
reportstringyesWhich report to run. See the tool description for each report's inputs.
skusarray–compare_inventory, compare_prices: exact SKUs.
slaDaysinteger–fulfillment_sla_report: age after which the SLA is breached.
storesarray–Store aliases. Optional only for portfolio_snapshot and store_locations (then every store).
thresholdinteger–low_stock_report: maximum aggregate quantity to include.

No output schema declared.

No examples provided.

shopify_run_action ~405

Run any Shopify Admin API mutation on one to one hundred stores. Give a mutation name (a default document is built) or a full single-mutation document, plus variables shared by every store and/or variablesByStore (IDs differ per store). dryRun (the default) validates the document and variables against each store's API version and looks up every record ID in the variables and the document; nothing is changed. The preview says whether it is complete: targets chosen by a search, saved search, filter, or "all" flag, more than 250 IDs, or IDs that do not resolve make it incomplete, and then applying also needs acknowledgeIncompletePreview: true. dryRun false applies it; every ID is looked up again first, and IDs that do not resolve refuse the apply unless acknowledgeIncompletePreview is true. Destructive actions (delete, cancel, refund and similar) need confirm set to the mutation name. Mutations are never retried automatically. On a hosted server in per-user mode, Shopify limits this to what your own staff account may do.

NameTypeReqDescription
acknowledgeIncompletePreviewboolean–Required, with dryRun false, when the targets cannot all be listed in advance (search, saved search, filter, or "all" style arguments, or more than 250 IDs) or when a named ID does not resolve at app…
confirmstring–For destructive actions: the mutation name (several destructive mutations: comma-separated, in document order).
documentstring–A full GraphQL document with exactly one mutation operation.
dryRunboolean––
mutationstring–Mutation name. Required unless document is given; if both are given, the document must call it.
storesarrayyes–
variablesobject–Variables used for every store.
variablesByStoreobject–Per-store variables by alias, merged over variables.

No output schema declared.

No examples provided.

shopify_search ~276

List or search one kind of record with cursor pagination, on one store (store) or several in parallel (stores; each store returns its own result and cursor). Resources: - products: Products (query: Shopify product search syntax). - collections: Manual and smart collections. - orders: Orders, newest first (query: Shopify order search syntax). - customers: Customers. Protected customer data permissions apply. - publications: Sales channel publication IDs (no query; 100 per page). - redirects: URL redirects. - pages: Online Store pages. - files: Files (images, videos, generic files). - metaobjects: Metaobjects of one type (type required). - markets: Markets (no query). - themes: Themes with their role; MAIN is live (no query). - delivery_profiles: Delivery profiles with zones, methods and flat rates (no query).

NameTypeReqDescription
afterstring–Cursor from pageInfo.endCursor (single store only).
firstinteger––
querystring–Shopify search syntax for the resource, where it takes one.
resourcestringyes–
storestring–One store alias. Give store or stores.
storesarray–Several store aliases, searched in parallel.
typestring–metaobjects: the metaobject type.

No output schema declared.

No examples provided.

shopify_search_docs_chunks ~49

Search Shopify documentation and return source links. No store credentials are sent.

NameTypeReqDescription
api_namestring––
max_num_resultsinteger––
promptstringyes–

No output schema declared.

No examples provided.

shopify_set_inventory ~161

Set available inventory at one location using compare-and-set protection: compareQuantity must equal the current available quantity. Read inventory first (shopify_get resource inventory). dryRun:true (the default) checks and previews without changing anything.

NameTypeReqDescription
compareQuantityintegeryes–
dryRunboolean–True (the default) returns a before/after preview without changing anything in Shopify. Pass false, after the user authorizes this store and exact change, to apply it; the tool then reads the result…
idempotencyKeystring––
inventoryItemIdstringyes–
locationIdstringyes–
quantityintegeryes–
reasonstring––
storestringyes–

No output schema declared.

No examples provided.

shopify_tags ~108

Add and/or remove tags on a product, order, customer or draft order by GID (tagsAdd/tagsRemove). Defaults to dryRun:true.

NameTypeReqDescription
addarray––
dryRunboolean–True (the default) returns a before/after preview without changing anything in Shopify. Pass false to apply the change; the tool then reads the result back.
ownerIdstringyes–
removearray––
storestringyes–

No output schema declared.

No examples provided.

shopify_update_collection ~184

Update collection fields, rules or image, and add products to a manual collection (addProductIds). dryRun:true (the default) returns the current collection and the change without applying it; dryRun:false applies it and returns before and after.

NameTypeReqDescription
addProductIdsarray–Products to add to a manual collection. Smart collection membership follows its rules.
descriptionHtmlstring––
dryRunboolean–True (the default) returns a before/after preview without changing anything in Shopify. Pass false, after the user authorizes this store and exact change, to apply it; the tool then reads the result…
idstringyes–
imageobject––
ruleSetobject––
sortOrderstring––
storestringyes–
titlestring––

No output schema declared.

No examples provided.

shopify_update_customer ~216

Update customer note, email and tags (customerUpdate). dryRun:true (the default) returns the current customer and the change without applying it; dryRun:false applies it and returns before and after. Tags: addTags and removeTags change only the named tags; replaceTags replaces all tags. Email marketing consent is out of scope. Requires write_customers.

NameTypeReqDescription
addTagsarray–Tags to add (tagsAdd). Other tags are kept.
dryRunboolean–True (the default) returns a before/after preview without changing anything in Shopify. Pass false to apply the change; the tool then reads the result back.
emailstring––
idstringyes–
notestring––
removeTagsarray–Tags to remove (tagsRemove). Other tags are kept.
replaceTagsarray–Replaces all tags: every current tag not in this list is removed. Prefer addTags or removeTags.
storestringyes–

No output schema declared.

No examples provided.

shopify_update_order ~216

Update order note, email, shipping address and tags (orderUpdate). dryRun:true (the default) returns the current order and the change without applying it; dryRun:false applies it and returns before and after. Tags: addTags and removeTags change only the named tags; replaceTags replaces all tags. Requires write_orders.

NameTypeReqDescription
addTagsarray–Tags to add (tagsAdd). Other tags are kept.
dryRunboolean–True (the default) returns a before/after preview without changing anything in Shopify. Pass false to apply the change; the tool then reads the result back.
emailstring––
idstringyes–
note–––
removeTagsarray–Tags to remove (tagsRemove). Other tags are kept.
replaceTagsarray–Replaces all tags: every current tag not in this list is removed. Prefer addTags or removeTags.
shippingAddressobject––
storestringyes–

No output schema declared.

No examples provided.

shopify_update_prices ~298

Set price, compareAtPrice and/or unit cost for up to 250 SKUs on one store (store) or the same list on several stores in parallel (stores). Resolves each SKU to the variants whose SKU matches exactly (Shopify search is a prefix match) and groups writes by product. A SKU shared by several variants is skipped unless allowDuplicates:true. Duplicate SKU rows with conflicting values are rejected before any write; identical duplicates are collapsed. After a write, verifies each variant with a separate read-back query and reports per-item outcome (applied, applied_unverified, rejected, not_found, ambiguous, unknown, skipped, mismatch) and a store status (ok, unverified, partial, failed, unknown). Large results are trimmed, never dropped: status, counts and every item that did not apply are always returned. Defaults to dryRun:true.

NameTypeReqDescription
allowDuplicatesboolean–When a SKU exactly matches more than one variant it is reported in ambiguousSkus and skipped. Pass true to update every exact match instead.
dryRunboolean–True (the default) returns a before/after preview without changing anything in Shopify. Pass false to apply the change; the tool then reads the result back.
skusarrayyes–
storestring–One store alias. Give store or stores.
storesarray–Several store aliases; each store gets its own outcome.

No output schema declared.

No examples provided.

shopify_update_product ~275

Update product fields, variants, media and tags. dryRun:true (the default) returns the current product and the change without applying it; dryRun:false applies it and returns before and after. Tags: addTags and removeTags change only the named tags; replaceTags replaces all tags. A status of ARCHIVED or DRAFT takes the product off every sales channel.

NameTypeReqDescription
addTagsarray–Tags to add (tagsAdd). Other tags are kept.
descriptionHtmlstring––
dryRunboolean–True (the default) returns a before/after preview without changing anything in Shopify. Pass false, after the user authorizes this store and exact change, to apply it; the tool then reads the result…
idstringyes–
imagesarray––
productTypestring––
removeMediaIdsarray––
removeTagsarray–Tags to remove (tagsRemove). Other tags are kept.
replaceTagsarray–Replaces all tags: every current tag not in this list is removed. Prefer addTags or removeTags.
statusstring––
storestringyes–
titlestring––
variantsarray––
vendorstring––

No output schema declared.

No examples provided.

shopify_upload_image ~145

Upload a local image file or an HTTPS image to Shopify Files, wait for processing, and return its CDN URL (check it later with shopify_get resource uploaded_image). Defaults to dryRun:true, which previews the upload without sending anything.

NameTypeReqDescription
altstring––
dryRunboolean–True (the default) returns a before/after preview without changing anything in Shopify. Pass false, after the user authorizes this store and exact change, to apply it; the tool then reads the result…
filenamestring––
imageFilestring––
sourceUrlstring––
storestringyes–

No output schema declared.

No examples provided.

shopify_validate_graphql_codeblocks ~43

Validate Admin GraphQL operations against this store's API version without executing them.

NameTypeReqDescription
codeblocksarrayyes–
storestringyes–

No output schema declared.

No examples provided.

Install

How do I install the io.github.alex-brecher/shopify-multi-store MCP server?

io.github.alex-brecher/shopify-multi-store runs locally as an npm package, launched with npx -y shopify-multi-store-mcp-server. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

npm · shopify-multi-store-mcp-server

# add to Claude Code
claude mcp add alex-brecher-shopify-multi-store -- npx -y shopify-multi-store-mcp-server
Common questions

What is the io.github.alex-brecher/shopify-multi-store MCP server?

io.github.alex-brecher/shopify-multi-store is an MCP server listed in the public MCP registry as io.github.alex-brecher/shopify-multi-store. Connect AI agents to multiple Shopify Admin stores for reports, comparisons, and guarded updates. This page covers its npm package (shopify-multi-store-mcp-server).

Is the io.github.alex-brecher/shopify-multi-store MCP server safe to use?

io.github.alex-brecher/shopify-multi-store scores 91 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 4 November 2026. It declares no install or post-install scripts. Its build provenance is signed and verified. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the io.github.alex-brecher/shopify-multi-store MCP server expose?

io.github.alex-brecher/shopify-multi-store exposes 29 tools: shopify_graphql_schema, shopify_validate_graphql_codeblocks, shopify_create_product, shopify_update_product, shopify_create_collection, and 24 more. Their descriptions and schemas cost roughly 5,331 tokens of context every time the server is loaded.

Is the io.github.alex-brecher/shopify-multi-store MCP server still maintained?

io.github.alex-brecher/shopify-multi-store is still listed as active in the MCP registry. We last reached this channel on 4 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the io.github.alex-brecher/shopify-multi-store MCP server under?

io.github.alex-brecher/shopify-multi-store declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.