Next AI Draw.io
draw.io diagrams your AI agent draws on a live browser canvas that you can also edit by hand
Description from the maker (original English)
MCP server for Shopify Admin API with a ComfyUI bridge for AI product image generation.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
SHOPIFY_STORE, SHOPIFY_ACCESS_TOKEN, SHOPIFY_API_VERSION, COMFYUI_URL, COMFYUI_PUBLIC_URL, COMFYUI_DEFAULT_CKPTValues marked secret are keys to your account. Never share them or paste them into a chat.
You need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json
{
"mcpServers": {
"shopify": {
"command": "npx",
"args": [
"-y",
"@miller-joe/shopify-mcp"
],
"env": {
"SHOPIFY_STORE": "your-value",
"SHOPIFY_ACCESS_TOKEN": "your-value",
"SHOPIFY_API_VERSION": "your-value",
"COMFYUI_URL": "your-value",
"COMFYUI_PUBLIC_URL": "your-value",
"COMFYUI_DEFAULT_CKPT": "your-value"
}
}
}
}Run this in your terminal
claude mcp add shopify --env SHOPIFY_STORE=your-value --env SHOPIFY_ACCESS_TOKEN=your-value --env SHOPIFY_API_VERSION=your-value --env COMFYUI_URL=your-value --env COMFYUI_PUBLIC_URL=your-value --env COMFYUI_DEFAULT_CKPT=your-value -- npx -y @miller-joe/shopify-mcpFill in the empty values before running it.
Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"shopify": {
"command": "npx",
"args": [
"-y",
"@miller-joe/shopify-mcp"
],
"env": {
"SHOPIFY_STORE": "your-value",
"SHOPIFY_ACCESS_TOKEN": "your-value",
"SHOPIFY_API_VERSION": "your-value",
"COMFYUI_URL": "your-value",
"COMFYUI_PUBLIC_URL": "your-value",
"COMFYUI_DEFAULT_CKPT": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"shopify": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@miller-joe/shopify-mcp"
],
"env": {
"SHOPIFY_STORE": "your-value",
"SHOPIFY_ACCESS_TOKEN": "your-value",
"SHOPIFY_API_VERSION": "your-value",
"COMFYUI_URL": "your-value",
"COMFYUI_PUBLIC_URL": "your-value",
"COMFYUI_DEFAULT_CKPT": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.
Your choice stays on this device in a cookie; no account needed.
SHOPIFY_API_VERSION envCOMFYUI_URL envCOMFYUI_PUBLIC_URL envCOMFYUI_DEFAULT_CKPT envThese settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Based on how this server connects and on each app’s own docs, checked Nov 10, 2026.
Run on your computer in
ClaudeGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatRaycast
Runs on your computer; the tool list appears in your AI app after you install it.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 11, 2026
The registry name was verified with the GitHub account miller-joe, which owns the repo
Code last changed 5 months ago
We have not read this repo from GitHub yet
This one runs on your computer; there is no internet endpoint
Runs on your computer and uses local settings instead
Runs on your computer; we can only read tool lists from internet endpoints
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 2 of 2 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
You need to fill in: SHOPIFY_STORE, SHOPIFY_ACCESS_TOKEN
It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).
The GitHub repo last changed 5 months ago, and the latest version (0.1.2) reached the registry 7 months ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Node.js on your computer.
In the same category: Next AI Draw.io, Pascal 3D Editor, screenpipe
Servers in the same category from other makers, sorted by stars.
Reading a card:↓ Downloads per weeki★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
draw.io diagrams your AI agent draws on a live browser canvas that you can also edit by hand
Create, inspect, validate, and save editable 3D building scenes with Pascal's MCP server.
Search your local screen recordings, audio transcripts, and computer activity from screenpipe.
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
MCP server for Shopify. Full Admin GraphQL API tooling plus an AI-driven product creation bridge via ComfyUI image generation.
Every other Shopify MCP is a plain Admin API wrapper. This one pairs with @miller-joe/comfyui-mcp so you can say things like:
"Create a product called *'Nebula Dreamer'*. Generate a cosmic abstract image for it, description matching the vibe, tagged astrology, status draft."
Claude then runs ComfyUI, gets an image back, creates the Shopify product, and attaches the image, all in one call.
# npx, no install
npx @miller-joe/shopify-mcp \ --shopify-store your-store.myshopify.com \ --shopify-access-token shpat_xxx
docker run -p 9110:9110 \ -e SHOPIFY_STORE=your-store.myshopify.com \ -e SHOPIFY_ACCESS_TOKEN=shpat_xxx \ -e COMFYUI_URL=http://comfyui:8188 \ ghcr.io/miller-joe/shopify-mcp:latest
claude mcp add --transport http shopify http://localhost:9110/mcp
Or point your MCP gateway at the Streamable HTTP endpoint.
| CLI flag | Env var | Default | Notes |
|---|---|---|---|
--shopify-store | SHOPIFY_STORE | *(required)* | my-store or my-store.myshopify.com |
--shopify-access-token | SHOPIFY_ACCESS_TOKEN | *(required)* | Admin API token (shpat_…) |
--shopify-api-version | SHOPIFY_API_VERSION | 2026-04 | GraphQL Admin API version |
--host | MCP_HOST | 0.0.0.0 | Bind host (HTTP mode only) |
--port | MCP_PORT | 9110 | Bind port (HTTP mode only) |
--stdio | MCP_TRANSPORT=stdio | (unset) | Speak MCP over stdio instead of HTTP. Use when launched as a subprocess by a stdio-first MCP client (Claude Desktop, mcp-inspector). |
--comfyui-url | COMFYUI_URL | *(optional)* | Enables bridge tools when set |
--comfyui-public-url | COMFYUI_PUBLIC_URL | same as --comfyui-url | External URL used for image references passed to Shopify |
| (no flag) | COMFYUI_DEFAULT_CKPT | sd_xl_base_1.0.safetensors | Default checkpoint for bridge tools |
The server speaks streamable HTTP by default (great for Claude Code, MetaMCP, raw fetch). Pass --stdio (or set MCP_TRANSPORT=stdio) to switch into stdio mode, which is what stdio-first clients like Claude Desktop and the MCP Inspector expect:
// claude_desktop_config.json
{ "mcpServers": { "shopify": { "command": "npx", "args": ["-y", "@miller-joe/shopify-mcp", "--stdio"], "env": { "SHOPIFY_STORE": "my-store.myshopify.com", "SHOPIFY_ACCESS_TOKEN": "shpat_…" } } } }
Easy path, existing dev store: Shopify Admin → Apps → *Develop apps* → Create custom app → enable relevant Admin API scopes (write_products, read_orders, write_inventory, read_customers) → install → copy the admin API access token (starts with shpat_).
For new apps (post-Jan 2026): legacy custom-app tokens are deprecated for freshly-created apps. Use the Dev Dashboard token-exchange flow once to obtain a working token, then supply it here. Multi-tenant OAuth is on the roadmap.
| Tool | Description |
|---|---|
list_products | Paginated product search with Shopify query syntax |
get_product | Fetch one product with variants, images, media |
create_product | Create a product (default DRAFT); optionally attach images |
update_product | Update title, description, tags, status, etc. |
upload_product_image | Attach a public image URL to an existing product |
list_orders | List orders, newest first, with query filters |
get_order | Fetch one order with line items |
set_inventory_quantity | Set absolute on-hand inventory at a location |
list_locations | List store locations (for inventory ops) |
list_customers | List customers with query filters |
| Tool | Description |
|---|---|
set_metafield | Upsert a metafield on any HasMetafields resource (product, variant, collection, customer, order, shop, etc.) |
list_metafields | List metafields for a resource, optionally filtered by namespace |
delete_metafield | Delete a metafield by (ownerId, namespace, key) |
| Tool | Description |
|---|---|
list_draft_orders | List draft orders with Shopify query filters |
get_draft_order | Fetch one draft order with its line items |
create_draft_order | Create a draft order. Line items can be variant refs or custom (title + price). |
update_draft_order | Update customer, line items, tags, note, email |
complete_draft_order | Convert a draft order to a real order. paymentPending skips capture. |
delete_draft_order | Delete a non-completed draft order |
| Tool | Description |
|---|---|
list_webhooks | List webhook subscriptions; filter by topic(s) |
get_webhook | Fetch a single subscription |
create_webhook | Subscribe an HTTPS callback URL to a topic (e.g. ORDERS_CREATE) |
update_webhook | Change callback URL, format, or field/metafield filters |
delete_webhook | Delete a subscription |
| Tool | Description |
|---|---|
list_metaobject_definitions | Discover metaobject types (schemas) on the store, including field definitions |
list_metaobjects | List metaobjects of a given type |
get_metaobject | Fetch one metaobject with all its fields |
create_metaobject | Create a metaobject (type must already exist as a definition). Supports ACTIVE/DRAFT status. |
update_metaobject | Upsert fields, change handle, toggle publishable status |
delete_metaobject | Delete a metaobject |
| Tool | Description |
|---|---|
list_fulfillment_orders | List an order's fulfillment orders (one per shipping location), with remaining quantities per line item |
get_fulfillment_order | Fetch a single fulfillment order |
get_fulfillment | Fetch a single fulfillment (shipment record) with tracking info |
create_fulfillment | Mark fulfillment orders (or specific quantities) as fulfilled. Optionally attach tracking and notify the customer. |
update_fulfillment_tracking | Update carrier/number/url on an existing fulfillment |
cancel_fulfillment | Cancel a fulfillment by ID |
Partial fulfillment is supported. Pass specific fulfillmentOrderLineItems with quantity per line, or omit the array to fulfill everything on the fulfillment order.
| Tool | Description |
|---|---|
list_variants | List all variants of a product with selected options, price, SKU, inventory |
create_variants | Bulk-create variants (up to 100) with option values, price, SKU, compareAtPrice, initial inventory |
update_variants | Bulk-update variant price, compareAtPrice, SKU, barcode, taxable, inventoryPolicy, option values |
delete_variants | Bulk-delete variants from a product |
reorder_variants | Set 1-indexed positions for variants |
add_product_options | Add options (Size / Color / etc.) with their possible values. Up to 3 options per product. |
For an entirely new product, creating the first real variant requires strategy="REMOVE_STANDALONE_VARIANT" to replace the auto-generated "Default Title" variant.
| Tool | Description |
|---|---|
list_collections | List collections with query filters |
get_collection | Fetch one collection with its products |
create_collection | Create a manual collection, optionally seeded with products |
update_collection | Update title, description, or handle |
delete_collection | Delete a collection |
add_products_to_collection | Add products to a manual collection (async job on Shopify's side) |
remove_products_from_collection | Remove products from a manual collection |
add_tags | Add tags to any taggable resource (Product, Order, Customer, DraftOrder, Collection) |
remove_tags | Remove tags from a taggable resource |
| Tool | Description |
|---|---|
run_shopifyql_query | Run a ShopifyQL query and render the result as an ASCII table. Pass raw=true for the raw JSON payload. |
Examples:
FROM sales SHOW total_sales BY day SINCE -30d TIMESERIESFROM products SHOW product_title, quantity_sold BY product_id SINCE -7d ORDER BY quantity_sold DESC LIMIT 10COMFYUI_URL is configured)| Tool | Description |
|---|---|
generate_and_create_product | Generate an image and create a product with it, in one call. Title and description derive from the prompt if not given. |
generate_product_image | Generate an image and attach it to an existing product. |
refine_product_image | Run img2img on a product's featured image (or an explicit URL) and attach the refined result. Tune denoise (0–1) for how far the result drifts from the source. |
bulk_regenerate_images | For all products matching a query, run the generator with a templated prompt and attach fresh images. |
Template placeholders for bulk_regenerate_images: {title}, {handle}.
Claude, use generate_and_create_product:
prompt: "minimalist sunset mountain silhouette, warm gradient, vector style" title: "Mountain Sunset Poster" status: DRAFT tags: ["posters", "nature", "minimalist"]
ComfyUI generates the image, Shopify creates the product with the image attached, and you get the product ID and image URL back. One prompt, one call, real listing.
┌────────────────┐ ┌──────────────────┐ ┌─────────────────┐
│ MCP client │────▶│ shopify-mcp │────▶│ Shopify Admin │ │ (Claude etc.) │◀────│ (this server) │◀────│ GraphQL API │ └────────────────┘ └────────┬─────────┘ └─────────────────┘ │ │ (bridge tools only) ▼ ┌──────────────────┐ │ ComfyUI │ │ (txt2img) │ └──────────────────┘
Bridge tools call ComfyUI directly over HTTP, get an image URL, and pass it to Shopify's productCreateMedia mutation. Shopify fetches and hosts the image on its CDN.
git clone https://github.com/miller-joe/shopify-mcp
cd shopify-mcp npm install npm run dev # hot reload via tsx watch npm run build npm run typecheck npm test
Requires Node 20+.
Shipped:
generate_and_create_product, generate_product_image, bulk_regenerate_imagesset_metafield, list_metafields, delete_metafieldadd_tags / remove_tagsadd_product_optionsrun_shopifyql_query with ASCII-table renderingrefine_product_image (ComfyUI img2img on product images)Planned: