I built an MCP server for Shopify and Stripe write operations — the gap nobody filled

Published: (March 17, 2026 at 09:44 PM EDT)
3 min read
Source: Dev.to

Source: Dev.to

What it does

npx mcp-ecom-hub

A fully typed MCP server that covers what the others don’t.

Shopify — write ops

  • shopify_update_product — update title, price, inventory
  • shopify_bulk_update_prices — update multiple variants at once
  • shopify_fulfill_order — mark orders as fulfilled
  • shopify_cancel_order — cancel + refund in one call
  • shopify_create_discount — generate discount codes

Shopify — read ops

  • shopify_get_orders — with filters (status, date, customer)
  • shopify_get_products — full product + variant details
  • shopify_get_analytics — revenue, AOV, conversion rate
  • shopify_get_customers — customer list + LTV

Stripe

  • stripe_get_revenue — MRR, ARR, breakdown by period
  • stripe_list_subscriptions — active subscriptions
  • stripe_cancel_subscription — with proration handling
  • stripe_create_coupon — discount codes
  • stripe_get_payouts — payout history
  • stripe_refund_payment — issue refunds

Multi‑store

  • hub_list_stores — all configured stores
  • hub_get_overview — cross‑store revenue summary

The gap it fills

Featuremcp‑ecom‑hubShopify MCP (official)pipeboard
Shopify write ops
Bulk price update
Stripe integrated
Subscription mgmt
Multi‑store
Self‑hosted
Open source

Setup

{
  "mcpServers": {
    "ecom-hub": {
      "command": "npx",
      "args": ["-y", "mcp-ecom-hub"],
      "env": {
        "MCP_ECOM_CONFIG": "/path/to/stores.json"
      }
    }
  }
}

Config file (stores.json)

{
  "stores": [
    {
      "id": "mystore",
      "name": "My Store",
      "shopify": {
        "domain": "mystore.myshopify.com",
        "accessToken": "shpat_xxx"
      },
      "stripe": {
        "secretKey": "sk_live_xxx"
      }
    }
  ],
  "defaultStore": "mystore"
}

Safety first

Destructive operations (cancel, refund) require explicit confirmation:

User: Cancel order #1234 and refund the customer
Agent: I'll cancel order #1234 ($89.00) and issue a full refund. Confirm? [yes/no]
User: yes
Agent: ✅ Order cancelled. Refund of $89.00 issued — arrives in 5‑10 days.

No accidental cancellations.

Multi‑store

Running an agency with multiple clients? One config, all stores:

User: Show me revenue across all stores this week
Agent:
  - Store A: €2,340 (12 orders, AOV €195)
  - Store B: €890 (8 orders, AOV €111)
  - Total: €3,230

Open source, MIT. Built for agencies managing multiple e‑commerce clients. PRs welcome — especially for WooCommerce support (next on the list).

0 views
Back to Blog

Related posts

Read more »