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 광고, 소셜 게시물, 이메일, 히어로 이미지 — 각 제품당 한 행씩 검토 시트에 기록합니다. 아무것도 자동으로 게시되지 않으며, 사람이 승인합니다.

워크플로우와 함께 이 저장소는 데모가 아닌 실제 작동 가능한 두 가지를 제공합니다: 엔진 자체 규칙(길이 제한, 금지 단어, 허위 사실)에 따라 생성된 모든 키트를 평가하는 평가 도구와, 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)

이렇게 구축한 이유

문제점

엔진의 처리 방식

환각 스펙

모든 프롬프트는 사실만 포함하며, 평가는 제품 입력에 없는 숫자/단위 또는 주장 단어(clinically, certified, vegan, …)를 플래그 처리합니다.

취약한 파싱

세 가지 모델 호출 모두 OpenAI Structured Outputs(strict: true)를 사용해 스키마가 유효한 JSON을 생성하며, 정규식이 필요 없습니다.

재실행 / 비용

멱등성 게이트가 status=done인 항목을 건너뛰고, forceRegenerate로 무시 가능합니다. 벌크 모델은 gpt-4o-mini입니다.

하나의 잘못된 제품

호출당 재시도 + 오류 시 계속 실행합니다. 실패는 status=failed 행과 failure_reason(데드 레터)로 기록되며, 배치는 중단되지 않습니다.

포착되지 않은 실패

별도의 오류 처리기 워크플로우로 라우팅되어 알림 이메일을 발송합니다.

부작용 없는 테스트

dryRun=true 설정 시 생성 및 검증만 수행하고 기록하지 않습니다.

게시

절대 자동으로 이루어지지 않습니다. 초안은 Review 탭에 저장되고 사람이 승인합니다.

플랫폼 제한

하드 제한(SEO 제목 ≤ 60, 메타 ≤ 155, Google 헤드라인 ≤ 30, X ≤ 280, …)은 config/에 저장되며, Parse 노드에서 적용되고 평가에서 다시 확인됩니다.

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 스프레드시트이며, 📥 Read Products는 Shopify → Get Products(title → product_name, body_html → product_description)로 교체 가능한 지점입니다.

평가

python -m evals를 실행하면 엔진이 지키기로 약속한 규칙에 따라 키트(Review 탭 행)를 평가합니다. 규칙은 config/generation.config.yaml과 config/brand-voice.yaml에서 직접 가져오므로, 설정에서 제한을 변경하면 평가도 함께 변경됩니다.

검사 군

예시

완전성

status=done, 19개 콘텐츠 필드 모두 존재

하드 제한

8개 문자 제한, 3개 단어 범위, 각 30자 이하 Google 헤드라인 15개 이하, 해시태그 5~10개

구조

글머리 기호 4~6개, 블로그의 H2/H3, 정확히 한 개의 {PRODUCT_URL} CTA, 슬러그 형식

SEO 배치

제목/메타/첫 문장에 기본 키워드 포함 여부 (경고)

브랜드 톤

brand-voice.yaml의 금지 단어

사실만

출력에 있는 숫자+단위 및 주장 단어는 제품 입력에 존재해야 함

LLM 판사 (--judge)

1~5점 (사실만, 브랜드 톤, SEO 품질 + 인용된 지원되지 않는 주장) (Structured Outputs, 선택 사항, OPENAI_API_KEY 필요)

현재 골든 세트 (실제 실행에서 생성된 키트, evals/golden/kits.json):

제품

점수

포착한 내용

Gentle Hydrating Gel Cleanser

88%

설명 66단어 (150250 필요), 블로그 507단어 (9001200 필요), 이메일 28단어 (60~120 필요) — 모델이 길이를 충분히 생성하지 못함; Parse 노드는 초과 길이 텍스트를 자르지만 최소 길이 재시도는 아직 없음

이 발견이 바로 평가 도구가 존재하는 이유입니다 — 이제 미해결 항목입니다 (로드맵 참조). python -m evals --input review-export.csv --min-score 0.9로 자신의 내보내기에 대해 실행하세요; 0이 아닌 종료 코드가 CI를 차단합니다.

MCP 서버

mcp_server/는 Model Context Protocol(stdio)을 통해 엔진을 노출합니다:

도구

목적

get_brand_voice

톤, 대상, 금지 단어, 사실만 규칙

get_generation_limits

하드 제한 + 실행 플래그

list_sample_products

다섯 가지 고정 제품

validate_content_kit(row, product)

평가와 동일한 규칙으로 초안 점수화

run_content_engine(dry_run=True, …)

실행별 플래그로 워크플로우 웹훅 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)

빠른 시작

워크플로우

  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를 Products와 Review 탭이 있는 시트로 지정합니다.

  4. Settings → Error Workflow를 가져온 오류 처리기로 설정합니다.

  5. 다섯 가지 고정 제품으로 드라이 런을 수행한 후 (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

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.
    6 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