使用说明(简明操作指南,确保能快速上手 MCP 服务器)
-
项目简介
- 该仓库实现了一个基于 MCP 的后端服务器,核心职责是向 MCP 客户端提供“上下文信息和功能”。具体来说,它托管渲染相关的资源/工具,注册并执行渲染工具(如 render_avatar),并通过 JSON-RPC/STDIO 形式与 MCP 客户端通信,支持会话管理、能力声明以及可扩展的传输协议。
- 服务器实现要点包括:
- MCP STDIO 服务器:通过标准输入输出进行 JSON 请求/响应通信,方便在容器化/无 GUI 的场景下与 MCP Gateway 互通。
- 工具注册与执行:当前实现了一个 render_avatar 工具,接受 avatar、音频等输入并产出视频。
- 作业排队与执行:内部实现了任务队列,支持异步渲染、进度通知等。
- 进度与输出:可选地通过 Kafka 进度主题汇报渲染状态,并输出最终视频路径等信息以供 MCP 客户端获取。
-
主要功能点
- MCP STDIO 服务端:实现了用于 MCP Gateway 交互的 STDIO 版本服务器,能够接收工具请求并返回响应。
- render_avatar 工具:注册并执行渲染任务,支持参数 avatar_path、audio_path、driver_video、viseme_json、quality_mode、out_path 等。
- 作业队列与并发:采用队列机制实现任务异步处理,主进程对 STDIO 保持响应性,后台进行渲染工作。
- 进度通知(可选):集成 Kafka Producer,发送进度事件到指定主题,方便外部系统监控任务状态。
- 简易状态回传:渲染完成后将结果通过 on_done 回传给 MCP 客户端,包含 jobId、output 路径等信息。
-
安装步骤
- 克隆仓库并进入项目目录。
- 确保运行环境为 Python 3.11+,并安装所需依赖(如驱动、FFmpeg 等,视具体实现而定)。
- 直接运行服务端:在没有额外网关的情况下,执行 management 命令使服务器进入 STDIO 模式,例如在命令行直接启动服务器进程(参考 README 中的示例命令)。启动后即可通过 MCP Gateway 进行注册和请求。
- 可选配置 Kafka 进度通知:根据需求设置 KAFKA_BROKERS、PROGRESS_TOPIC 等环境变量,以开启进度推送功能。
-
服务器配置(MCP 客户端需要的最小信息) 说明:以下信息用于 MCP Gateway 将服务器注册为一个 MCP 服务端,客户端无需关心实现细节,仅关注启动命令及参数。
- server name: avatar-renderer
- transport: stdio
- command: /usr/bin/python3
- args: ["/app/mcp_server.py"]
- autoDiscover: true
注释说明:
- server name 是在网关中对该服务的标识,需和实现中的工具名称保持一致以便正确发现。
- command/args 指定如何启动服务器进程,stdio 模式下服务器通过标准输入读取请求、通过标准输出返回响应。
- autoDiscover 表明网关会基于 MCP 约定自动发现服务器提供的工具及能力。
-
基本使用方法
- 启动服务器后,MCP Gateway 将通过上述配置自动发现 render_avatar 工具。
- MCP 客户端向服务器发送包含 tool: "render_avatar" 的请求,并附带 params,如 avatar_path、audio_path、quality_mode、out_path 等。
- 服务器返回一个包含 jobId、output、qualityMode 的响应,表示作业已接收并开始执行(或已排队等待)。
- 客户端可以通过查询状态或等待 on_done 回调得到最终 output(视频文件路径)等信息。
- 如启用 Kafka 进度通知,服务器会将渲染进度以指定的 topic 发布,便于监控和可观测性。
信息
分类
AI与计算