Epicflare MCP 服务端实现

使用说明(Markdown 格式)

  • 项目简介

    • 本仓库实现了一个 MCP 服务器端,结合 Cloudflare Workers 环境,提供对资源、工具以及提示模板等 MCP 要素的托管与管理能力,允许 LLM 客户端通过标准化接口进行上下文访问和函数调用。
  • 主要功能点

    • MCP 服务器核心:实现 MCP 协议相关的资源、工具与提示的管理、注册与执行能力,支持通过 JSON-RPC 进行请求/响应。
    • 工具注册与执行:通过 mcp-tools.ts 提供可注册的工具(如 do_math),支持输入校验并返回文本型结果。
    • 会话与认证:结合 OAuth 提供的保护机制,支持资源元数据和受保护资源访问控制(worker/mcp-auth.ts、worker/oauth-handlers.ts),确保只有授权的请求可以调用 MCP 资源。
    • 路由与中间件:在 Worker 内部集成 Remix 相关路由与自定义路由,确保 MCP 端点与前端应用的路由分离并可测试。
    • 跨服务互操作:与 Remix 服务端、OAuth 提供者、以及数据库(D1/KV)等集成,提供完整的后端服务能力。
  • 安装步骤

    • 安装 Cloudflare Wrangler 与所需的依赖。
    • 将代码部署到 Cloudflare Worker,确保域名或 Cloudflare Worker 的地址可访问。
    • 配置环境变量(如 COOKIE_SECRET、OAUTH 提供者等)以启用会话管理和 OAuth 授权。
  • 服务器配置(MCP 客户端所需信息注释)

    • MCP 服务器运行于 Cloudflare Worker 的环境中,客户端需要知道服务器的启动地址(即 Worker 的公开 URL)。以下为必要的配置项说明(以 JSON 形式描述,非代码块呈现):
    • serverName:Epicflare MCP 服务器(用于标识服务器实例的名称)。
    • command:本 MCP 服务器作为 Cloudflare Worker 一体化服务存在,无需在本地独立启动进程,因此客户端仅需知道部署的 Worker 地址,实际命令参数在客户端不需要指定。
    • args:空数组或不需要(由于服务器在云端运行,客户端不需要本地启动参数)。
    • baseUrl:部署后的 Cloudflare Worker 地址,例如 https://your-workder.example.workers.dev(MCP 客户端应以此地址与服务器通信)。
    • 注释:在本实现中 MCP 服务器与前端应用统一在 Cloudflare Worker 中运行,客户端只需要配置服务器的公开地址即可建立连接与交互。
  • 基本使用方法

    • 将 MCP 客户端指向你在 Cloudflare Worker 上部署的 baseUrl,发起资源读取、工具调用、Prompts 获取等请求。
    • 使用工具时,确保工具已在 MCP 服务器端注册(如 do_math),并按输入 schema 提供参数。
    • 通过服务器提供的授权与会话管理机制,确保对受保护资源的访问具备有效凭证。

服务器信息