shopops-mcp
# ShopOps MCP
**AI-powered server that implements the Model Context Protocol (MCP) for managing Shopify and WooCommerce stores.**
[](LICENSE)
[](https://www.typescriptlang.org/)
[](https://modelcontextprotocol.io/)
---
## Features
- **Store connectors** for Shopify and WooCommerce.
- **12 MCP tools** covering inventory, pricing, customers, orders, product performance and reporting.
- **4 MCP resources** exposing store overview, inventory, recent orders and top customers.
- Inventory forecasting using moving-average demand plus safety-stock calculation.
- RFM-based customer segmentation (7 distinct segments).
- Data-driven pricing analysis with margin-based optimization suggestions.
- Order anomaly / fraud detection.
- ABC analysis of product performance.
- Automated daily and weekly reports.
- Dual transport: local `stdio` and Streamable HTTP (MCPize).
- TypeScript, `@modelcontextprotocol/sdk` v1.29+, Zod v4.
- Free tier, plus a €29 lifetime Pro license.
---
## Quick Start
```bash
# 1. Install the package
npm i shopops-mcp
# 2. Create a .env file (see Configuration section)
cp .env.example .env
# 3. Run the server (local stdio mode)
npx shopops-mcp run --transport stdio
# 4. Or start the HTTP endpoint (MCPize deployment)
npx shopops-mcp run --transport http --port 8080
```
The server will read the environment variables, connect to the configured store(s), and expose the MCP tools and resources.
---
## MCP Tools
| Tool | Description |
|------|-------------|
| `store_connect` | Connects, lists, disconnects, or syncs a Shopify/WooCommerce store (`action: "connect" \| "list" \| "disconnect" \| "sync"`) and validates credentials. |
| `store_demo_seed` | Creates a realistic demo store (20 products, 40 customers, 150+ orders) so you can explore every tool without real store credentials. |
| `inventory_status` | Returns current stock levels, back-order flags and low-stock alerts. |
| `inventory_forecast` | Projects future inventory requirements using moving-average demand and safety-stock buffers. |
| `pricing_analyze` | Generates a price elasticity report and identifies under-/over-priced SKUs. |
| `pricing_optimize` | Suggests optimal price points based on margin analysis, sales velocity, and configurable pricing rules. |
| `customers_segment` | Performs RFM analysis and assigns customers to one of seven segments. |
| `customers_churn` | Scores customers for churn risk and provides retention recommendations. |
| `order_anomalies` | Detects potentially fraudulent or erroneous orders using pattern-recognition models. |
| `product_performance` | Conducts ABC analysis and returns contribution metrics per product class. |
| `report_daily` | Generates a JSON/CSV daily operations summary (sales, inventory, alerts). |
| `report_weekly` | Generates a weekly performance report with trend visualisations. |
---
## MCP Resources
| Resource | Description |
|----------|-------------|
| `store://overview` | High-level store metrics: product, order, and customer counts per connected store. |
| `store://inventory` | Low-stock alerts: active products with on-hand quantity ≤ 10, sorted lowest first. |
| `store://orders/recent` | The 20 most recent orders across all stores, with order number, total, status and date. |
| `store://customers/top` | Top 20 customers by total spending, with name, email and order count. |
---
## Configuration
ShopOps reads only a handful of environment variables. **Store credentials are not env vars** —
they are passed to the `store_connect` tool at runtime (one connection per store), so the same
server process can manage multiple Shopify/WooCommerce stores.
| Variable | Required | Description |
|----------|----------|-------------|
| `PORT` | No | If set (or `MCPIZE=true`), the server runs as a Streamable HTTP endpoint on this port (default `8080`) instead of local `stdio`. |
| `MCPIZE` | No | Set to `true` by the MCPize runtime to force HTTP transport. |
| `LEMONSQUEEZY_LICENSE_KEY` | No | Pro license key. Without it the server runs in Free tier (see [Pro License](#pro-license)). |
A minimal `.env` is provided in [`.env.example`](.env.example).
### Connecting a store
Shopify and WooCommerce credentials are supplied as parameters to `store_connect`, e.g.:
```jsonc
// Shopify
{ "action": "connect", "platform": "shopify",
"store_domain": "myshop.myshopify.com", "access_token": "shpat_..." }
// WooCommerce
{ "action": "connect", "platform": "woocommerce",
"store_url": "https://example.com", "consumer_key": "ck_...", "consumer_secret": "cs_..." }
```
`store_connect` returns a `store_id` that every other tool takes as input. To explore the server
without real credentials, call `store_demo_seed` instead.
> **Roadmap (not yet implemented):** report anonymization, S3 report export, and a configurable
> pricing-model / log-level are planned but not read by the current release.
---
## Pro License
ShopOps ships in **Free mode** — `store_demo_seed`, `store_connect`, `inventory_status`, `pricing_analyze`, `customers_segment`, `product_performance`, and `report_daily` are open. The following tools require a **Pro license**:
- `inventory_forecast` — moving-average demand forecasting + reorder points
- `pricing_optimize` — actionable price-change recommendations
- `customers_churn` — churn risk scoring + retention recommendations
- `order_anomalies` — fraud / anomaly detection
- `report_weekly` — week-over-week trend report + AI insights
**Buy a Pro License (€29, lifetime, 3 machines):** https://automatiabcn.lemonsqueezy.com/buy/cbbe44f0-a146-4c65-88c8-71f371037758
Or get the **[Indie MCP Stack Bundle](https://automatiabcn.lemonsqueezy.com/buy/55e932fd-8319-47f0-8e95-0b86a29f2617)** (€69, all 4 servers).
```bash
export LEMONSQUEEZY_LICENSE_KEY=YOUR-KEY-HERE
```
Or in your MCP client config:
```json
{
"mcpServers": {
"shopops-mcp": {
"command": "npx",
"args": ["-y", "shopops-mcp-server"],
"env": { "LEMONSQUEEZY_LICENSE_KEY": "YOUR-KEY-HERE" }
}
}
}
```
Validation is cached locally for 24 h — fully offline-capable after first run.
---
## License
ShopOps MCP is released under the **MIT License**. See [LICENSE](LICENSE) for full terms.
---
*Author: Automatia BCN*
TDQS
Scored across 12 tools
Each tool targets a distinct aspect of shop operations (customers, inventory, orders, pricing, products, reports, store management). Even similar tools like customers_churn and customers_segment have clear differences in scope and output. There is no overlap that would cause confusion.
All tool names follow a consistent 'domain_verb' pattern using snake_case (e.g., customers_churn, inventory_forecast, order_anomalies). This makes it easy to infer the tool's purpose and domain from its name.
With 12 tools, the server covers all essential aspects of shop operations without being overwhelming. Each tool serves a clear purpose, and the count is appropriate for the server's scope.
The tool set provides comprehensive coverage for analyzing and managing a shop: customer segmentation and churn, inventory status and forecasting, order anomaly detection, pricing analysis and optimization, product performance, daily/weekly reports, and store connectivity. There are no obvious gaps for the intended use case.