mcpField
C
Cloudflare MCP Server for IDE

Cloudflare MCP Server for IDE

ローカル
github.com/GutMutCodeクラウド・インフラ1087 週間前に更新

Cloudflare MCP Server for IDE について

Cloudflare MCP Server for IDEは、MCPクライアントをCloudflare APIに接続し、開発者が自然言語でアカウントのリソースを管理できるようにします。Workers、KV、R2、D1、ドメイン分析に対応しています。

主な機能

  1. 01Workersスクリプトの管理
  2. 02KVエントリーの読み書き
  3. 03R2バケットとオブジェクトの管理
  4. 04D1データベースの作成とクエリ
  5. 05ドメイン分析データの取得

活用シーン

  1. 01Workerのデプロイや更新
  2. 02KVデータの確認や変更
  3. 03KVエントリーのR2への移行
  4. 04D1のクエリや分析データの確認

MCP 対応

Cloudflare APIの操作をツールとしてMCPクライアントに公開し、リソース管理や分析データの取得を可能にします。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

IDE 向け Cloudflare MCP サーバー

Model Context Protocol(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 を実行します
コンソール出力の例
  1. Claude Desktop を再起動すると、小さな 🔨 アイコンが表示され、次のツールを利用できるようになります。
ツールアイコンの例 ツール一覧の例
  1. Cline の設定ファイルを確認すると、Cloudflare アカウント ID を含む cloudflare セクションが表示されます。
設定ファイルの例
  1. Windsurf の MCP 設定ファイルを確認すると、こちらにも cloudflare セクションが表示されます。Windsurf では MCP ツールの使用に制限があるため、一度に多くのツールを使用することはできません。(Cline や Claude とは異なります)
2025年2月22日 午後10時28分09秒のスクリーンショット

機能

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 クエリを実行します
Workers の管理
  • worker_list:アカウント内のすべての Workers を一覧表示します
  • worker_get:Worker のスクリプト内容を取得します
  • worker_put:Worker スクリプトを作成または更新します
  • worker_delete:Worker スクリプトを削除します
アナリティクス
  • analytics_get:ドメインのアナリティクスデータを取得します
    • リクエスト数、帯域幅、脅威、ページビューなどの指標を含みます
    • 日付範囲によるフィルタリングに対応しています

開発

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

pnpm install
pnpm build:watch

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

node dist/index.js init

これにより、テスト用に Claude Desktop がローカルにインストールされたバージョンを参照するように設定されます。

Claude 以外での使用

サーバーをローカルで実行するには、node dist/index run <account-id> を実行します。

別の MCP クライアントを使用している場合や、ローカルでテストしている場合は、tools/list コマンドを送信して、利用可能なツールの最新一覧を取得してください。その後、tools/call コマンドを使って、それらを直接呼び出すことができます。

Workers
// 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"
})

コントリビュート

コントリビュートを歓迎します!お気軽にプルリクエストを送信してください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。