Cloudflare MCP Server 使用说明
项目简介
Cloudflare MCP Server 是一个基于 Model Context Protocol (MCP) 构建的服务器实现,旨在让大型语言模型 (LLM) 能够以标准化的方式访问和操作 Cloudflare 的各项服务。通过此服务器,你可以使用支持 MCP 协议的 LLM 客户端(如 Claude Desktop)以自然语言指令控制你的 Cloudflare 账户,例如部署 Worker、管理 KV 存储、操作 R2 存储桶、查询 D1 数据库以及获取 Analytics 数据。
主要功能点
- 资源管理 (Resources): 虽然仓库本身没有明确的“资源”概念,但其提供的各项 Cloudflare 服务(Workers, KV, R2, D1, Analytics)可以被视为通过工具访问和管理的外部资源。
- 工具注册和执行 (Tools): 仓库定义并实现了多个工具,涵盖了 Cloudflare 核心服务的操作,例如:
- KV 存储管理: 列出 KV 命名空间、获取/存储/删除 KV 值、列出 KV 键。
- R2 存储管理: 列出/创建/删除 R2 存储桶、列出/获取/上传/删除 R2 对象。
- D1 数据库管理: 列出/创建/删除 D1 数据库、执行 SQL 查询。
- Workers 管理: 列出/获取/部署/删除 Workers 脚本。
- Analytics 分析: 获取域名的 Analytics 数据。
- Prompt 模板 (Prompts): 仓库本身未显式定义 Prompt 模板,但其目标是与 LLM 客户端配合,通过自然语言指令驱动 Cloudflare 操作,实际使用时 Prompt 模板可能在 LLM 客户端侧进行管理和定制。
- JSON-RPC 通信: 基于 'modelcontextprotocol/sdk' 库构建,默认使用 StdioServerTransport,通过标准输入输出与 MCP 客户端进行 JSON-RPC 通信。
安装步骤
- 安装 Node.js 和 npm (或 pnpm): 确保你的系统已安装 Node.js 和 npm 或 pnpm 包管理器。
- 执行初始化命令: 打开终端,运行以下命令初始化 Cloudflare MCP Server:
此命令会自动检测并配置 Claude Desktop 以使用 Cloudflare MCP Server。初始化过程会引导你完成 Cloudflare API 认证。npx @cloudflare/mcp-server-cloudflare init - 重启 Claude Desktop (如果使用): 如果使用 Claude Desktop,请重启应用以加载新配置的 MCP 服务器。
服务器配置
MCP 服务器配置主要在 MCP 客户端中进行。以下是配置 Cloudflare MCP Server 的 JSON 格式配置信息示例,通常用于配置 MCP 客户端的 'mcpServers' 字段。
{ "server name": "cloudflare", // MCP 服务器名称,可以自定义,用于在客户端中标识 "command": "node", // 启动 MCP 服务器的命令,这里使用 node "args": [ // 启动命令的参数 "path/to/dist/index.js", // 指向 Cloudflare MCP Server 的入口文件 (index.js)。请替换为实际路径,通常在项目根目录的 dist 文件夹下。 "run", // 指定运行 "run" 命令,启动服务器 "<account-id>" // Cloudflare 账户 ID。请替换为你的 Cloudflare 账户 ID,或者在运行 'init' 命令后,可以省略此参数,服务器会自动读取配置。 ] }
注意:
- 'path/to/dist/index.js' 需要替换为实际 'index.js' 文件在你系统中的路径。如果你是通过 'npx' 全局安装运行,可能不需要指定完整路径,只需 'dist/index.js' 或直接 'index.js' 即可。
- '<account-id>' 建议在初始化时通过 'init' 命令配置,或者在运行 'run' 命令时指定。
基本使用方法
-
启动 MCP 服务器: 在终端中,根据你的配置,运行启动命令,例如:
node dist/index.js run <account-id>或者,如果已配置账户 ID,可以直接运行:
node dist/index.js run -
在 MCP 客户端中使用: 配置好 MCP 客户端后,即可在客户端中使用自然语言指令与 Cloudflare 服务交互。例如,在 Claude Desktop 中,你可以尝试以下指令:
- '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 '...'?'
-
工具列表和调用 (高级用法): 对于非 Claude Desktop 或需要更精细控制的场景,可以使用 'tools/list' 和 'tools/call' 命令与服务器交互。
- 获取工具列表: 向服务器发送 'tools/list' 命令,服务器会返回 JSON 格式的可用工具列表。
- 调用工具: 使用 'tools/call' 命令,并指定要调用的工具名称和参数,例如:
// 列出 Workers worker_list() // 获取 Worker 代码 worker_get({ name: "my-worker" })
请参考仓库 README 和代码示例,了解更多工具的具体用法和参数。
信息
分类
开发者工具