{"_id":"@aiwerk/mcp-server-shopify","_rev":"3-f76f7bac4323ce4611cf279c38d9ba8c","name":"@aiwerk/mcp-server-shopify","dist-tags":{"latest":"0.1.2"},"versions":{"0.1.0":{"name":"@aiwerk/mcp-server-shopify","version":"0.1.0","keywords":["mcp","mcp-server","shopify","ecommerce","admin-api","graphql","products","orders","customers","inventory"],"author":{"name":"AIWerk","email":"kontakt@aiwerk.ch"},"license":"MIT","_id":"@aiwerk/mcp-server-shopify@0.1.0","maintainers":[{"name":"agbergsmann","email":"kontakt@aiwerk.ch"}],"homepage":"https://aiwerkmcp.com","bugs":{"url":"https://github.com/AIWerk/mcp-server-shopify/issues"},"bin":{"mcp-server-shopify":"dist/src/server.js"},"dist":{"shasum":"a3c7ffbe62a544e00db0a7223c135266f164e4f1","tarball":"https://registry.npmjs.org/@aiwerk/mcp-server-shopify/-/mcp-server-shopify-0.1.0.tgz","fileCount":14,"integrity":"sha512-eD2vdYexlQFJIGWQS0TxasGiVAveiKuEJXpoArv2RG/JodM0WFWhRpjZdOhcFThUJGJrzyT7NeIcC9v5pynhjg==","signatures":[{"sig":"MEQCICJFzSPPM/MquIV6uPauN1RwwjomkgajWSEzInw0u0SEAiBZn5zz7lSgYxu406a2MVbRA/Ln5FyG66ZRveI7KmAocQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":80159},"main":"dist/src/server.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"8a0a72d853b63f6a3d9437a580b5dabf8994a23d","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc -p tsconfig.build.json","start":"node dist/src/server.js","typecheck":"tsc -p tsconfig.json --noEmit","prepublishOnly":"npm run typecheck && npm run build && npm test"},"_npmUser":{"name":"agbergsmann","email":"kontakt@aiwerk.ch"},"repository":{"url":"git+https://github.com/AIWerk/mcp-server-shopify.git","type":"git"},"_npmVersion":"9.2.0","description":"Shopify Admin GraphQL API MCP server by AIWerk - manage products, orders, customers, inventory, and more from your AI agent","directories":{},"_nodeVersion":"18.19.1","dependencies":{"zod":"^3.25.76","@modelcontextprotocol/sdk":"^1.19.1"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.4","typescript":"^5.6.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server-shopify_0.1.0_1777307006372_0.11808320290999874","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@aiwerk/mcp-server-shopify","version":"0.1.1","keywords":["mcp","mcp-server","shopify","ecommerce","admin-api","graphql","products","orders","customers","inventory"],"author":{"name":"AIWerk","email":"kontakt@aiwerk.ch"},"license":"MIT","_id":"@aiwerk/mcp-server-shopify@0.1.1","maintainers":[{"name":"agbergsmann","email":"kontakt@aiwerk.ch"}],"homepage":"https://aiwerkmcp.com","bugs":{"url":"https://github.com/AIWerk/mcp-server-shopify/issues"},"bin":{"mcp-server-shopify":"dist/src/server.js"},"dist":{"shasum":"291add1f967a72fa0f87892e45df551d637276d1","tarball":"https://registry.npmjs.org/@aiwerk/mcp-server-shopify/-/mcp-server-shopify-0.1.1.tgz","fileCount":14,"integrity":"sha512-NbhuY0et7HWDPdShuip8A831EPW5XtVjMbTfkULuHQ882tjX7v9M6Mtkd5SRwUvcdsFeENgnXjnKoaZxA9dAyw==","signatures":[{"sig":"MEQCHxjf04/+8a+AltswaHZykQevmpbWIJyutFnCyV5xmIsCIQCospOWBOUq0bEE7/P4kz6TUnakAYGZoUx2KPHVOJiC7Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":80159},"main":"dist/src/server.js","type":"module","engines":{"node":">=18.0.0"},"gitHead":"5c7a0d6fbaa51311b98dd666009f3bb4c4808c5b","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc -p tsconfig.build.json","start":"node dist/src/server.js","typecheck":"tsc -p tsconfig.json --noEmit","prepublishOnly":"npm run typecheck && npm run build && npm test"},"_npmUser":{"name":"agbergsmann","email":"kontakt@aiwerk.ch"},"repository":{"url":"git+https://github.com/AIWerk/mcp-server-shopify.git","type":"git"},"_npmVersion":"9.2.0","description":"Shopify Admin GraphQL API MCP server by AIWerk - manage products, orders, customers, inventory, and more from your AI agent","directories":{},"_nodeVersion":"18.19.1","dependencies":{"zod":"^3.25.76","@modelcontextprotocol/sdk":"^1.19.1"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.2.4","typescript":"^5.6.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server-shopify_0.1.1_1777822762124_0.9276207531575582","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@aiwerk/mcp-server-shopify","mcpName":"io.github.AIWerk/mcp-server-shopify","version":"0.1.2","description":"Shopify Admin GraphQL API MCP server by AIWerk - manage products, orders, customers, inventory, and more from your AI agent","type":"module","main":"dist/src/server.js","bin":{"mcp-server-shopify":"dist/src/server.js"},"scripts":{"build":"tsc -p tsconfig.build.json","start":"node dist/src/server.js","dev":"tsc --watch","typecheck":"tsc -p tsconfig.json --noEmit","test":"vitest run","prepublishOnly":"bash $HOME/agent-memory/commons/scripts/prepublish-safety.sh && npm run typecheck && npm run build && npm test"},"engines":{"node":">=18.0.0"},"keywords":["mcp","mcp-server","shopify","ecommerce","admin-api","graphql","products","orders","customers","inventory"],"author":{"name":"AIWerk","email":"kontakt@aiwerk.ch"},"license":"MIT","homepage":"https://aiwerkmcp.com","repository":{"type":"git","url":"git+https://github.com/AIWerk/mcp-server-shopify.git"},"bugs":{"url":"https://github.com/AIWerk/mcp-server-shopify/issues"},"dependencies":{"@modelcontextprotocol/sdk":"^1.19.1","zod":"^3.25.76"},"devDependencies":{"@types/node":"^22.0.0","typescript":"^5.6.0","vitest":"^3.2.4"},"_id":"@aiwerk/mcp-server-shopify@0.1.2","gitHead":"48b55c860de0522c5f178837061daed7d68ff32d","_nodeVersion":"22.22.0","_npmVersion":"10.9.4","dist":{"integrity":"sha512-LTUjZ4TRf9h+H4h0TMqIw08cvzS8Qe4Sr08G7naTiwGrWxh5tiXQhUyYHdXIw9JZa0T6R4TgVZewiEkzf7D/jA==","shasum":"f1e74ab7679ece0b0b04617590b71b126ccae0d7","tarball":"https://registry.npmjs.org/@aiwerk/mcp-server-shopify/-/mcp-server-shopify-0.1.2.tgz","fileCount":14,"unpackedSize":80275,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIE6Y+BNOXVlq+9W56eXr2UwEtseTrBMQTYWciBz39MRvAiBAjcHHvvA8mySQcyBPoNrndGjBzbpEn23rKQdmpODElg=="}]},"_npmUser":{"name":"agbergsmann","email":"kontakt@aiwerk.ch"},"directories":{},"maintainers":[{"name":"agbergsmann","email":"kontakt@aiwerk.ch"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mcp-server-shopify_0.1.2_1782260470938_0.24304896592252945"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-27T16:23:26.239Z","modified":"2026-06-24T00:21:11.224Z","0.1.0":"2026-04-27T16:23:26.503Z","0.1.1":"2026-05-03T15:39:22.266Z","0.1.2":"2026-06-24T00:21:11.086Z"},"bugs":{"url":"https://github.com/AIWerk/mcp-server-shopify/issues"},"author":{"name":"AIWerk","email":"kontakt@aiwerk.ch"},"license":"MIT","homepage":"https://aiwerkmcp.com","keywords":["mcp","mcp-server","shopify","ecommerce","admin-api","graphql","products","orders","customers","inventory"],"repository":{"type":"git","url":"git+https://github.com/AIWerk/mcp-server-shopify.git"},"description":"Shopify Admin GraphQL API MCP server by AIWerk - manage products, orders, customers, inventory, and more from your AI agent","maintainers":[{"name":"agbergsmann","email":"kontakt@aiwerk.ch"}],"readme":"# @aiwerk/mcp-server-shopify\n\nShopify Admin GraphQL API MCP server. Lets an AI agent read and write to a Shopify store: products, orders, customers, inventory, draft orders, collections, locations, metafields.\n\nBuilt and signed by [AIWerk](https://aiwerkmcp.com). MIT licensed.\n\n## Status\n\n`v0.1.0` — under active development. Tool surface and credential flow may change before `v1.0`.\n\n## Install\n\n```bash\nnpx -y @aiwerk/mcp-server-shopify\n```\n\n## Authentication\n\nThis server uses the **modern OAuth client_credentials grant** (Shopify Dev Dashboard apps). Legacy `shpat_*` custom-app tokens are not supported.\n\nThree environment variables:\n\n| Env var | What |\n|---|---|\n| `SHOPIFY_STORE_DOMAIN` | Your store domain, e.g. `your-store.myshopify.com` |\n| `SHOPIFY_CLIENT_ID` | Client ID from your Shopify Dev Dashboard app |\n| `SHOPIFY_CLIENT_SECRET` | Client Secret from your Shopify Dev Dashboard app |\n\nThe server automatically exchanges the client credentials for an Admin API access token and refreshes the token before its 24h expiry. No manual token rotation.\n\n### Creating the Dev Dashboard app\n\n1. Sign in to [Shopify Partner Dashboard](https://partners.shopify.com), then open the [Dev Dashboard](https://dev.shopify.com/dashboard/).\n2. **Apps → Create app → Start from Dev Dashboard**. Name it (e.g. `my-mcp-app`).\n3. **Versions** tab → set the scopes you need (see below) → **Release**.\n4. **Home** tab → **Install app** → choose your store → **Install**.\n5. **Settings** tab → copy **Client ID** and **Client Secret**.\n\n### Scopes\n\nThe 12 scopes below cover the full v0.1 tool surface. Trim to a smaller set if you want a more restricted token (e.g. read-only orders).\n\n```\nread_products, write_products,\nread_customers, write_customers,\nread_orders, write_orders,\nread_draft_orders, write_draft_orders,\nread_inventory, write_inventory,\nread_locations,\nread_publications\n```\n\n## Tools\n\n`v0.1` ships 28 tools across the Shopify Admin GraphQL API. See `src/tools/` for the implementation; tool names are shown in `tools/list` after the server starts.\n\n### Protected customer data\n\nShopify gates access to customer-bearing objects (`Customer`, `DraftOrder`, plus `customer { ... }` selections inside `Order`) behind a separate approval. Apps not approved for protected customer data will see this error from the affected tools:\n\n```\nGraphQL error: This app is not approved to access the Customer object.\nSee https://shopify.dev/docs/apps/launch/protected-customer-data\n```\n\nThe server returns this error verbatim to the AI client. Apply for protected-data approval at the link above if you need:\n\n- `shopify_list_customers`, `_get_customer`, `_search_customers`, `_create_customer`, `_update_customer`, `_add_customer_note`\n- `shopify_create_draft_order`, `_complete_draft_order`\n- `shopify_get_order`, `_list_orders`, `_search_orders`, `_mark_order_paid`, `_cancel_order`, `_add_order_note` (these may also be affected when the response includes customer fields)\n\nProduct, inventory, location, collection, metafield, and shop-info tools are unaffected.\n\n## API version\n\nThe server pins the Shopify GraphQL Admin API to `2026-04`. Bumped quarterly per the Shopify release schedule.\n\n## Local development\n\n```bash\nnpm install\nnpm run build\n\nexport SHOPIFY_STORE_DOMAIN=your-store.myshopify.com\nexport SHOPIFY_CLIENT_ID=YOUR_CLIENT_ID\nexport SHOPIFY_CLIENT_SECRET=YOUR_CLIENT_SECRET\nnode dist/src/server.js\n```\n\nPull the secrets from your preferred secret store however you like. For example, with `pass(1)`:\n\n```bash\nSHOPIFY_CLIENT_ID=$(pass show aiwerk/shopify-dev-client-id)\nSHOPIFY_CLIENT_SECRET=$(pass show aiwerk/shopify-dev-client-secret)\nexport SHOPIFY_CLIENT_ID SHOPIFY_CLIENT_SECRET\n```\n\n## Tests\n\n```bash\nnpm test\n```\n\nUnit tests use mocked GraphQL responses and run with no external dependencies. There is no live integration harness in this repo — for now we smoke-test against an internal AIWerk dev store before publish.\n\n## Security\n\nSee [SECURITY.md](SECURITY.md) for credential handling, scope minimization, and disclosure policy.\n\n## License\n\nMIT, see [LICENSE](LICENSE).\n","readmeFilename":"README.md"}