Relay MCP Server

使用说明(Markdown 格式)

  • 项目简介

    • Relay 提供一个 MCP 服务器实现,通过解析并处理 MCP 请求/响应,允许 LLM 客户端读取资源、调用工具、获取并渲染提示模板,并通过多种传输方式(如本地 stdio、HTTP 流)与前端或代理进行通信。
    • 服务器核心支持:资源管理、工具注册与执行、提示模板渲染,并实现会话管理与状态 streaming。
  • 主要功能点

    • 将工作流(Workflow)自动暴露为 MCP 工具,支持远程(流式 HTTP)和本地(stdio)传输。
    • 注册一个通用的“relay_respond”工具,用于在工作流暂停时进行响应(输入/确认)。
    • 支持按工作流元数据自动创建相应的工具,并基于工作流定义的输入模式动态生成参数校验。
    • 提供文本化的格式化输出,用于在 MCP 客户端呈现运行状态、交互点和结果。
    • 具备一个简单的本地服务器入口(mcp/server.ts),可通过命令行直接运行来开启 MCP 服务。
    • 与 Cloudflare 相关组件(cf-workflow、cf-durable-object)结合,支持 Durable Object 存储和流式交互;以及一个 HTTP API 接口层用于前端/代理端使用。
  • 安装步骤

    • 安装依赖
      • 在仓库根目录执行:pnpm install
    • 本地开发/运行 MCP 服务器
      • 通过 tsx 直接运行 MCP 服务入口:npx tsx mcp/server.ts
      • 运行时需要配置 RELAY_WORKER_URL 指向你的 Relay Worker(如果使用 Cloudflare Workers 部署,请使用对应的 Worker URL;如本地开发可指向 http://localhost:8787)。
    • 部署场景
      • 生产环境通常将 Relay Worker 部署到 Cloudflare,并通过 MCP 客户端连接到 /mcp 端点。
      • 本地调试可使用 stdio 传输通过 CLI 工具连接。
  • 服务器配置(JSON,供 MCP 客户端使用)

    • 服务器名称:relay-tools(示例名称,建议在客户端注册时保持一致,以便区分不同实例)
    • 启动命令:npx tsx mcp/server.ts
    • 启动参数(示例,无需代码块呈现,以下为可选字段便于理解):
      • args: []
      • 注释(可选):若使用本地开发模式,需要通过环境变量 RELAY_WORKER_URL 指向你的 Relay Worker URL,例如 RELAY_WORKER_URL=https://relay-tools.your-subdomain.workers.dev
    • 完整示例配置(仅供理解,不作为代码块直接复制) { "server_name": "relay-tools", "command": "npx tsx mcp/server.ts", "args": [], "notes": "本地开发时请通过环境变量 RELAY_WORKER_URL 指向你的 Relay Worker 地址;生产环境请将 RELAY_WORKER_URL 设置为部署后的 Worker 地址并确保 MCP 端点可访问,例如 https://relay-tools.your-subdomain.workers.dev/mcp" }
  • 基本使用方法

    • 客户端连接
      • 在 Claude/其他 MCP 客户端中,将 MCP 服务器端点设置为 http(s)://<你的域名或子域名>/mcp(若是本地开发,则为 http://localhost:8787/mcp)
    • 调用与交互
      • 通过 MCP 接口,工具会将工作流作为可调用工具暴露,若工作流有前置输入,将在调用时提示输入字段(或按钮选择)并在后续交互中继续执行。
      • 使用通用工具 relay_respond 进行中间交互的响应(输入/确认),以继续流程。
    • 开发与调试
      • 本地通过 mcp/server.ts 启动,配合 RELAY_WORKER_URL 指向本地/远程 Relay Worker,进行端到端验证。
      • 浏览器端/前端应用可通过 /stream 对应的 NDJSON 流读取消息,实现实时 UI 展示。
  • 其他注意

    • 该实现包含服务端与客户端示例、Cloudflare 相关整合,以及一个完整的 MCP 服务工厂,适合作为后续扩展和整合的基础。
    • 若需要将其用于生产,请将 Cloudflare 配置、身份认证、权限控制等安全方面进行加强。

服务器信息