Skip to main content
Glama
AbdulRehman0004

Shopify Content Engine MCP Server

Shopify 製品コンテンツエンジン

CI n8n OpenAI MCP Python License

n8n パイプラインで、最低限の製品情報(product_nameproduct_description)から、レビュー可能なマーケティングキット(SEO 調査、商品ページコピー、ブログ記事、Google + Meta 広告、ソーシャル投稿、メール、ヒーロー画像)を生成し、1 行あたり 1 製品を レビューシート に書き込みます。自動公開は一切行われず、人間が承認します。

ワークフローに加えて、このリポジトリには、実際に運用可能な 2 つの要素も含まれています。生成されたすべてのキットをエンジン自身のルール(文字数制限、禁止ワード、捏造事実)に照らしてスコアリングする 評価ハーネス と、Claude Desktop、Claude Code、Cursor、その他のエージェントがドラフトを検証したり実行をトリガーできるようにする MCP サーバー です。

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)

なぜこのように構築されたのか

懸念事項

エンジンの対応

捏造された仕様

すべてのプロンプトは事実のみに基づく。評価は、製品入力に存在しない数字/単位や主張ワード(clinicallycertifiedvegan など)をフラグ付けする。

脆弱な解析

3 つのモデル呼び出しはすべて OpenAI Structured Outputsstrict: true)を使用。スキーマ検証済みの JSON、正規表現不要。

再実行 / コスト

冪等性ゲートにより、status=done のものはスキップ。forceRegenerate で上書き可能。バルクモデルは gpt-4o-mini

1 つの不良製品

呼び出しごとのリトライ + エラー時継続。失敗は status=failed 行として failure_reason(デッドレター)とともに書き込まれ、バッチは停止しない。

キャッチされない障害

別のエラーハンドラーワークフローにルーティングされ、警告メールを送信。

副作用なしのテスト

dryRun=true で生成と検証を行うが、書き込みは行わない。

公開

自動的には行われない。ドラフトは Review タブに格納され、人間が承認する。

プラットフォームの制限

ハードキャップ(SEO タイトル ≤ 60、メタ ≤ 155、Google 見出し ≤ 30、X ≤ 280 など)は config/ にあり、Parse ノードで強制され、評価でも再チェックされる。

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 シートです。📥 Read Products は、 Shopify → Get Productstitle → product_namebody_html → product_description)への交換ポイントとして明確にマークされています。

評価

python -m evals は、キット(Review タブの行)をエンジンが守るルールに照らしてスコアリングします。 ルールは config/generation.config.yamlconfig/brand-voice.yaml から直接取得されるため、設定のキャップを変更すると評価も変更されます。

チェックファミリー

完全性

status=done、19 のコンテンツフィールドすべてが存在する

ハードキャップ

8 つの文字数制限、3 つの単語数範囲、各 30 文字以内の Google 見出し 15 個以下、5~10 個のハッシュタグ

構造

4~6 個の箇条書き、ブログ内の H2/H3、{PRODUCT_URL} CTA が 1 つだけ、スラッグ形式

SEO 配置

プライマリキーワードがタイトル/メタ/最初の文に含まれているか(警告)

ブランドボイス

brand-voice.yaml からの禁止ワード

事実のみ

出力内の数字+単位と主張ワードは製品入力に存在しなければならない

LLM 判定(--judge

1~5 で事実のみ、ブランドボイス、SEO 品質、引用された未検証の主張(Structured Outputs、オプトイン、OPENAI_API_KEY が必要)

現在のゴールデンセット(実際のランからの本物のキット、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)を介してエンジンを公開します:

ツール

目的

get_brand_voice

ボイス、オーディエンス、禁止ワード、事実のみルール

get_generation_limits

ハードキャップと実行フラグ

list_sample_products

5 つの固定テスト製品

validate_content_kit(row, product)

評価と同じルールでドラフトをスコアリング

run_content_engine(dry_run=True, …)

実行フラグ付きでワークフローの webhook に POST — デフォルトはドライラン

リソース: 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)

クイックスタート

ワークフロー

  1. workflows/error-handler.workflow.json をインポートし、次に workflows/shopify-content-engine.workflow.json をインポートします。

  2. OpenAI / Google Sheets / Drive / Gmail ノードの認証情報を再選択します(JSON には保存されていません)。

  3. 📥 Read Products📖 Read Done📤 Write を、ProductsReview のタブがあるシートに指定します。

  4. 設定 → エラーワークフロー をインポートしたエラーハンドラーに設定します。

  5. 5 つの固定テスト(test/README.md)をドライランし、その後本番実行します。 実行フラグは webhook ボディに POST できます: {"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 ステップでの最低長さガード + 1 回の自己修正リトライ(現在評価は事後に短いコピーをフラグ付けします)。

  • Webhook トリガーでのヘッダー認証(n8n 認証情報)— 現在は推測困難なパスに依存しています。

  • Shopify Admin API を製品ソースとし、同じ承認ゲートの背後で Draft product を書き戻す。

  • ゴールデンセット: 各固定製品に対してより多くの実際のキット、および夜間の --judge 実行。

ライセンス

MIT

A
license - permissive license
-
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

  • A
    license
    A
    quality
    C
    maintenance
    Enables AI agents to read and write Shopify store data including products, orders, customers, inventory, and more via the Admin GraphQL API.
    28
    58
    MIT
  • F
    license
    -
    quality
    D
    maintenance
    Enables to manage Shopify store resources like products, orders, customers, inventory, and collections through natural language using the Shopify Admin API.
  • A
    license
    C
    quality
    D
    maintenance
    Enables 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.
    32
    MIT

View all related MCP servers

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.

View all MCP Connectors

Latest Blog Posts

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