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

Cloudflare API

제작: cloudflare · cloudflare/mcp

Claude에서 범위가 지정된 API 토큰과 드라이 런 습관으로 Cloudflare DNS, 영역, WAF, 분석 및 Workers를 관리합니다.

Cloudflare의 API MCP는 전체 Cloudflare REST API를 도구로 변환합니다: 영역, DNS 레코드, 페이지 규칙, 방화벽 규칙, 분석, SSL, Workers, R2, KV 등. 범위가 지정된 API 토큰(Global API Key 아님)을 사용하고 쓰기를 인프라 변경처럼 처리합니다 — 미리보기, 적용, 검증.

왜 쓰나요

핵심 기능

라이브 데모

실제 사용 모습

cloudflare-api.replay ▶ 준비됨
0/0

설치

클라이언트 선택

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

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

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

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

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

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

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

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

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

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

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

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

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

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

사용 사례

실전 활용법: Cloudflare API

모든 영역에서 DNS 레코드 편차 감시

👤 플랫폼/SRE 팀 ⏱ ~25 min intermediate

언제 쓸까: 40개의 영역을 소유하고 있으며 이상한 TTL, 누락된 SPF/DMARC 또는 끊어진 CNAME이 있는 영역을 알고 싶을 때.

사전 조건
  • Zone:Zone:Read, Zone:DNS:Read 권한이 있는 API 토큰 — Cloudflare 대시보드 → 내 프로필 → API 토큰 → 생성
흐름
  1. 영역 나열 및 유형별 레코드 수 계산
    내 계정의 모든 영역을 나열합니다. 각각에 대해 유형별(A, CNAME, TXT, MX) 레코드 수를 계산합니다.✓ 복사됨
    → 인벤토리 매트릭스
  2. 이메일 인증 건강도 확인
    이메일에 사용되는 각 영역에 대해 SPF(v=spf1 포함 TXT), _dmarc의 DMARC TXT 및 DKIM 선택기 TXT 레코드 존재 여부를 확인합니다. 누락된 항목을 표시합니다.✓ 복사됨
    → 이메일 인증 격차 보고서
  3. 끊어진 CNAME 찾기
    모든 영역의 각 CNAME에 대해 대상을 확인합니다. NXDOMAIN 또는 SERVFAIL을 끊어진 것으로 표시합니다.✓ 복사됨
    → 위험한 CNAME 목록

결과: 각 도메인을 소유한 팀에 전달할 수 있는 영역별 DNS 건강도 보고서입니다.

함정
  • 끊어진 CNAME은 서브도메인 인수 위험입니다 — NXDOMAIN CNAME은 즉시 에스컬레이션됩니다 — 삭제하거나 수정합니다
함께 쓰기: filesystem

미리보기/적용 워크플로우로 DNS 레코드 추가 또는 업데이트

👤 신경 쓰는 DNS 변경을 하려는 누구나 ⏱ ~10 min beginner

언제 쓸까: 메일 제공자 전환, 서비스용 새 CNAME 추가 — 위험도 높은 DNS 변경.

사전 조건
  • 대상 영역의 Zone:DNS:Edit 권한이 있는 토큰 — 토큰을 변경하는 하나의 영역으로만 제한합니다
흐름
  1. 현재 상태 표시
    영역 <zone>에서 이름 '<name>' 및 유형 <type>에 대한 모든 레코드를 표시합니다. 프록시된 상태 및 TTL.✓ 복사됨
    → 현재 레코드 상태
  2. 변경을 제안하되 적용하지 않음
    패치를 제안합니다: <변경 설명>. 정확한 API 호출과 변경 전후를 표시합니다. 아직 실행하지 마세요.✓ 복사됨
    → 미리보기 diff
  3. 확인 후 적용
    확인합니다. 변경을 적용합니다. 그 다음 레코드를 다시 읽어 확인합니다. 또한 영향받는 이름의 캐시를 비웁니다.✓ 복사됨
    → 레코드 업데이트 + 캐시 제거 + 검증 읽기

결과: 검토 단계와 변경 후 검증이 있는 DNS 변경 — 놀라운 일이 없습니다.

함정
  • 프록시된(주황색 클라우드) 메일 서버에 대한 CNAME이 이메일을 중단합니다 — MX, SPF 관련 CNAME 및 비HTTP 레코드에 대해 항상 proxied:false를 사용합니다

트래픽 급증 중 긴급 속도 제한 배포

👤 L7 DDoS 또는 실행 중인 클라이언트에 대응하는 SRE ⏱ ~15 min advanced

언제 쓸까: 트래픽이 급증하고 원본이 어려움을 겪고 있습니다. 분 단위로 댐핑이 필요합니다.

사전 조건
  • 영역에 대한 Zone:Zone WAF:Edit 권한이 있는 토큰 — 암호 관리자에 보관된 전용 사건 대응 토큰
흐름
  1. 패턴 식별
    영역 <zone>에 대한 지난 시간 분석을 가져옵니다. 요청 수별 상위 10개 경로, 상위 사용자 에이전트, 상위 국가를 표시합니다. 이상 현상을 강조합니다.✓ 복사됨
    → 이상 후보
  2. 속도 제한 규칙 생성
    WAF 속도 제한 규칙 생성: 경로 /<hot path>에 IP당 분당 60개 요청, 작업: 챌린지. 2분 후 일치 수를 기록합니다.✓ 복사됨
    → 규칙 생성됨 + 일치 스트리밍
  3. 안전할 때 롤백
    원본 상태가 30분 동안 정상인 경우 규칙을 비활성화합니다(삭제하지 않음). 감시를 위해 'incident-<id>'라는 태그가 있는 설명을 남깁니다.✓ 복사됨
    → 규칙 비활성화됨; 감시 항목 유지

결과: 규칙을 다시 활성화하거나 개선할 수 있는 완화된 공격 — 영구적인 구성 편차 없음.

함정
  • 국가별 광범위 차단은 정상 사용자를 없앱니다 — 항상 Block이 아닌 Challenge 또는 JS-Challenge로 시작합니다. 관찰한 후 강화합니다
함께 쓰기: sentry

배포 후 특정 URL에 대한 Cloudflare 캐시 제거

👤 정적 자산 업데이트를 배송하는 프론트엔드 개발자 ⏱ ~10 min beginner

언제 쓸까: 배포 후: CSS/JS 해시가 변경되었으므로 사용자가 새 버전을 즉시 얻기를 원합니다.

흐름
  1. 제거할 파일 나열
    내 빌드가 이 URL을 변경했습니다: [목록]. 각각이 CF 에지에서 캐시되었는지 확인합니다(HEAD + cf-cache-status).✓ 복사됨
    → URL당 현재 캐시 hit/miss
  2. URL로 제거
    영역 <zone>에서 정확히 이 URL을 제거합니다. purge-everything을 하지 마세요.✓ 복사됨
    → 제거 작업 수락됨
  3. 신선한 가져오기 확인
    10초 후 각 URL을 다시 HEAD합니다 — cf-cache-status는 MISS 또는 REVALIDATED여야 합니다.✓ 복사됨
    → 신선한 캐시 상태

결과: 대상 캐시 버스트, 실수로 인한 전체 영역 제거 없음(재로드 시 원본에 thundering-herd를 보냄).

함정
  • Purge-everything은 thundering-herd를 원본으로 보냅니다 — 대체 경로를 데우지 않은 경우를 제외하고 purge_all을 호출하지 마세요. purge-by-url은 거의 항상 충분합니다
함께 쓰기: github

로컬 JSON 파일에서 Workers KV 시드

👤 Workers 기반 API를 배포하는 엔지니어 ⏱ ~15 min intermediate

언제 쓸까: KV에서 구성/기능 플래그 데이터를 유지 관리하고 로컬 소스 진실과 동기화하려고 합니다.

사전 조건
  • Workers KV Storage: Edit 권한이 있는 토큰 — 특정 네임스페이스 ID로 범위 지정
흐름
  1. 로컬 소스 읽기
    /config/kv.json을 읽습니다. {key: value} 객체로 유효성을 검사합니다.✓ 복사됨
    → 구문 분석된 구성
  2. 현재 KV와 Diff
    네임스페이스 <id>의 키를 나열합니다. 로컬 파일과 추가/업데이트/삭제를 계산합니다.✓ 복사됨
    → 변경 계획
  3. 대량 쓰기를 통해 적용
    변경 사항에 대해 대량 쓰기를 사용합니다. 삭제는 확인한 경우에만 — 먼저 삭제될 키를 표시합니다.✓ 복사됨
    → 대량 쓰기 확인됨; 삭제 검토됨

결과: KV 네임스페이스가 소스 파일과 조정되었습니다, 충분히 원자적으로.

함정
  • KV 최종 일관성은 읽기가 ~60초 동안 여전히 이전 값을 볼 수 있음을 의미합니다 — 강력한 일관성이 필요한 경우 대신 D1 또는 Durable Objects를 사용합니다
함께 쓰기: filesystem

Cloudflare 분석에서 주간 트래픽 및 위협 요약

👤 제품/성장 + 보안 ⏱ ~20 min intermediate

언제 쓸까: 금요일 다이제스트: 트래픽 패턴은 무엇이고 차단한 위협은 무엇입니까?

흐름
  1. 합계 가져오기
    영역 <zone> 지난 7일: 총 요청, 대역폭, 차단된 위협, 상위 10개 국가.✓ 복사됨
    → 헤드라인 숫자
  2. 상위 경로 및 리퍼러
    요청별 상위 20개 경로; 상위 10개 리퍼러. 이전 주 대비 변경사항을 강조합니다.✓ 복사됨
    → 성장/회귀 테이블
  3. 방화벽 이벤트 요약
    지난 7일간 상위 방화벽 규칙 트리거. 트리거되지 않은 규칙 — 정리 후보.✓ 복사됨
    → 규칙 세트 상태 보고서

결과: 트래픽, 위협 및 규칙 건강도가 있는 한 페이지 주간.

함정
  • 무료 요금제 분석은 샘플링됩니다 — 정확한 데이터를 위해 Logpush/GraphQL 분석 API를 Pro+ 요금제로 사용합니다
함께 쓰기: notion

조합

다른 MCP와 조합해 10배 효율

cloudflare-api + github

main으로 병합할 때 배포된 자산 URL에 대한 캐시 제거

PR #342 병합됨; diff가 /static/app.a1b2.js를 변경했습니다. 영역 <zone>에서 해당 URL을 제거하고, HEAD로 검증합니다.✓ 복사됨
cloudflare-api + sentry

Sentry 트래픽 급증을 방화벽 이벤트 데이터와 연결

Sentry는 14:02의 5xx 급증을 표시합니다. 같은 영역에 대해 14:00-14:05의 CF 분석을 가져와서 방화벽 이벤트와 연결합니다.✓ 복사됨
cloudflare-api + filesystem

로컬 영역 구성 파일을 Cloudflare에 동기화(GitOps 라이트)

/dns/mydomain.yaml을 읽습니다. 현재 영역 상태와 조정합니다. 검토 후 안전하게 적용합니다.✓ 복사됨

도구

이 MCP가 노출하는 것

도구입력언제 호출비용
list_zones 계정의 영역 검색 free
list_dns_records zone_id, type?, name? DNS 편집 전 — 현재 검사 free
create_dns_record / update_dns_record / delete_dns_record zone_id, record DNS 변경(토큰 편집 필요) free
purge_cache zone_id, files?|tags?|hosts?|everything? 배포 후 캐시 버스트 free
list_firewall_rules / create_firewall_rule zone_id, ... 사건 대응/강화 free
analytics_dashboard zone_id, since, until 트래픽 보고서 free
kv_list / kv_get / kv_put / kv_bulk namespace_id, key/value Workers KV 작업 무료 티어 이상 미터링됨
deploy_worker script name, script content, bindings? Worker 배포 한도까지 무료

비용 및 제한

운영 비용

API 쿼터
사용자당 5분당 1200개 요청(Cloudflare 전역 속도 제한)
호출당 토큰
DNS 나열: 페이지당 200–1000개 토큰. 분석: 최대 3000개.
금액
API는 무료입니다. Workers 유료/KV는 무료 티어 이상 유료; 계획은 Free / Pro $20/mo / Business $200/mo부터 시작합니다.
토큰 및 페이지 매김을 절약하기 위해 클라이언트 측이 아닌 서버 측 나열 + 필터링을 선호합니다.

보안

권한, 시크릿, 파급범위

최소 스코프: Zone:Zone:Read Zone:DNS:Read (쓰기가 필요한 특정 영역에만 :Edit 추가)
자격 증명 저장: CLOUDFLARE_API_TOKEN 환경 변수에 — Global API Key는 절대 아님
데이터 외부 송신: api.cloudflare.com으로의 모든 호출
절대 부여 금지: Global API Key (전체 계정 제어) Account:Access:Edit 계정 수준 검토 없이

문제 해결

자주 발생하는 오류와 해결

10000 인증 오류

토큰이 유효하지 않거나 필요한 권한이 없습니다. 특정 영역 + 권한으로 다시 생성합니다.

확인: curl -H 'Authorization: Bearer $CLOUDFLARE_API_TOKEN' https://api.cloudflare.com/client/v4/user/tokens/verify
81057 레코드가 이미 존재함

해당 이름+유형+콘텐츠가 있는 레코드가 이미 존재합니다. ID로 기존 레코드를 업데이트하고, 새로 만들지 마세요.

URL로 제거하면 성공을 반환하지만 캐시는 여전히 hit

URL은 쿼리 문자열 순서를 포함하여 정확히 일치해야 합니다. 또한 cf-cache-status를 확인합니다 — 'DYNAMIC'은 어차피 캐시되지 않았음을 의미합니다.

속도 제한됨(429)

Cloudflare의 전역 API 속도 제한에 도달했습니다. 백오프하거나, 배치하거나, 다양한 토큰을 사용하여 여러 워크플로 간에 워크로드를 분할합니다.

대안

Cloudflare API 다른 것과 비교

대안언제 쓰나단점/장점
Cloudflare 공식 MCP (기타)Cloudflare의 문서/Workers 관찰성 중심 MCP를 선호할 때더 좁은 API 표면
Route 53 MCPAWS에 있고 Route53 DNS를 원할 때다른 생태계; CDN/WAF가 내장되지 않음

더 보기

리소스

📖 GitHub에서 공식 README 읽기

🐙 열린 이슈 보기

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