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 配置、身份认证、权限控制等安全方面进行加强。