shopops-mcp
ShopOps MCP
基于 AI 的服务器,实现了用于管理 Shopify 和 WooCommerce 商店的模型上下文协议 (MCP)。
功能特性
商店连接器:支持 Shopify 和 WooCommerce。
11 个 MCP 工具:涵盖库存、定价、客户、订单、产品表现和报告。
4 个 MCP 资源:提供商店概览、库存、近期订单和顶级客户信息。
使用移动平均需求和安全库存计算进行库存预测。
基于 RFM 的客户细分(7 个不同细分市场)。
数据驱动的定价分析,提供基于利润率的优化建议。
订单异常/欺诈检测。
产品表现的 ABC 分析。
自动化每日和每周报告。
双重传输:本地
stdio和可流式传输的 HTTP (MCPize)。TypeScript,
@modelcontextprotocol/sdkv1.29+, Zod v4。提供免费层级,以及 25 美元和 45 美元的付费计划。
Related MCP server: Commerce-MCP
快速入门
# 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服务器将读取环境变量,连接到配置的商店,并公开 MCP 工具和资源。
MCP 工具
工具 | 描述 |
| 建立与 Shopify 或 WooCommerce 商店的连接并验证凭据。 |
| 返回当前库存水平、缺货标记和低库存警报。 |
| 使用移动平均需求和安全库存缓冲来预测未来的库存需求。 |
| 生成价格弹性报告并识别定价过低或过高的 SKU。 |
| 基于利润率分析、销售速度和可配置的定价规则建议最佳价格点。 |
| 执行 RFM 分析并将客户分配到七个细分市场之一。 |
| 对客户进行流失风险评分并提供留存建议。 |
| 使用模式识别模型检测潜在的欺诈或错误订单。 |
| 进行 ABC 分析并返回每个产品类别的贡献指标。 |
| 生成 JSON/CSV 格式的每日运营摘要(销售额、库存、警报)。 |
| 生成包含趋势可视化的每周绩效报告。 |
MCP 资源
资源 | 描述 |
| 高级商店指标:总销售额、订单、客户和毛利率。 |
| 完整的库存目录,包含现有数量、预留库存和预测的短缺情况。 |
| 最近 100 个订单的列表,包含状态、总价值和支付方式。 |
| 按终身价值、购买频率和最近一次购买时间排名的前 50 名客户。 |
配置
在项目根目录创建一个 .env 文件。需要以下变量:
变量 | 所需对象 | 描述 |
| Shopify | 私有应用 API 密钥。 |
| Shopify | 私有应用密码。 |
| Shopify | 商店域名 (例如 |
| WooCommerce | REST API 消费者密钥。 |
| WooCommerce | REST API 消费者密钥。 |
| WooCommerce | 商店 URL (例如 |
| HTTP 传输 | 可流式传输 HTTP 端点的端口 (默认 |
| 全部 | 日志详细程度 ( |
| 定价工具 | 定价策略 ( |
| 库存预测 | 预测天数 (默认 |
可选变量:
变量 | 描述 |
| 设置为 |
| 如果提供,每日/每周报告将上传到指定的 S3 存储桶。 |
专业版许可证
ShopOps 以 免费模式 发布 — store_demo_seed、store_connect、inventory_status、pricing_analyze、customers_segment、product_performance 和 report_daily 是开放的。以下工具需要 专业版许可证:
inventory_forecast— 移动平均需求预测 + 再订货点pricing_optimize— 可操作的价格调整建议customers_churn— 流失风险评分 + 留存建议order_anomalies— 欺诈/异常检测report_weekly— 周环比趋势报告 + AI 洞察
购买专业版许可证 (€29,终身,3 台机器): https://automatiabcn.lemonsqueezy.com/buy/cbbe44f0-a146-4c65-88c8-71f371037758
或者获取 Indie MCP Stack Bundle (€69,包含所有 4 个服务器)。
export LEMONSQUEEZY_LICENSE_KEY=YOUR-KEY-HERE或者在您的 MCP 客户端配置中:
{
"mcpServers": {
"shopops-mcp": {
"command": "npx",
"args": ["-y", "shopops-mcp-server"],
"env": { "LEMONSQUEEZY_LICENSE_KEY": "YOUR-KEY-HERE" }
}
}
}验证信息在本地缓存 24 小时 — 首次运行后完全支持离线使用。
许可证
ShopOps MCP 在 MIT 许可证 下发布。请参阅 LICENSE 获取完整条款。
作者: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
Let your AI manage WooCommerce and Shopify stores: products, SEO, descriptions and images.
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.
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.5061 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 npm72 PyPIMIT
- FlicenseNot gradedqualityDmaintenanceHosted 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.-