Skip to content
Agentmart
Submit a tool

OpenToonz MCP

Animate in OpenToonz from an AI assistant: native vector levels, xsheet timing, rigs and physics.

Connector by konkomaji · GitHub account verified by the MCP Registry

IndexedMITLocal (stdio)
Write a review

Chalk Labs

Need help deploying OpenToonz MCP?

Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.

Book a call

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/konkomaji-opentoonz-mcp

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.

We use your email only for this newsletter. Privacy

About

Animate in OpenToonz from an AI assistant: native vector levels, xsheet timing, rigs and physics.

No 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, install config and code. Checked Oct 26, 2026.

Tools
9 read · 27 write · 3 delete · 14 not yet classified
Secrets
None asked for
Install scripts
None found
Runs as
Python package

Tools by what they do 53

Read from the source code; the running server may list different tools.

Read 9 · Look things up without changing anything.

  • compile_vectors
  • get_journal
  • knowledge
  • list_looks
  • list_parts
  • list_regions
  • list_scenes
  • preview_frame
  • validate_scene

Write 27 · Create, change, send or run things.

  • add_layer
  • add_note
  • add_peg
  • animate_action
  • apply_look
  • blink
  • build_character
  • camera_follow
  • camera_move
  • create_scene
  • feedback
  • follow_through
Show 15 more tools
  • import_image
  • import_scene
  • import_svg
  • learn_lesson
  • lip_sync
  • run_cycle
  • save_part
  • scene_context
  • set_exposure
  • set_keyframe
  • set_layer
  • set_parent
  • set_pivot
  • set_scene_settings
  • undo

Delete 3 · Delete, drop, revoke or wipe things.

  • clear_keyframes
  • delete_layer
  • remove_look

Not yet classified 14 · We could not tell from the name and description.

  • anatomy_reference
  • contact_sheet
  • draw
  • draw_many
  • inbetween
  • open_in_opentoonz
  • opentoonz_info
  • physics_bounce
  • physics_jump
  • render
  • style_guide
  • tune_style
Show 2 more tools
  • walk_cycle
  • wrapper

Secrets and settings it asks for

Other settings (environment variables or headers).

  • OPENTOONZ_HOME
  • OPENTOONZ_STUFF
  • OTMCP_WORK

Network hosts it talks to 2

  • github.com · found in code
  • konkomaji.com · found in code

Files it touches

  • Your home directory (~)
  • Any path the agent passes to its tools

Tools (53)

Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].

  • add_layer

    Add a column with its own drawing level. Later layers are drawn ON TOP. mode: 'vector' (native OpenToonz vector .pli, editable in GUI, pressure lines) | 'raster' (PNG). style: override scene style for this layer (e.g. 'clean' for BG, 'sketch' for effects). parent: 'Table', a peg or another layer. boil: hand-drawn line boil on held drawings.

  • add_note

    Save a memory note for this scene (story, character design, decisions, todo). Shown in scene_context.

  • add_peg

    Add a pegbar (invisible transform node). Parent layers to it to move groups (character rigs, BG sets).

  • anatomy_reference

    Body proportions for drawing a person, from anthropometric data (Drillis-Contini segment lengths, de Leva masses, CDC/NHANES stature, growth-standard head ratios). person: baby | toddler | boy | girl | child | teen | teen_boy | teen_girl | young_man | young_woman | man | woman | old_man | old_woman (or give age years / label and sex). Returns heights from the floor, segment lengths, front widths, side depths (px), heads tall, mass fractions, centre of mass, notes. Scale: height_px, or px_per_m (340 = 1.75 m adult about 600 px; keep one px_per_m per scene). region (list_regions): population ave…

  • animate_action

    Move a layer/peg/camera with animation principles baked in (Illusion of Life numbers): anticipation (opposite move, 15% amplitude, 25% of duration, min 3f), main move with slow-in/out, overshoot (10% past target) and damped settle (x0.45 swing) over settle_frames AFTER 'end'. to/from_: {x,y,rotation,scale,scale_x,scale_y} (px/deg/factor). from_ defaults to current value at start.

  • apply_look

    Give the scene a studio look made of real OpenToonz fx nodes (open the FX Schematic to tweak them). look: ghibli | klaus | spider_verse | comic | anime_satsuei | painterly | cartoon_saloon (list_looks). Whole-frame fx go just before the output; per-layer fx (e.g. Klaus form shadow and rim light) go on `layers` (default: every layer except ones named like bg/background/sky). strength scales the amounts (0.5 subtle, 1 default, 1.5 strong). light_angle: degrees, 90 = light from above, 135 = top-left. Re-applying replaces the previous look; fx you made by hand are kept.

  • blink

    Insert a blink into a layer's xsheet at `start` (switches the layer to manual timing). pattern: standard (H C C H) | quick | anime_twos | physiological | sleepy | double. Drawings: the eye open/half/closed drawing numbers on that layer.

  • build_character

    Build a side-view cut-out character rig with real proportions for the age and sex. Creates a root peg '<name>' at the hips and 16 vector layers '<name>_<part>' (torso, head, upper arm, forearm, hand, thigh, shin, foot, toe; far side darker and behind), parented like a skeleton with each pivot on its joint. Animate it with walk_cycle / run_cycle, or key the parts directly (rotation on a part turns it about its joint). x: hip x px (default centre); ground_y: floor line px (default 90% of the frame). hair: short | long | bob | ponytail | bun | none. colors: {skin, hair, top, bottom, shoes, line}.…

  • camera_follow

    Follow a layer/peg with the camera using critically damped smoothing (game-camera SmoothDamp). smooth_time in frames (7 = 0.3 s); axis x | y | xy; offset px added to the followed position.

  • camera_move

    Camera work (satsuei): kind='pan': move view by dx,dy px from start..end (eased 8f). parallax={layer: ratio} makes layers move at ratio of camera speed (sky 0.05, far BG 0.3, mid 0.6, char 1.0, FG 1.8). kind='truck': zoom to 'zoom' scale (0.75 = push in 25%) with exponential interpolation. kind='shake': impact shake starting at 'start', strength px (8 default), decays x0.7/frame on ones.

  • clear_keyframes

    Remove keys from a target (optionally one param: x,y,rotation,scale,scale_x,scale_y,z; optional frame range).

  • compile_vectors

    Convert pending vector drawings to native OpenToonz .pli levels with pen-pressure lines. Runs automatically before preview/render/open. force=true also overwrites GUI-edited levels.

  • contact_sheet

    Render several frames into one labelled grid (default 6 spread over the scene) to review motion.

  • create_scene

    Create a scene in the OpenToonz sandbox project. style: anime | feature | cartoon | sketch | clean (line weight, wobble, taper, default timing).

  • delete_layer

    Delete a layer (column, level, drawings). Undo-able.

Show 38 more tools
  • draw

    Draw drawing #frame on a layer (held until the next drawing when timing is auto). Shapes (canvas px, origin top-left), painted in order: circle{x,y,r} ellipse{x,y,rx,ry,rotation} rect{x,y,w,h,radius,rotation} (x,y=top-left) polygon{points,smooth} path{points,smooth=true,closed} text{x,y,text,size,anchor='mm'} svgpath{d:'M.. C.. A.. Z', transform?} - any SVG path data (detailed art: hair, hands, folds) brush{points:[[x,y,pressure 0-1],...], width:px max, color} - inked stroke with per-point pressure Paint/ink: fill, stroke, stroke_width (px; default from style), opacity, interior=true …

  • draw_many

    Batch draw: drawings=[{"frame": n, "shapes": [...]}, ...]. Use for frame-by-frame animation.

  • feedback

    Store the USER's rating (1-5) and comment about a result. Ranked highest in lessons/preferences. Ask the user for this after showing a render.

  • follow_through

    Overlapping action / follow-through from a damped spring (second-order system). The target reacts to the driver's motion (driver's `param`, exact OpenToonz values). mode 'follow': target_param = spring(driver) (a separate object trailing the driver). mode 'offset': target_param = gain * (spring(driver) - driver) (a part PARENTED to the driver: hair, ears, tail, cloth; use target_param='rotation' with gain in deg per px for a swing). frequency Hz (hair 2-2.5, ears 3, belly 4-5, cape 1.2), damping 0.25-0.5 (overshoot 15-45%), response < 0 anticipates. Keep frequency <= 4 Hz on ones, <= 2.5 H…

  • get_journal

    Operation history of a scene (every MCP action, outside edits detected, errors).

  • import_image

    Bring a picture (sketch, scanned drawing, painting, photo, AI image) into a layer. Raster layer (mode 'raster'): the image is placed as-is. Traced layer (add_layer mode='traced'): OpenToonz's own vectorizer turns it into editable vector strokes and fills on compile. trace: set the traced layer's method once: 'outline' (colour regions) | 'centerline' (ink lines). box [x,y,w,h] px (default whole canvas); fit contain | cover | stretch | none.

  • import_scene

    Bring an existing OpenToonz .tnz (made in the GUI) under MCP control. Copies it into the sandbox scenes folder if it is elsewhere. Its columns appear as 'foreign_columns' you can key/retime. A scene the MCP already manages is refused unless overwrite=true (its MCP layer data is reset).

  • import_svg

    Import an SVG file (Inkscape/Illustrator/free assets) as editable vector shapes on a drawing. Every path becomes an 'svgpath' shape you can tween, recolour or humanize (human=true adds the hand-drawn wobble/pressure of the layer style). box [x,y,w,h] fits the art (default whole canvas).

  • inbetween

    Generate in-betweens (douga) between two key drawings (genga). start/end_shapes default to the drawings already on start_frame/end_frame. easing: slow_in_out (studio chart) | snappy | linear | in | out | bounce | elastic | back. step: 1 ones, 2 twos, 3 threes (default: style timing, anime=3, feature=2). arc: bow of the travel path (0.15 = natural arc). squash: 0-1 stretch round shapes along motion. Studio rule: only auto-inbetween 'tight' moves (rotation<=30deg, scale change<=25%); add a breakdown key otherwise.

  • knowledge

    Search accumulated lessons (errors seen, quality issues, insights, user preferences) with advice.

  • learn_lesson

    Record an insight from reviewing your own output (e.g. 'squash 0.8 looks rubbery; 0.4 reads better for a heavy ball'). Lessons are shown in every later scene_context so future work improves.

  • lip_sync

    Animate a mouth from text (no audio): each mouth shape is a VARIANT of a library part (anime3: closed/half/open; blair: AI E O U WQ MBP FV L etc rest). Draws one drawing per shape on the layer and writes the xsheet from `start` (2-frame minimum holds). Shift `start` 2 frames earlier than the audio (mouths lead sound).

  • list_looks

    Studio looks apply_look can build from real OpenToonz fx, with what each does.

  • list_parts

    Parts in the model-sheet library with their variants.

  • list_regions

    Regions with surveyed body averages for anatomy_reference / build_character (region=...).

  • list_scenes

    Scenes known to the MCP.

  • open_in_opentoonz

    Open the scene in the OpenToonz GUI for hand editing (vector levels compiled first). After editing: SAVE in OpenToonz, then the MCP picks up your changes automatically.

  • opentoonz_info

    Install paths, version, scenes, and whether the OpenToonz GUI is running.

  • physics_bounce

    Physically exact bouncing (gravity parabolas, coefficient of restitution) on a layer/peg. The drawing must rest on the ground line; y offsets go UP from there. height px. fall_frames: frames for the first drop (default: real gravity for a 1.7 m character = 1080 px tall, i.e. 14.1*sqrt(height/1080)). material: rubber_ball | table_tennis | basketball | tennis | soft_rubber | bowling | balloon (sets restitution and squash). travel_x: px moved over the whole bounce, slowing with each contact. squash: area-preserving contact squash (set_pivot at the feet first).

  • physics_jump

    Recipe jump on a layer/peg: anticipation crouch -> takeoff stretch -> exact parabola -> landing squash -> recovery. style: realistic | feature | cartoon (crouch depth, stretch and squash amounts). air_frames default: real gravity for the scene height (1.7 m character = frame height).

  • preview_frame

    Render one frame through OpenToonz and return the image (check your work visually).

  • remove_look

    Remove the fx apply_look added (fx you made in OpenToonz stay).

  • render

    Render with OpenToonz (tcomposer), then double-check: frame count, blank frames, flashing. format: mp4 | gif | png (sequence). shrink 2 = half size (faster drafts).

  • run_cycle

    Run a build_character rig: spring-mass physics (exact gravity in the flight phase, a spring arc in contact, lowest at mid-stance), planted feet, high knee recovery, bent arms. Defaults by age and sex from jogging norms (adult man about 166 steps/min at 3.3 m/s). Same options as walk_cycle; bounce=1 keeps gravity exact.

  • save_part

    Save a reusable part to the global model-sheet library (head, eye, hand, mouth chart, prop). shapes use the part's own coordinates; anchor [x,y] is its attachment/pivot point. variants: alternative drawings by name, e.g. {"closed": [...], "A": [...], "O": [...]}. Use in any drawing as {"type":"part","name":..,"variant":..,"x","y","scale","rotation","flip"}.

  • scene_context

    CALL FIRST. Full current state of a scene from disk: settings, layers, timing, keyframes, outside (GUI) changes detected, notes/memory, recent journal, warnings.

  • set_exposure

    Xsheet timing for a layer (sets timing=manual). cells[i] = drawing at frame i+1 (0 = blank), or run-length text '1x6 2x6 3x4 0x2' (drawing x frames). Cycle example on twos: '1x2 2x2 3x2 4x2 1x2 ...'.

  • set_keyframe

    Keyframe a layer, peg, or 'camera' (real OpenToonz keys, editable in GUI Function Editor). x/y: px offset from rest (+y down). rotation: deg CCW. scale*: 1.0=100%. z: depth. interp (segment starting at this key): ease | linear | constant | speed | exp. Camera: scale<1 zooms IN; use exp interp for trucks (natural zoom).

  • set_layer

    Layer properties: visible, opacity (0-1, renders), boil, style (needs redraw), timing 'auto'|'manual'.

  • set_parent

    Re-parent a layer or peg to 'Table', a peg, or another layer.

  • set_pivot

    Set the rotation/scale pivot of a layer or peg without moving it (OpenToonz 'center'). x,y: canvas px. x='auto': from the layer's drawing bounds; anchor 'bottom' (feet - use for squash on the ground) | 'center' | 'top'. Do this BEFORE squash/stretch or rotation keys.

  • set_scene_settings

    Change scene length (frames), fps, background colour, or default drawing style.

  • style_guide

    Studio animation rules (Ghibli/Disney/anime practice) with numbers: timing, spacing, squash, line weight, shading, camera. topic: 'rules' (numbered defaults) | 'full' | 'styles'.

  • tune_style

    Permanently adjust a style preset's defaults (learned from feedback). Keys: line, interior, wobble, wavelength, taper_start, taper_end, min_ratio, pressure_var, loop_var, exposure, squash [lo,hi], shadow, overshoot_ends. Applies to all future drawings using that style.

  • undo

    Restore the scene (and any overwritten vector levels) to the state before the last N MCP writes.

  • validate_scene

    Double-check a scene: structure, missing files, layer/column mapping, timing gaps, studio rule warnings (holds, pan speed), and optionally a 1-frame test render.

  • walk_cycle

    Walk a build_character rig with biomechanically correct timing for its age and sex. Feet stay planted and roll heel -> flat -> ball -> toe; legs use two-bone IK; the hips ride an inverted-pendulum arc (low at contact, high at passing); arms swing opposite the legs. Defaults come from gait studies (e.g. adult man 108 steps/min at 1.4 m/s; toddler 154 at 0.86; old age shorter steps). speed m/s, cadence steps/min override them. cycles (default 2) or end. travel=false walks in place (pan the BG). on=2 holds every pose 2 frames (keys become constant). bounce, arm_swing scale the motion (1 = natural…

  • wrapper

Signals

Stars
0
Forks
0
Open issues
0
Weekly downloads
132
Last commit
Oct 22, 2026 (9 days ago)
Last release
Oct 22, 2026 (9 days ago)
Last package publish
Oct 22, 2026 (9 days ago)

From GitHub (fetched Oct 24, 2026) and the package registry.

Details

Registry name
io.github.konkomaji/opentoonz-mcp
Version
0.1.0
Auth
No auth
Packages
pypi opentoonz-mcp
License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from konkomaji

Done for you

Rather not set it up yourself?

Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.

See how we build AI agents →Read the case studies

Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.

launches shipped
50+
launches shipped
media placements
500+
media placements
founders on every account
2
founders on every account

Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block

Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.

Get OpenToonz MCP running in your business

Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.

Goes to the Chalk Labs founders, not the newsletter. Privacy

Need help deploying OpenToonz MCP?

CallGet help
Cite this page

OpenToonz MCP. Agent Mart. https://agentmart.dev/connectors/konkomaji-opentoonz-mcp (last updated 2026-10-24)