Skip to main content
Glama
GutMutCode
by GutMutCode

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 '...'?

デモ

Related MCP server: Remote MCP Server Authless

設定

  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

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/GutMutCode/mcp-server-cloudflare'

If you have feedback or need assistance with the MCP directory API, please join our Discord server