Cloudflare MCP Server

Cloudflare MCP Server

一个 MCP 服务器,允许通过 Claude Desktop、VSCode 和其他 MCP 客户端,使用自然语言来管理 Cloudflare 资源(Workers、KV、R2、D1)。

云平台
开发者工具
TypeScript
访问服务器

README

适用于 IDE 的 Cloudflare MCP 服务器

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

这使您可以使用 Claude Desktop 和 IDE(如 VSCode (Cline) 和 Windsurf)或任何 MCP 客户端,通过自然语言来完成 Cloudflare 帐户上的操作,例如:

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

演示

<div align="center"> <a href="https://youtube.com/shorts/SmN-I3XBO0g?si=bg4PqM5TJTMWdtGJ">简短演示视频</a> </div>

设置

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

<div align="left"> <img src="https://github.com/user-attachments/assets/163bed75-ec0c-478a-94b2-179969a90923" alt="Example console output" width="300"/> </div>

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

<div align="left"> <img src="https://github.com/user-attachments/assets/a24275b1-1c6f-4754-96ef-dd7b9f0f5903" alt="Example tool icon" height="160"/> <img src="https://github.com/user-attachments/assets/4fb8badb-6800-4a3f-a530-a344b3584bec" alt="Example tool list" height="160"/> </div>

  1. 查看 Cline 配置文件,您应该会看到一个包含您的 Cloudflare 帐户 ID 的 cloudflare 部分。

<div align="left"> <img width="292" alt="Example configuration file" src="https://github.com/user-attachments/assets/ed7444d1-739f-45d3-b259-99f0814ad894"/> </div>

  1. 查看您的 Windsurf MCP 配置文件,您也应该看到一个 cloudflare 部分。 Windsurf 对 MCP 工具的使用有限制,因此您不能同时使用太多工具。(与 Cline 和 Claude 不同)

<div align="left"> <img width="445" alt="Screenshot 2025-02-22 at 10 28 09 PM" src="https://github.com/user-attachments/assets/431a8a9a-1669-4be1-a3cf-a1cd7ba28c94" /> </div>

功能

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

然后,在第二个终端中:

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

贡献

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

推荐服务器

Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Playwright MCP Server

Playwright MCP Server

提供一个利用模型上下文协议的服务器,以实现类人浏览器的自动化,该服务器使用 Playwright,允许控制浏览器行为,例如导航、元素交互和滚动。

精选
本地
TypeScript
MCP Package Docs Server

MCP Package Docs Server

促进大型语言模型高效访问和获取 Go、Python 和 NPM 包的结构化文档,通过多语言支持和性能优化来增强软件开发。

精选
本地
TypeScript
Claude Code MCP

Claude Code MCP

一个实现了 Claude Code 作为模型上下文协议(Model Context Protocol, MCP)服务器的方案,它可以通过标准化的 MCP 接口来使用 Claude 的软件工程能力(代码生成、编辑、审查和文件操作)。

精选
本地
JavaScript
@kazuph/mcp-taskmanager

@kazuph/mcp-taskmanager

用于任务管理的模型上下文协议服务器。它允许 Claude Desktop(或任何 MCP 客户端)在基于队列的系统中管理和执行任务。

精选
本地
JavaScript
Apple MCP Server

Apple MCP Server

通过 MCP 协议与 Apple 应用(如“信息”、“备忘录”和“通讯录”)进行交互,从而使用自然语言发送消息、搜索和打开应用内容。

精选
本地
TypeScript
contentful-mcp

contentful-mcp

在你的 Contentful Space 中更新、创建、删除内容、内容模型和资源。

精选
TypeScript