Stickman Character MCP Server
Click on "Install 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., "@Stickman Character MCP ServerRender a 3-step walk cycle as a GIF."
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.
Stickman Character MCP Server
Turns your Red-Hat-engineer stickman reference art into a posable, rigged character that any MCP-compatible coding agent (Claude Code, Claude Desktop, Cursor, etc.) can control directly — set joint angles, pick a facial expression, and render single frames or full animations (GIF/MP4). Because every frame is generated from the same parametric SVG rig, the character stays perfectly on-model across an entire video instead of drifting the way frame-by-frame image generation does.
Staying on-model
The rig is measured directly off the reference sheet rather than approximated, so a render lines up with the source art almost pixel for pixel:
Proportions were taken from the front-view reference (1024px source, head outer radius 121px) and scaled by 0.546 onto the 400x520 canvas — spine 215px, upper/fore arm 108/120, upper/lower leg 126/127, limb stroke ~19px, head centre 133px above the shoulder fork.
The fedora is a vector trace of the reference hat, not a hand-built approximation. It ships as normalised SVG paths (
HAT_PATHSinrig.py) expressed in head-radius units and drawn viatranslate(head) scale(head_radius), so it rides the head through any tilt and keeps the exact brim sweep, crown pinch and band of the original.Palette is sampled from the art:
#D51918bright red,#A01513mid,#7E1212shadow,#C2C3C5face shading,#D2D3D5ground shadow.The face matches the reference conventions — the neutral face is two solid black ovals and no mouth. White-eyeball-and-pupil eyes are used only for happy/excited/surprised, and angry uses slanted wedges with gritted teeth, exactly as in the reference expression sheets.
hat_color is still fully parametric: pass any hex and the mid and shadow
tones are derived from it using the reference's own 1.0 / 0.742 / 0.592 ramp.
What's inside
stickman_mcp/
rig.py - the skeleton: joints, forward kinematics, SVG renderer,
traced fedora paths, facial expressions, pose presets
animate.py - keyframe interpolation + export to PNG sequence / GIF / MP4
server.py - the MCP server itself (tools below)
pyproject.tomlInstall
cd stickman_mcp
python3 -m venv venv
source venv/bin/activate
pip install -e .This pulls in mcp, cairosvg (SVG→PNG rendering) and pillow (GIF
export). GIF/PNG-sequence export needs no extra system deps; MP4 export
requires ffmpeg to be installed and on your PATH.
Register it as an MCP server
Claude Desktop / Claude Code — add to your MCP config
(~/Library/Application Support/Claude/claude_desktop_config.json on
macOS, or the equivalent Claude Code config):
{
"mcpServers": {
"stickman": {
"command": "/absolute/path/to/stickman_mcp/venv/bin/python",
"args": ["-m", "stickman_mcp.server"],
"cwd": "/absolute/path/to/stickman_mcp"
}
}
}Or run it standalone over stdio to test:
python -m stickman_mcp.serverTools exposed
Tool | What it does |
| Lists built-in poses and their full definitions, so a pose can be copied and tweaked |
| Lists built-in facial expressions |
| Lists every controllable joint and its default angle, for hand-authored poses |
| Renders one frame — a preset name and/or explicit joint overrides, an expression, optional |
| Renders a full keyframe animation (poses + expressions + hold/transition timings) to GIF, MP4, or a PNG sequence. |
| Convenience: N-step looping walk cycle. |
| Convenience: N-step looping run cycle. |
Joints (all angles in degrees, 0 = straight down, + = clockwise)
l_shoulder, l_elbow, r_shoulder, r_elbow, l_hip, l_knee,
r_hip, r_knee, neck (head tilt), spine (torso lean),
hip_shift (px, horizontal), body_lift (px, vertical, negative = up).
l_ is the character's left, i.e. the viewer's right. Mirrored poses need
opposite-signed knee angles (l_knee=86, r_knee=-86) so both shins bend
the same way.
Style keys (per pose, not interpolated — they snap at the keyframe)
hands—"blob"(default),"open", or"fist". Also accepts a dict for per-side control:{"r": "open"}leaves the other hand a blob.front_arm—"l","r"or"both", drawing that arm over the head. Needed whenever a hand lands on the face (facepalm,thinking_pose), since the hat brim is ~1.5x the head width and would otherwise cover it.prop— currently"chair", drawn behind the character forsit.
Poses
idle, wave_right, wave_left, point_right, point_left,
explain_hands, explain_left_hand, thinking_pose, arms_up_happy,
arms_crossed, hands_on_hips, fists_up, walk_1, walk_2, run_1,
run_2, jump, crouch, sit, shrug, facepalm, bow, look_up,
look_down, celebrate, typing.
Expressions
neutral, happy, excited, sad, angry, surprised, thinking,
wink, talking, calm.
Example: a coding agent building a short clip
render_animation(
keyframes=[
{"pose": "idle", "expression": "neutral", "hold": 0.5},
{"pose": "wave_right", "expression": "happy", "hold": 1.0, "transition": 0.3},
{"pose": "explain_hands", "expression": "excited", "hold": 1.5, "transition": 0.3},
{"pose": "idle", "expression": "happy", "hold": 0.5, "transition": 0.3},
],
fps=12,
out_format="mp4",
)An agent can also skip presets entirely and hand-author a pose:
render_pose(
joints={"r_shoulder": -90, "r_elbow": 20, "neck": -10},
expression="excited",
)Transitions use smoothstep easing, so poses ease in and out rather than sliding linearly between keyframes.
Notes / next steps
The rig covers front-facing 2D poses only (matching most of the reference set). A left/right-facing profile variant — for the side-profile and walking-toward-camera references — is the natural next addition: the skeleton already supports it, but the head, face and traced hat would each need a profile variant.
sitnow draws a simple wooden chair viaprop="chair". Other props would slot into_chair_svg's pattern inrig.py.render_animationkeyframes can be produced programmatically for a "character walks across screen" shot: sweephip_shiftwhile alternatingwalk_1/walk_2.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Generate, edit, and deploy immersive 3D/WebGL web projects from any MCP assistant.
OCR, transcription, file extraction, and image generation for AI agents via MCP.
Generate on-brand images from your AI agent: design, edit, and render templates over MCP.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/meAnkit18/stickman-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server