EV2090 MCP 后端服务器实现

项目简介

  • 该仓库中包含一个完整的 MCP 服务器实现,核心逻辑分布在 worker-mcp 子目录下,具备 session 管理、JSON-RPC 格式处理、工具调用、资源与提示模板的路由与处理能力。通过 WebSocket、SSE 与 HTTP POST 等传输方式与 MCP 客户端通信,支持基于 API Key 的鉴权和基于 OAuth2.0 + PKCE 的授权流程。

主要功能点

  • MCP 核心协议实现
    • 处理 MCP JSON-RPC 请求,返回标准化的 JSON-RPC 响应与错误码。
    • 路由实现:initialize、tools/list、tools/call、resources/list、prompts/list、ping 等核心方法,以及通用的错误处理。
  • 会话与传输模式
    • 针对单个 MCP 会话创建 Durable Object 会话实例,支持 WebSocket、Server-Sent Events(SSE)和基于 HTTP POST 的 JSON-RPC 传输。
    • 会话层级鉴权与作用域管理,结合多种传输方式实现无缝通信。
  • 鉴权与安全
    • 3 层级 API Key(full/rw/ro)及基于 OAuth2.0 + PKCE 的授权机制。
    • JWT/Code 的生成与校验、请求签名的时序安全性处理、CORS 与安全头部管理。
  • 工具与资源接口
    • 提供工具列表、工具调用入口,通过工具实现对资源、外部服务的访问。
    • 资源与提示模板的读取路径与渲染逻辑。
  • 容错、日志与监控
    • 结构化日志(按会话、工具、等级输出),便于追踪请求与响应过程。
  • 部署与环境
    • Cloudflare Workers + Durable Objects 架构,包含 wrangler 配置、环境变量及 bindings 的清晰实现。

安装与运行

  • 运行环境:Node.js(推荐版本与仓库文档一致,详见子目录中的说明)。
  • 依赖与构建:该 MCP 服务器作为后端服务,需通过 Cloudflare Wrangler 进行本地开发与部署。仓库中提供了 wrangler 配置和示例环境变量。
  • 本地开发与调试建议流程:
    • 安装并登录 Cloudflare Wrangler。
    • 按照仓库中的 wrangler.toml / 配置,设置好环境变量(如 MCP API Key、OAuth 秘钥等)。
    • 使用 wrangler dev 在本地启动,调试 MCP 会话与路由。
    • 将改动部署至 Cloudflare Workers,验证远端服务的实际通信。

服务器配置(给 MCP 客户端的启动信息示例)

以下信息用于 MCP 客户端的启动配置说明(非直接执行代码,便于理解):

  • server_name: ev2090-mcp
  • command: wrangler dev
  • args: ["--local", "http://127.0.0.1:8787"] // 本地开发模式时的绑定地址
  • 说明:
    • 该 MCP 服务器运行在 Cloudflare Workers 上,生产环境通常通过 wrangler publish 部署。开发阶段可用 wrangler dev 本地调试。
    • 需要的环境变量包括 MCP_API_KEY、MCP_API_KEY_RW、MCP_API_KEY_RO、OAUTH_HMAC_SECRET、WORKER_VERSION、LOG_LEVEL、ALLOWED_ORIGINS 等,请按仓库文档在部署时提供。
    • 客户端通过 JSON-RPC 与服务器通信,支持 initialize、tools/list、tools/call、resources/list、prompts/list、ping 等方法,以及通过不同传输方式建立会话。

基本使用方法

  • 客户端与服务器对接流程
    • 通过 session 机制建立会话(WebSocket、SSE 或 HTTP POST JSON-RPC)。
    • 调用 initialize 获取服务器能力信息后,可请求 tools/list 获取工具定义,再通过 tools/call 调用工具获得结果。
    • 通过 resources/list 与 prompts/list 获取资源和提示模板,结合 LLM 的上下文进行对话与执行。
    • 服务器实现了鉴权与作用域控制,确保不同客户端在不同权限下访问对应的接口与工具。
  • 开发与扩展建议
    • 如果需要扩展工具集合,向 MCP Tools 增加自定义工具定义并实现对 client 的暴露。
    • 如需扩展资源或 Prompts,请实现相应接口并在 MCP 服务端进行注册与渲染。

参考与依赖项

  • MCP 会话实现(WebSocket/SSE/HTTP POST)通过 MCPSession Durable Object 提供。
  • 认证与授权模块(OAuth2.0 + PKCE、API Key)位于 worker-mcp/auth.ts、security.ts、mcp-session.ts。
  • 豐富的传输支持与日志体系实现于 worker-mcp 目录的各个文件中。
  1. 关键词
  • 云端后端, JSON-RPC, 服务端会话, WebSocket, OAuth2 PKCE
  1. 分类ID
  • 6

服务器信息