Skip to main content
Glama
Shopify Content Engine MCP Server

Shopify Content Engine MCP Server

Shopify 产品内容引擎

CI n8n OpenAI MCP Python License

一个 n8n 管道,将原始产品(product_name、product_description)转化为完整的、可供审核的营销工具包——包括 SEO 研究、产品页面文案、博客文章、Google + Meta 广告、社交媒体帖子、电子邮件和主图——并将每个产品的一行数据写入审核表。不会自动发布任何内容;需要人工批准。

除了工作流之外,本仓库还提供了使其可操作而非仅演示的两样东西:一个评估工具,根据引擎自身的规则(长度限制、禁用词、虚构事实)对每个生成的工具包进行评分;以及一个 MCP 服务器,以便任何代理——Claude Desktop、Claude Code、Cursor 或您自己的代理——都可以验证草稿并触发运行。

product_name + product_description
        │
        ▼
 ┌────────────── n8n ──────────────┐
 │ idempotency gate → 3 LLM calls  │──▶ Review sheet (status=done | failed)
 │ strict JSON → validate → map    │──▶ hero image → Drive
 │ dry-run · retry · dead-letter   │──▶ batch summary email
 └─────────────────────────────────┘
        ▲                       │
   MCP server               eval harness
 (validate / run)      (rules + LLM judge, gates CI)

为何如此构建

关注点

引擎的处理方式

幻觉规格

每个提示仅基于事实;评估会标记输出中任何在产品输入中不存在的数字/单位或声称词(clinically、certified、vegan 等)。

脆弱的解析

所有三个模型调用均使用 OpenAI 结构化输出(strict: true)——符合模式的 JSON,无需正则表达式。

重新运行 / 成本

幂等性门控会跳过任何 status=done 的内容;forceRegenerate 可覆盖。批量模型为 gpt-4o-mini。

单个产品问题

每次调用重试 + 出错继续。失败项会以 status=failed 行写入,并附带 failure_reason(死信)——批次不会停止。

未捕获的失败

路由到单独的错误处理工作流 → 发送警报邮件。

无副作用的测试

dryRun=true 会生成并验证,但不写入任何内容。

发布

从不自动。草稿会进入“审核”标签页,由人工批准。

平台限制

硬性限制(SEO 标题 ≤ 60、元描述 ≤ 155、Google 标题 ≤ 30、X ≤ 280 等)位于 config/ 中,在解析节点中强制执行,并由评估重新检查。

Related MCP server: Shopify MCP Server

流程

Manual / Schedule / Webhook ─▶ ⚙️ Config ─▶ 📥 Read Products [swap point → Shopify]
  ─▶ 📖 Read Done ─▶ 🚦 Idempotency Gate ─▶ 🔢 Limit ─▶ 🔁 Loop (1 product at a time)
        ─▶ 🤖 A: SEO + Product Page ─▶ 🤖 B: Blog ─▶ 🤖 C: Ads / Social / Email / Image prompt
        ─▶ 🧩 Parse, Validate & Map ─▶ 🧪 Dry run?
              ├─ yes ─▶ 📝 Dry-run log (no write) ─▶ loop
              └─ no  ─▶ 🖼️ Images? ─▶ 🎨 gpt-image-1 ─▶ ☁️ Drive ─▶ 📤 Upsert Review row ─▶ loop
  🔁 done ─▶ 📊 Batch summary ─▶ ✉️ Email (optional)
  (uncaught) ─▶ ⚠️ Error Handler workflow ─▶ alert email

完整 Mermaid 图:docs/architecture.mmd。 目前产品来源是 Google 表格;📥 读取产品 是一个标记的切换点,用于 Shopify → 获取产品(title → product_name,body_html → product_description)。

评估

python -m evals 根据引擎承诺遵守的规则对工具包(审核标签页中的行)进行评分。 规则直接来自 config/generation.config.yaml 和 config/brand-voice.yaml,因此更改配置文件中的限制也会更改评估。

检查系列

示例

完整性

status=done,所有 19 个内容字段均存在

硬性限制

8 个字符限制,3 个单词范围,≤15 个 Google 标题,每个 ≤30 个字符,5–10 个标签

结构

4–6 个要点,博客中的 H2/H3,恰好一个 {PRODUCT_URL} CTA,slug 格式

SEO 放置

主要关键词出现在标题/元描述/第一句中(警告)

品牌语调

来自 brand-voice.yaml 的禁用词

仅事实

输出中的数字+单位和声称词必须存在于产品输入中

LLM 评判(--judge)

1–5 分,针对仅事实、品牌语调、SEO 质量 + 引用的无依据声称(结构化输出,可选,需要 OPENAI_API_KEY)

当前黄金集(来自实际运行的真正工具包,evals/golden/kits.json):

产品

得分

捕获的问题

温和保湿洁面凝胶

88%

描述 66 个单词(期望 150–250),博客 507 个单词(期望 900–1200),电子邮件 28 个单词(期望 60–120)——模型在长度上表现不足;解析节点会截断过长的文本,但目前没有最小长度重试机制

这一发现正是评估工具存在的意义——它现在是一个待办事项(参见路线图)。使用 python -m evals --input review-export.csv --min-score 0.9 针对您自己的导出运行;非零退出码会门控 CI。

MCP 服务器

mcp_server/ 通过模型上下文协议(stdio)暴露引擎:

工具

用途

get_brand_voice

语调、受众、禁用词、仅事实规则

get_generation_limits

硬性限制 + 运行标志

list_sample_products

五个固定产品

validate_content_kit(row, product)

使用与评估相同的规则对草稿进行评分

run_content_engine(dry_run=True, …)

向工作流 webhook 发送 POST 请求,附带每次运行的标志——默认 dry-run

资源:content-engine://columns(审核表列映射),content-engine://prompts/{A|B|C}。

Claude Desktop / Claude Code 配置:

{
  "mcpServers": {
    "shopify-content-engine": {
      "command": "content-engine-mcp",
      "env": { "N8N_WEBHOOK_URL": "https://<your-instance>/webhook/shopify-content-engine-run" }
    }
  }
}

仓库布局

workflows/     shopify-content-engine.workflow.json · error-handler.workflow.json   (import these)
prompts/       system prompts A / B / C + prompt library (version-controlled mirror of ⚙️ Config)
config/        brand-voice.yaml · generation.config.yaml                            (limits, flags)
docs/          runbook.md · architecture.mmd · output-sheet-columns.md
test/          product-fixtures.json (5 products) · dry-run checklist · a real generated kit
evals/         checks.py (rules) · judge.py (LLM judge) · golden/ · tests/
mcp_server/    server.py · tests/
scripts/       check_workflows.py — static checks on the exported JSON (runs in CI)

快速开始

工作流

  1. 导入 workflows/error-handler.workflow.json,然后导入 workflows/shopify-content-engine.workflow.json。

  2. 在 OpenAI / Google Sheets / Drive / Gmail 节点上重新选择凭据(不会存储在 JSON 中)。

  3. 将 📥 读取产品、📖 读取已完成、📤 写入 指向一个包含“产品”和“审核”标签页的表格。

  4. 将 设置 → 错误工作流 设置为已导入的错误处理程序。

  5. 对五个固定产品进行 dry-run(test/README.md),然后实际运行。 运行标志可以在 webhook 正文中发布:{"dryRun": true, "enableImages": false}。

评估 + MCP

pip install -e ".[mcp,dev]"
python -m evals                     # score the golden set
python -m evals --input export.csv  # score your own Review-tab export
pytest                              # 27 tests: rules, negative cases, MCP tools in-process
content-engine-mcp                  # start the MCP server (stdio)

路线图

  • 在解析步骤中添加最小长度保护 + 一次自我纠正重试(目前评估会在事后标记短文案)。

  • 在 webhook 触发器上添加标头认证(n8n 凭据)——目前依赖于不可猜测的路径。

  • 将 Shopify Admin API 作为产品来源,并在同一批准门控后添加“草稿产品”写回。

  • 黄金集:更多真实工具包,每个固定产品一个,以及每晚的 --judge 运行。

许可证

MIT

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables to manage Shopify store resources like products, orders, customers, inventory, and collections through natural language using the Shopify Admin API.
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI agents to manage Shopify stores via natural language, with tools for products, orders, inventory, customers, and analytics.
    2 npm
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Drives an AI CMO to add products, generate on-brand content (UGC video, posts, images), approve, and publish across 30+ platforms via natural language.
    2
    121 npm
    MIT