@cloudflare/mcp-server-cloudflare

中文文档
0.2.0发布于 2025/03/14Apache-2.0TypeScriptES Module近 30 天下载 1万

用于与 Cloudflare API 交互的 MCP 服务器

中文使用文档
文档目录46 节
  1. 演示
  2. 设置
  3. 付费特征
  4. 特征
  5. KV 存储管理
  6. R2 存储管理
  7. D1 数据库管理
  8. 工人管理
  9. 持久对象
  10. 队列
  11. 大赦国际
  12. 工作流量
  13. 模板
  14. 工人促进平台
  15. 服务约束
  16. URL 运行
  17. 克龙触发器
  18. 区域( D)
  19. 秘诀
  20. 版本管理
  21. 朗格勒配置
  22. 分析
  23. 发展中国家
  24. 测试
  25. 运行测试
  26. 测试结构
  27. 克劳德以外的使用
  28. 工人
  29. KV 存储
  30. R2 存储
  31. D1 数据库
  32. 分析
  33. 持久对象
  34. 队列
  35. 大赦国际
  36. 工作流量
  37. 模板
  38. 工人促进平台
  39. 服务约束
  40. URL 运行
  41. 克龙触发器
  42. 区域( D)
  43. 秘诀
  44. 版本管理
  45. 朗格勒配置
  46. 捐款

Cloudflare MCP 服务器

示范背景协议(MCP)是一种 新的标准化协议 用于管理大语言模型和外部系统之间的上下文。 在这个寄存器中,我们提供一个安装器和一个MCP服务器,用于 云飞的API。 。 。 .

您可以使用 Claude Desktop 或任何 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. 确保您通过Wrangler登录到Cloudflare:

    npx wrangler login
    

    MCP 服务器在本地测试时访问 Cloudflare 资源需要此认证 .

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

Example console output
  1. 重新启动 Claude 桌面, 您应该看到一个小的 QQ 图标, 显示以下可用的工具 :
Example tool icon Example tool list

付费特征

MCP服务器中的一些功能需要支付Cloudflare工人计划:

  • 观察和分析编号: analytics_get 工具和相关分析功能要求有带薪的工人计划才能获得这些计量标准
  • 其他溢价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 查询

工人管理

  • worker_list: 列出账户中的所有工人
  • worker_get: 获取工人脚本内容
  • worker_put: 创建或更新工作者脚本
  • worker_delete: 删除工人脚本

持久对象

  • 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_list_models: 列出可用的AI模型
  • workers_ai_get_model:获取特定AI模型的细节
  • workers_ai_run_inference: 使用工人AI进行推论
  • workers_ai_list_tasks: 列出 AI 任务

工作流量

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

模板

  • templates_list: 列出可用的工人模板
  • templates_get: 获取特定模板的细节
  • templates_create_from_template: 从模板创建新工作者

工人促进平台

  • w4p_list_dispatchers: 列出平台调度员的所有工人
  • w4p_create_dispatcher: 创建新调度器
  • w4p_delete_dispatcher: 删除调度器
  • w4p_get_dispatcher: 获取特定调度器的细节
  • w4p_update_dispatcher: 更新调度器配置

服务约束

  • bindings_list: 列出对工人的所有服务绑定
  • bindings_create: 创建新服务绑定
  • bindings_update: 更新服务绑定
  • bindings_delete: 删除服务绑定

URL 运行

  • routing_list_routes: 列出工人的所有路线
  • routing_create_route: 创建新路径
  • routing_update_route: 更新路径
  • routing_delete_route: 删除路由

克龙触发器

  • cron_list: 列出一个工人的所有克龙触发器
  • cron_create: 创建新克龙触发器
  • cron_update: 更新克龙触发器
  • cron_delete: 删除克龙触发器

区域( D)

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

秘诀

  • secrets_list: 列出工人的所有秘密
  • secrets_put: 创建或更新一个秘密
  • secrets_delete: 删除一个秘密

版本管理

  • versions_list: 列出一个工作者的所有版本
  • versions_get:获取特定版本的细节
  • versions_rollback: 回滚到上一个版本

朗格勒配置

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

分析

  • analytics_get: 为您的域获取分析数据
    • 包括请求、带宽、威胁和页面浏览等衡量标准
    • 支持日期范围过滤

发展中国家

在当前工程文件夹中, 运行 :

pnpm install
pnpm build:watch

然后,在第二个终点站:

node dist/index.js init

这将将 Claude Desktop 与您本地安装的版本连接, 供您测试 .

测试

该项目使用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: 全局测试设置配置

每个工具测试文件都遵循一个一致的模式,既测试成功操作,也测试出错处理方案.

克劳德以外的使用

要在本地运行服务器, 请运行 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"
})

持久对象

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

大赦国际

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

工人促进平台

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

克龙触发器

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

区域( D)

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

朗格勒配置

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

捐款

欢迎捐款! 请随意提交拉力请求.

版本与发布记录

@cloudflare/mcp-server-cloudflare 共发布 17 个版本,首次发布于 2024/11/27;过去 12 个月发布了 0 个版本。

版本发布日期距今
0.2.0latest2025/03/141.7 年前
0.1.102025/03/111.7 年前
0.1.92025/03/111.7 年前
0.1.82025/03/111.7 年前
0.1.72024/11/291.9 年前
0.1.62024/11/281.9 年前

关于 @cloudflare/mcp-server-cloudflare 的常见问题

@cloudflare/mcp-server-cloudflare 是什么?

用于与 Cloudflare API 交互的 MCP 服务器

如何安装 @cloudflare/mcp-server-cloudflare?

在项目目录运行 npm install @cloudflare/mcp-server-cloudflare,或使用 pnpm add / yarn add / bun add。它还提供命令行工具 mcp-server-cloudflare,可以用 npx mcp-server-cloudflare 直接运行。

@cloudflare/mcp-server-cloudflare 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@cloudflare/mcp-server-cloudflare 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@cloudflare/mcp-server-cloudflare 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=16.17.0。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@cloudflare/mcp-server-cloudflare 可以商用吗?

@cloudflare/mcp-server-cloudflare 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@cloudflare/mcp-server-cloudflare 的下载量有多少?

根据 npm 官方下载统计,@cloudflare/mcp-server-cloudflare 在 2026/10/10 – 2026/11/08 这 30 天内被下载 10,329 次,日均约 344 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@cloudflare/mcp-server-cloudflare 还在维护吗?

最新版本 0.2.0 发布于 2025/03/14(1.7 年前);至今共发布 17 个版本,其中过去 12 个月发布了 0 个;首次发布于 2024/11/27。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。