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 服务端的初步实现,具备可运行的服务端代码与测试覆盖,非仅示例。