Shopify Content Engine MCP Server
Shopify 产品内容引擎
一个 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)为何如此构建
关注点 | 引擎的处理方式 |
幻觉规格 | 每个提示仅基于事实;评估会标记输出中任何在产品输入中不存在的数字/单位或声称词( |
脆弱的解析 | 所有三个模型调用均使用 OpenAI 结构化输出( |
重新运行 / 成本 | 幂等性门控会跳过任何 |
单个产品问题 | 每次调用重试 + 出错继续。失败项会以 |
未捕获的失败 | 路由到单独的错误处理工作流 → 发送警报邮件。 |
无副作用的测试 |
|
发布 | 从不自动。草稿会进入“审核”标签页,由人工批准。 |
平台限制 | 硬性限制(SEO 标题 ≤ 60、元描述 ≤ 155、Google 标题 ≤ 30、X ≤ 280 等)位于 |
Related MCP server: shopify
流程
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,因此更改配置文件中的限制也会更改评估。
检查系列 | 示例 |
完整性 |
|
硬性限制 | 8 个字符限制,3 个单词范围,≤15 个 Google 标题,每个 ≤30 个字符,5–10 个标签 |
结构 | 4–6 个要点,博客中的 H2/H3,恰好一个 |
SEO 放置 | 主要关键词出现在标题/元描述/第一句中(警告) |
品牌语调 | 来自 |
仅事实 | 输出中的数字+单位和声称词必须存在于产品输入中 |
LLM 评判( | 1–5 分,针对仅事实、品牌语调、SEO 质量 + 引用的无依据声称(结构化输出,可选,需要 |
当前黄金集(来自实际运行的真正工具包,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)暴露引擎:
工具 | 用途 |
| 语调、受众、禁用词、仅事实规则 |
| 硬性限制 + 运行标志 |
| 五个固定产品 |
| 使用与评估相同的规则对草稿进行评分 |
| 向工作流 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)快速开始
工作流
导入
workflows/error-handler.workflow.json,然后导入workflows/shopify-content-engine.workflow.json。在 OpenAI / Google Sheets / Drive / Gmail 节点上重新选择凭据(不会存储在 JSON 中)。
将
📥 读取产品、📖 读取已完成、📤 写入指向一个包含“产品”和“审核”标签页的表格。将 设置 → 错误工作流 设置为已导入的错误处理程序。
对五个固定产品进行 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
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Flicense-qualityDmaintenanceAI-powered Shopify Admin via Claude + MCP, enabling full store management through conversation including products, collections, analytics, and bulk operations.
- AlicenseAqualityCmaintenanceEnables AI agents to read and write Shopify store data including products, orders, customers, inventory, and more via the Admin GraphQL API.2858MIT
- Flicense-qualityDmaintenanceEnables to manage Shopify store resources like products, orders, customers, inventory, and collections through natural language using the Shopify Admin API.
- AlicenseCqualityDmaintenanceEnables AI assistants like Cursor or Claude Desktop to fully manage a Shopify store using the Model Context Protocol, with tools for products, orders, customers, inventory, discounts, and analytics.32MIT
Related MCP Connectors
Manage your Savanto store from your AI: catalog, content, prompts, and analytics, by chat.
Run GenflowAI templates and AI creative workflows for ecommerce visuals, UGC ads, and videos.
Manage your Jumpseller store with AI. Products, orders, customers, and more.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/AbdulRehman0004/shopify-ai-content-engine'
If you have feedback or need assistance with the MCP directory API, please join our Discord server