About Manim MCP
Manim MCP is a Docker-based environment for mathematical animations with Manim, offering both a command line interface and a web API. It lets AI assistants create and run Manim scripts over MCP, suited to users who need a reproducible rendering setup.
Key features
- 01Docker-isolated Manim runtime environment
- 02Command line rendering mode
- 03HTTP web API with interactive docs
- 04Script upload and animation file download
- 05MCP support for AI assistant access
Use cases
- 01Generating Manim scripts from natural language descriptions
- 02Rendering animations in a container and retrieving download links
- 03Browsing and managing generated media files
MCP support
The project runs as an MCP server that exposes script creation, animation rendering and media file management to AI assistants.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
Tools
Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.
Details
From the project READMEManim MCP
A Docker-based environment for creating mathematical animations with Manim, featuring both a CLI interface and a web API with Model Context Protocol (MCP) support for AI assistants.
📑 Overview
This project provides:
- Containerized Manim Environment: Run Manim in an isolated, reproducible Docker environment
- Web API: Create and manage Manim animations via HTTP requests
- MCP Integration: Direct interaction with AI assistants like Claude
- File Management: Upload scripts and download generated animations
🚀 Quick Start
Prerequisites
- Docker and Docker Compose installed on your system
Installation
Option 1: Use the Prebuilt Image (Recommended)
Simply pull the prebuilt image from Docker Hub:
docker pull wstcpyt/manim-docker-mcp:latest
Then run it with docker-compose:
docker compose up -d
Option 2: Build Locally
-
Clone the repository:
git clone https://github.com/YOUR_USERNAME/manim-docker-mcp.git cd manim-docker-mcp -
Build the Docker images:
docker compose build
Usage
CLI Mode
Create a Python file in the animations directory (see example below), then run:
docker compose run manim -pql animations/example.py ExampleScene
API Mode
Start the API server:
docker compose up -d manim-api
Access the API documentation at http://localhost:8000/docs
🎬 Creating Animations
Basic Example
Create a file 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()
Running the Animation
# 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"
📂 Project Structure
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
🔧 Configuration
Quality Settings
| Flag | Resolution | Frame Rate | Best For |
|---|---|---|---|
-ql | 480p | 15fps | Quick previews |
-qm | 720p | 30fps | General use |
-qh | 1080p | 60fps | Presentations |
-qk | 1440p | 60fps | Production videos |
Other Useful Flags
-p: Preview the output file-t: Transparent background--save_last_frame: Render only the last frame-c COLOR: Set background color
🌐 API Documentation
Core Endpoints
List Files
GET /list-files?directory=/manim
Write File
POST /write-file?filepath=/manim/temp/example.py
Run Animation
POST /run-manim?filepath=/manim/temp/example.py&scene_name=CircleToSquare
Download Animation
GET /download-file?filepath=/media/videos/example/480p15/CircleToSquare.mp4
Full API documentation is available at the /docs endpoint.
🤖 AI Assistant Integration (MCP)
This project supports the Model Context Protocol (MCP), enabling AI assistants to:
- Create Manim scripts based on natural language descriptions
- Run animations and provide download links
- Browse and manage generated media files
Example MCP session:
User: Create an animation showing a circle morphing into a square
AI: I'll create that for you...
🔍 Advanced Usage
Custom LaTeX
The container includes a minimal LaTeX installation. Custom LaTeX can be used in animations:
formula = MathTex(r"\int_{a}^{b} f(x) \, dx = F(b) - F(a)")
self.play(Write(formula))
Mounting Custom Directories
Modify the docker-compose.yml file to mount additional directories:
volumes:
- ./my_custom_dir:/manim/custom
🛠️ Troubleshooting
Common Issues
- Docker not running: Make sure Docker daemon is running
- Permission errors: The container needs write access to mounted volumes
- Missing media: Check the correct output directory (media/ for CLI, output/ for API)
Getting Help
If you encounter issues:
- Check the Manim documentation
- Search existing GitHub issues
- Create a new issue with details about your problem
📜 License
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
🙏 Acknowledgements
- Manim Community for the amazing animation engine
- FastAPI for the web framework
- Model Context Protocol for AI integration
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.