MCP Manimgl
MCP server exposing manimgl mathematical animation functionality as tools for LLMs
Connector by daedalus · GitHub account verified by the MCP Registry
Install
Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.
npx agentmarket install connector/daedalus-mcp-manimgl
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this server can do and what it asks for, from its tool list and install config. Checked Oct 25, 2026.
- Tools
- 6 read · 37 write · 1 delete · 14 not yet classified
- Secrets
- None asked for
- Install scripts
- Not scanned yet
- Runs as
- Python package
Tools by what they do 58
Read from the source code; the running server may list different tools.
Read 6 · Look things up without changing anything.
audio_durationget_render_resultget_render_statusget_scene_infoverify_scene_overlapsverify_video
Write 37 · Create, change, send or run things.
add_3d_objectadd_arrowadd_background_musicadd_braceadd_circleadd_coordinate_systemadd_custom_codeadd_decimal_numberadd_dotadd_function_graphadd_labeled_pointadd_line
Show 25 more tools
add_matrixadd_narrationadd_number_lineadd_parametric_curveadd_polygonadd_rectangleadd_squareadd_texadd_textadd_vectoradd_waitanimate_move_along_pathanimate_scaleanimate_set_coloranimate_writecreate_scenemove_torestore_statesave_framesave_statescaleset_cameraset_colorset_configset_opacity
Delete 1 · Delete, drop, revoke or wipe things.
clear_scene
Not yet classified 14 · We could not tell from the name and description.
align_toanimate_fade_inanimate_fade_outanimate_groupanimate_growanimate_indicateanimate_rotateanimate_shiftanimate_transformgenerate_scene_scriptnext_torender_scene
Show 2 more tools
rotateshift
Files it touches
- Any path the agent passes to its tools
Tools (58)
Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].
add_3d_objectadd_arrowadd_background_musicAdd background music to the scene. The music plays from the beginning of the rendered video. Accepts audio files (.mp3, .wav, .ogg) or MIDI files (.mid, .midi). MIDI files are rendered to audio using FluidSynth and a system SoundFont. When narration tracks are also present, the music volume auto-ducks during narration via sidechain compression in post-processing. IMPORTANT: Always use MCP tools for scene operations. Args: file_path: Path to an audio file or MIDI file. volume: Playback volume 0.0-1.0 (default: 0.3). loop: Loop the music to fill the video duration if shorter (def…
add_braceadd_circleadd_coordinate_systemadd_custom_codeInject custom Python code into the scene script. The code will be inserted inside the construct() method body. Use this for advanced manim functionality not covered by other tools. IMPORTANT: Always use MCP tools for scene operations. Do NOT write or execute standalone manim scripts. Args: code_snippet: Valid Python code to insert in the scene's construct(). Returns: True if code was added. Example: >>> add_custom_code("self.camera.rotate(2 * PI / 3)")
add_decimal_numberadd_dotadd_function_graphadd_labeled_pointadd_lineadd_matrixadd_narrationGenerate and add a text-to-speech narration audio track to the scene. The audio plays at the point in the timeline where this tool is called. Uses Google TTS (gTTS) for voice synthesis. IMPORTANT: Always use MCP tools for scene operations. Args: text: The text to be spoken in the narration. lang: Language code (default: "en"). See gTTS docs for supported codes. Returns: Dictionary with audio_id, file_path, and status. Example: >>> add_narration("Hello, this is a test narration.") >>> add_narration("Bonjour le monde", "fr")
add_number_line
Show 43 more tools
add_parametric_curveadd_polygonadd_rectangleadd_squareadd_texadd_textadd_vectoradd_waitAdd a wait/pause to the scene timeline. IMPORTANT: Always use MCP tools for scene operations. Args: duration: Duration in seconds to wait. Returns: True if successful. Example: >>> add_wait(2.0)
align_toanimate_fade_inanimate_fade_outanimate_groupanimate_growanimate_indicateanimate_move_along_pathanimate_rotateanimate_scaleanimate_set_coloranimate_shiftanimate_transformanimate_writeaudio_durationGet the duration of any audio file in seconds. Accepts audio files (.mp3, .wav, .ogg, .mid) created by the server. Uses ffprobe internally. Args: file_path: Path to the audio file. Returns: Dictionary with the duration in seconds. Example: >>> audio_duration("/tmp/mcp_manimgl/audio/audio_abc123.mp3")
clear_sceneRemove all mobjects and animations from the current scene. IMPORTANT: Always use MCP tools for scene operations. Returns: True if successful. Example: >>> clear_scene()
create_sceneCreate a new manimgl scene with the given configuration. IMPORTANT: Always use MCP tools for scene operations. Do NOT write or execute standalone manim scripts. Args: background_color: Hex color or named color for the background. resolution: Resolution string like "WxH", e.g. "1920x1080". fps: Frames per second for rendering. frame_height: The height of the coordinate frame in manim units. Returns: Scene configuration dictionary with scene ID. Example: >>> create_scene("#1a1a2e", "1920x1080", 60, 8.0)
generate_scene_scriptGenerate the full Python script for the current scene. IMPORTANT: Always use MCP tools for scene operations. Do NOT write or execute standalone manim scripts. Use render_scene() and get_render_result() for rendering instead. Returns: The complete Python script as a string. Example: >>> generate_scene_script()
get_render_resultPoll for the result of an async render started by render_scene(). Returns the render result dict when done, or a "still running" status. Keep polling until status is "completed" or "failed". The caller should use exponential backoff between polls: 1s, 2s, 4s, 8s... (cap at 30s). The count resets when the render completes or fails. IMPORTANT: Always use this MCP tool for scene operations. Do NOT write or execute standalone manim scripts. Args: render_id: The render_id returned by render_scene(). Returns: Dictionary with render status and result. Example: >>> get_render_result("…
get_render_statusCheck if manimgl and OpenGL are available for rendering. IMPORTANT: Always use this MCP tool for scene operations. Do NOT write or execute standalone manim scripts. Returns: Dictionary with availability status of manimgl and OpenGL. Example: >>> get_render_status()
get_scene_infoGet the current scene's configuration and element counts. IMPORTANT: Always use MCP tools for scene operations. Returns: Scene information including resolution, mobject/animation counts. Example: >>> get_scene_info()
move_tonext_torender_sceneRender the current scene to a video file. Renders in the background to avoid MCP timeouts. Returns a render_id immediately. Poll get_render_result() with that render_id to check completion and get the output path. POLLING PROTOCOL: Use exponential backoff when polling: - 1st call: sleep 1s, then call get_render_result() - 2nd call: sleep 2s, then call - 3rd call: sleep 4s - Nth call: sleep min(2^(N-1), 30)s Reset the backoff once the render completes or fails. Use verify_video() on the output to inspect the result. IMPORTANT: Always use this MCP tool for rendering. Do NOT write or…
restore_stateRestore the scene to a previously saved state. IMPORTANT: Always use MCP tools for scene operations. Returns: True if state was restored, False if no saved state exists. Example: >>> restore_state()
rotatesave_frameSave a single frame (image) of the current scene. IMPORTANT: Always use this MCP tool for scene operations. Do NOT write or execute standalone manim scripts. Args: output_path: Path for the output PNG image. If None, uses a temp file. Returns: Dictionary with frame save result including output_path. Example: >>> save_frame("/tmp/frame.png")
save_stateSave the current scene state for later restoration. IMPORTANT: Always use MCP tools for scene operations. Returns: True if state was saved. Example: >>> save_state()
scaleset_cameraConfigure the camera position and/or orientation. IMPORTANT: Always use MCP tools for scene operations. Args: position: Camera position [x, y, z] in 3D space. orientation: Camera orientation as [theta, phi, gamma] in radians. Returns: True if camera was configured. Example: >>> set_camera([0, 0, -5], [0, 0, 0])
set_colorset_configSet global rendering configuration parameters. IMPORTANT: Always use MCP tools for scene operations. Args: config: Dictionary with configuration options. Supported keys: background_color, resolution, fps, frame_height. Returns: True if configuration was applied. Example: >>> set_config({"background_color": "#000000", "fps": 60})
set_opacityshiftverify_scene_overlapsDetect overlapping visual elements (mobjects) in the current scene. Computes axis-aligned bounding boxes for each mobject based on its stored position and dimension properties (radius, width, height, side_length, font_size). Reports any pair whose bounding boxes intersect. NOTE: Positions are only reliably updated by move_to(). After shift/scale/rotate/next_to/align_to, the stored position may be stale. Text and TeX dimensions are estimated from font_size and character count — actual rendered glyphs may differ. Returns: List of overlap reports, each with the pair of overlapping mobj…
verify_videoInspect a rendered video file and return its technical properties. Uses ffprobe to extract codec info, streams, duration, resolution, and bitrate. Verifies the file exists and has both video and audio. IMPORTANT: Always use this MCP tool for scene operations. Do NOT write or execute standalone manim scripts. Args: video_path: Path to the video file to inspect. Returns: Dictionary with stream info, duration, resolution, and codecs. Example: >>> verify_video("/tmp/animation.mp4")
Signals
- Stars
- 0
- Forks
- 0
- Open issues
- 0
- Weekly downloads
- 50
- Last commit
- May 15, 2026 (5 months ago)
- Last release
- May 15, 2026 (5 months ago)
- Last package publish
- May 15, 2026 (5 months ago)
From GitHub (fetched Oct 24, 2026) and the package registry.
Details
- Registry name
io.github.daedalus/mcp-manimgl- Version
- 0.1.2
- Auth
- No auth
- Packages
- pypi mcp-manimgl
- License
- MIT
- Repository
- github.com/daedalus/mcp-manimgl
- First seen
- Oct 24, 2026
- Last checked
- Oct 25, 2026
More from daedalus
- 0.454score
MCP Reverse Engineering
daedalus
A sandboxed MCP tool for reverse engineering with multiple tool integrations
ConnectorCFreshness: CLocal★ 1↓ 59/wkClaude Code +5 - 0.438score
MCP Pwntools
daedalus
MCP server exposing pwntools 4.15.0 functionality for binary exploitation
ConnectorCFreshness: CLocal★ 1↓ 27/wkClaude Code +5 - 0.431score
MCP Qiskit
daedalus
MCP server exposing Qiskit 2.3.1 quantum computing functionality
ConnectorCFreshness: CLocal↓ 38/wkClaude Code +5 - 0.427score
MCP Sparql
daedalus
MCP server exposing SPARQL query functionalities for LLMs
ConnectorCFreshness: CLocalRead-only↓ 29/wkClaude Code +5 - 0.381score
MCP Sigrok
daedalus
MCP server exposing sigrok-cli functionality for logic analyzer hardware and protocol decoding
ConnectorDFreshness: DLocal★ 2↓ 36/wkClaude Code +5 - 0.380score
MCP LLM Gateway
daedalus
MCP-compatible LLM gateway that proxies completion requests.
ConnectorDFreshness: DLocal↓ 59/wkClaude Code +5
Cite this page
MCP Manimgl. Agent Mart. https://agentmart.dev/connectors/daedalus-mcp-manimgl (last updated 2026-10-25)