Every existing Shopify MCP server has the same problem: read-only.
You can ask your AI agent to show you orders, products, revenue. But you can't tell it to update a price, bulk-edit inventory, cancel an order, or issue a refund. The moment you need to do something, you're back in the dashboard.
I got tired of it. So I built mcp-ecom-hub.
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
| Feature | mcp-ecom-hub | Shopify 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
Links
- GitHub: davideconte/mcp-ecom-hub
- npm: mcp-ecom-hub
Open source, MIT. Built for agencies managing multiple e-commerce clients.
PRs welcome — especially for WooCommerce support (next on the list).
Top comments (0)