/ 디렉터리 / 플레이그라운드 / Webiny MCP
● 공식 webiny 🔑 본인 키 필요

Webiny MCP

제작: webiny · webiny/webiny-js

Claude에서 Webiny 헤드리스 CMS를 조작 — 관리자 UI를 클릭하지 않고도 콘텐츠 모델 생성, 일괄 편집, 페이지 스캐폴딩.

Webiny는 AWS 기반의 서버리스 헤드리스 CMS이며, 그 MCP 서버는 GraphQL 관리자 API를 에이전트 도구로 노출합니다. Claude에게 Webiny GraphQL을 직접 작성하게 하는 대신, 콘텐츠 모델, 엔트리, 페이지 빌더 페이지, 파일 관리자, APW 게시 워크플로에 대한 타입이 있는 도구를 제공합니다 — 모두 사용자 본인의 인증 토큰으로 지원.

왜 쓰나요

핵심 기능

라이브 데모

실제 사용 모습

webiny-mcp.replay ▶ 준비됨
0/0

설치

클라이언트 선택

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "webiny-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@webiny/mcp-server",
        "--api-url",
        "https://your-project.cloudfront.net/cms/manage/en-US",
        "--token",
        "${WEBINY_TOKEN}"
      ]
    }
  }
}

Claude Desktop → Settings → Developer → Edit Config 열기. 저장 후 앱 재시작.

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "webiny-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@webiny/mcp-server",
        "--api-url",
        "https://your-project.cloudfront.net/cms/manage/en-US",
        "--token",
        "${WEBINY_TOKEN}"
      ]
    }
  }
}

Cursor는 Claude Desktop과 동일한 mcpServers 스키마 사용. 프로젝트 설정이 전역보다 우선.

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "webiny-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@webiny/mcp-server",
        "--api-url",
        "https://your-project.cloudfront.net/cms/manage/en-US",
        "--token",
        "${WEBINY_TOKEN}"
      ]
    }
  }
}

Cline 사이드바의 MCP Servers 아이콘 클릭 후 "Edit Configuration" 선택.

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "webiny-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@webiny/mcp-server",
        "--api-url",
        "https://your-project.cloudfront.net/cms/manage/en-US",
        "--token",
        "${WEBINY_TOKEN}"
      ]
    }
  }
}

Claude Desktop과 같은 형식. Windsurf 재시작 후 적용.

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "webiny-mcp",
      "command": "npx",
      "args": [
        "-y",
        "@webiny/mcp-server",
        "--api-url",
        "https://your-project.cloudfront.net/cms/manage/en-US",
        "--token",
        "${WEBINY_TOKEN}"
      ]
    }
  ]
}

Continue는 맵이 아닌 서버 오브젝트 배열 사용.

~/.config/zed/settings.json
{
  "context_servers": {
    "webiny-mcp": {
      "command": {
        "path": "npx",
        "args": [
          "-y",
          "@webiny/mcp-server",
          "--api-url",
          "https://your-project.cloudfront.net/cms/manage/en-US",
          "--token",
          "${WEBINY_TOKEN}"
        ]
      }
    }
  }
}

context_servers에 추가. 저장 시 Zed가 핫 리로드.

claude mcp add webiny-mcp -- npx -y @webiny/mcp-server --api-url https://your-project.cloudfront.net/cms/manage/en-US --token ${WEBINY_TOKEN}

한 줄 명령. claude mcp list로 확인, claude mcp remove로 제거.

사용 사례

실전 활용법: Webiny MCP

설명으로부터 새 콘텐츠 모델 스캐폴딩

👤 Webiny 개발자 / 콘텐츠 엔지니어 ⏱ ~25 min intermediate

언제 쓸까: PM이 '이 필드들을 가진 Case Studies 섹션이 필요합니다'라고 할 때. Claude가 이것을 Webiny 모델로 변환하게 하고 싶을 때.

사전 조건
  • 실행 중인 Webiny 프로젝트npx create-webiny-project로 AWS에 배포
  • 개인 액세스 토큰 — 관리자 → 설정 → 개인 액세스 토큰에서 생성
흐름
  1. MCP 연결
    dev 환경의 manage API URL을 사용하여 Webiny MCP를 추가하세요. 기존 모델을 나열할 수 있는지 확인하세요.✓ 복사됨
    → list_models가 내장 모델을 최소 하나 이상 반환
  2. 모델 스캐폴딩
    다음 필드로 CaseStudy 콘텐츠 모델을 생성하세요: title (text, required), client (text), summary (rich text), heroImage (file ref), publishedAt (datetime), tags (text, multi). 단수 Case Study, 복수 Case Studies.✓ 복사됨
    → create_content_model이 한 번 호출됨; 필드 ID가 camelCase로 일관되게 사용됨
  3. 샘플 엔트리 시드
    편집팀이 확인할 수 있도록 플레이스홀더 엔트리 3개를 추가하세요.✓ 복사됨
    → 사실적인 플레이스홀더 콘텐츠로 create_entry를 통해 3개 엔트리 생성됨

결과: 관리자 UI를 클릭하는 대신 몇 분 안에 작동하는 모델 + 샘플 데이터가 편집팀에 준비됨

함정
  • 필드 ID에 실수로 공백이 포함됨 — Webiny가 거부함; MCP가 정규화하지만 커밋 전에 항상 미리보기
  • URL에 잘못된 로케일 — URL에 /en-US/가 포함됨 — 기본 로케일과 일치시키기
함께 쓰기: filesystem

200개의 케이스 스터디에서 오타를 고치기 위한 일괄 업데이트

👤 콘텐츠 운영팀 ⏱ ~30 min intermediate

언제 쓸까: 법무팀이 오래된 엔트리의 잘못된 회사명을 지적했을 때; 200번 클릭하고 싶지 않을 때.

흐름
  1. 영향받은 엔트리 검색
    Webiny: summary에 'Acme Corp'가 포함된 CaseStudy 엔트리를 검색하세요. ID를 나열하세요.✓ 복사됨
    → search_entries가 일치하는 모든 ID 반환
  2. 드라이런 교체
    각각에 대해 'Acme Corp'을 'Acme Inc.'로 교체한 새 summary를 제안하세요. 먼저 3가지 예시를 보여주세요.✓ 복사됨
    → 쓰기 전에 3개의 차이가 표시됨
  3. 적용
    맞아 보입니다. 일치하는 모든 엔트리에 변경사항을 적용하고 재게시하세요.✓ 복사됨
    → update_entry + publish_entry가 각 항목에 대해 호출됨, 진행 횟수와 함께

결과: 단일 대화에서 수백 개의 엔트리가 수정되고 재게시됨, 감사 추적 포함

함정
  • 자동 게시가 검토를 건너뜀 — draft + APW 워크플로 사용 — 프로덕션에 일괄 편집을 자동 게시하지 말 것

브리프에서 Page Builder 랜딩 페이지 생성

👤 마케팅 개발자 ⏱ ~20 min intermediate

언제 쓸까: 카피가 있고 블록을 드래그하지 않고 Webiny의 Page Builder에 연결하고 싶을 때.

사전 조건
  • 기존 블록 템플릿 — 최소한 Hero, Features, CTA 블록이 정의되어 있어야 함
흐름
  1. 페이지 구성
    Hero + 3 Features + CTA 블록을 사용하여 'Q2 Launch'라는 제목의 Page Builder 페이지를 생성하세요. /briefs/q2.md에서 콘텐츠를 채우세요.✓ 복사됨
    → create_page가 초안 URL 반환
  2. 미리보기 및 게시
    초안 URL을 열어보세요. 승인되면 게시하세요.✓ 복사됨
    → publish_page 성공; 페이지가 라이브 상태

결과: 마케팅 랜딩 페이지가 조합되어 약 10분 안에 라이브 상태

함정
  • 블록 스키마 드리프트 — 항상 list_block_templates를 먼저 실행하여 사용 가능한 변형 확인
함께 쓰기: filesystem

조합

다른 MCP와 조합해 10배 효율

webiny-mcp + filesystem

로컬 Markdown에서 브리프를 가져와 Webiny에 페이지 카피로 게시

/briefs/q2.md를 읽고, Hero + Features + CTA가 있는 Webiny 페이지를 브리프의 콘텐츠로 생성하세요.✓ 복사됨
webiny-mcp + github

Claude가 모델을 설계한 후 모델 변경사항이 포함된 PR 열기

Webiny: CaseStudy 모델 생성. GitHub: 시드 설정에 모델을 추가하는 PR 열기.✓ 복사됨

도구

이 MCP가 노출하는 것

도구입력언제 호출비용
list_content_models (없음) 탐색 1 GraphQL call
create_content_model name, fields[] 새 섹션 스캐폴딩 1 call
search_entries model, query, filter? 영향받은 항목 찾기 1 call
create_entry model, data 단일 항목 쓰기 1 call
update_entry id, data 기존 항목 편집 1 call
publish_entry id 초안을 라이브로 승격 1 call
list_block_templates (없음) 페이지 구성 전에 1 call
create_page title, blocks[] Page Builder 저작 1 call

비용 및 제한

운영 비용

API 쿼터
AWS 계정 한도에 바인딩 (Lambda 동시성, DynamoDB 처리량)
호출당 토큰
엔트리 크기에 따라 200–3000
금액
Webiny는 무료 OSS; AWS 요금 적용
일괄 작업은 팬아웃됨 — 비용 급등을 원하지 않는다면 Lambda 동시성 상한선 설정

보안

권한, 시크릿, 파급범위

최소 스코프: personal-access-token with content read/write
자격 증명 저장: 토큰을 환경 변수에; 관리자 UI를 통해 교체
데이터 외부 송신: 사용자의 AWS CloudFront/API Gateway 엔드포인트만
절대 부여 금지: delete-environment tenant-admin

문제 해결

자주 발생하는 오류와 해결

401 Unauthorized

토큰이 만료되었거나 잘못된 환경. 관리자에서 새 PAT 생성

확인: curl -H 'Authorization: Bearer $TOKEN' $URL
필드 유효성 검사 실패

필드 타입이 정확히 일치해야 함 — text vs rich-text vs long-text. list_content_models를 사용하여 스키마 검사

일괄 작업에서 Lambda 타임아웃

50개 그룹으로 배치; MCP는 쓰기를 자동으로 페이지네이션하지 않음

대안

Webiny MCP 다른 것과 비교

대안언제 쓰나단점/장점
Strapi MCPWebiny가 아닌 Strapi를 사용할 때다른 CMS; 다른 배포 방식 (컨테이너 vs 서버리스)
Contentful MCP자체 호스팅 대신 SaaS CMS를 사용할 때벤더 종속; OSS 아님

더 보기

리소스

📖 GitHub에서 공식 README 읽기

🐙 열린 이슈 보기

🔍 400+ MCP 서버 및 Skills 전체 보기