Cloudflare Computer MCP部署实战:MCP_TOKEN安全配置与客户端接入完整流程
【免费下载链接】computerGive your agent a computer 👾项目地址: https://gitcode.com/GitHub_Trending/computer1/computer
Cloudflare Computer(computer)是一个"给 AI Agent 一台电脑"的开源项目:它用 Durable Object 承载持久化文件系统,并内置 Worker Shell 与 Linux 容器两种执行后端。本文带你把官方 MCP 示例部署到 Cloudflare,完成 MCP_TOKEN 安全配置,并把 AI 客户端成功接入,全程约 10 分钟。
一、Cloudflare Computer MCP 能做什么?
官方 examples/mcp 示例把一台"持久电脑"通过MCP(Model Context Protocol)协议暴露给 AI 客户端。它有三个特点:
- 🖥️一个持久工作区:由 Durable Object 持有,文件跨会话保留,断电不丢;
- 🛠️只暴露一个
code工具:AI 通过 Code Mode 自主编写脚本来读写文件、执行命令,而不是面对几十个零散工具; - 🔀两种执行后端:
worker-shell(快速、隔离、无外网)与container-shell(完整 Debian Linux,按需启动)。
从架构上可以直观理解:Durable Object 里的 SQLite 是文件系统的数据源(source of truth),容器通过 FUSE 挂载看到同一份数据,container-shell执行命令前后都会做一次同步。项目完整设计说明可参考 docs/ 目录。
二、部署前准备:获取示例项目
MCP 示例是一个独立的 Worker 工程,关键文件如下:
| 文件 | 作用 |
|---|---|
| examples/mcp/src/index.ts | Worker 入口 + Token 鉴权逻辑 |
| examples/mcp/src/server.ts | MCP 服务器与code工具注册 |
| examples/mcp/wrangler.jsonc | Worker、Durable Object、容器的部署配置 |
| examples/mcp/Dockerfile | 构建container-shell用的 Linux 镜像 |
两种获取方式任选其一:
方式 A:C3 脚手架(推荐新手),在本地执行:
npm create cloudflare@latest computer-mcp -- \ --template=cloudflare/computer/examples/mcp方式 B:克隆完整仓库:
git clone https://gitcode.com/GitHub_Trending/computer1/computer💡 环境要求:Node.js 20+;本地调试容器后端需要 Docker 守护进程正在运行。
三、一键部署:把 MCP 服务上线
从仓库根目录执行三条命令:
npm install npm run build --workspace @cloudflare/computer npm run deploy --workspace @example/computer-mcp部署成功后会拿到一个https://<your-worker>.workers.dev域名。此时先别急着接入客户端——端点默认"失败关闭":只要还没配置 MCP_TOKEN,任何请求都会被拒绝(返回 503),这是刻意设计的安全默认值。
四、MCP_TOKEN 安全配置:最容易被忽略的一步
1. 生成一个强随机 Token
不要复用密码或随手拼字符串,用命令行生成 64 位十六进制随机值:
openssl rand -hex 322. 将 Token 存为 Worker 加密 Secret
从仓库克隆部署时,需要指定示例的配置路径:
npx wrangler secret put MCP_TOKEN --config examples/mcp/wrangler.jsonc如果你是独立 C3 项目,直接执行npx wrangler secret put MCP_TOKEN即可。也可以在 Cloudflare 控制台对该 Worker 添加加密 Secret,效果相同。
3. 鉴权是如何保护你的?
看一下 examples/mcp/src/index.ts 中的鉴权实现,有三个值得学习的细节:
- ⏱️时序安全比较:使用
crypto.subtle.timingSafeEqual比对Authorization头,先比较长度、再逐字节对比,防止时序攻击; - 🔒失败关闭:Token 未配置返回
503,Token 错误返回401并携带WWW-Authenticate: Bearer头,行为清晰可排错; - 🚫白名单路由:只有
/mcp需要鉴权,/health免鉴权(方便监控),根路径/返回纯文本说明(端点地址、可用后端),其余路径一律 404。
4. 记住单用户安全模型
⚠️ 该示例刻意设计为单用户:所有鉴权后的请求都落在同一个 Durable Object 和同一份工作区。请妥善保管 MCP_TOKEN,不同信任边界(比如团队中不同成员)应各自部署一份独立实例。
五、MCP 客户端接入完整流程
1. 确定两个参数
| 参数 | 值 |
|---|---|
| 服务端点 | https://<your-worker>.workers.dev/mcp |
| 请求头 | Authorization: Bearer <MCP_TOKEN> |
2. 写入客户端配置
支持 JSON 配置的 MCP 客户端,条目通常长这样(文件名和格式因客户端而异):
{ "mcpServers": { "computer": { "type": "http", "url": "https://<your-worker>.workers.dev/mcp", "headers": { "Authorization": "Bearer <MCP_TOKEN>" } } } }✅ 如果客户端提供密钥存储功能,请把 Token 存在那里,不要把真实 Token 提交进配置文件。
3. 验证接入是否成功
先在浏览器访问https://<your-worker>.workers.dev/,能看到端点地址和后端列表即说明服务在线;GET /health返回ok表示健康检查通过。然后在客户端里直接下指令试试:
Create /workspace/hello.txt, read it back, and list the workspace files.如果看到 AI 成功创建、读取并列出文件,恭喜——你的 Computer MCP 已经跑通了!
六、上手使用:双后端怎么选?
客户端只会看到一个公开的code工具,模型会在其中调用codemode.read / write / edit / ls / find / grep / exec等函数操作工作区。exec时由模型选择后端(见 examples/mcp/src/server.ts 中的后端描述):
| 后端 | 适用场景 | 特点 |
|---|---|---|
worker-shell(默认) | 常规 shell 命令、快速查文件、文本处理 | 在 Dynamic Worker 里跑 just-bash,启动极快、无环境外网;内置 Git 支持 HTTPS 远程仓库;不能跑 npm / Node / Python / 原生二进制 |
container-shell | 装依赖、构建、跑测试等完整 Linux 任务 | 完整 Debian + Node.js/npm/git + 出站网络;容器按需启动,冷启动较慢 |
举个例子,想让 AI 在完整 Linux 环境里干活,可以这样说:
Use container-shell to create a small Node.js project in /workspace, install its dependencies, and run its tests.容器只在真正选中container-shell时才启动,/workspace会在每次命令前后与 Durable Object 自动同步,所以两种后端看到的是同一份文件。
七、常见问题排查
| 现象 | 原因与处理 |
|---|---|
请求返回503 | MCP_TOKEN 还没配置,按第四节设置 Worker Secret 后重试 |
请求返回401 | Bearer Token 缺失或不正确,检查客户端请求头 |
请求返回405 | MCP 端点只接受 POST 请求,检查客户端传输方式 |
| 后端命令失败 | 错误会随codemode.exec()结果返回,并附带所选后端名 |
线上排障还有两个好帮手:curl https://<your-worker>.workers.dev/health快速验证连通性;用npx wrangler tail --config examples/mcp/wrangler.jsonc实时流式查看 Worker 与 Durable Object 日志。
八、写在最后
回顾一下完整流程:克隆模板 → 三条命令部署 → 生成随机 Token → 存为 Worker Secret → 客户端配置 Bearer 头 → 一句话验证。Cloudflare Computer 把"持久文件系统 + 双执行后端 + 单一 code 工具"打包成了对 AI 最友好的形态——Token 配好之后,你的 AI 助手就真正拥有了一台随时待命的电脑 🖥️
📚 延伸阅读:examples/mcp/README.md(含本地开发指南)、docs/(VFS、同步协议等设计文档)、docs/19_performance.md(文件系统性能基准)。
【免费下载链接】computerGive your agent a computer 👾项目地址: https://gitcode.com/GitHub_Trending/computer1/computer
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考