mcpField
C
Cloudflare Remote MCP Server

Cloudflare Remote MCP Server

本地服务
github.com/endou-mame云与基础设施073 周前更新

关于 Cloudflare Remote MCP Server

这是面向探索远程 MCP 部署的 Cloudflare Workers 示例实现。它使用 Durable Objects 处理有状态请求,并通过 HTTP Streamable 传输展示工具、资源和提示词。

主要功能

  1. 01HTTP Streamable 传输
  2. 02Durable Objects 请求处理
  3. 03回显、时间与数字示例工具
  4. 04静态示例资源
  5. 05预置交互提示词
  6. 06支持 CORS

适用场景

  1. 01在 Cloudflare Workers 部署远程 MCP 端点
  2. 02探索有状态 MCP 请求处理
  3. 03测试工具、资源和提示词交互
  4. 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:生成用于调试协助的提示词

部署

  1. 安装依赖项:

    npm install
    
  2. 部署到 Cloudflare:

    npm run deploy
    
  3. 通过部署后的 URL 访问你的 MCP 服务

开发

  1. 启动本地开发:

    npm run dev
    
  2. 测试服务:

    # 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

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。