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

Cloudflare

제작: cloudflare · cloudflare/mcp-server-cloudflare

공식 Cloudflare MCP — Workers 배포, D1 쿼리, R2 및 KV 관리, 로그 및 분석 조회를 모두 채팅에서 수행합니다.

Cloudflare의 공식 MCP입니다(실제로는 *.mcp.cloudflare.com에서 원격으로 제공되는 패밀리). Workers 배포 및 로그, D1 SQL, KV/R2 스토리지, DNS 존, Radar 분석을 지원합니다. OAuth 기반이므로 수동으로 API 토큰을 관리할 필요가 없습니다.

왜 쓰나요

핵심 기능

라이브 데모

실제 사용 모습

cloudflare.replay ▶ 준비됨
0/0

설치

클라이언트 선택

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "cloudflare": {
      "command": "npx",
      "args": [
        "-y",
        "@cloudflare/mcp-server-cloudflare"
      ]
    }
  }
}

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

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "cloudflare": {
      "command": "npx",
      "args": [
        "-y",
        "@cloudflare/mcp-server-cloudflare"
      ]
    }
  }
}

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

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "cloudflare": {
      "command": "npx",
      "args": [
        "-y",
        "@cloudflare/mcp-server-cloudflare"
      ]
    }
  }
}

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

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "cloudflare": {
      "command": "npx",
      "args": [
        "-y",
        "@cloudflare/mcp-server-cloudflare"
      ]
    }
  }
}

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

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "cloudflare",
      "command": "npx",
      "args": [
        "-y",
        "@cloudflare/mcp-server-cloudflare"
      ]
    }
  ]
}

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

~/.config/zed/settings.json
{
  "context_servers": {
    "cloudflare": {
      "command": {
        "path": "npx",
        "args": [
          "-y",
          "@cloudflare/mcp-server-cloudflare"
        ]
      }
    }
  }
}

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

claude mcp add cloudflare -- npx -y @cloudflare/mcp-server-cloudflare

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

사용 사례

실전 활용법: Cloudflare

프로덕션에서 500 오류를 발생시키는 Worker 디버깅

👤 Cloudflare Workers 개발자(온콜 대기 중) ⏱ ~15 min intermediate

언제 쓸까: Worker의 오류율이 급증했습니다. 로그, 최근 배포, 변경 사항 diff를 원하지만 대시보드를 열고 싶지는 않습니다.

사전 조건
  • MCP 클라이언트에 연결된 Cloudflare 계정 OAuth — 첫 번째 툴 호출 시 OAuth가 트리거되며, 'Workers Observability' 및 'Workers Bindings' 스코프를 승인하면 됩니다.
흐름
  1. 오류로 필터링된 최근 Worker 로그 테일링
    지난 15분간 Worker 'api-edge'의 로그를 테일링합니다. 상태가 >= 500인 항목만 필터링하고, 오류 메시지의 처음 100자로 그룹화합니다.✓ 복사됨
    → 상위 오류 템플릿, 개수 및 타임스탬프
  2. 최근 배포 나열
    'api-edge'의 최근 5개 배포를 나열합니다. 배포 시간, 작성자, 버전 해시를 표시해 주세요.✓ 복사됨
    → 배포 타임라인 — 오류 발생 시간과 상관관계 파악
  3. 필요한 경우 롤백
    오류 급증이 14:22 배포 이후부터 시작됩니다. 'api-edge'를 이전 버전으로 롤백해 주세요. 확인 전에 저에게 물어봐 주세요.✓ 복사됨
    → 파괴적 작업 수행 전 확인 프롬프트

결과: 복구된 프로덕션 Worker와 명확한 '배포 X로 인한 오류 Y' 사후 분석 노트.

함정
  • 로그 테일은 실시간만 가능하며 이미 지난 버스트를 놓칠 수 있습니다. — 과거 기간을 확인하려면 테일 대신 Logpush 또는 Analytics Engine MCP 툴을 사용하세요.
  • 롤백은 D1/KV 상태를 마이그레이션하지 않습니다. — 잘못된 배포에서 마이그레이션을 실행한 경우, Worker만 롤백해서는 부족합니다. D1 복구가 필요할 수 있습니다.
함께 쓰기: github · sentry

D1 데이터베이스에 대한 임시 분석 쿼리 실행

👤 D1을 앱 데이터용으로 사용하는 개발자 ⏱ ~10 min beginner

언제 쓸까: D1에서 가입 전환율 또는 사용 통계를 원하지만 대시보드를 작성하고 싶지는 않습니다.

흐름
  1. 올바른 데이터베이스 찾기 및 스키마 나열
    D1 데이터베이스를 나열합니다. 'prod-app'이라는 데이터베이스에 대해 모든 테이블과 열을 표시해 주세요.✓ 복사됨
    → 데이터베이스 인벤토리 및 스키마
  2. 분석 쿼리 실행
    D1 'prod-app'에서 지난 30일간 가입한 사용자를 주별로 집계합니다. events 테이블에 최소 1개 이상의 이벤트가 있는 사용자만 표시해 주세요.✓ 복사됨
    → 주별 개수, 유효한 SQL
  3. 반복 실행
    가입 소스별로 더 자세히 분석합니다. 어느 소스가 최고의 7일 활성화 비율을 갖고 있나요?✓ 복사됨
    → 소스별 비교 및 비율

결과: 의사결정 가능한 수치와 함께 표시된 SQL.

함정
  • D1은 쿼리당 행 수 및 실행 시간 제한이 있습니다. — 대규모 집계의 경우 매번 원본 이벤트를 스캔하는 대신 스케줄에 따라 요약 테이블로 사전 집계하세요.
함께 쓰기: notion

부풀어진 KV 네임스페이스 감사 및 정리

👤 캐시가 분산된 엔지니어 ⏱ ~20 min intermediate

언제 쓸까: KV 청구액이 증가했습니다. 오래된 키나 잘못 구성된 TTL을 의심합니다.

흐름
  1. 네임스페이스 현황 조사
    KV 네임스페이스 'session-cache'에서 처음 1000개 키를 나열합니다. 10개 값을 샘플링하고 구조를 알려주세요.✓ 복사됨
    → 키 패턴 분포, 샘플 값 형태
  2. 오래된 항목 식별
    session:*와 일치하는 키 중 30일 이상 액세스되지 않은 키는 몇 개입니까? (메타데이터가 있으면 사용하고, 없으면 샘플링하여 값의 타임스탬프를 확인하세요.)✓ 복사됨
    → 오래된 키 추정값 및 사용된 기준
  3. 안전하게 삭제
    session:expired:*와 일치하는 키를 100개씩 배치로 삭제합니다. 진행하기 전에 첫 번째 배치를 보여주세요.✓ 복사됨
    → 삭제 전 배치 미리보기

결과: 더 깔끔한 KV 네임스페이스와 낮은 스토리지 비용.

함정
  • KV는 최종적으로 일관성을 가지므로 삭제 후 에지 POP에서 잠시 복구될 수 있습니다. — 대량 삭제 후 즉시 일관성을 신뢰하지 마세요. 1분 후 상태를 확인하세요.

도메인 마이그레이션 전 DNS 레코드 검토

👤 공급자 간 도메인을 마이그레이션하는 Ops 엔지니어 ⏱ ~15 min beginner

언제 쓸까: 네임서버를 변경하려고 합니다. MX, DMARC 또는 잊힌 하위 도메인을 손실하지 않도록 모든 레코드를 인벤토리하세요.

흐름
  1. 모든 레코드 내보내기
    example.com 존의 모든 DNS 레코드를 나열합니다. 유형별로 그룹화하세요. MX의 우선순위와 SRV의 가중치를 포함하세요.✓ 복사됨
    → 완전한 레코드 인벤토리
  2. 중요한 레코드 표시
    이메일을 중단할 수 있는 항목(MX, TXT의 SPF, DKIM, DMARC) 및 타사 서비스(Stripe, HubSpot, 상태 페이지)를 가리키는 A/AAAA/CNAME을 강조해 주세요.✓ 복사됨
    → 중요 레코드 목록 및 근거
  3. 마이그레이션 체크리스트 작성
    이것을 새로운 공급자에서 실행할 수 있는 체크리스트로 변환하세요. 각 레코드에 대상, TTL, '마이그레이션 후 테스트' 단계를 포함하세요.✓ 복사됨
    → 복사-붙여넣기 가능한 런북

결과: 어떤 레코드도 놓치지 않는 마이그레이션 당일 런북.

함정
  • 잊힌 DKIM 레코드는 24시간 후 조용히 이메일을 중단합니다. — 모든 _domainkey.<selector> 레코드를 구체적으로 나열하세요. 이것들이 가장 놓치기 쉽습니다.
함께 쓰기: filesystem

사용자에게 영향을 미치는 인터넷 장애를 위해 Cloudflare Radar 확인

👤 사고 대응자, 지원팀 리더 ⏱ ~10 min intermediate

언제 쓸까: 사용자가 당신의 사이트가 브라질에서 다운되었다고 보고합니다. 당신의 문제일 수도, 인터넷의 문제일 수도 있습니다.

흐름
  1. 국가에 대해 Radar 쿼리
    Cloudflare Radar: 지난 6시간 동안 브라질에서 주목할 만한 인터넷 중단이 있었습니까? BGP 이상, ISP 중단, 공격 트래픽을 포함하세요.✓ 복사됨
    → 알려진 이벤트 목록 또는 '특이한 것 없음'
  2. 트래픽과 교차 확인
    내 존 example.com에 대해 지난 6시간 동안 BR에서의 트래픽 — 볼륨, HTTP 상태 분석, 상위 사용자 에이전트를 표시하세요.✓ 복사됨
    → BR 특정 트래픽 프로필
  3. 결론 도출
    Radar + 내 트래픽을 기반으로 이것이 일반적인 브라질 인터넷 문제인지, 내 사이트 특정 문제인지 판단하세요.✓ 복사됨
    → 지원 증거와 함께 명확한 판정

결과: 방어 가능한 '우리 잘못이 아니라 <ISP X> 문제' 또는 '우리 잘못입니다, 이것이 원인입니다' 답변.

함정
  • Radar 데이터는 약 1시간 지연됩니다. — 매우 신선한 사고의 경우 자신의 RUM 데이터와 함께 페어링하세요.
함께 쓰기: sentry

조합

다른 MCP와 조합해 10배 효율

cloudflare + github

Workers 롤백을 해당 배포에 해당하는 GitHub PR과 상관관계 파악

Worker 'api-edge'가 14:22 배포 이후부터 실패합니다. 해당 배포에 해당하는 GitHub PR을 찾고 변경 사항을 요약해 주세요.✓ 복사됨
cloudflare + sentry

Sentry가 Worker 원본 오류를 보고합니다; Cloudflare MCP는 동일한 requestId에 대한 Worker 측 로그를 가져옵니다.

Sentry 이슈 EDGE-441에 CF-Ray 8abc123이 있습니다. Worker 'api-edge'에서 해당 레이를 테일링하고 일치하는 로그 라인을 표시해 주세요.✓ 복사됨
cloudflare + filesystem

로컬에서 Worker 소스 수정, wrangler를 통해 배포, Cloudflare MCP 로그를 통해 확인

src/index.ts의 44줄 버그를 수정하고 배포한 후 'api-edge' 로그를 테일링하여 더 이상 500 오류가 없는지 확인하세요.✓ 복사됨

도구

이 MCP가 노출하는 것

도구입력언제 호출비용
workers_tail script_name: str, filter?: object 실시간 Worker 로그 테일링 무료(플랜 한도 내)
workers_list_deployments script_name: str Worker의 최근 버전 검토 무료
workers_rollback script_name: str, version_id: str 이전 버전으로 복구 — 게이트 제어, 파괴적 작업 무료
d1_list_databases 없음 D1 데이터베이스 인벤토리 무료
d1_query database_id: str, sql: str, params?: [] SELECT 또는 변경 SQL 실행 — 쓰기는 명시적 프롬프트 확인 필요 읽기/쓰기 행당 D1 요금
kv_list_keys namespace_id: str, prefix?: str, limit?: int, cursor?: str 감사를 위한 키 열거 KV 읽기 요금
kv_get_value / kv_put_value / kv_delete namespace_id, key, value?, ttl? 특정 키 읽기/쓰기/삭제 KV 작업 요금
r2_list_buckets / r2_list_objects bucket?, prefix? R2 인벤토리 R2 읽기 작업
r2_get_object / r2_put_object bucket, key, body? R2 객체 읽기/쓰기 R2 작업 요금
dns_list_records zone_id: str 존 인벤토리 무료
dns_create_record / update_record / delete_record zone_id, 레코드 파라미터 존 변경 — 게이트 제어 무료
radar_get_http_timeseries / radar_get_attacks timeframe, 지역 필터 전역 인터넷 상태 맥락 무료
analytics_engine_query sql: str 사용자 정의 Workers Analytics Engine 쿼리 분석 엔진 읽기 작업

비용 및 제한

운영 비용

API 쿼터
플랜당 Workers/D1/KV/R2 제한이 적용되며, MCP 호출은 일반 사용량에 집계됩니다.
호출당 토큰
전형적으로 200~2000 토큰; 로그 테일은 매우 클 수 있으므로 항상 필터링하세요.
금액
MCP는 무료이며, Cloudflare 서비스는 평소대로 청구됩니다.
D1 및 KV는 행 읽기 및 작업 수로 청구됩니다. 대량 목록/스캔은 예상보다 비용이 많이 들 수 있으므로 적절한 페이지 크기로 페이지 매김하고 조기 중단하세요.

보안

권한, 시크릿, 파급범위

최소 스코프: Workers:Read D1:Read KV:Read
자격 증명 저장: OAuth 토큰은 MCP 클라이언트에서 관리되며, env에 오래 지속되는 API 토큰이 없습니다.
데이터 외부 송신: 모든 호출은 Cloudflare API로 진행되며, OAuth 흐름은 dash.cloudflare.com을 거칩니다.
절대 부여 금지: 절대 필요한 경우가 아니면 Account:Admin 라이브 존에서 스테이징 테스트 없이 Zone:DNS:Edit

문제 해결

자주 발생하는 오류와 해결

OAuth 흐름이 완료되지 않음

MCP 클라이언트가 OAuth 리디렉션을 지원하지 않을 수 있습니다. 해당 문서를 확인하세요(Claude Desktop, Cursor 등은 모두 다르게 지원합니다). 클라이언트 UI에서 원격 MCP를 다시 연결해 보세요.

Workers 테일이 1분 후 연결 해제됨

테일 세션은 시간 제한이 있습니다. 테일을 다시 시작하거나 더 긴 기간의 경우 Logpush를 사용하고 Analytics Engine을 통해 쿼리��세요.

D1 쿼리가 '행 읽기 초과' 반환

D1은 플랜별로 쿼리당 스캔된 행에 제한을 두고 있습니다. 인덱스를 사용하는 WHERE 절을 추가하거나 LIMIT를 사용하여 페이지 매김하세요.

DNS 툴에서 권한 거부

Zone:DNS:Edit용 OAuth 스코프가 승인되지 않았습니다. MCP를 다시 연결하고 추가 스코프를 승인하세요.

대안

Cloudflare 다른 것과 비교

대안언제 쓰나단점/장점
AWS MCP (awslabs)Cloudflare 대신 AWS를 사용 중입니다.다른 클라우드 표면; 드롭인 대체품이 아닙니다.
Vercel MCP배포 대상이 Vercel입니다(에지 함수, KV, blob).유사한 원격 MCP 모델; 더 좁은 기능 집합
wrangler CLI를 셸을 통해 직접 실행MCP 표면이 아닌 전체 wrangler 기능을 원합니다(구성 편집, 시크릿).에이전트 인체공학성 없음; 스크립팅이 잘못되면 더 넓은 영향 범위

더 보기

리소스

📖 GitHub에서 공식 README 읽기

🐙 열린 이슈 보기

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