manim-mcp

zcsabbagh/manim-mcp
0 starsCommunity

Install to Claude Code

This server doesn't publish a one-line install command. Follow the setup in the source repository.

Summary

MCP server that generates 3Blue1Brown-style math videos with Manim and AI voiceover directly inside Claude Desktop.

README.md

manim-mcp

MCP server that generates 3Blue1Brown-style math videos with Manim directly inside Claude Desktop. Videos render with AI-narrated voiceover via ElevenLabs and play inline in the chat.

https://github.com/user-attachments/assets/placeholder

Quick Start

1. Get an ElevenLabs API key

Sign up at elevenlabs.io and copy your API key from the API Keys page.

2. Add to Claude Desktop

Open Settings > Developer > Edit Config and add:

{
  "mcpServers": {
    "manim": {
      "command": "npx",
      "args": ["-y", "manim-mcp", "--stdio"],
      "env": {
        "ELEVEN_API_KEY": "sk_your_key_here"
      }
    }
  }
}

3. Restart Claude Desktop

That's it. Ask Claude to "create a video on the Pythagorean theorem" and watch it render.

Requirements

  • Node.js 18+ — for running the MCP server
  • Python 3.9+ — for Manim rendering (auto-installed into ~/.manim-mcp/.venv on first run)
  • ffmpeg — for video concatenation (brew install ffmpeg on macOS)
  • ElevenLabs API key — for AI voiceover

Python dependencies (manim, manim-voiceover, elevenlabs) are automatically installed on first run. This takes ~20 seconds and only happens once.

How it Works

You: "create a video on eigenvalues"

Claude plans 2-4 scenes with narration scripts
  -> writes Manim Python code for each scene
  -> calls render_video with all scenes
  -> server auto-fixes common issues (wrong TTS service, LaTeX, colors)
  -> scenes render in parallel with ElevenLabs voiceover
  -> concatenated into one video
  -> inline video player appears in chat

The server provides comprehensive Manim reference and 3Blue1Brown style guidelines in its instructions, so Claude generates good animation code. A fixGeneratedCode step silently corrects common mistakes before rendering:

  • Wrong TTS service (GTTSService, etc.) -> ElevenLabsService with correct config
  • LaTeX classes (MathTex, Tex) -> Text() with Unicode
  • Invalid colors (CYAN) -> TEAL
  • Invented APIs (set_speech_synthesizer) -> correct set_speech_service

Development

git clone https://github.com/zcsabbagh/manim-mcp.git
cd manim-mcp
npm install
npm run build

# Point Claude Desktop at local build:
# "command": "node",
# "args": ["/path/to/manim-mcp/dist/index.js", "--stdio"]

License

MIT

Related MCP servers

Browse all →