Cloudflare智能助手

@cloudflare/mcp-server-cloudflare
3 Stars 578 次浏览 cloudflare 更新于 2026-08-23

允许你使用 Claude Desktop 或任何 MCP 客户端,通过自然语言来完成你在 Cloudflare 账户中的操作。

MCP 服务配置

复制以下 JSON 到 OPClaw 或其他 MCP 客户端的配置文件中即可使用

{
  "mcpServers": {
    "cloudflare-bindings": {
      "args": [
        "mcp-remote",
        "https://bindings.mcp.cloudflare.com/sse"
      ],
      "command": "npx"
    },
    "cloudflare-observability": {
      "args": [
        "mcp-remote",
        "https://observability.mcp.cloudflare.com/sse"
      ],
      "command": "npx"
    }
  }
}

服务介绍

Cloudflare MCP 服务器

模型上下文协议 (MCP) 是一种用于管理大型语言模型 (LLMs) 和外部系统之间上下文的新标准化协议。在这个仓库中,我们提供了一个安装程序以及一个适用于Cloudflare API的MCP服务器。

这使您可以使用Claude Desktop或任何MCP客户端,通过自然语言在您的Cloudflare账户上完成各种操作,例如:

  • 请为我部署一个新的带有示例持久对象的Worker。
  • 你能告诉我关于我的名为'...'的D1数据库中的数据吗?
  • 你能将我的KV命名空间'...'中的所有条目复制到我的R2存储桶'...'中吗?

演示

设置

  1. 运行 npx @cloudflare/mcp-server-cloudflare init

    注意: 如果您尚未通过Cloudflare身份验证,MCP服务器会自动运行 npx wrangler login。如果需要,您将被提示在浏览器中完成身份验证过程。

  1. 重新启动Claude Desktop,您应该会看到一个小🔨图标,显示以下可用工具:

收费功能

此MCP服务器中的一些功能需要付费的Cloudflare Workers计划:

  • 可观察性和分析analytics_get 工具及相关分析功能需要付费Workers计划才能访问这些指标
  • 其他高级Cloudflare功能,如高级D1数据库能力和更高的使用限制也需要相应的付费计划

确保您的Cloudflare帐户具有使用所需功能所需的订阅级别。

功能

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 脚本

持久对象

  • durable_objects_list: 列出所有持久对象命名空间
  • durable_objects_create: 创建一个新的持久对象命名空间
  • durable_objects_delete: 删除一个持久对象命名空间
  • durable_objects_list_instances: 列出特定持久对象命名空间的所有实例
  • durable_objects_get_instance: 获取特定持久对象实例的详细信息
  • durable_objects_delete_instance: 删除特定的持久对象实例

队列

  • queues_list: 列出您账户中的所有队列
  • queues_create: 创建一个新的队列
  • queues_delete: 删除一个队列
  • queues_get: 获取特定队列的详细信息
  • queues_send_message: 向队列发送消息
  • queues_get_messages: 从队列获取消息
  • queues_update_consumer: 更新队列消费者

Workers AI

  • workers_ai_list_models: 列出可用的 AI 模型
  • workers_ai_get_model: 获取特定 AI 模型的详细信息
  • workers_ai_run_inference: 使用 Workers AI 进行推理
  • workers_ai_list_tasks: 列出 AI 任务

工作流

  • workflows_list: 列出您账户中的所有工作流
  • workflows_create: 创建一个新的工作流
  • workflows_delete: 删除一个工作流
  • workflows_get: 获取特定工作流的详细信息
  • workflows_update: 更新一个工作流
  • workflows_execute: 执行一个工作流

模板

  • templates_list: 列出可用的 Worker 模板
  • templates_get: 获取特定模板的详细信息
  • templates_create_from_template: 从模板创建一个新的 Worker

平台上的 Workers

  • w4p_list_dispatchers: 列出所有平台上的 Workers 分发器
  • w4p_create_dispatcher: 创建一个新的分发器
  • w4p_delete_dispatcher: 删除一个分发器
  • w4p_get_dispatcher: 获取特定分发器的详细信息
  • w4p_update_dispatcher: 更新分发器配置

服务绑定

  • bindings_list: 列出 Worker 的所有服务绑定
  • bindings_create: 创建一个新的服务绑定
  • bindings_update: 更新服务绑定
  • bindings_delete: 删除服务绑定

URL 路由

  • routing_list_routes: 列出 Worker 的所有路由
  • routing_create_route: 创建一个新的路由
  • routing_update_route: 更新路由
  • routing_delete_route: 删除路由

定时触发器

  • cron_list: 列出 Worker 的所有定时触发器
  • cron_create: 创建一个新的定时触发器
  • cron_update: 更新定时触发器
  • cron_delete: 删除定时触发器

区域和域名

  • zones_list: 列出账户中的所有区域
  • zones_create: 创建新区域
  • zones_delete: 删除区域
  • zones_get: 获取特定区域的详细信息
  • zones_check_activation: 检查区域激活状态

Secrets

  • secrets_list: 列出 Worker 的所有密钥
  • secrets_put: 创建或更新密钥
  • secrets_delete: 删除密钥

版本管理

  • versions_list: 列出 Worker 的所有版本
  • versions_get: 获取特定版本的详细信息
  • versions_rollback: 回滚到之前的版本

Wrangler 配置

  • wrangler_get_config: 获取当前 Wrangler 配置
  • wrangler_update_config: 更新 Wrangler 配置

分析

  • analytics_get: 检索您的域名的分析数据
    • 包括请求、带宽、威胁和页面浏览量等指标
    • 支持日期范围过滤

开发

在当前项目文件夹中,运行:

pnpm install
pnpm build:watch

然后,在第二个终端中:

node dist/index.js init

这将把 Claude Desktop 链接到您本地安装的版本以进行测试。如果您还没有通过 Wrangler 进行身份验证,服务器将自动提示您在浏览器中完成身份验证过程。

测试

该项目使用 Vitest 作为测试框架,并使用 MSW(Mock Service Worker)进行 API 模拟。

运行测试

要运行所有测试:

pnpm test

要运行带有覆盖率的测试:

pnpm test:coverage

要运行特定的测试文件:

pnpm test -- tests/tools/queues.test.ts

要在监视模式下运行测试(在开发过程中很有用):

pnpm test:watch

测试结构

测试套件组织如下:

  • tests/tools/: 包含每个 Cloudflare API 工具的测试
  • tests/mocks/: 包含模拟数据和请求处理程序
  • tests/utils/: 包含测试辅助函数
  • tests/setup.ts: 全局测试设置配置

每个工具测试文件都遵循一致的模式,测试成功操作和错误处理场景。

在 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"
})

耐久对象

// List Durable Objects namespaces
durable_objects_list()

// Create a new Durable Objects namespace
durable_objects_create({
    name: "my-durable-object",
    script_name: "my-worker",
    class_name: "MyDurableObjectClass"
})

// Delete a Durable Objects namespace
durable_objects_delete({
    id: "your_namespace_id"
})

// List instances for a namespace
durable_objects_list_instances({
    namespaceId: "your_namespace_id",
    limit: 100 // optional
})

// Get details about a specific instance
durable_objects_get_instance({
    namespaceId: "your_namespace_id",
    instanceId: "your_instance_id"
})

// Delete a specific instance
durable_objects_delete_instance({
    namespaceId: "your_namespace_id",
    instanceId: "your_instance_id"
})

队列

// List all queues
queues_list()

// Create a new queue
queues_create({
    name: "my-queue",
    settings: {
        delivery_delay: 0,
        dead_letter_queue: "dead-letter-queue" // optional
    }
})

// Delete a queue
queues_delete({
    name: "my-queue"
})

// Get queue details
queues_get({
    name: "my-queue"
})

// Send a message to a queue
queues_send_message({
    queue: "my-queue",
    messages: [
        { body: JSON.stringify({ key: "value" }) }
    ]
})

// Get messages from a queue
queues_get_messages({
    queue: "my-queue",
    batchSize: 10, // optional
    visibilityTimeout: 30 // optional, in seconds
})

// Update a queue consumer
queues_update_consumer({
    queue: "my-queue",
    consumer: "my-consumer",
    settings: {
        dead_letter_queue: "dead-letter-queue",
        batch_size: 10,
        max_retries: 3
    }
})

Workers AI

// List available AI models
workers_ai_list_models()

// Get details about a specific model
workers_ai_get_model({
    model: "@cf/meta/llama-2-7b-chat-int8"
})

// Run inference using Workers AI
workers_ai_run_inference({
    model: "@cf/meta/llama-2-7b-chat-int8",
    input: {
        messages: [
            { role: "system", content: "You are a helpful assistant." },
            { role: "user", content: "Hello, who are you?" }
        ]
    },
    options: {
        temperature: 0.7,
        max_tokens: 100
    }
})

// List AI tasks
workers_ai_list_tasks()

工作流

// List all workflows
workflows_list()

// Create a new workflow
workflows_create({
    name: "my-workflow",
    content: "// Workflow script content here"
})

// Delete a workflow
workflows_delete({
    name: "my-workflow"
})

// Get workflow details
workflows_get({
    name: "my-workflow"
})

// Update a workflow
workflows_update({
    name: "my-workflow",
    content: "// Updated workflow script content"
})

// Execute a workflow
workflows_execute({
    name: "my-workflow",
    input: { key: "value" }
})

模板

// List available templates
templates_list()

// Get details about a specific template
templates_get({
    template: "worker-typescript"
})

// Create a worker from a template
templates_create_from_template({
    name: "my-new-worker",
    template: "worker-typescript",
    options: {
        // Template-specific options
    }
})

平台上的 Workers

// List dispatchers
w4p_list_dispatchers()

// Create a new dispatcher
w4p_create_dispatcher({
    name: "my-dispatcher",
    script: "// Dispatcher script content"
})

// Delete a dispatcher
w4p_delete_dispatcher({
    name: "my-dispatcher"
})

// Get dispatcher details
w4p_get_dispatcher({
    name: "my-dispatcher"
})

// Update dispatcher
w4p_update_dispatcher({
    name: "my-dispatcher",
    script: "// Updated dispatcher script content"
})

服务绑定

// List all service bindings for a worker
bindings_list({
    workerName: "my-worker"
})

// Create a new service binding
bindings_create({
    workerName: "my-worker",
    bindingName: "MY_SERVICE",
    serviceEnvironment: "production",
    serviceName: "target-worker"
})

// Update a service binding
bindings_update({
    workerName: "my-worker",
    bindingName: "MY_SERVICE",
    serviceEnvironment: "staging",
    serviceName: "target-worker"
})

// Delete a service binding
bindings_delete({
    workerName: "my-worker",
    bindingName: "MY_SERVICE"
})

URL 路由

// List all routes for a worker
routing_list_routes({
    workerName: "my-worker"
})

// Create a new route
routing_create_route({
    workerName: "my-worker",
    pattern: "example.com/*",
    zoneId: "your_zone_id"
})

// Update a route
routing_update_route({
    routeId: "your_route_id",
    pattern: "api.example.com/*",
    zoneId: "your_zone_id"
})

// Delete a route
routing_delete_route({
    routeId: "your_route_id"
})

Cron 触发器

// List all cron triggers for a worker
cron_list({
    workerName: "my-worker"
})

// Create a new cron trigger
cron_create({
    workerName: "my-worker",
    schedule: "*/5 * * * *",
    timezone: "UTC" // optional
})

// Update a cron trigger
cron_update({
    triggerId: "your_trigger_id",
    schedule: "0 */2 * * *",
    timezone: "America/New_York"
})

// Delete a cron trigger
cron_delete({
    triggerId: "your_trigger_id"
})

区域和域名

// List all zones
zones_list()

// Create a new zone
zones_create({
    name: "example.com",
    account: {
        id: "your_account_id"
    }
})

// Get zone details
zones_get({
    zoneId: "your_zone_id"
})

// Delete a zone
zones_delete({
    zoneId: "your_zone_id"
})

// Check zone activation status
zones_check_activation({
    zoneId: "your_zone_id"
})

密钥

// List all secrets for a worker
secrets_list({
    workerName: "my-worker"
})

// Create or update a secret
secrets_put({
    workerName: "my-worker",
    secretName: "API_KEY",
    secretValue: "your-secret-api-key"
})

// Delete a secret
secrets_delete({
    workerName: "my-worker",
    secretName: "API_KEY"
})

版本管理

// List all versions of a worker
versions_list({
    workerName: "my-worker"
})

// Get details about a specific version
versions_get({
    workerName: "my-worker",
    versionId: "your_version_id"
})

// Rollback to a previous version
versions_rollback({
    workerName: "my-worker",
    versionId: "your_version_id"
})

Wrangler 配置

// Get current wrangler configuration
wrangler_get_config()

// Update wrangler configuration
wrangler_update_config({
    config: {
        name: "my-worker",
        main: "src/index.ts",
        compatibility_date: "2024-03-11",
        workers_dev: true
    }
})

贡献

欢迎贡献!请随时提交 Pull Request。

相关 MCP 服务