Manim-MCP 服务端

使用说明(Markdown 格式)

  • 项目简介

    • 该仓库实现了一个基于 MCP 协议的服务器端,用于向 LLM 客户端提供上下文信息和功能,包括对渲染资源的托管、工具的注册与执行,以及提示模板的渲染与管理。服务器通过 JSON-RPC 与客户端通信,核心职责包含会话管理、能力声明,以及对多种传输协议的支持(如标准输入/输出、SSE、WebSocket 等)。
    • 服务器实现由一个生命周期上下文驱动,启动时会初始化存储、跟踪器、RAG(检索增强)服务、渲染器、 sandbox、场景分析等组件,并注册一组 MCP 工具供客户端调用(如生成和编辑渲染、RAG 搜索等)。
  • 主要功能点

    • MCP 核心能力:资源管理、工具注册与执行、Prompt/模板渲染、会话/能力声明、跨传输协议通信。
    • 资源与存储:通过 S3/MinIO 风格的对象存储上传、检索、删除、预签名 URL、对象存在性检查等。
    • 工具集成:提供生成动画、编辑动画、RAG 搜索、渲染状态查询等工具,支持通过 MCP 客户端进行远程调用。
    • 渲染管线与渲染管理:整合 Manim 渲染器、缓存/跟踪渲染状态、生成视频、音频合成、缩略图等流程,支持并发限制和超时控制。
    • RAG 与 Probing:整合向量检索和 AST 级代码搜索能力,辅助代码生成与错误修复。
    • 安全性与自我 förb 练习:包含沙箱检测、代码有效性校验、可选的自我纠错和自我修正流程。
    • 多代理流水线与管线编排:支持简单模式与高级多代理流水线(ConceptAnalyzer → ScenePlanner → CodeGenerator → CodeReviewer)的生成流程。
  • 安装步骤

    • 克隆仓库并安装本地开发依赖(推荐使用开发模式安装);
    • 直接安装并进入开发模式以启用 rag 支持等可选特性。
  • 服务器配置(客户端需要使用 JSON 配置与服务器对接;以下为服务器启动端的配置示例描述)

    • server_name: manim-mcp
    • command: python
    • args: ["-m", "manim_mcp.server"]
    • transport: streamable-http(或 stdio/SSE/WebSocket,视部署需求而定)
    • host: 0.0.0.0
    • port: 8000
    • 说明与参数注释(请勿直接粘贴代码,以下为配置要点说明)
      • server_name 指定服务器在 MCP 客户端中的显示名称,便于区分与管理。
      • command 与 args 指定启动服务器所需的执行命令及参数组合,在本实现中使用 Python 解释器运行 manim_mcp.server 模块。
      • transport 指定 MCP 与客户端之间的通信传输协议,例如 streamable-http、stdio、SSE、WebSocket 等。
      • host 与 port 指定服务器对外监听的地址与端口,默认端口为 8000,可通过环境变量覆盖。
      • 环境变量(可选)可用于注入 API Key、S3 配置、RAG 设置等运行时参数,以便 MCP 客户端在不同环境中灵活连接。
    • 运行示例(以文本描述方式呈现,不包含具体代码块)
      • 将 server_name 设置为 “manim-mcp”;
      • 使用 Python 启动服务器:执行命令 python -m manim_mcp.server;
      • 通过环境变量设置监听地址和端口,如 MANIM_MCP_SERVER_HOST=0.0.0.0 和 MANIM_MCP_SERVER_PORT=8000;
      • 根据需要配置 Gemini/Claude 等 API Key、S3 存储、RAG 的访问地址等。
  • 基本使用方法

    • 启动后,客户端可通过 MCP JSON-RPC 调用注册的工具(如生成/编辑渲染、RAG 查询等),实现资源获取、任务调度与渲染管线的集成控制。
    • 客户端配置需要包含服务器连接信息(服务器名称、启动命令及参数),以便建立 RPC 会话并进行后续请求与通知。
    • 典型工作流包括:向 MCP 服务器请求生成渲染任务、查询/上传资源、获取渲染结果的下载 URL、以及在需要时进行渲染设置和参数调整。

服务器信息