C

Cloudflare智能助手

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

cloud-platforms

541 查看 · 2026-07-07 更新

简介

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

简介

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

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。

服务配置

[{'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'}}}]

来源