shopops-mcp
The ShopOps MCP server is an AI-powered server for managing Shopify and WooCommerce stores via the Model Context Protocol. It offers tools across several categories:
Store Management
Connect, sync, list, or disconnect Shopify/WooCommerce stores
Seed a realistic demo store (20 products, 40 customers, 150+ orders) without real credentials
Inventory
View current stock levels, out-of-stock products, and low-stock alerts (≤10 units)
⭐ Forecast stock depletion dates using moving-average sales velocity, with reorder points and safety stock recommendations
Pricing
Analyze margins and sales velocity; identify under-/over-priced products
⭐ Get filtered, actionable price-change recommendations sorted by impact
Customer Analytics
RFM analysis segmenting customers into 7 groups (Champions, Loyal, Potential, At Risk, New, Hibernating, Lost)
⭐ Score churn risk and receive win-back recommendations
Orders & Fraud Detection
⭐ Detect anomalous or potentially fraudulent orders (high-value spikes, velocity anomalies, off-hours purchases) with severity ratings and recommended actions
Product Performance
ABC analysis classifying products by revenue contribution (A = top 80%, B = next 15%, C = bottom 5%), with trends and margins
Reporting
Generate daily operational summaries (sales, inventory, alerts, anomalies)
⭐ Generate weekly trend reports with customer segment distribution, trending products, and AI insights
Reports available in JSON/CSV
⭐ Pro features require a €29 lifetime license key via
LEMONSQUEEZY_LICENSE_KEY. The server runs locally via stdio or as a Streamable HTTP endpoint.
Connects to Shopify stores to provide inventory management and forecasting, AI-driven pricing analysis and optimization, RFM-based customer segmentation, churn risk scoring, order anomaly detection, product performance analysis, and automated daily/weekly reporting.
Connects to WooCommerce stores to provide inventory management and forecasting, AI-driven pricing analysis and optimization, RFM-based customer segmentation, churn risk scoring, order anomaly detection, product performance analysis, and automated daily/weekly reporting.
ShopOps MCP
AI-powered server that implements the Model Context Protocol (MCP) for managing Shopify and WooCommerce stores.
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
stdioand Streamable HTTP (MCPize).TypeScript,
@modelcontextprotocol/sdkv1.29+, Zod v4.Free tier, plus a €29 lifetime Pro license.
Related MCP server: Commerce-MCP
Quick Start
# 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 8080The server will read the environment variables, connect to the configured store(s), and expose the MCP tools and resources.
MCP Tools
Tool | Description |
| Connects, lists, disconnects, or syncs a Shopify/WooCommerce store ( |
| Creates a realistic demo store (20 products, 40 customers, 150+ orders) so you can explore every tool without real store credentials. |
| Returns current stock levels, back-order flags and low-stock alerts. |
| Projects future inventory requirements using moving-average demand and safety-stock buffers. |
| Generates a price elasticity report and identifies under-/over-priced SKUs. |
| Suggests optimal price points based on margin analysis, sales velocity, and configurable pricing rules. |
| Performs RFM analysis and assigns customers to one of seven segments. |
| Scores customers for churn risk and provides retention recommendations. |
| Detects potentially fraudulent or erroneous orders using pattern-recognition models. |
| Conducts ABC analysis and returns contribution metrics per product class. |
| Generates a JSON/CSV daily operations summary (sales, inventory, alerts). |
| Generates a weekly performance report with trend visualisations. |
MCP Resources
Resource | Description |
| High-level store metrics: product, order, and customer counts per connected store. |
| Low-stock alerts: active products with on-hand quantity ≤ 10, sorted lowest first. |
| The 20 most recent orders across all stores, with order number, total, status and date. |
| 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 |
| No | If set (or |
| No | Set to |
| No | Pro license key. Without it the server runs in Free tier (see Pro License). |
A minimal .env is provided in .env.example.
Connecting a store
Shopify and WooCommerce credentials are supplied as parameters to store_connect, e.g.:
// 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 pointspricing_optimize— actionable price-change recommendationscustomers_churn— churn risk scoring + retention recommendationsorder_anomalies— fraud / anomaly detectionreport_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 (€69, all 4 servers).
export LEMONSQUEEZY_LICENSE_KEY=YOUR-KEY-HEREOr in your MCP client config:
{
"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 for full terms.
Author: Automatia BCN
Available Tools
12 toolscustomers_churnChurn RiskARead-onlyIdempotent
Identify customers at risk of churning based on RFM recency + frequency signals. Returns an object with at_risk, hibernating, and lost arrays — each contains customer id, name, email, last_order_date, days_since_last_order, total_spent, total_orders, and a win_back_recommendation string. Use this for targeted re-engagement campaigns.
| Name | Required | Description | Default |
|---|---|---|---|
| store_id | Yes | UUID of a connected store (returned by store_connect with action="connect" or visible in store_connect with action="list" / the store_overview resource) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true. The description adds value by detailing the return object structure (at_risk, hibernating, lost arrays with specific fields and win_back_recommendation), which is beyond what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core function, and efficiently conveys purpose and return format without any fluff. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity (1 parameter, no output schema), the description covers purpose, usage, and return structure comprehensively. Annotations provide safety traits. No gaps remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a single well-described parameter (store_id). The description adds no extra meaning beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses specific verb+resource ('Identify customers at risk of churning') and clearly distinguishes from sibling tools like customers_segment and order_anomalies by focusing on churn risk based on RFM signals.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states 'Use this for targeted re-engagement campaigns,' providing clear context. It does not mention when not to use or list alternatives, but the use case is well-defined.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
customers_segmentCustomer SegmentationARead-onlyIdempotent
RFM (Recency, Frequency, Monetary) customer segmentation. Categorizes customers into segments: Champions, Loyal, Potential, At Risk, New, Hibernating, Lost — with actionable recommendations.
| Name | Required | Description | Default |
|---|---|---|---|
| store_id | Yes | UUID of a connected store (returned by store_connect with action="connect" or visible in store_connect with action="list" / the store_overview resource) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, destructiveHint, idempotentHint, and openWorldHint. The description adds value by detailing the output segments and the 'actionable recommendations' tag, providing context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no filler. The first sentence immediately states the core function, and the second adds segment names and value proposition. Efficient and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple parameter set and annotations, the description covers the tool's purpose and output well. However, it could explain what 'actionable recommendations' entails or how results are presented, but overall sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a well-described store_id parameter. The description adds no additional semantics beyond the schema, so it meets the baseline but does not exceed it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool performs RFM customer segmentation, listing specific segments (Champions, Loyal, etc.) and mentions actionable recommendations. This provides a clear and specific purpose, distinguishing it from other tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus siblings like customers_churn. The description does not specify ideal scenarios or exclusions, leaving the agent to infer usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
inventory_forecastInventory ForecastARead-onlyIdempotent
Predict stock depletion dates using moving-average sales velocity. Returns reorder points, safety stock levels, and suggested reorder quantities for each product.
| Name | Required | Description | Default |
|---|---|---|---|
| store_id | Yes | UUID of a connected store (returned by store_connect with action="connect" or visible in store_connect with action="list" / the store_overview resource) | |
| product_id | No | Restrict the forecast to a single product by its external_id (Shopify product ID or WooCommerce product slug). Omit to forecast every active product in the store. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the tool read-only and idempotent. The description adds that it uses moving-average sales velocity and returns specific outputs (reorder points, safety stock, suggested reorder quantities), providing useful behavioral context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loading the purpose and method, followed by return values. No extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the annotations and full schema coverage, the description adequately covers purpose and output. It lacks details on the moving-average window or data recency, but the tool is straightforward.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the description adds no new meaning to the parameters beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool predicts stock depletion dates using moving-average sales velocity, distinguishing it from sibling tools like inventory_status or order_anomalies.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly state when to use this tool versus alternatives, nor does it provide exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
inventory_statusInventory StatusARead-onlyIdempotent
Snapshot of current stock levels for a connected store. Returns a summary object with total product count, out-of-stock count, low-stock count (≤10 units), plus two arrays: out_of_stock and low_stock — each containing product id, title, sku, quantity, and status. Items are sorted by urgency (lowest quantity first). Read-only and idempotent.
| Name | Required | Description | Default |
|---|---|---|---|
| store_id | Yes | UUID of a connected store (returned by store_connect with action="connect" or visible in store_connect with action="list" / the store_overview resource) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds value beyond annotations by detailing the output structure (summary object, two arrays, fields per item) and sorting behavior (by quantity ascending). It confirms read-only and idempotent nature, which aligns with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a concise three-sentence paragraph, front-loading the purpose and then providing necessary details. Every sentence adds value with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema, the description fully explains the return value format and fields. Combined with clear purpose and parameter info, the tool definition is complete for an agent to use and interpret results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides 100% coverage for store_id with a detailed description linking to other tools. The tool description adds no additional meaning for the parameter, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it provides a 'snapshot of current stock levels' for a connected store, listing specific output fields and sorting. It distinguishes from siblings (e.g., inventory_forecast, product_performance) by focusing on current status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly state when to use this tool vs alternatives or provide exclusions. It implies usage for current stock checks but lacks guidance like 'use for real-time inventory view; for predictions use inventory_forecast'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
order_anomaliesOrder Anomaly DetectionARead-onlyIdempotent
Statistical anomaly detection on recent orders. Flags high-value orders (>3σ from mean), velocity spikes (customer ordering unusually fast), unusual quantities, off-hours purchases (2am-5am), and new-customer high-value orders. Returns an array of anomalies with order_id, anomaly_type, severity (low/medium/high), reason, and recommended_action. Useful for fraud detection and revenue spike investigation.
| Name | Required | Description | Default |
|---|---|---|---|
| store_id | Yes | UUID of a connected store (returned by store_connect with action="connect" or visible in store_connect with action="list" / the store_overview resource) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is clear. The description adds behavioral details about what anomalies are detected and the output structure (fields like order_id, anomaly_type, severity). It does not cover rate limits or time range precision, but overall adds value beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, first defining the tool's function and second detailing the output and use cases. Every word is functional, with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With one well-documented parameter and a detailed output description (even without an output schema), the tool is fairly complete. Missing explicit mention of time range for 'recent orders' is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage with a detailed description for store_id. The tool description does not add additional parameter semantics beyond what the schema provides, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Statistical anomaly detection on recent orders' and lists specific anomaly types, making the tool's purpose explicit. It distinguishes itself from sibling tools like customers_churn or inventory_forecast which focus on different domains.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions 'Useful for fraud detection and revenue spike investigation,' providing context. However, it does not explicitly state when not to use the tool or compare it to alternatives, missing a bit on usage boundaries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pricing_analyzePricing AnalysisARead-onlyIdempotent
Analyze pricing across products with margin calculation, sales velocity, and rule-based price optimization suggestions. Returns an array where each element contains product_title, current_price, cost, margin_percent, daily_units_sold, revenue_per_day, suggested_price (or null if no change recommended), and suggestion_reason. Pass product_id to scope to a single product, omit for full catalog.
| Name | Required | Description | Default |
|---|---|---|---|
| store_id | Yes | UUID of a connected store (returned by store_connect with action="connect" or visible in store_connect with action="list" / the store_overview resource) | |
| product_id | No | Restrict the analysis to a single product by external_id. Omit to analyse the entire active catalog. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations (readOnlyHint=true, destructiveHint=false, idempotentHint=true) already cover safety and idempotency. The description adds the return format but does not disclose potential performance implications, data freshness, or other behavioral traits beyond what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two sentences, front-loading the main purpose. It lists output fields efficiently and includes parameter usage, with no redundant or vague statements.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given moderate complexity (2 params, no output schema), the description covers purpose, output structure, and parameter usage. Sibling tools are present, but no guidance on when to use this vs. 'pricing_optimize' is missing, and pagination or error handling are not addressed. Still, it is largely complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the description largely restates the schema's parameter descriptions. It adds no new semantic meaning; the instruction to use product_id for scoping is already in the schema. Thus baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it analyzes pricing with margin calculation, sales velocity, and rule-based price optimization suggestions. It specifies the exact output fields, making it distinct from siblings like 'pricing_optimize' which likely focuses on applying changes rather than analysis.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear guidance on parameter usage: 'Pass product_id to scope to a single product, omit for full catalog.' It does not explicitly mention when not to use or compare with siblings, but the usage context is well stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pricing_optimizePricing OptimizationARead-onlyIdempotent
Filtered pricing recommendations — only products where a price change is suggested. Returns a summary with total_suggestions count and an optimizations array (product, current_price, suggested_price, change_percent, reason, daily_revenue), sorted by absolute change_percent (biggest moves first). Use this instead of pricing_analyze when you only want actionable changes.
| Name | Required | Description | Default |
|---|---|---|---|
| store_id | Yes | UUID of a connected store (returned by store_connect with action="connect" or visible in store_connect with action="list" / the store_overview resource) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint; description adds return structure, sorting, and filtering behavior, enhancing transparency without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two efficient sentences: first defines purpose, second adds usage guidance and return details. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema, description fully details return format, fields, and sorting. Simple input is well-covered. Complete for intended use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and description adds minor context about where to obtain store_id, but does not significantly enhance schema meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description explicitly states it provides filtered pricing recommendations only for products with suggested changes, clearly distinguishing it from sibling pricing_analyze.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Directly instructs to use this tool instead of pricing_analyze when only actionable changes are needed, providing explicit context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
product_performanceProduct Performance (ABC Analysis)ARead-onlyIdempotent
Product performance report with ABC analysis. Category A = top 80% revenue, B = next 15%, C = bottom 5%. Includes trends, margins, and daily sales velocity.
| Name | Required | Description | Default |
|---|---|---|---|
| store_id | Yes | UUID of a connected store (returned by store_connect with action="connect" or visible in store_connect with action="list" / the store_overview resource) | |
| period_days | No | Look-back window for ABC classification, 7–90 days. Defaults to 30. Shorter windows favour recent trends; longer windows smooth seasonality. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, non-destructive, and idempotent behavior. The description adds that it includes trends, margins, and velocity, which is helpful but does not disclose any behavioral nuances beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no redundancy. It front-loads the purpose and defines the ABC categories succinctly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While no output schema exists, the description covers key report components (trends, margins, velocity). It is sufficiently complete for a read-only report tool given the annotations and schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description does not add meaning beyond what the schema provides for store_id and period_days; it only mentions high-level report contents.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool generates a product performance report with ABC analysis, defining the revenue thresholds for categories A, B, and C. This distinguishes it from sibling tools like inventory_forecast or pricing_analyze.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for ABC analysis but does not explicitly state when to use this tool versus alternatives like report_daily or inventory_status. No exclusions or alternative suggestions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
report_dailyDaily ReportARead-onlyIdempotent
Daily operational report: orders, revenue, top products, new vs returning customers, low stock alerts, and anomaly count.
| Name | Required | Description | Default |
|---|---|---|---|
| store_id | Yes | UUID of a connected store (returned by store_connect with action="connect" or visible in store_connect with action="list" / the store_overview resource) | |
| date | No | Calendar date for the report in YYYY-MM-DD (e.g. "2026-04-25"). Defaults to today (UTC). The report is computed against orders whose created_at falls within that calendar day. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, so the tool's safety profile is clear. The description adds the list of report contents but does not disclose additional behavioral details such as data aggregation method, timezone handling (though partially covered in date parameter), or performance characteristics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence of 14 words, front-loaded with the purpose ('Daily operational report') followed by a concise list of contents. Every phrase adds value, with no redundant or irrelevant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description enumerates all major report sections (orders, revenue, products, customers, alerts, anomalies), providing adequate context for an agent. Minor omission: no mention of the output format (e.g., JSON, table) or whether the report returns aggregated data for the exact day versus a rolling window.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for both parameters (store_id and date). The tool description does not add new meaning beyond what the schema already provides, so a baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it provides a 'daily operational report' containing specific metrics: orders, revenue, top products, new vs returning customers, low stock alerts, and anomaly count. This differentiates it from the sibling tool 'report_weekly' which likely covers a different time period, and from other analytics tools like 'order_anomalies' which focus on a single metric.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for generating a daily summary, but does not explicitly state when to use it over alternatives like 'report_weekly' or when a more granular tool like 'order_anomalies' would be preferred. No guidance on exclusions or prerequisites is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
report_weeklyWeekly ReportARead-onlyIdempotent
Weekly trend report: revenue/order changes vs previous week, customer segment distribution, trending products, and AI-generated insights.
| Name | Required | Description | Default |
|---|---|---|---|
| store_id | Yes | UUID of a connected store (returned by store_connect with action="connect" or visible in store_connect with action="list" / the store_overview resource) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, non-destructive, idempotent behavior. The description adds context about AI-generated insights but does not detail data freshness, authorization requirements, or return format. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that conveys all necessary information without redundancy. It is front-loaded with the core purpose and lists specific components.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a single parameter, no output schema, and moderate complexity, the description covers the report's contents well. It could mention that it compares to the previous week, but overall it is sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has one parameter (store_id) with a comprehensive description (100% coverage). The description does not add further parameter meaning beyond what the schema provides, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool produces a weekly trend report covering revenue/order changes, customer segments, trending products, and AI insights. It uses specific verbs and resources, distinguishing it from siblings like report_daily.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for generating weekly reports but does not explicitly state when to use this tool versus alternatives (e.g., report_daily). No exclusions or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
store_connectConnect StoreA
Manage Shopify or WooCommerce store connections. action="connect" adds a new store and performs an initial sync of products, orders, and customers; action="sync" refreshes cached data for an existing store; action="list" returns all connected stores with their sync counts. Returns a JSON payload with store metadata (id, name, platform, url, counts, last_sync) — credentials are never returned.
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | connect = add new store, sync = refresh existing store, list = show all stores | |
| name | No | Human-readable store name (required for connect, e.g. "My Shop") | |
| platform | No | "shopify" or "woocommerce" (required for connect) | |
| url | No | Store base URL starting with https:// (required for connect, e.g. "https://myshop.myshopify.com") | |
| api_key | No | Platform API access token (required for connect) | |
| api_secret | No | Platform API secret — REQUIRED for woocommerce, ignored for shopify | |
| store_id | No | Existing store UUID (required for sync) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description discloses mutation behavior (connect creates, sync refreshes), return payload structure, and that credentials are never returned. Annotations are sparse (readOnlyHint=false, destructiveHint=false) and description adds value by detailing the sync process and security note.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short, focused sentences: first introduces actions, second describes return payload, third notes credentials. No superfluous words, front-loaded with actionable information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers main actions and return format. Missing details on error handling, rate limits, or prerequisites (e.g., platform-specific requirements). OpenWorldHint suggests external API calls but not explicitly stated. Still mostly complete for a connection management tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 100% of parameters with descriptions. The description adds high-level context (return format, credential security) but does not significantly enhance parameter meaning beyond what the schema provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool manages Shopify/WooCommerce connections with three specific actions (connect, sync, list), each with distinct purposes. It distinguishes from sibling tools which focus on other domains like customers, inventory, orders, etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when to use each action (connect for new store, sync for existing, list to show all). While it doesn't explicitly say when not to use or list alternatives, the context is clear given the tool's focused scope.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
store_demo_seedSeed Demo StoreA
Create a realistic demo store populated with 20 products, 40 customers across 6 archetype buckets (champions, loyal, new, at-risk, hibernating, one-off), and 150+ orders spanning the last 6 months. Use this to explore ShopOps without real Shopify or WooCommerce credentials — every tool (inventory_status, customers_segment, order_anomalies, report_weekly, etc.) will return meaningful output on the returned store_id. Safe to call multiple times; each call creates a new demo store with a unique ID. Returns the store_id plus product/customer/order counts.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate non-destructive, non-read-only, and non-idempotent. Description adds rich detail on what is created (20 products, 40 customers across 6 archetype buckets, 150+ orders) and that each call creates a new unique ID, but does not disclose any potential limits or side effects beyond creation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is concise, front-loaded with the main purpose, and structured logically from creation details to usage notes. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters and no output schema, the description is fully complete: it explains what the tool does, why to use it, what it returns (store_id plus counts), and how it fits with sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist; schema coverage is 100%. With zero parameters, baseline is 4, and the description appropriately provides no additional parameter info.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it creates a realistic demo store with specific counts of products, customers, and orders, and explicitly distinguishes from sibling tools like store_connect by noting it works without real credentials.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use (explore ShopOps without real credentials) and that it's safe to call multiple times, with each call producing a new unique store. Mentions that other tools will work on the returned store_id.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
- Added
order_anomalies
11 tool updates
v1.2.4- First observed
customers_churn - First observed
customers_segment - First observed
inventory_forecast - First observed
inventory_status - First observed
pricing_analyze - First observed
pricing_optimize - First observed
product_performance - First observed
report_daily - First observed
report_weekly - First observed
store_connect - First observed
store_demo_seed
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.
Maintenance
Related MCP Connectors
AI commerce for Shopify: product search, comparison, recommendations, and checkout via MCP.
Run storefronts, listings, orders, content, fulfillment, and analytics through AI.
Multi-tenant MCP gateway for AI commerce. One connection, every store.
Multi-tenant MCP gateway for AI commerce. One connection, every store.
Related MCP Servers
- AlicenseBqualityBmaintenanceMulti-channel inventory intelligence for Shopify and Amazon sellers. 28 tools for stockout risk, demand forecasts, purchase order management, and sales analytics — with human-in-the-loop safeguards.5065 npm2MIT
- AlicenseDqualityDmaintenanceEnables natural-language control of e-commerce operations including product management, order processing, inventory tracking, customer service, content generation, and advertising analytics through 15 integrated MCP tools. Provides a local-first commerce automation solution with SQLite storage and extensible channel adapters for end-to-end online store workflows.153MIT
- AlicenseNot gradedqualityBmaintenanceEcommerce AI - MCP server providing AI-powered tools and automation by MEOK AI Labs10 npm89 PyPIMIT
- FlicenseNot gradedqualityCmaintenanceHosted MCP server connecting Shopify, Klaviyo, GA4, Meta Ads, Google Ads, Xero, Gorgias and 20+ e-commerce data sources so AI assistants can answer merchant questions that span every source at once.-