manim-mcp

manim-mcp

Enables generating and editing mathematical animations via natural language, with support for multi-agent pipeline, RAG-based code generation, and parallel audio narration.

Category
访问服务器

README

manim-mcp

Text-to-video animation powered by manimgl (3Blue1Brown's library) and a multi-agent LLM pipeline. Describe what you want to see, and get a rendered animation back.

Works as a CLI tool, an LLM-powered agent, or an MCP server for integration with AI assistants like Claude.

Examples

Circle to Square Transform 3D Rotating Cube
manim-mcp gen "Transform a blue circle into a red square" manim-mcp gen "A 3D cube rotating. Use ThreeDScene."
Circle to Square Rotating Cube

Watch 20+ example animations on YouTube

Features

  • RAG-powered code generation - Uses 5,300+ indexed documents for high-quality code generation:
    • 3,140 3Blue1Brown scene examples
    • 1,652 manimgl API signatures with exact parameters
    • 101 animation pattern templates (Riemann sums, transforms, physics, etc.)
    • 470 library documentation files
    • 16+ error patterns for common mistakes
  • Probe integration - Optional AST-aware semantic code search using Probe:
    • Tree-sitter based code parsing (understands Python structure)
    • Hybrid BM25 + TF-IDF ranking for better keyword matching
    • Complete code block extraction (no truncation)
  • Multi-animation videos - Each video uses 2+ animation patterns for professional quality
  • Multi-agent pipeline - Concept analysis, scene planning, code generation, and code review
  • Self-learning - Stores error patterns and fixes for continuous improvement
  • Multi-provider LLM - Supports Google Gemini, Anthropic Claude, and DeepSeek
  • Audio narration - Parallel audio generation with automatic sync:
    • Video code generated first (no narration constraint)
    • TTS runs in parallel with video rendering
    • Audio automatically paced to match video duration
  • Parameter validation - API signatures prevent invalid method calls

Quick Start

pip install -e ".[rag]"

Prerequisites

  • Python 3.11+
  • manimgl installed: pip install manimgl
  • A Google Gemini API key set as MANIM_MCP_GEMINI_API_KEY
  • Optional: ChromaDB (for RAG), ffmpeg (for audio mixing), LaTeX (for math text), S3/MinIO (for cloud storage)
  • Optional: Probe for AST-aware code search (install via cargo install probe-search)

Environment Variables

Copy .env.example to .env and fill in your values:

# LLM Provider
MANIM_MCP_GEMINI_API_KEY=your-gemini-api-key
MANIM_MCP_GEMINI_MODEL=gemini-3-flash-preview  # default

# Alternative: Claude
# MANIM_MCP_LLM_PROVIDER=claude
# MANIM_MCP_CLAUDE_API_KEY=your-claude-api-key
# MANIM_MCP_CLAUDE_MODEL=claude-sonnet-4-20250514

# Alternative: DeepSeek
# MANIM_MCP_LLM_PROVIDER=deepseek
# MANIM_MCP_DEEPSEEK_API_KEY=your-deepseek-api-key

# RAG (ChromaDB)
MANIM_MCP_RAG_ENABLED=true
MANIM_MCP_CHROMADB_HOST=localhost
MANIM_MCP_CHROMADB_PORT=8000

# S3 Storage (optional)
MANIM_MCP_S3_ENDPOINT=localhost:9000
MANIM_MCP_S3_ACCESS_KEY=minioadmin
MANIM_MCP_S3_SECRET_KEY=minioadmin
MANIM_MCP_S3_BUCKET=manim-renders

# Probe Search (optional - for AST-aware code search)
# Colon-separated paths to search for scene examples
MANIM_MCP_PROBE_PATHS=/path/to/3b1b-videos:/path/to/manim-examples

Usage

Generate an animation

# Simple mode (default) - direct LLM generation
manim-mcp gen "Transform a blue circle into a red square"

# Advanced mode - multi-agent pipeline with RAG
manim-mcp gen "Visualize the central limit theorem" --mode advanced

# With quality and format options
manim-mcp gen "Animate eigenvectors" --quality high --format mp4

Generation modes:

  • --mode simple (default): Direct LLM code generation, faster
  • --mode advanced: Multi-agent pipeline (ConceptAnalyzer → ScenePlanner → CodeGenerator → CodeReviewer) with RAG retrieval

Generate with audio narration

manim-mcp gen "Introduction to linear algebra" --audio
manim-mcp gen "Pythagorean theorem proof" --audio --voice Kore

Audio uses a parallel pipeline with automatic sync:

  1. Manim code is generated first (video-driven)
  2. Video rendering and TTS generation run in parallel
  3. Audio is automatically paced to match video duration
  4. Audio is mixed into the final video

Edit an existing animation

manim-mcp edit <render_id> "Make the vectors red and add axis labels"

List, inspect, delete renders

manim-mcp list --status completed --limit 10
manim-mcp get <render_id>
manim-mcp delete <render_id> --yes

Agent mode

Let the LLM interpret multi-step requests:

manim-mcp prompt "Create a video on eigenvectors, then edit it with better colors"

MCP server

Start the Model Context Protocol server for integration with Claude, Cursor, or other MCP clients:

manim-mcp serve
manim-mcp serve --transport stdio
manim-mcp serve --transport streamable-http

RAG Indexing

Index all knowledge sources for best code generation quality:

# Check current index status
manim-mcp index status

# Index 3b1b video scenes (3,140 scenes)
manim-mcp index 3b1b-videos --path /path/to/3b1b/videos

# Index manimgl API signatures (1,652 signatures)
manim-mcp index api

# Index animation patterns (101 patterns)
manim-mcp index patterns

# Index error patterns (16+ patterns)
manim-mcp index errors

# Index library documentation (470 docs)
manim-mcp index manim-docs

# Clear a collection
manim-mcp index clear patterns --yes

Docker

Run with all dependencies (ChromaDB, MinIO):

export MANIM_MCP_GEMINI_API_KEY=your-api-key
docker compose up

This starts:

  • MCP server on port 8000
  • ChromaDB on port 8001
  • MinIO on ports 9000/9001

Architecture

┌─────────────────────────────────────────────────────────────────────────────┐
│                      AUDIO PIPELINE (parallel with video)                    │
├─────────────────────────────────────────────────────────────────────────────┤
│                                                                              │
│   prompt ──► Code Generation (video-driven)                                  │
│                           │                                                  │
│              ┌────────────┴────────────┐                                     │
│              │                         │  PARALLEL                           │
│              ▼                         ▼                                     │
│   ┌──────────────────┐      ┌──────────────────┐                            │
│   │  Render Video    │      │  Generate Script │                            │
│   │                  │      │  + TTS Audio     │                            │
│   └────────┬─────────┘      └────────┬─────────┘                            │
│            │                         │                                       │
│            ▼                         ▼                                       │
│       video.mp4              audio segments                                  │
│            │                         │                                       │
│            └────────────┬────────────┘                                       │
│                         ▼                                                    │
│              Pace audio to video duration                                    │
│                         │                                                    │
│                         ▼                                                    │
│                  Mix Audio + Video ──► S3 upload ──► URL                     │
│                                                                              │
└─────────────────────────────────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────────────────────────────────┐
│                           MULTI-AGENT PIPELINE                               │
├─────────────────────────────────────────────────────────────────────────────┤
│                                                                              │
│   prompt ──► ConceptAnalyzer ──► ScenePlanner ──► CodeGenerator ──► CodeReviewer
│                    │                   │                │                │   │
│                    ▼                   ▼                ▼                ▼   │
│              ┌─────────────────────────────────────────────────────────┐     │
│              │                    ChromaDB RAG (5,300+ docs)           │     │
│              │  ┌──────────┬──────────┬──────────┬────────┬────────┐  │     │
│              │  │  scenes  │   api    │ patterns │  docs  │ errors │  │     │
│              │  │  (3,140) │ (1,652)  │  (101)   │ (470)  │  (16)  │  │     │
│              │  └──────────┴──────────┴──────────┴────────┴────────┘  │     │
│              └─────────────────────────────────────────────────────────┘     │
│                                                                              │
└──────────────────────────────────┬──────────────────────────────────────────┘
                                   │
                                   ▼
┌─────────────────────────────────────────────────────────────────────────────┐
│                            RENDER PIPELINE                                   │
├─────────────────────────────────────────────────────────────────────────────┤
│                                                                              │
│   validated code ──► CodeSandbox ──► manimgl (xvfb) ──► S3 upload ──► URL   │
│         │                                    │                               │
│         ▼                                    ▼                               │
│   ┌───────────┐                       ┌───────────────┐                     │
│   │  SQLite   │                       │    MinIO/S3   │                     │
│   │ (tracker) │                       │   (storage)   │                     │
│   └───────────┘                       └───────────────┘                     │
│                                                                              │
└─────────────────────────────────────────────────────────────────────────────┘

Components

Component Description
ConceptAnalyzer Extracts domain, complexity, and key concepts from prompts
ScenePlanner Designs animation structure, timing, and transitions
CodeGenerator Generates manimgl code using scenes, API signatures, and animation patterns
CodeReviewer Validates code quality and applies fixes
ParameterValidator Validates method parameters against API signatures
GeminiTTSService Parallel TTS with Gemini voices, generates narration script
ChromaDBService Vector similarity search across 5,300+ indexed documents
ProbeSearcher AST-aware semantic code search using Probe (tree-sitter + BM25)
Linter Pre-generation code validation using ruff
SelfCritique Multi-pass code generation with self-review
SchemaGenerator JSON schema-based structured scene generation
TemplateGenerator Template-first generation (fill-in-the-middle style)
CodeSandbox AST-based security validation (blocks dangerous code)
ManimRenderer Executes manimgl with xvfb for headless rendering
S3Storage Uploads to MinIO/S3 with presigned URLs
RenderTracker Persists job metadata in SQLite

RAG Collections

Collection Documents Description
manim_scenes 3,140 Production 3Blue1Brown scene code
manim_api 1,652 API signatures with exact parameters
animation_patterns 101 Reusable animation templates
manim_docs 470 manimgl library documentation
error_patterns 16+ Self-learning error/fix patterns

Self-Learning

The system learns from every error:

  1. Validation failures - Stored with fixes when LLM corrects them
  2. Render failures - Stored for future pattern matching
  3. Successful fixes - Stored as error→fix pairs for RAG retrieval

This creates a feedback loop where the system improves over time.

MCP Tools

When running as an MCP server, these tools are available:

Tool Description
generate_animation Create an animation from a text prompt
edit_animation Edit an existing animation with instructions
list_renders List past renders with pagination and filtering
get_render Get full details and a fresh download URL
delete_render Permanently delete a render and its files
rag_search Search the RAG database for similar scenes
rag_stats Get collection statistics

Recommended Prompts

The system performs best with mathematical and educational topics that have high RAG coverage:

Topic Indexed Scenes Example Prompts
Linear Algebra 810+ "Animate a matrix transformation", "Show eigenvectors during transformation"
Geometry 568+ "Visual proof of Pythagorean theorem", "Inscribed angle theorem"
Probability 290+ "Central limit theorem", "Bayes theorem with updating priors"
Calculus 178+ "Derivative as tangent slope", "Riemann sums converging to integral"

Development

pip install -e ".[dev,rag]"
pytest

Testing Scripts

# Test all LLM provider combinations (Gemini/Claude × Simple/Advanced × RAG On/Off)
python scripts/test_providers.py
python scripts/test_providers.py --no-audio  # Skip audio generation
python scripts/test_providers.py --quick     # Only simple mode tests

# Benchmark LLM providers (DeepSeek vs Gemini)
python scripts/benchmark_providers.py
python scripts/benchmark_providers.py --providers gemini,deepseek --categories simple,medium

License

MIT

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选