Manim Animation for ChatGPT
Targets ChatGPT as the host environment: installed as a custom plugin/MCP server, it lets the conversational model author a bounded Manim scene specification from a user's explanation, then validates, renders and returns a Manim animation for playback in an embedded HTML5 player, with follow-up revision requests (e.g. pacing changes) handled as edits to stored scene specifications.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Manim Animation for ChatGPTMake an animation showing how binary search narrows in on a target in a sorted list"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Manim Animation for ChatGPT
Turn an explanation into a real animation, then refine it in conversation.
An open-source MCP plugin that renders Manim Community scenes and presents an HTML5 player through MCP Apps. The conversational model authors a bounded scene specification; the service validates, renders, stores, and displays it. No second LLM API call is needed.
Release status: working, tested developer preview. Real rendering, HTTPS MCP, and the embedded player have been verified. ChatGPT installation and model-driven invocation have not been verified. Stable hosting and OAuth configuration remain deployment prerequisites. This project is not affiliated with or endorsed by OpenAI.

Screenshot of the actual player in the included bridge test host, not a ChatGPT chat.
What it does
Renders text, safe mathematical notation, sampled graphs, shapes and algorithm diagrams.
Supports movement, rotation, scaling, transformations, highlighting and paced timelines.
Produces H.264 MP4 at 480p, 720p or 1080p, up to 90 seconds.
Preserves scene specifications, identifiers, revision parents and editing instructions.
Reuses identical renders within an authenticated account.
Provides play/pause, native scrubbing, speed controls, host-permitted fullscreen, temporary downloads, source specification, loading states and diagnostics.
Runs every render in a disposable, resource-limited, network-disabled container.
Try: “Animate a hash collision using separate chaining.” Then: “Make it twice as slow.” The model must select the installed plugin and translate the request to the supported scene vocabulary; tool descriptions and the bundled skill guide this choice but cannot guarantee automatic invocation.
Related MCP server: Motion Diagram
Examples
Concept | Specification | Real rendered output |
Fourier decomposition | ||
Separate chaining | ||
Rotation and translation |
The Fourier example is a finite sine-series amplitude spectrum, not a full numerical transform demonstration. Its conventions and omissions are stated in its caption. The model can construct other scenes using sampled polylines and explicit timelines.
Run locally
Prerequisites: Linux, Python 3.12+, and rootless Podman with cgroups v2. Docker-compatible worker commands are supported, but the verified isolation path is rootless Podman. FFmpeg, fonts and TeX live in the worker image.
git clone https://github.com/OwenPawl/chatgpt-manim.git
cd chatgpt-manim
python3 -m venv .venv
.venv/bin/pip install -r requirements.lock
.venv/bin/pip install -e '.[test]'
podman build -f worker/Dockerfile -t localhost/chatgpt-manim-worker:0.1.0 .
.venv/bin/python scripts/configure_local.py
.venv/bin/python scripts/serve.pyThe endpoint is http://127.0.0.1:8787/mcp. Credentials are generated into .env
(mode 0600), never printed or committed. Configure your MCP client's bearer
credential from MANIM_API_KEY. The portable mcp.json supplies the endpoint;
it intentionally contains no secret. A configured MCP client can discover
animation_capabilities, render_animation, get_animation and revise_animation.
.venv/bin/pytest -q
MANIM_INTEGRATION=1 .venv/bin/pytest -q tests/test_integration.py
.venv/bin/python scripts/render_examples.pyFor a browser smoke test, set MANIM_ENABLE_PREVIEW=1 in .env, restart, and run
.venv/bin/python scripts/smoke_remote.py. It writes a 15-minute scoped test-host
URL to .agent/preview-url.txt. Open that URL in a browser. The harness uses the
same player and documented MCP Apps bridge messages; it is not the real ChatGPT host.
Install in ChatGPT
See installation for the exact supported flow. Current OpenAI documentation instructs testing custom plugins in ChatGPT Work. Standard Chat surface availability must be checked independently; native automatic animation integration is not claimed.
The current custom-server form supports OAuth, no authentication, or mixed OAuth. It does not accept a fixed bearer key. Do not select “No authentication” for this protected service. Configure a suitable OAuth 2.1 provider, or use a private Secure MCP Tunnel with the required Platform authorization.
Deployment and security
Read deployment, architecture, security, and verification. The service is designed for a single small Linux host: native MCP process plus rootless worker containers, behind a TLS reverse proxy. A server Dockerfile and Compose configuration are included for operators who use a rootless Podman socket. No cloud signup or paid hosting is required for local use.
Model-authored Python is not accepted. Safe declarative input is the intentional first-release boundary. The worker has no credentials, host mounts or network. This is not a general code runner.
Project layout
plugin.json / mcp.json Portable Agent Plugins package
skills/manim-animation/ Advisory tool-selection and revision guidance
src/chatgpt_manim/ MCP server, auth, persistence, schema and worker launcher
worker/ Trusted Manim translator and container image
ui/player.html Standalone MCP Apps player
examples/ / assets/ Scene specs, real MP4s and verified screenshot
scripts/ / tests/ Setup, rendering, smoke checks and automated testsMIT licensed. Contributions are welcome; see CONTRIBUTING.md.
This server cannot be deployed
Maintenance
Related MCP Connectors
Plan, compare, price, generate, and recover AI video from compatible MCP clients.
Make animated videos by asking Claude, Cursor or any MCP client. Your AI writes it, we render it.
Build editable 3D scenes, direct characters and cameras, and export AI video references with MCP.
Compose, edit and render video with your AI agent. Turn footage into finished edits with content-aware reframing, word-timed captions and motion graphics. Hosted MCP with OAuth sign-in; cloud processing uses credits.
Related MCP Servers
- AlicenseAqualityDmaintenanceA deterministic video rendering engine that enables AI agents to create programmable, reproducible videos via MCP protocol.1410 npm2MIT
- AlicenseNot gradedqualityBmaintenanceAgent-driven animated diagram renderer that turns API/flow descriptions into animated MP4s or Instagram-style carousels, designed to be driven by an AI agent over MCP.7 npm5MIT
- FlicenseNot gradedqualityDmaintenanceAn always-on, data-driven Remotion editing and rendering engine exposed through Streamable HTTP MCP. Agents edit validated timeline data; the service never exposes source-code or shell access.-
- AlicenseNot gradedqualityCmaintenanceAn MCP server for creative generation and video production, letting AI agents author declarative animations, render deterministic frames, and measure output quality with perception instruments for brand and accessibility conformance.Apache 2.0