Cloudflare MCP Server

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Integrations

  • Enables management of Cloudflare resources including Workers, KV Store, R2 Storage, D1 Databases, and Analytics. Supports creating, updating, and deploying Workers, managing key-value pairs, handling object storage, executing SQL queries, and retrieving analytics data for domains.

IDE용 Cloudflare MCP 서버

모델 컨텍스트 프로토콜(MCP)은 대규모 언어 모델(LLM)과 외부 시스템 간의 컨텍스트를 관리하기 위한 새로운 표준화된 프로토콜 입니다. 이 저장소에서는 Cloudflare API 용 설치 프로그램과 MCP 서버를 제공합니다.

이를 통해 Claude Desktop과 VSCode(Cline), Windsurf 또는 모든 MCP 클라이언트와 같은 IDE를 사용하여 자연어를 사용하여 Cloudflare 계정에서 다음과 같은 작업을 수행할 수 있습니다.

  • Please deploy me a new Worker with an example durable object.
  • Can you tell me about the data in my D1 database named '...'?
  • Can you copy all the entries from my KV namespace '...' into my R2 bucket '...'?

데모

설정

  1. npx @gutmutcode/mcp-server-cloudflare init 실행합니다.
  2. Claude Desktop을 다시 시작하면 사용 가능한 다음 도구를 표시하는 작은 🔨 아이콘이 표시됩니다.
  3. Cline 구성 파일을 확인하면 Cloudflare 계정 ID가 있는 cloudflare 섹션이 표시됩니다.
  4. Windsurf MCP 구성 파일을 확인해 보세요. cloudflare 섹션도 보일 겁니다. Windsurf는 MCP 도구 사용에 제한이 있어서 동시에 너무 많은 도구를 사용할 수 없습니다. (클라인과 클로드와는 달리요.)

특징

KV 매장 관리

  • get_kvs : 계정의 모든 KV 네임스페이스를 나열합니다.
  • kv_get : KV 네임스페이스에서 값 가져오기
  • kv_put : KV 네임스페이스에 값을 저장합니다.
  • kv_list : KV 네임스페이스의 키 목록
  • kv_delete : KV 네임스페이스에서 키를 삭제합니다.

R2 스토리지 관리

  • r2_list_buckets : 계정의 모든 R2 버킷을 나열합니다.
  • r2_create_bucket : 새로운 R2 버킷을 생성합니다
  • r2_delete_bucket : R2 버킷 삭제
  • r2_list_objects : R2 버킷의 객체 나열
  • r2_get_object : R2 버킷에서 객체를 가져옵니다.
  • r2_put_object : 객체를 R2 버킷에 넣습니다.
  • r2_delete_object : R2 버킷에서 객체를 삭제합니다.

D1 데이터베이스 관리

  • d1_list_databases : 계정의 모든 D1 데이터베이스를 나열합니다.
  • d1_create_database : 새로운 D1 데이터베이스를 생성합니다.
  • d1_delete_database : D1 데이터베이스 삭제
  • d1_query : D1 데이터베이스에 대해 SQL 쿼리를 실행합니다.

근로자 관리

  • worker_list : 계정의 모든 Worker를 나열합니다.
  • worker_get : Worker의 스크립트 내용을 가져옵니다.
  • worker_put : Worker 스크립트를 생성하거나 업데이트합니다.
  • worker_delete : Worker 스크립트 삭제

해석학

  • analytics_get : 도메인에 대한 분석 데이터를 검색합니다.
    • 요청, 대역폭, 위협 및 페이지 뷰와 같은 측정항목이 포함됩니다.
    • 날짜 범위 필터링을 지원합니다

개발 중

현재 프로젝트 폴더에서 다음을 실행합니다.

지엑스피1

그런 다음 두 번째 터미널에서:

node dist/index.js init

이렇게 하면 Claude Desktop이 로컬에 설치된 버전과 연결되어 테스트할 수 있습니다.

Claude 외부에서의 사용

서버를 로컬로 실행하려면 node dist/index run <account-id> 실행합니다.

다른 MCP 클라이언트를 사용하거나 로컬에서 테스트하는 경우 tools/list 명령을 실행하여 사용 가능한 모든 도구의 최신 목록을 가져오세요. 그런 다음 tools/call 명령을 사용하여 해당 도구를 직접 호출할 수 있습니다.

노동자들

// List workers worker_list() // Get worker code worker_get({ name: "my-worker" }) // Update worker worker_put({ name: "my-worker", script: "export default { async fetch(request, env, ctx) { ... }}", bindings: [ { type: "kv_namespace", name: "MY_KV", namespace_id: "abcd1234" }, { type: "r2_bucket", name: "MY_BUCKET", bucket_name: "my-files" } ], compatibility_date: "2024-01-01", compatibility_flags: ["nodejs_compat"] }) // Delete worker worker_delete({ name: "my-worker" })

KV 스토어

// List KV namespaces get_kvs() // Get value kv_get({ namespaceId: "your_namespace_id", key: "myKey" }) // Store value kv_put({ namespaceId: "your_namespace_id", key: "myKey", value: "myValue", expirationTtl: 3600 // optional, in seconds }) // List keys kv_list({ namespaceId: "your_namespace_id", prefix: "app_", // optional limit: 10 // optional }) // Delete key kv_delete({ namespaceId: "your_namespace_id", key: "myKey" })

R2 스토리지

// List buckets r2_list_buckets() // Create bucket r2_create_bucket({ name: "my-bucket" }) // Delete bucket r2_delete_bucket({ name: "my-bucket" }) // List objects in bucket r2_list_objects({ bucket: "my-bucket", prefix: "folder/", // optional delimiter: "/", // optional limit: 1000 // optional }) // Get object r2_get_object({ bucket: "my-bucket", key: "folder/file.txt" }) // Put object r2_put_object({ bucket: "my-bucket", key: "folder/file.txt", content: "Hello, World!", contentType: "text/plain" // optional }) // Delete object r2_delete_object({ bucket: "my-bucket", key: "folder/file.txt" })

D1 데이터베이스

// List databases d1_list_databases() // Create database d1_create_database({ name: "my-database" }) // Delete database d1_delete_database({ databaseId: "your_database_id" }) // Execute a single query d1_query({ databaseId: "your_database_id", query: "SELECT * FROM users WHERE age > ?", params: ["25"] // optional }) // Create a table d1_query({ databaseId: "your_database_id", query: ` CREATE TABLE users ( id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL, email TEXT UNIQUE, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ) ` })

해석학

// Get today's analytics analytics_get({ zoneId: "your_zone_id", since: "2024-11-26T00:00:00Z", until: "2024-11-26T23:59:59Z" })

기여하다

기여를 환영합니다! 풀 리퀘스트를 제출해 주세요.

-
security - not tested
A
license - permissive license
-
quality - not tested

Claude Desktop, VSCode 및 기타 MCP 클라이언트를 통해 자연어를 사용하여 Cloudflare 리소스(Workers, KV, R2, D1)를 관리할 수 있는 MCP 서버입니다.

  1. Demo
    1. Setup
      1. Features
        1. KV Store Management
        2. R2 Storage Management
        3. D1 Database Management
        4. Workers Management
        5. Analytics
      2. Developing
        1. Usage outside of Claude
          1. Workers
          2. KV Store
          3. R2 Storage
          4. D1 Database
          5. Analytics
        2. Contributing
          ID: 1rxd7s0omi