Shopify Content Engine MCP Server
Shopify Content Engine для товаров
Конвейер n8n, который превращает «голый» товар (product_name, product_description) в полный маркетинговый набор, готовый к рецензированию — SEO-исследование, текст карточки товара, пост в блоге, рекламу в Google + Meta, посты в соцсетях, письмо и изображение героя — и записывает одну строку на товар в лист рецензирования. Ничто не публикуется автоматически; утверждает человек.
Наряду с рабочим процессом в этом репозитории поставляются две вещи, которые делают его работоспособным, а не демонстрацией: тестовый стенд (eval harness), который оценивает каждый сгенерированный набор по собственным правилам движка (ограничения длины, запрещённые слова, выдуманные факты), и 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 Structured Outputs ( |
Повторные запуски / стоимость | Шлюз идемпотентности пропускает всё, что уже имеет |
Один плохой товар | Повторные попытки на каждый вызов + продолжение при ошибке. Сбои записываются как строки |
Неотловленные сбои | Направляются в отдельный рабочий процесс Error Handler → оповещение по электронной почте. |
Тестирование без побочных эффектов |
|
Публикация | Никогда не автоматическая. Черновики попадают на вкладку |
Ограничения платформы | Жёсткие ограничения (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 Sheet; 📥 Read Products — отмеченная точка замены на Shopify → Get Products (title → product_name, body_html → product_description).
Оценки
python -m evals оценивает наборы (строки на вкладке Review) по правилам, которые движок обещает соблюдать. Правила берутся прямо из config/generation.config.yaml и config/brand-voice.yaml, поэтому изменение ограничения в конфиге меняет оценку.
Семейство проверок | Примеры |
Полнота |
|
Жёсткие ограничения | 8 символьных ограничений, 3 диапазона слов, ≤15 заголовков Google, каждый ≤30 символов, 5–10 хэштегов |
Структура | 4–6 пунктов, H2/H3 в блоге, ровно один CTA |
Размещение SEO | основное ключевое слово в заголовке / мета-описании / первом предложении (предупреждения) |
Голос бренда | запрещённые слова из |
Только факты | числа+единицы и слова-утверждения в выводе должны присутствовать во входных данных товара |
Судья LLM ( | 1–5 по критериям «только факты», голос бренда, качество SEO + процитированные неподтверждённые утверждения (Structured Outputs, опционально, требуется |
Текущий золотой набор (реальный набор из живого запуска, evals/golden/kits.json):
Товар | Оценка | Что было выявлено |
Gentle Hydrating Gel Cleanser | 88% | описание 66 слов (нужно 150–250), блог 507 слов (нужно 900–1200), письмо 28 слов (нужно 60–120) — модель недодаёт по длине; узел Parse обрезает слишком длинный текст, но пока нет повторной попытки при недостаточной длине |
Именно этот вывод и есть причина существования тестового стенда — теперь это открытый пункт (см. дорожную карту). Запустите его на своём экспорте с помощью python -m evals --input review-export.csv --min-score 0.9; ненулевой код возврата блокирует CI.
MCP-сервер
mcp_server/ предоставляет движок через Model Context Protocol (stdio):
Инструмент | Назначение |
| голос, аудитория, запрещённые слова, правило «только факты» |
| жёсткие ограничения + флаги запуска |
| пять фикстурных товаров |
| оценить черновик по тем же правилам, что и оценки |
| отправить POST на вебхук рабочего процесса с флагами запуска — по умолчанию dry-run |
Ресурсы: content-engine://columns (карта столбцов листа Review), 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).
Укажите
📥 Read Products,📖 Read Done,📤 Writeна лист с вкладкамиProductsиReview.Установите Settings → Error Workflow на импортированный обработчик ошибок.
Выполните сухой прогон пяти фикстур (
test/README.md), затем запустите по-настоящему. Флаги запуска можно передать в теле вебхука:{"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)Дорожная карта
Защита от недостаточной длины + одна самокорректирующаяся повторная попытка на этапе Parse (оценка сейчас помечает короткий текст постфактум).
Аутентификация по заголовку на триггере вебхука (учётные данные n8n) — сегодня он полагается на непредсказуемый путь.
Shopify Admin API как источник товаров и запись обратно в
Draft productза тем же шлюзом утверждения.Золотой набор: больше реальных наборов, по одному на фикстуру, и ночной запуск
--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