PluginBench
MCP Server
Active
MIT

shopify-operations-mcp MCP Server

io.github.jpka/shopify-operations-mcp

What is the shopify-operations-mcp MCP server?

Safe-write Shopify operations: plan-before-execute writes with out-of-band approval and audit.

How to install shopify-operations-mcp

Copy-paste configuration for popular MCP clients.

transport: stdio
Config generated by PluginBench — verify against the source before use.
Environment / auth
  • SHOPIFY_STORE_DOMAIN
    required

    The myshopify.com store domain, e.g. my-store.myshopify.com. Overrides shopify.storeDomain from the config file.

  • SHOPIFY_ADMIN_TOKEN
    required
    secret

    Shopify Admin API access token. Required and only ever read from the environment — never from the config file.

  • SHOPIFY_CONFIG

    Path to a config.json with shopify/plans/approvalServer/protectedTags settings. Defaults to ./config.json in the working directory.

  • SHOPIFY_PLAN_TTL_MS

    How long a plan token stays valid before it must be executed or expires, in milliseconds. Default 60000.

  • SHOPIFY_APPROVAL_SERVER_PORT

    Port the localhost human-approval HTTP server binds to (127.0.0.1 only). Default 4319.

  • SHOPIFY_PROTECTED_TAGS

    Comma-separated tags that plans may never modify; any plan touching an item carrying one is refused. Default do-not-touch.

  • SHOPIFY_CALLER_ID

    Identity recorded as the caller on every audit log row. Default unknown.

  • SHOPIFY_AUDIT_PATH

    File path for the tamper-evident JSONL audit log. Default shopify-operations-audit.jsonl in the working directory.

Claude Desktop
~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "shopify-operations-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "shopify-operations-mcp"
      ],
      "env": {
        "SHOPIFY_STORE_DOMAIN": "<YOUR_SHOPIFY_STORE_DOMAIN>",
        "SHOPIFY_ADMIN_TOKEN": "<YOUR_SHOPIFY_ADMIN_TOKEN>",
        "SHOPIFY_CONFIG": "<YOUR_SHOPIFY_CONFIG>",
        "SHOPIFY_PLAN_TTL_MS": "<YOUR_SHOPIFY_PLAN_TTL_MS>",
        "SHOPIFY_APPROVAL_SERVER_PORT": "<YOUR_SHOPIFY_APPROVAL_SERVER_PORT>",
        "SHOPIFY_PROTECTED_TAGS": "<YOUR_SHOPIFY_PROTECTED_TAGS>",
        "SHOPIFY_CALLER_ID": "<YOUR_SHOPIFY_CALLER_ID>",
        "SHOPIFY_AUDIT_PATH": "<YOUR_SHOPIFY_AUDIT_PATH>"
      }
    }
  }
}
Cursor
~/.cursor/mcp.json
{
  "mcpServers": {
    "shopify-operations-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "shopify-operations-mcp"
      ],
      "env": {
        "SHOPIFY_STORE_DOMAIN": "<YOUR_SHOPIFY_STORE_DOMAIN>",
        "SHOPIFY_ADMIN_TOKEN": "<YOUR_SHOPIFY_ADMIN_TOKEN>",
        "SHOPIFY_CONFIG": "<YOUR_SHOPIFY_CONFIG>",
        "SHOPIFY_PLAN_TTL_MS": "<YOUR_SHOPIFY_PLAN_TTL_MS>",
        "SHOPIFY_APPROVAL_SERVER_PORT": "<YOUR_SHOPIFY_APPROVAL_SERVER_PORT>",
        "SHOPIFY_PROTECTED_TAGS": "<YOUR_SHOPIFY_PROTECTED_TAGS>",
        "SHOPIFY_CALLER_ID": "<YOUR_SHOPIFY_CALLER_ID>",
        "SHOPIFY_AUDIT_PATH": "<YOUR_SHOPIFY_AUDIT_PATH>"
      }
    }
  }
}
Windsurf
~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "shopify-operations-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "shopify-operations-mcp"
      ],
      "env": {
        "SHOPIFY_STORE_DOMAIN": "<YOUR_SHOPIFY_STORE_DOMAIN>",
        "SHOPIFY_ADMIN_TOKEN": "<YOUR_SHOPIFY_ADMIN_TOKEN>",
        "SHOPIFY_CONFIG": "<YOUR_SHOPIFY_CONFIG>",
        "SHOPIFY_PLAN_TTL_MS": "<YOUR_SHOPIFY_PLAN_TTL_MS>",
        "SHOPIFY_APPROVAL_SERVER_PORT": "<YOUR_SHOPIFY_APPROVAL_SERVER_PORT>",
        "SHOPIFY_PROTECTED_TAGS": "<YOUR_SHOPIFY_PROTECTED_TAGS>",
        "SHOPIFY_CALLER_ID": "<YOUR_SHOPIFY_CALLER_ID>",
        "SHOPIFY_AUDIT_PATH": "<YOUR_SHOPIFY_AUDIT_PATH>"
      }
    }
  }
}
VS Code
.vscode/mcp.json
{
  "servers": {
    "shopify-operations-mcp": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "shopify-operations-mcp"
      ],
      "env": {
        "SHOPIFY_STORE_DOMAIN": "<YOUR_SHOPIFY_STORE_DOMAIN>",
        "SHOPIFY_ADMIN_TOKEN": "<YOUR_SHOPIFY_ADMIN_TOKEN>",
        "SHOPIFY_CONFIG": "<YOUR_SHOPIFY_CONFIG>",
        "SHOPIFY_PLAN_TTL_MS": "<YOUR_SHOPIFY_PLAN_TTL_MS>",
        "SHOPIFY_APPROVAL_SERVER_PORT": "<YOUR_SHOPIFY_APPROVAL_SERVER_PORT>",
        "SHOPIFY_PROTECTED_TAGS": "<YOUR_SHOPIFY_PROTECTED_TAGS>",
        "SHOPIFY_CALLER_ID": "<YOUR_SHOPIFY_CALLER_ID>",
        "SHOPIFY_AUDIT_PATH": "<YOUR_SHOPIFY_AUDIT_PATH>"
      }
    }
  }
}
Claude Code
claude mcp add shopify-operations-mcp --env SHOPIFY_STORE_DOMAIN=<YOUR_SHOPIFY_STORE_DOMAIN> --env SHOPIFY_ADMIN_TOKEN=<YOUR_SHOPIFY_ADMIN_TOKEN> --env SHOPIFY_CONFIG=<YOUR_SHOPIFY_CONFIG> --env SHOPIFY_PLAN_TTL_MS=<YOUR_SHOPIFY_PLAN_TTL_MS> --env SHOPIFY_APPROVAL_SERVER_PORT=<YOUR_SHOPIFY_APPROVAL_SERVER_PORT> --env SHOPIFY_PROTECTED_TAGS=<YOUR_SHOPIFY_PROTECTED_TAGS> --env SHOPIFY_CALLER_ID=<YOUR_SHOPIFY_CALLER_ID> --env SHOPIFY_AUDIT_PATH=<YOUR_SHOPIFY_AUDIT_PATH> -- npx -y shopify-operations-mcp

Related MCP servers

Safe-write Postgres MCP server with preview-before-execute writes and rollback safety.

0
TypeScript
MIT
View repository →