关于 Cloudflare Remote MCP Server
这是面向探索远程 MCP 部署的 Cloudflare Workers 示例实现。它使用 Durable Objects 处理有状态请求,并通过 HTTP Streamable 传输展示工具、资源和提示词。
主要功能
- 01HTTP Streamable 传输
- 02Durable Objects 请求处理
- 03回显、时间与数字示例工具
- 04静态示例资源
- 05预置交互提示词
- 06支持 CORS
适用场景
- 01在 Cloudflare Workers 部署远程 MCP 端点
- 02探索有状态 MCP 请求处理
- 03测试工具、资源和提示词交互
- 04通过 HTTP 连接 MCP 客户端
MCP 相关
通过 HTTP Streamable MCP 端点提供示例工具、资源和提示词。客户端通过 HTTP POST 发送 JSON-RPC 请求,并接收 Server-Sent Events。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
暂未收录安装方式
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
还没有获取到工具列表
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Cloudflare Remote MCP 服务
一个运行在 Cloudflare Workers 和 Durable Objects 上的 Model Context Protocol(MCP)服务实现。
功能
- 远程 MCP 服务:基于 HTTP Streamable 传输,可通过互联网访问的 MCP 服务
- Durable Objects:使用 Cloudflare Durable Objects 处理有状态请求
- 示例工具:用于演示 MCP 协议的工具
- 示例资源:可通过 MCP 访问的静态数据资源
- 示例提示词:预构建的 AI 交互提示词
- CORS 支持:支持跨域资源共享,适用于 Web
架构
┌─────────────────┐ HTTP POST + SSE ┌──────────────────┐
│ MCP Client │ ◄──────────────► │ Cloudflare │
│ (AI/Claude) │ │ Worker │
└─────────────────┘ └─────────┬────────┘
│
▼
┌──────────────────┐
│ MCPServerObject │
│ (Durable Object) │
│ │
│ • MCP Protocol │
│ • HTTP Processing│
│ • Request State │
└──────────────────┘
可用功能
工具
- echo:回显输入文本
- get_time:获取当前时间戳
- random_number:生成 min 和 max 之间的随机数
资源
- cloudflare://worker-info:关于 Cloudflare Worker 的信息
- cloudflare://sample-data:用于测试的示例 JSON 数据
提示词
- explain_code:生成用于解释代码的提示词
- debug_help:生成用于调试协助的提示词
部署
-
安装依赖项:
npm install -
部署到 Cloudflare:
npm run deploy -
通过部署后的 URL 访问你的 MCP 服务
开发
-
启动本地开发:
npm run dev -
测试服务:
# Get server info curl http://localhost:8787/ # Test MCP endpoint with a simple request curl -X POST http://localhost:8787/mcp \ -H "Content-Type: application/json" \ -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
用法
HTTP API
GET /- 服务信息和功能POST /mcp- MCP HTTP Streamable 端点
MCP 连接
将 MCP 客户端连接到 HTTP 端点:
- 本地:
http://localhost:8787/mcp - 生产环境:
https://your-worker.your-subdomain.workers.dev/mcp
协议详情
服务使用 HTTP Streamable 传输:
- 请求:HTTP POST,请求正文中包含 JSON-RPC 消息
- 响应:Server-Sent Events(SSE)流,内容类型为
text/event-stream - 格式:每个响应均以
data: {JSON}\n\n的形式发送
MCP 消息示例
列出工具
curl -X POST http://localhost:8787/mcp \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/list"
}'
调用工具
curl -X POST http://localhost:8787/mcp \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
"name": "echo",
"arguments": {
"text": "Hello, MCP!"
}
}
}'
列出资源
curl -X POST http://localhost:8787/mcp \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 3,
"method": "resources/list"
}'
配置
服务在 wrangler.jsonc 中配置:
- Durable Objects:
MCPServerObject负责处理有状态的 MCP 请求 - 兼容日期:设置为当前日期,以使用最新的 Cloudflare Workers 功能
开发说明
- 使用
@modelcontextprotocol/sdk实现 MCP 协议 - HTTP 请求由 Durable Objects 处理,以管理状态
- 响应通过 Server-Sent Events(SSE)流式传输
- 启用 CORS,以兼容 Web 客户端
- 错误处理包括 JSON-RPC 错误响应
- 启用严格模式的 TypeScript
传输协议
此实现使用 HTTP Streamable 传输,而非 WebSocket:
- 与代理和防火墙的兼容性更好
- 使用标准 HTTP 语义
- 支持通过 Server-Sent Events 实时响应
- 更适合无状态云环境
许可证
这是一个用于教育目的的示例实现。
评论
支持 Markdown
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。