Cloudflare MCP Server
BlakeB254
README
Cloudflare MCP 服务器
模型上下文协议 (MCP) 是一种新的标准化协议,用于管理大型语言模型 (LLM) 和外部系统之间的上下文。 在此存储库中,我们提供了一个安装程序以及一个用于 Cloudflare API 的 MCP 服务器。
这使您可以使用 Claude Desktop 或任何 MCP 客户端,通过自然语言来完成 Cloudflare 帐户上的操作,例如:
请为我部署一个新的 Worker,其中包含一个示例持久对象。
你能告诉我关于我的名为“...”的 D1 数据库中的数据吗?
你能将我的 KV 命名空间“...”中的所有条目复制到我的 R2 存储桶“...”中吗?
演示
<div align="center"> <a href="https://www.youtube.com/watch?v=vGajZpl_9yA"> <img src="https://img.youtube.com/vi/vGajZpl_9yA/maxresdefault.jpg" alt="演示新发布的 MCP 服务器,以探索 Cloudflare 属性,如 Workers、KV 和 D1。" width="600"/> </a> </div>
设置
-
运行
npx @cloudflare/mcp-server-cloudflare init
注意: 如果您尚未通过 Cloudflare 身份验证,MCP 服务器将自动运行
npx wrangler login
。 如果需要,系统将提示您在浏览器中完成身份验证过程。
<div align="left"> <img src="https://github.com/user-attachments/assets/163bed75-ec0c-478a-94b2-179969a90923" alt="示例控制台输出" width="300"/> </div>
- 重新启动 Claude Desktop,您应该会看到一个小的 🔨 图标,显示以下工具可供使用:
<div align="left"> <img src="https://github.com/user-attachments/assets/a24275b1-1c6f-4754-96ef-dd7b9f0f5903" alt="示例工具图标" height="160"/> <img src="https://github.com/user-attachments/assets/4fb8badb-6800-4a3f-a530-a344b3584bec" alt="示例工具列表" height="160"/> </div>
付费功能
此 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
: 列出您帐户中的所有 Workersworker_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 for Platforms
w4p_list_dispatchers
: 列出所有 Workers for Platforms 调度器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 触发器
cron_list
: 列出 Worker 的所有 cron 触发器cron_create
: 创建一个新的 cron 触发器cron_update
: 更新一个 cron 触发器cron_delete
: 删除一个 cron 触发器
区域和域名
zones_list
: 列出您帐户中的所有区域zones_create
: 创建一个新的区域zones_delete
: 删除一个区域zones_get
: 获取有关特定区域的详细信息zones_check_activation
: 检查区域激活状态
密钥
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
// 列出 workers
worker_list()
// 获取 worker 代码
worker_get({ name: "my-worker" })
// 更新 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"]
})
// 删除 worker
worker_delete({ name: "my-worker" })
KV 存储
// 列出 KV 命名空间
get_kvs()
// 获取值
kv_get({
namespaceId: "your_namespace_id",
key: "myKey"
})
// 存储值
kv_put({
namespaceId: "your_namespace_id",
key: "myKey",
value: "myValue",
expirationTtl: 3600 // 可选,以秒为单位
})
// 列出键
kv_list({
namespaceId: "your_namespace_id",
prefix: "app_", // 可选
limit: 10 // 可选
})
// 删除键
kv_delete({
namespaceId: "your_namespace_id",
key: "myKey"
})
R2 存储
// 列出存储桶
r2_list_buckets()
// 创建存储桶
r2_create_bucket({ name: "my-bucket" })
// 删除存储桶
r2_delete_bucket({ name: "my-bucket" })
// 列出存储桶中的对象
r2_list_objects({
bucket: "my-bucket",
prefix: "folder/", // 可选
delimiter: "/", // 可选
limit: 1000 // 可选
})
// 获取对象
r2_get_object({
bucket: "my-bucket",
key: "folder/file.txt"
})
// 放置对象
r2_put_object({
bucket: "my-bucket",
key: "folder/file.txt",
content: "Hello, World!",
contentType: "text/plain" // 可选
})
// 删除对象
r2_delete_object({
bucket: "my-bucket",
key: "folder/file.txt"
})
D1 数据库
// 列出数据库
d1_list_databases()
// 创建数据库
d1_create_database({ name: "my-database" })
// 删除数据库
d1_delete_database({ databaseId: "your_database_id" })
// 执行单个查询
d1_query({
databaseId: "your_database_id",
query: "SELECT * FROM users WHERE age > ?",
params: ["25"] // 可选
})
// 创建表
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
)
`
})
分析
// 获取今天的分析
analytics_get({
zoneId: "your_zone_id",
since: "2024-11-26T00:00:00Z",
until: "2024-11-26T23:59:59Z"
})
持久对象
// 列出持久对象命名空间
durable_objects_list()
// 创建一个新的持久对象命名空间
durable_objects_create({
name: "my-durable-object",
script_name: "my-worker",
class_name: "MyDurableObjectClass"
})
// 删除一个持久对象命名空间
durable_objects_delete({
id: "your_namespace_id"
})
// 列出命名空间的实例
durable_objects_list_instances({
namespaceId: "your_namespace_id",
limit: 100 // 可选
})
// 获取关于特定实例的详细信息
durable_objects_get_instance({
namespaceId: "your_namespace_id",
instanceId: "your_instance_id"
})
// 删除一个特定实例
durable_objects_delete_instance({
namespaceId: "your_namespace_id",
instanceId: "your_instance_id"
})
队列
// 列出所有队列
queues_list()
// 创建一个新的队列
queues_create({
name: "my-queue",
settings: {
delivery_delay: 0,
dead_letter_queue: "dead-letter-queue" // 可选
}
})
// 删除一个队列
queues_delete({
name: "my-queue"
})
// 获取队列详细信息
queues_get({
name: "my-queue"
})
// 向队列发送消息
queues_send_message({
queue: "my-queue",
messages: [
{ body: JSON.stringify({ key: "value" }) }
]
})
// 从队列获取消息
queues_get_messages({
queue: "my-queue",
batchSize: 10, // 可选
visibilityTimeout: 30 // 可选,以秒为单位
})
// 更新一个队列消费者
queues_update_consumer({
queue: "my-queue",
consumer: "my-consumer",
settings: {
dead_letter_queue: "dead-letter-queue",
batch_size: 10,
max_retries: 3
}
})
Workers AI
// 列出可用的 AI 模型
workers_ai_list_models()
// 获取关于特定模型的详细信息
workers_ai_get_model({
model: "@cf/meta/llama-2-7b-chat-int8"
})
// 使用 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
}
})
// 列出 AI 任务
workers_ai_list_tasks()
工作流
// 列出所有工作流
workflows_list()
// 创建一个新的工作流
workflows_create({
name: "my-workflow",
content: "// Workflow script content here"
})
// 删除一个工作流
workflows_delete({
name: "my-workflow"
})
// 获取工作流详细信息
workflows_get({
name: "my-workflow"
})
// 更新一个工作流
workflows_update({
name: "my-workflow",
content: "// Updated workflow script content"
})
// 执行一个工作流
workflows_execute({
name: "my-workflow",
input: { key: "value" }
})
模板
// 列出可用的模板
templates_list()
// 获取关于特定模板的详细信息
templates_get({
template: "worker-typescript"
})
// 从模板创建一个 worker
templates_create_from_template({
name: "my-new-worker",
template: "worker-typescript",
options: {
// 模板特定的选项
}
})
Workers for Platforms
// 列出调度器
w4p_list_dispatchers()
// 创建一个新的调度器
w4p_create_dispatcher({
name: "my-dispatcher",
script: "// Dispatcher script content"
})
// 删除一个调度器
w4p_delete_dispatcher({
name: "my-dispatcher"
})
// 获取调度器详细信息
w4p_get_dispatcher({
name: "my-dispatcher"
})
// 更新调度器
w4p_update_dispatcher({
name: "my-dispatcher",
script: "// Updated dispatcher script content"
})
服务绑定
// 列出一个 worker 的所有服务绑定
bindings_list({
workerName: "my-worker"
})
// 创建一个新的服务绑定
bindings_create({
workerName: "my-worker",
bindingName: "MY_SERVICE",
serviceEnvironment: "production",
serviceName: "target-worker"
})
// 更新一个服务绑定
bindings_update({
workerName: "my-worker",
bindingName: "MY_SERVICE",
serviceEnvironment: "staging",
serviceName: "target-worker"
})
// 删除一个服务绑定
bindings_delete({
workerName: "my-worker",
bindingName: "MY_SERVICE"
})
URL 路由
// 列出一个 worker 的所有路由
routing_list_routes({
workerName: "my-worker"
})
// 创建一个新的路由
routing_create_route({
workerName: "my-worker",
pattern: "example.com/*",
zoneId: "your_zone_id"
})
// 更新一个路由
routing_update_route({
routeId: "your_route_id",
pattern: "api.example.com/*",
zoneId: "your_zone_id"
})
// 删除一个路由
routing_delete_route({
routeId: "your_route_id"
})
Cron 触发器
// 列出一个 worker 的所有 cron 触发器
cron_list({
workerName: "my-worker"
})
// 创建一个新的 cron 触发器
cron_create({
workerName: "my-worker",
schedule: "*/5 * * * *",
timezone: "UTC" // 可选
})
// 更新一个 cron 触发器
cron_update({
triggerId: "your_trigger_id",
schedule: "0 */2 * * *",
timezone: "America/New_York"
})
// 删除一个 cron 触发器
cron_delete({
triggerId: "your_trigger_id"
})
区域和域名
// 列出所有区域
zones_list()
// 创建一个新的区域
zones_create({
name: "example.com",
account: {
id: "your_account_id"
}
})
// 获取区域详细信息
zones_get({
zoneId: "your_zone_id"
})
// 删除一个区域
zones_delete({
zoneId: "your_zone_id"
})
// 检查区域激活状态
zones_check_activation({
zoneId: "your_zone_id"
})
密钥
// 列出一个 worker 的所有密钥
secrets_list({
workerName: "my-worker"
})
// 创建或更新一个密钥
secrets_put({
workerName: "my-worker",
secretName: "API_KEY",
secretValue: "your-secret-api-key"
})
// 删除一个密钥
secrets_delete({
workerName: "my-worker",
secretName: "API_KEY"
})
版本管理
// 列出一个 worker 的所有版本
versions_list({
workerName: "my-worker"
})
// 获取关于特定版本的详细信息
versions_get({
workerName: "my-worker",
versionId: "your_version_id"
})
// 回滚到以前的版本
versions_rollback({
workerName: "my-worker",
versionId: "your_version_id"
})
Wrangler 配置
// 获取当前 wrangler 配置
wrangler_get_config()
// 更新 wrangler 配置
wrangler_update_config({
config: {
name: "my-worker",
main: "src/index.ts",
compatibility_date: "2024-03-11",
workers_dev: true
}
})
贡献
欢迎贡献! 请随时提交 Pull Request。
推荐服务器
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
MCP Package Docs Server
促进大型语言模型高效访问和获取 Go、Python 和 NPM 包的结构化文档,通过多语言支持和性能优化来增强软件开发。
Claude Code MCP
一个实现了 Claude Code 作为模型上下文协议(Model Context Protocol, MCP)服务器的方案,它可以通过标准化的 MCP 接口来使用 Claude 的软件工程能力(代码生成、编辑、审查和文件操作)。
@kazuph/mcp-taskmanager
用于任务管理的模型上下文协议服务器。它允许 Claude Desktop(或任何 MCP 客户端)在基于队列的系统中管理和执行任务。
mermaid-mcp-server
一个模型上下文协议 (MCP) 服务器,用于将 Mermaid 图表转换为 PNG 图像。
Jira-Context-MCP
MCP 服务器向 AI 编码助手(如 Cursor)提供 Jira 工单信息。

Linear MCP Server
一个模型上下文协议(Model Context Protocol)服务器,它与 Linear 的问题跟踪系统集成,允许大型语言模型(LLM)通过自然语言交互来创建、更新、搜索和评论 Linear 问题。

Sequential Thinking MCP Server
这个服务器通过将复杂问题分解为顺序步骤来促进结构化的问题解决,支持修订,并通过完整的 MCP 集成来实现多条解决方案路径。
Curri MCP Server
通过管理文本笔记、提供笔记创建工具以及使用结构化提示生成摘要,从而实现与 Curri API 的交互。