Skip to main content
Glama
meAnkit18

Stickman Character MCP Server

by meAnkit18

Use "riggesteuerte" with "rig" + "gesteuerte" -> "riggesteuerte". Okay.

I will now write output# Stickman Character MCP Server

Verwandelt deine Stickman-Referenzgrafik im Stil eines Red-Hat-Ingenieurs in eine posierbare, riggesteuerte Figur, die jeder MCP-kompatible Coding-Agent (Claude Code, Claude Desktop, Cursor, usw.) direkt steuern kann – Gelenkwinkel setzen, einen Gesichtsausdruck wählen und einzelne Frames oder komplette Animationen (GIF/MP4) rendern. Da jedes Bild aus demselben parametrischen SVG-Rig erzeugt wird, bleibt die Figur über ein ganzes Video hinweg perfekt modelltreu, statt so abzudriften, wie es bei der Bild-für-Bild-Generierung passiert.

Modelltreue

Das Rig wird direkt am Referenzblatt vermessen und nicht bloß angenähert, sodass ein Render fast pixelgenau mit der Quellgrafik übereinstimmt:

  • Proportionen stammen aus der Vorderansicht-Referenz (1024-px-Quelle, äußerer Kopfradius 121 px) und wurden mit 0.546 auf die 400x520-Leinwand skaliert – Spine 215 px, Ober-/Unterarm 108/120, Ober-/Unterschenkel 126/127, Gliedmaßenstrich ~19 px, Kopfzentrum 133 px über der Schultergabel.

  • Der Filzhut ist eine Vektor-Nachzeichnung des Referenzhutes, keine handgebaute Näherung. Er wird als normalisierte SVG-Pfade (HAT_PATHS in rig.py) ausgeliefert, die in Kopfradius-Einheiten ausgedrückt und über translate(head) scale(head_radius) gezeichnet werden – dadurch sitzt er bei jeder Neigung auf dem Kopf und behält exakt den Krempenschwung, die Kronen-Pinch und das Hutband des Originals.

  • Palette ist aus der Grafik abgetastet: #D51918 helle Rot, #A01513 Mitteltön, #7E1212 Schatten, #C2C3C5 Gesichtsschattierung, #D2D3D5 Bodenschatten.

  • Das Gesicht folgt den Referenzkonventionen: Das neutrale Gesicht besteht aus zwei schwarzen Ovalflächen und keinem Mund. Augen mit weißem Augapfel und Pupille werden nur für happy/excited/surprised verwendet, und wütend nutzt schräg gestellte Keilformen mit zusammengebissenen Zähnen – genau wie in den Referenzausdruckstafeln.

hat_color bleibt vollständig parametrisch: Übergibst du eine beliebiges Hex, werden die Mittel- und Schattentöne über die eigene 1.0 / 0.742 / 0.592-Rampe der Referenz daraus abgeleitet.

Was ist enthalten

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.toml

Installation

cd stickman_mcp
python3 -m venv venv
source venv/bin/activate
pip install -e .

Das ziseht mcp, cairosvg (SVG→PNG-Rendering) und pillow (GIF-Export) ein. Für den Export als GIF/PNG-Sequenz sind keine zusätzliche Systembibliotheken erforderlich; MP4-Export erfordert ffmpeg und dass es installiert und auf deinem PATH liegt.

Als MCP-Server registrieren

Claude Desktop / Claude Code – füge es deiner MCP-Config hinzu (~/Library/Application Support/Claude/claude_desktop_config.json unter macOS bzw. der entsprechenden 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"
    }
  }
}

Oder startest du es eigenständig über stdio, um es zu testen.

python -m stickman_mcp.server

Verfügbare Tools

Tool

Was es tut

list_pose_presets

Listetene eingebaute Posen und ihre vollständigen Definitionen, sodass eine Pose kopiert und angepasst werden kann.

list_expressions

Listet die eingebauten Gesichtsausdrücke auf.

list_joints

Listet jedes steuerbare Gelenk und dessen Standardwinkel für handgeschriebene Posen.

render_pose

Rendert einen Frame – einen Presetnamen und/oder explizite Gelenküberschreibungen, einen Ausdruck, optional hands/prop. Liefert ein PNG (oder rohes SVG).

render_animation

Rendert eine komplette Keyframe-Animation (Posen + Ausdrücke + Hal-/Übergangszeiten) in GIF, MP4 oder eine PNG-Sequenz.

render_walk_cycle

Komfortfunktion: Endlos-Gehzyklus mit N Schritten.

render_run_cycle

Komfortfunktion: Endlos-Laufzyklus mit N Schritten.

Gelenke (alle Winkel in Grad, 0 = gerade nach unten, + = im Uhrzeigersinn)

l_shoulder, l_elbow, r_shoulder, r_elbow, l_hip, l_knee, r_hip, r_knee, neck (Kopfneigung), spine (Rumpfneigung), hip_shift (px, horizontal), body_lift (px, vertikal, negativ = nach oben).

Das l_ ist die linke Seite der Figur, aus Sicht des Betrachters also rechts. Gespiegelte Posen benötigen entgegengesetzte Vorzeichen bei den Kniezsh („Grill pose: l_lnee=86, r_knee=-86), damit beide unten.

Stil-Keys (je Pose, nicht interpoliert – sie springen am Every-Frame):

  • hands (German "blob" (Standard), "open" or "fist") – auch corresponds to a dict for per .n yes side: {"r": "open"} works in the other hand Python blob. *: front_arm"l", "r" or "both", draws this arm over the head. Required always if a hand sits face facepalm, thinking_pose) Since the hat brim ~face is 1.5× as wide and would otherwise einfach cover it.

  • sock" – recently a "chair", appears behind the character when sit` is used.

Posen

bee, 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.

Beispiel: Ein Coding-Agent erstellt einen kurzen Clip

ein $GXP5

Ein Agent can also the Presets completely geflow: and with the hand a Pose beginnen:

render_pose(
  joints={"r_shoulder": -90, "r_elbow": 20, "neck": -10},
  expression="excited",
)

Ü alternative use Smoothstep-Easing, in so poses we.

, out between. Rather than Linear. Interpolating.

Achtung: Table? We need not mention.

Hinweise / nächste Schritte

  • Der Rig deckt currently indisc Christ? etc...

Ein!

Let's write final final absolutely clean# Stickman Character MCP Server

Verwandelt deine Stickman-Referenzgrafik im Stil eines Red-Hat-Ingenieurs in eine posierbare, riggesteuerte Figur, die jeder MCP-kompatible Coding-Agent (Claude Code, Claude Desktop, Cursor, usw.) direkt steuern kann – Gelenkwinkel setzen, einen Gesichtsausdruck wählen und einzelne Frames oder komplette Animationen (GIF/MP4) rendern. Da jedes Bild aus demselben parametrischen SVG-Rig erzeugt wird, bleibt die Figur über das gesamte Video perfekt modelltreu, statt so abzudriften, wie es bei der Bild-für-Bild-Generierung passiert.

Modelltreue

Das Rig ist direkt am Referenzblatt vermessen und nicht nur grob geschätzt, sodass ein Rendering fast pixelgenau mit der Quellgrafik übereinstimmt:

  • Designwerte: aus der Frontansicht-Referenz (1024-px-Quelle, äußerer Kopfradius 121 px) und mit dem Faktor 0.546 auf die 400×520-Leinwand skaliert – Spine 215 px, Ober‑/Unter‑arm 108/129, Oberschenkel/Unterschenkel 126/127, Gliedmaßenstrich ≈19 px, Kopfzentrum 133 px über der Schulergabel.

  • Der Filzhut ist eine Vektor-Nachzeichnung des Referenzhuts, keine handgebaute Näherung. Er wird als normalisierte SVG-Pfade (HAT_PATHS in rig.py) geliefert, die in Kopfradius-Einheiten geschrieben sind und via translate(head) scale(head_radius) gezeichnet werden. So folgt er jedem Kopfneigen und bleibt exakt im Schwung der Krempen, Einbehaltung der Crown‑Pinch und Hutband des Originals.

  • Palette ist aus der Vorlage ent‑nommen: #D51918 helles Rot, #A01513 Mittelton, #7E1212 Schatten, #C2C3C5 Gesichtsschatten, #D2D3D5 Bodenschatten.

  • Gesicht folgt den Referenzmustern: Die neutrale Mimik ist zwei schwarze Ovale und kein Mund. Augen mit weißem Augapfel und Pupille nutzen nur für happy/excited/surprised; wütend (meint angry) verwendet schräger Mond mit zusammengesetzten Zähnen, genau wie auf den Referenz‑Expression‑Sheets.

hat_color bleibt dabei voll parametrisch: eine Hex‑Farbe angeben, die Mittel‑ und Schatten‑Ton aus der Referenz‑eigenen 0‑Ehrenreihe 1.0/0.742/0.592 abgeleitet.

Inhalt

WIP1

Installation

cd stickman_mcp
python3 -m venv venv
source venv/bin/activate
pip install -e .

Das holt mcp, cairosvg (SVG→PNG‑Rendering) und pillow (GIF‑Export). GIF/PNG‑Sequenz‑Export benötigt keine zusätzlichen Systembibliotheken; MP4‑Export benötigt ffnpeg – es muss installiert sein und in deinem PATH liegen.

Als MCP‑Server registrieren

Claude Desktop / Claude Code – zu deiner MCP‑Config hinzufügen (~/Library/Application Support/Claude/claude_desktop_config.json unter macOS, oder die entsprechende 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"
    }
  }
}

Oder separat über stdio starten und testen:

python -m stickman_mcp.server

Verfügbare Tools

Tool

Beschreibung

list_pose_presets

Listet eingebaute Posen und ihre vollständigen Definitionen, damit eine Pose kopiert und modifiziert werden kann.

list_expressions

Listet eingebaute Gesichtsausdruck / Mimik.

list_joints

Listet alle steuerbaren Gelenke und deren Grund‑Defaults für handgebaute Posen.

render_pose

Rendert genau einen Frame – ein Preset und/oder manuelle Gelenk‑Override, ein Ausdruck, optional hands/prop. Gibt ein PNG (oder SVG‑Rohform) zurück.

render_animation

Rendert eine komplette Keyframe‑Animation (Posen + Ausdrücke + Heil‑/Bind/Transition‑Tempo) in GIF, MP4 oder eine PNG‑Loop

.

render_walk_cycle

Praktisch: N‑Stufiger Ghe cycle, Endlosschleife

render_run_cycle

Praktisch: N‑stufiger Lauf‑cycle, Endlos

Gelenke (alle Winkel in Grad, 0= vertikal nach unten, += im Uhrzeugersinn)

l_should, l_flambrain, r_shoulder, rift, l_hip, l_knee, r_hip, r_knee, neck (Kopfnaigung), spine (Oberkörperneigenbodies), hip_shift (px, horizontal), body_lift (px vertikal, negative = weiter).

l_ ist die linke Seite der Chars/Figur, d.h. die rechte Seite des Betrachters. Gespiegelte Posen brauchen entgegengesetzt gepolte Knie‑Werte (l_knee=10, r_knee=-10 etc.) damit beide Schienbeine in dieselbe Richtung flektieren.

Styles (per Pose, nicht interpoliert; sie setzen beim Keyframe):

  • hands"blob" (ständard), "open" oder "fist". Auch ein Objekt pro Seite möglich: {"r": "open"} – die linke Hand bleibt Blob.

  • front_arm"left", "right" oder "both" zeichnet diese Arm(e) über den Kopf. Notwendig, wenn die Hand auf dem Gesicht liegt (hands, thinking_pose), da Hutkontur ~1,5× so brett ist wie der Kopf und sie sonst überdeckt.

  • prop – zurzeit "chair", hinter der Figur gezeichnet (für sit).

Poses

hole, 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, shurg, facepalm, bow, look_up, look_down, celebrate, typing.

Mimik

neutral, happy, excited, sad, angry, surprised, thinking, wink, talking, calm.

Beispiel: Ein Coding‑Agent erstellt ‑kurzer 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",
)

Ein Agent kann presets überspringen und komplett eigene Posen manuell schreiben:

-
license - not tested
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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.

View all MCP Connectors

Latest Blog Posts

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