Ecomwith Commerce Desk
Break-even ROAS and profit calculators, UTM link builder, and Ecomwith tutorial and report search.
我该使用它吗
质量与安全性
基于对工具定义和协议合规性的自动分析。
上下文开销
这是每次将服务器的工具加载到模型上下文窗口时所消耗的大致 token 数。数值越高,可用于其他任务的注意力就越少。
安装
一键安装
将以下内容添加到你的 `claude_desktop_config.json` 文件中:
{
"mcpServers": {
"commerce-desk": {
"url": "https://ecomwith.com/api/mcp"
}
}
}远程端点
https://ecomwith.com/api/mcpstreamable-http它能做什么
工具清单
工具(6)
🟢calculate_break_even_roas(currency, price, productCost, shippingCost, paymentFeeRate, ...)
Calculate break-even and target-profit ROAS and maximum CPA from user-supplied revenue, costs, percentage fees and refund reserve. Ask for missing inputs even if asked not to ask questions. Unknown fields must be null, never guessed zeros or a default currency. If any input is unknown, returns needs_input with questions and no estimate. Only explicit user-supplied zeros are valid. Does not read an ad account or change a budget.
输入模式
{
"type": "object",
"properties": {
"currency": {
"anyOf": [
{
"type": "string",
"pattern": "^[A-Z]{3}$",
"description": "ISO 4217 currency code; all amounts must use this currency."
},
{
"type": "null"
}
],
"description": "User-supplied ISO 4217 currency code. Use null if unknown; never assume USD."
},
"price": {
"anyOf": [
{
"type": "number",
"exclusiveMinimum": 0,
"maximum": 1000000000,
"description": "Revenue per order after discounts, excluding collected taxes."
},
{
"type": "null"
}
],
"description": "User-supplied revenue per order after discounts and excluding collected taxes. Use null if unknown."
},
"productCost": {
"anyOf": [
{
"type": "number",
"minimum": 0,
"maximum": 1000000000,
"description": "Product cost per order, including any allocated costs you want to model."
},
{
"type": "null"
}
],
"description": "User-supplied product cost per order. Use null if unknown; use 0 only when the user explicitly supplied zero."
},
"shippingCost": {
"anyOf": [
{
"type": "number",
"minimum": 0,
"maximum": 1000000000,
"description": "Net shipping and fulfillment cost per order."
},
{
"type": "null"
}
],
"description": "User-supplied net shipping and fulfillment cost per order. Use null if unknown; do not substitute 0."
},
"paymentFeeRate": {
"anyOf": [
{
"type": "number",
"minimum": 0,
"maximum": 100,
"description": "Payment fee as a percentage, e.g. 3 means 3%, not 0.03."
},
{
"type": "null"
}
],
"description": "User-supplied payment fee percentage: 3 means 3%. Use null if unknown; do not substitute 0."
},
"refundRate": {
"anyOf": [
{
"type": "number",
"minimum": 0,
"maximum": 100,
"description": "Revenue reserved for refunds as a percentage; this is a simplified reserve."
},
{
"type": "null"
}
],
"description": "User-supplied refund reserve percentage. Use null if unknown; do not substitute 0."
},
"targetProfit": {
"anyOf": [
{
"type": "number",
"minimum": 0,
"maximum": 1000000000,
"description": "Desired contribution per order after advertising. Supply 0 for break-even only."
},
{
"type": "null"
}
],
"description": "User-supplied desired profit per order, or 0 when the user requests break-even only. Use null if unknown."
}
},
"required": [
"currency",
"price",
"productCost",
"shippingCost",
"paymentFeeRate",
"refundRate",
"targetProfit"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}输出模式
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"complete",
"needs_input"
]
},
"estimate": {
"type": "object",
"properties": {
"currency": {
"type": "string"
},
"basis": {
"type": "string",
"const": "user_supplied_estimates"
},
"inputs": {
"type": "object",
"properties": {
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"description": "ISO 4217 currency code; all amounts must use this currency."
},
"price": {
"type": "number",
"exclusiveMinimum": 0,
"maximum": 1000000000,
"description": "Revenue per order after discounts, excluding collected taxes."
},
"productCost": {
"type": "number",
"minimum": 0,
"maximum": 1000000000,
"description": "Product cost per order, including any allocated costs you want to model."
},
"shippingCost": {
"type": "number",
"minimum": 0,
"maximum": 1000000000,
"description": "Net shipping and fulfillment cost per order."
},
"paymentFeeRate": {
"type": "number",
"minimum": 0,
"maximum": 100,
"description": "Payment fee as a percentage, e.g. 3 means 3%, not 0.03."
},
"refundRate": {
"type": "number",
"minimum": 0,
"maximum": 100,
"description": "Revenue reserved for refunds as a percentage; this is a simplified reserve."
},
"targetProfit": {
"type": "number",
"minimum": 0,
"maximum": 1000000000,
"description": "Desired contribution per order after advertising. Supply 0 for break-even only."
}
},
"required": [
"currency",
"price",
"productCost",
"shippingCost",
"paymentFeeRate",
"refundRate",
"targetProfit"
],
"additionalProperties": false
},
"metrics": {
"type": "object",
"properties": {
"revenue": {
"type": "number"
},
"paymentFee": {
"type": "number"
},
"refundReserve": {
"type": "number"
},
"totalVariableCost": {
"type": "number"
},
"contributionBeforeAds": {
"type": "number"
},
"breakEvenRoas": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"targetProfitRoas": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"maxCpa": {
"type": "number"
},
"targetCpa": {
"type": "number"
},
"marginBeforeAdsRate": {
"type": "number"
}
},
"required": [
"revenue",
"paymentFee",
"refundReserve",
"totalVariableCost",
"contributionBeforeAds",
"breakEvenRoas",
"targetProfitRoas",
"maxCpa",
"targetCpa",
"marginBeforeAdsRate"
],
"additionalProperties": false
},
"breakEvenFeasible": {
"type": "boolean"
},
"targetProfitFeasible": {
"type": "boolean"
},
"assumptions": {
"type": "array",
"items": {
"type": "string"
}
},
"unknowns": {
"type": "array",
"items": {
"type": "string"
}
},
"warnings": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"currency",
"basis",
"inputs",
"metrics",
"breakEvenFeasible",
"targetProfitFeasible",
"assumptions",
"unknowns",
"warnings"
],
"additionalProperties": false
},
"missingInputs": {
"type": "object",
"properties": {
"fields": {
"type": "array",
"items": {
"type": "string",
"enum": [
"currency",
"price",
"productCost",
"shippingCost",
"paymentFeeRate",
"refundRate",
"targetProfit"
]
}
},
"questions": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"fields",
"questions"
],
"additionalProperties": false
}
},
"required": [
"status"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢compare_profit_scenarios(scenarios)
Compare two to five user-supplied pricing or cost scenarios in one currency. Unknown inputs must be null, never guessed zeros or a default currency. If any scenario is incomplete, returns needs_input with labeled questions and no numeric comparison; ask for those inputs. Complete scenarios return contribution, maximum CPA and ROAS. Does not predict sales or change pricing or advertising.
输入模式
{
"type": "object",
"properties": {
"scenarios": {
"minItems": 2,
"maxItems": 5,
"type": "array",
"items": {
"type": "object",
"properties": {
"label": {
"type": "string",
"minLength": 1,
"maxLength": 80
},
"inputs": {
"type": "object",
"properties": {
"currency": {
"anyOf": [
{
"type": "string",
"pattern": "^[A-Z]{3}$",
"description": "ISO 4217 currency code; all amounts must use this currency."
},
{
"type": "null"
}
],
"description": "User-supplied ISO 4217 currency code. Use null if unknown; never assume USD."
},
"price": {
"anyOf": [
{
"type": "number",
"exclusiveMinimum": 0,
"maximum": 1000000000,
"description": "Revenue per order after discounts, excluding collected taxes."
},
{
"type": "null"
}
],
"description": "User-supplied revenue per order after discounts and excluding collected taxes. Use null if unknown."
},
"productCost": {
"anyOf": [
{
"type": "number",
"minimum": 0,
"maximum": 1000000000,
"description": "Product cost per order, including any allocated costs you want to model."
},
{
"type": "null"
}
],
"description": "User-supplied product cost per order. Use null if unknown; use 0 only when the user explicitly supplied zero."
},
"shippingCost": {
"anyOf": [
{
"type": "number",
"minimum": 0,
"maximum": 1000000000,
"description": "Net shipping and fulfillment cost per order."
},
{
"type": "null"
}
],
"description": "User-supplied net shipping and fulfillment cost per order. Use null if unknown; do not substitute 0."
},
"paymentFeeRate": {
"anyOf": [
{
"type": "number",
"minimum": 0,
"maximum": 100,
"description": "Payment fee as a percentage, e.g. 3 means 3%, not 0.03."
},
{
"type": "null"
}
],
"description": "User-supplied payment fee percentage: 3 means 3%. Use null if unknown; do not substitute 0."
},
"refundRate": {
"anyOf": [
{
"type": "number",
"minimum": 0,
"maximum": 100,
"description": "Revenue reserved for refunds as a percentage; this is a simplified reserve."
},
{
"type": "null"
}
],
"description": "User-supplied refund reserve percentage. Use null if unknown; do not substitute 0."
},
"targetProfit": {
"anyOf": [
{
"type": "number",
"minimum": 0,
"maximum": 1000000000,
"description": "Desired contribution per order after advertising. Supply 0 for break-even only."
},
{
"type": "null"
}
],
"description": "User-supplied desired profit per order, or 0 when the user requests break-even only. Use null if unknown."
}
},
"required": [
"currency",
"price",
"productCost",
"shippingCost",
"paymentFeeRate",
"refundRate",
"targetProfit"
],
"additionalProperties": false
}
},
"required": [
"label",
"inputs"
],
"additionalProperties": false
}
}
},
"required": [
"scenarios"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}输出模式
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"complete",
"needs_input"
]
},
"scenarios": {
"type": "array",
"items": {
"type": "object",
"properties": {
"currency": {
"type": "string"
},
"basis": {
"type": "string",
"const": "user_supplied_estimates"
},
"inputs": {
"type": "object",
"properties": {
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"description": "ISO 4217 currency code; all amounts must use this currency."
},
"price": {
"type": "number",
"exclusiveMinimum": 0,
"maximum": 1000000000,
"description": "Revenue per order after discounts, excluding collected taxes."
},
"productCost": {
"type": "number",
"minimum": 0,
"maximum": 1000000000,
"description": "Product cost per order, including any allocated costs you want to model."
},
"shippingCost": {
"type": "number",
"minimum": 0,
"maximum": 1000000000,
"description": "Net shipping and fulfillment cost per order."
},
"paymentFeeRate": {
"type": "number",
"minimum": 0,
"maximum": 100,
"description": "Payment fee as a percentage, e.g. 3 means 3%, not 0.03."
},
"refundRate": {
"type": "number",
"minimum": 0,
"maximum": 100,
"description": "Revenue reserved for refunds as a percentage; this is a simplified reserve."
},
"targetProfit": {
"type": "number",
"minimum": 0,
"maximum": 1000000000,
"description": "Desired contribution per order after advertising. Supply 0 for break-even only."
}
},
"required": [
"currency",
"price",
"productCost",
"shippingCost",
"paymentFeeRate",
"refundRate",
"targetProfit"
],
"additionalProperties": false
},
"metrics": {
"type": "object",
"properties": {
"revenue": {
"type": "number"
},
"paymentFee": {
"type": "number"
},
"refundReserve": {
"type": "number"
},
"totalVariableCost": {
"type": "number"
},
"contributionBeforeAds": {
"type": "number"
},
"breakEvenRoas": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"targetProfitRoas": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"maxCpa": {
"type": "number"
},
"targetCpa": {
"type": "number"
},
"marginBeforeAdsRate": {
"type": "number"
}
},
"required": [
"revenue",
"paymentFee",
"refundReserve",
"totalVariableCost",
"contributionBeforeAds",
"breakEvenRoas",
"targetProfitRoas",
"maxCpa",
"targetCpa",
"marginBeforeAdsRate"
],
"additionalProperties": false
},
"breakEvenFeasible": {
"type": "boolean"
},
"targetProfitFeasible": {
"type": "boolean"
},
"assumptions": {
"type": "array",
"items": {
"type": "string"
}
},
"unknowns": {
"type": "array",
"items": {
"type": "string"
}
},
"warnings": {
"type": "array",
"items": {
"type": "string"
}
},
"label": {
"type": "string"
}
},
"required": [
"currency",
"basis",
"inputs",
"metrics",
"breakEvenFeasible",
"targetProfitFeasible",
"assumptions",
"unknowns",
"warnings",
"label"
],
"additionalProperties": false
}
},
"missingInputs": {
"type": "array",
"items": {
"type": "object",
"properties": {
"fields": {
"type": "array",
"items": {
"type": "string",
"enum": [
"currency",
"price",
"productCost",
"shippingCost",
"paymentFeeRate",
"refundRate",
"targetProfit"
]
}
},
"questions": {
"type": "array",
"items": {
"type": "string"
}
},
"label": {
"type": "string"
}
},
"required": [
"fields",
"questions",
"label"
],
"additionalProperties": false
}
}
},
"required": [
"status"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢build_campaign_utm(url, source, medium, campaign, content, ...)
Format one HTTP(S) campaign URL with source, medium and campaign, plus optional content and term. Trims and lowercases UTM values and replaces whitespace with underscores. Returns naming warnings. Never visits the URL, sends a message, saves a campaign or changes tracking settings.
输入模式
{
"type": "object",
"properties": {
"url": {
"type": "string",
"minLength": 1,
"maxLength": 2048,
"description": "Destination URL. This tool formats it locally and never fetches it."
},
"source": {
"type": "string",
"minLength": 1,
"maxLength": 120
},
"medium": {
"type": "string",
"minLength": 1,
"maxLength": 120
},
"campaign": {
"type": "string",
"minLength": 1,
"maxLength": 120
},
"content": {
"type": "string",
"minLength": 1,
"maxLength": 120
},
"term": {
"type": "string",
"minLength": 1,
"maxLength": 120
}
},
"required": [
"url",
"source",
"medium",
"campaign"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}输出模式
{
"type": "object",
"properties": {
"url": {
"type": "string"
},
"namingWarnings": {
"type": "array",
"items": {
"type": "object",
"properties": {
"code": {
"type": "string"
},
"field": {
"type": "string"
}
},
"required": [
"code",
"field"
],
"additionalProperties": false
}
},
"normalization": {
"type": "string"
},
"fetched": {
"type": "boolean",
"const": false
}
},
"required": [
"url",
"namingWarnings",
"normalization",
"fetched"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢search_ecommerce_resources(query, locale, limit)
Search Ecomwith published tutorial metadata, internal tool descriptions and public answer summaries in English or Chinese. Returns up to ten source links with content access labels. Does not search the wider web, fetch websites or return paid lesson bodies, drafts or customer data.
输入模式
{
"type": "object",
"properties": {
"query": {
"type": "string",
"minLength": 2,
"maxLength": 160
},
"locale": {
"default": "en",
"type": "string",
"enum": [
"en",
"zh"
]
},
"limit": {
"default": 5,
"type": "integer",
"minimum": 1,
"maximum": 10
}
},
"required": [
"query"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}输出模式
{
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"tutorial",
"tool",
"answer"
]
},
"title": {
"type": "string"
},
"summary": {
"type": "string"
},
"url": {
"type": "string"
},
"contentAccess": {
"type": "string"
}
},
"required": [
"kind",
"title",
"summary",
"url",
"contentAccess"
],
"additionalProperties": false
}
},
"scope": {
"type": "string"
},
"locale": {
"type": "string",
"enum": [
"en",
"zh"
]
}
},
"required": [
"items",
"scope",
"locale"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢list_public_weekly_reports(locale, limit)
List up to ten Ecomwith published or corrected ecommerce reports with public summaries and dates. Does not return drafts, withdrawn issues, member-only sections, subscriber data or unpublished research. These are dated editorial reports, not a live news feed.
输入模式
{
"type": "object",
"properties": {
"locale": {
"default": "en",
"type": "string",
"enum": [
"en",
"zh"
]
},
"limit": {
"default": 5,
"type": "integer",
"minimum": 1,
"maximum": 10
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}输出模式
{
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"slug": {
"type": "string"
},
"title": {
"type": "string"
},
"summary": {
"type": "string"
},
"url": {
"type": "string"
},
"status": {
"type": "string",
"enum": [
"published",
"corrected"
]
},
"publishedAt": {
"type": "string"
},
"updatedAt": {
"type": "string"
}
},
"required": [
"slug",
"title",
"summary",
"url",
"status",
"publishedAt",
"updatedAt"
],
"additionalProperties": false
}
},
"locale": {
"type": "string",
"enum": [
"en",
"zh"
]
}
},
"required": [
"items",
"locale"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢get_public_weekly_report(slug, locale)
Read guest excerpts and cited source links for one published or corrected Ecomwith weekly report, using a slug returned by list_public_weekly_reports. Retain publication and correction dates and each cited source verificationStatus label; do not upgrade weaker evidence. Rechecks publication state each call. A withdrawn, unpublished, missing or unavailable-language report is not returned. No member content or private research notes are accessible.
输入模式
{
"type": "object",
"properties": {
"slug": {
"type": "string",
"minLength": 1,
"maxLength": 160,
"pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$"
},
"locale": {
"default": "en",
"type": "string",
"enum": [
"en",
"zh"
]
}
},
"required": [
"slug"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}输出模式
{
"type": "object",
"properties": {
"report": {
"type": "object",
"properties": {
"slug": {
"type": "string"
},
"title": {
"type": "string"
},
"summary": {
"type": "string"
},
"url": {
"type": "string"
},
"status": {
"type": "string",
"enum": [
"published",
"corrected"
]
},
"publishedAt": {
"type": "string"
},
"updatedAt": {
"type": "string"
},
"sections": {
"type": "array",
"items": {
"type": "object",
"properties": {
"title": {
"type": "string"
},
"text": {
"type": "string"
}
},
"required": [
"title",
"text"
],
"additionalProperties": false
}
},
"sources": {
"type": "array",
"items": {
"type": "object",
"properties": {
"title": {
"type": "string"
},
"url": {
"type": "string"
},
"verificationStatus": {
"type": "string"
}
},
"required": [
"title",
"url",
"verificationStatus"
],
"additionalProperties": false
}
}
},
"required": [
"slug",
"title",
"summary",
"url",
"status",
"publishedAt",
"updatedAt",
"sections",
"sources"
],
"additionalProperties": false
}
},
"required": [
"report"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}社区
证据