Epic Scheduler MCP 服务器端实现

使用说明(Markdown 格式)

  • 项目简介

    • 该仓库实现了一个基于 MCP 的后端服务器,用于向 LLM 客户端提供可访问的资源、可执行的工具,以及可渲染的 Prompt/UI 模板。核心通过 /mcp 提供 JSON-RPC 风格的接口,支持工具执行、资源读取、以及渲染 MCP 应用资源等能力。
  • 主要功能点

    • MCP 服务端实现:实现 MCP 协议的核心通信与请求处理,提供工具注册、资源注册、以及 UI 应用资源渲染能力。
    • 资源管理与渲染:注册并暴露 Schedule App 与 Schedule Host App 等资源,渲染成 MCP UI 资源供 LLM 调用或直接在 UI 中展示。
    • 工具注册与执行:注册一组调度相关工具(如 create_schedule、submit_schedule_availability、get_schedule_snapshot、open_schedule_ui、open_schedule_host_ui、update_schedule_host_settings 等),支持输入输出契约和错误处理。
    • 会话与通知机制:通过 MCP 服务实现会话管理、状态通知,以及对外广播(如 schedule-updated 通知)以同步客户端 UI。
    • Durable Objects 与 实时交互:使用 Cloudflare Durable Objects 作为后端存储和实时交互的运行时支撑,提供高并发下的可伸缩性。
    • 多传输协议支持:在实现中考虑了多种传输场景(如 JSON-RPC、WebSocket 实时通道、以及 UI 渲染的嵌入式资源加载)。
  • 安装步骤

    • 准备环境:本仓库基于 Bun/Wrangler 等工具在 Cloudflare Workers 体系内开发和运行;请确保本地/CI 环境具备 Bun、Wrangler 与 Cloudflare 账户配置。
    • 安装依赖:在仓库根目录执行依赖安装。
    • 本地开发与调试:
      • 使用 Wrangler 进行本地开发调试,按照仓库的工作流配置(dev 环境、端口等参数)启动 MCP 服务端。
      • 通过测试用例的本地化流程验证 MCP 服务端对工具、资源的注册以及对客户端的响应能力。
    • 运行测试与验证:仓库包含端到端测试用例,使用 Bun + Wrangler 的本地开发环境进行自动化验证。
  • 服务器配置(MCP 客户端连接所需的配置) 说明:以下配置用于 MCP 客户端在本地或云端连接并使用该 MCP 服务器。服务器名称与启动命令需与实际部署环境相匹配。示例以本地开发为目的,实际生产环境请使用公开部署能力(如 Cloudflare Pages/Wrangler 构建的 Workers 部署)并替换为相应的部署指令。

    • serverName: epic-scheduler-mcp
    • command: wrangler
    • args: ["dev", "--local", "--env", "test", "--port", "8788"]

    说明与注释:

    • serverName 为 MCP 服务端在客户端侧的标识名称,需与服务实现中的元信息保持一致。
    • command 与 args 指定了本地开发时启动 MCP 服务端的指令及参数,确保客户端能够通过指定端口访问到 /mcp 路径进行 JSON-RPC 调用。
    • 生产环境请将命令替换为实际的部署命令(例如通过 CI/CD 部署到 Cloudflare Workers 的发布流程),并提供实际可访问的服务器地址。
  • 基本使用

    • 启动服务后,使用 MCP 客户端连接到服务器的 /mcp 路径,执行工具列表、读取资源、打开 UI 等操作。
    • 使用工具时,请遵循工具契约(输入输出结构、错误处理)以获得正确的 structuredContent 与 token 等信息。
    • 当有后台事件发生(如 schedule 更新)时,客户端应收到对应的广播或通知,确保界面与数据保持一致。
  • 备注

    • 本实现包含对 Schedule App、Schedule Host App 的资源注册、工具注册,以及 MCP 服务端的初步实现,具备可运行的服务端代码与测试覆盖,非仅示例。

服务器信息