使用说明
Manim MCP
基于Docker的数学动画创建环境 马尼姆,具有CLI界面和web API,支持人工智能助手的模型上下文协议(MCP)。
📑 概述
该项目提供:
- 集装箱化机械环境:在隔离的、可复制的Docker环境中运行Manim
- Web API:通过HTTP请求创建和管理Manim动画
- MCP集成:与Claude等人工智能助手直接互动
- 文件管理:上传脚本并下载生成的动画
🚀 快速开始
先决条件
- 码头工人 您的系统上安装了Docker Compose
安装
选项1:使用预构建映像(推荐)
只需从Docker Hub中提取预构建的镜像:
docker pull wstcpyt/manim-docker-mcp:latest
然后用docker compose运行它:
docker compose up -d
选项2:本地构建
-
克隆存储库:
git clone https://github.com/YOUR_USERNAME/manim-docker-mcp.git cd manim-docker-mcp -
构建Docker镜像:
docker compose build
用法
命令行接口命令模式
在中创建一个Python文件 animations 目录(见下面的示例),然后运行:
docker compose run manim -pql animations/example.py ExampleScene
API模式
启动API服务器:
docker compose up -d manim-api
访问API文档: http://localhost:8000/docs
🎬 创建动画
基础示例
创建文件 animations/example.py:
from manim import *
class CircleToSquare(Scene):
def construct(self):
circle = Circle()
circle.set_fill(BLUE, opacity=0.5)
square = Square()
square.set_fill(RED, opacity=0.5)
self.play(Create(circle))
self.wait()
self.play(Transform(circle, square))
self.wait()
运行动画
# CLI mode with preview (-p), low quality (-ql)
docker compose run manim -pql animations/example.py CircleToSquare
# API mode
curl -X POST "http://localhost:8000/run-manim?filepath=/manim/temp/circle_example.py&scene_name=CircleToSquare&quality=low_quality"
📂 项目结构
manim-docker-mcp/
├── animations/ # Manim animation scripts
├── app/ # FastAPI application
├── media/ # Generated animations (CLI mode)
├── output/ # Generated animations (API mode)
├── temp/ # Temporary files
├── uploads/ # Uploaded animation scripts
├── Dockerfile # Docker image definition
├── docker-compose.yml # Docker Compose configuration
└── README.md # This file
🔧 配置
质量设置
| 标志 | 分辨率 | 帧率 | 最适合 |
|---|---|---|---|
-ql |
480p | 15fps | 快速预览 |
-qm |
720p | 30fps | 通用 |
-qh |
1080p | 60fps | 演示文稿 |
-qk |
1440p | 60fps | 制作视频 |
其他有用的标志
-p:预览输出文件-t:透明背景--save_last_frame:仅渲染最后一帧-c COLOR:设置背景颜色
🌐 API文档
核心终点
列出文件
GET /list-files?directory=/manim
写入文件
POST /write-file?filepath=/manim/temp/example.py
运行动画
POST /run-manim?filepath=/manim/temp/example.py&scene_name=CircleToSquare
下载动画
GET /download-file?filepath=/media/videos/example/480p15/CircleToSquare.mp4
API完整文档可在 /docs 终点。
🤖 人工智能辅助集成(MCP)
该项目支持 模型上下文协议(MCP),使AI助手能够:
- 基于自然语言描述创建Manim脚本
- 运行动画并提供下载链接
- 浏览和管理生成的媒体文件
MCP会话示例:
User: Create an animation showing a circle morphing into a square
AI: I'll create that for you...
🔍 高级用法
定制LaTeX
该容器包含一个最小的LaTeX安装。自定义LaTeX可用于动画:
formula = MathTex(r"\int_{a}^{b} f(x) \, dx = F(b) - F(a)")
self.play(Write(formula))
安装自定义目录
修改 docker-compose.yml 要装载其他目录的文件:
volumes:
- ./my_custom_dir:/manim/custom
🛠️ 故障排除
常见问题
- Docker未运行:确保Docker守护进程正在运行
- 权限错误:容器需要对装载的卷进行写访问
- 丢失媒体:检查正确的输出目录(介质/适用于CLI,输出/适用于API)
获取帮助
如果您遇到问题:
- 检查 Manim文档
- 搜索现有的GitHub问题
- 创建一个新问题,详细说明您的问题
📜 许可证
此项目根据Apache许可证2.0获得许可-请参阅 许可证 文件以获取详细信息。