shopify-operations-mcp
Safe-write Shopify operations: plan-before-execute writes with out-of-band approval and audit.
Connector by jpka · GitHub account verified by the MCP Registry
Install
Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.
npx agentmarket install connector/jpka-shopify-operations-mcp
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this server can do and what it asks for, from its tool list and install config. Checked Oct 25, 2026.
- Tools
- 2 read · 6 write · 1 delete
- Secrets
- 1 (API keys, tokens or passwords)
- Install scripts
- Not scanned yet
- Runs as
- Node.js package
Tools by what they do 9
Read from the source code; the running server may list different tools.
Read 2 · Look things up without changing anything.
list_orderssearch_products
Write 6 · Create, change, send or run things.
cancel_ordercreate_discountexecute_planrefund_orderupdate_inventoryupdate_prices
Delete 1 · Delete, drop, revoke or wipe things.
rollback_plan
Secrets and settings it asks for
Secrets: values you paste in that let it act as you.
SHOPIFY_ADMIN_TOKEN
Other settings (environment variables or headers).
SHOPIFY_APPROVAL_SERVER_PORTSHOPIFY_AUDIT_PATHSHOPIFY_CALLER_IDSHOPIFY_CONFIGSHOPIFY_PLAN_TTL_MSSHOPIFY_PROTECTED_TAGSSHOPIFY_STORE_DOMAIN
Tools (9)
Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].
cancel_orderPreview and execute order cancellation (two-phase). Cancellation is permanent — an order cannot be uncancelled — so every cancel plan ALWAYS requires human approval through the localhost approval UI, regardless of item count, and cancel_order can never be rolled back. The preview is a zero-write call that returns the refund implication and flags the human sees before granting or denying; execute applies the cancellation with the supplied restock and notifyCustomer flags.
create_discountPreview and execute the creation of a discount code (two-phase). Previews the planned discount (pure reads, zero mutation) and returns a plan_token; nothing changes until execute_plan runs with that token. A plan touching at least plans.approvalRequiredAboveItems items requires human approval through the localhost approval UI before it executes. Discount creation is reversible via rollback_plan, which deactivates the created code.
execute_planExecute a previously previewed write (update_prices, update_inventory, create_discount, refund_order, or cancel_order). Pass back the exact plan_token and the exact manifest from the preview response. The token is single-use, expires, and refuses any manifest that does not fingerprint-match the preview; write plans also refuse when the current data drifted since the preview (STATE_CHANGED). Plans awaiting approval wait until a human approves or rejects them through the out-of-band localhost approval UI (never through this MCP tool set): an approval lets the plan execute, a rejection returns a …
list_ordersList cancellable and refundable orders (id, name, financial and fulfillment status, total price, line items), optionally filtered by financial status, fulfillment status, and created-date range. Read-only: a single GraphQL query over the orders connection with no mutation.
refund_orderPreview and execute an order refund (two-phase). Previews via Shopify's refundCalculate (zero writes) to obtain exact suggested refund amounts, then — only after a human approves through the localhost approval UI — executes via refundCreate. ALWAYS requires human approval regardless of item count, because a refund is irreversible and unwinds a payment. Refunds cannot be rolled back (refund_order is not among rollback_plan's supported kinds).
rollback_planUndo a previously executed reversible plan (update_prices, update_inventory, or create_discount) in one call: restores each item to its previewed before-state by re-applying inverse mutations. Requires no approval — restoring prior state is the safe direction. Refused with ROLLBACK_UNSUPPORTED for non-reversible kinds (cancel_order, refund_order) or unknown tokens, and ROLLBACK_WINDOW_EXPIRED once the rollback window (plans.rollbackTtlMs, default 24 hours) has passed.
search_productsSearch products by title, sku, vendor, or tag and return variant pricing and per-location inventory references. Read-only: composes a Shopify search string, walks the cursor-paginated products connection to completion, and flags any product carrying a configured protected tag so a later write plan touching it is refused at preview time.
update_inventoryPreview and execute bulk inventory quantity changes at one location (two-phase). Sets the available quantity of each inventory item at the location to the absolute value supplied (not a delta). Previews planned changes (pure reads, zero mutation) and returns a plan_token; nothing changes until execute_plan runs with that token. A plan touching at least plans.approvalRequiredAboveItems items requires human approval through the localhost approval UI before it executes. Inventory items belonging to a product carrying a protected tag are refused at preview time.
update_pricesPreview and execute bulk variant price changes (two-phase). Previews the exact price change for every matched variant (pure reads, zero mutation) and returns a plan_token; nothing changes until execute_plan runs with that token. A plan that changes any single variant's price by more than plans.maxPriceChangePct (default 30%), or that touches at least plans.approvalRequiredAboveItems variants, requires human approval through the localhost approval UI before it executes. Variants belonging to a product carrying a protected tag are refused at preview time.
Signals
- Stars
- 0
- Forks
- 0
- Open issues
- 2
- Last commit
- Sep 4, 2026 (1 month ago)
- Last release
- Aug 17, 2026 (2 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- Registry name
io.github.jpka/shopify-operations-mcp- Version
- 0.1.2
- Auth
- API key
- Packages
- npm shopify-operations-mcp
- License
- MIT
- Repository
- github.com/jpka/shopify-operations-mcp
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
More from jpka
Cite this page
shopify-operations-mcp. Agent Mart. https://agentmart.dev/connectors/jpka-shopify-operations-mcp (last updated 2026-10-24)