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 などの IDE、または任意の MCP クライアントを使用して、自然言語で 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 cloudflareも表示されているはずです。WindsurfではMCPツールの使用に制限があるため、同時に複数のツールを使用することはできません。(ClineやClaudeとは異なります)

特徴

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_get : ワーカーのスクリプトコンテンツを取得する
  • worker_put : Worker スクリプトを作成または更新する
  • worker_delete : Worker スクリプトを削除する

分析

  • analytics_get : ドメインの分析データを取得する
    • リクエスト、帯域幅、脅威、ページビューなどの指標が含まれます
    • 日付範囲フィルタリングをサポート

現像

現在のプロジェクト フォルダーで、次を実行します。

pnpm install pnpm build:watch

次に、2 番目のターミナルで次の操作を実行します。

node dist/index.js init

これにより、Claude Desktop がローカルにインストールされたバージョンにリンクされ、テストできるようになります。

クロード以外での使用

サーバーをローカルで実行するには、 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