Stickman Character MCP Server
スティックマン キャラクター MCP サーバー
あなたの Red Hat エンジの参照アートを、ポーズの設定ができるリグ付きキャラクターに変換します。MCP互換のコーディング・エージェン(Claude Code、Claude Desktop、Annotation 等)が直接制御できます — 関節の角を設し、表情を選び、単フレームや全アニメーション(GIF/MPG)を書だり出せます。すべてのフレームが同じのラメトリック SVG リグから生成されるるため、フレームごと画像を生成す方法と異り、キークターは動画全体でモデの通りの見た目を完全の保ち続けます。
モデの忠実な再現
リグは参照シートから近似にではない直接計測されているので、レンダリンは元のアートとほぼピクセル単位で位置します。
ジ長さは正面長の参照シート(1024pxソース、頭線外半径121px)から取り、400×520のキンバスに 0.546 倍の配置ました。脊髄215px、上腕/前腕108px/120px、の外周/周106/127px、身体105/下a 120/、手足のストノーク約19px、頭のセンターーは肩の分岐点のの上 133px。
Hmm "unsigned" is duplicated. Let me refine:
"* プロポーション — 正面参考図(1024px原画、頭の外半径121px)から取った値を 0.546 × して、400×520 のキンバスに配置ました。脊柱215px、上腕/前腕108px/76 →
Wait, original says "upper/fore arm 108/cm" 108/120. OK.
Let me properly state: "脊柱215px、上腕/前腕108/120px、大腿/下腿126/127px、体の線ストローク約19px、頭の中心は肩の分岐点よりも133px上。"
Hmm "limb stroke" — "手足の線". OK.
フェドラ — は手作規的似のではなく、参照帽のベクトル・トレース。正規化された SVG パス(
rig.pyのHAT_PATHS)というて用意されており、頭部半径単位で表さるれ、translate(head) scale(head_radius)で描画されます。これにより、どのようの傾けてのにもの頭に追従し、元のつばのカーブ、クラウンの時しみ、どめのバードを其のままに保てます。
パレットはアートからサンプリングは参考は以下の通りです:
#D51918の明るい赤、#A01513の中ぶ、#7E1212の影、#C2C355の顔の影、#D2D355の地面の影。顔は参照の約束に従っています — 無表情は黒をりのオベールの2つであり、口ません 白目と瞳孔の目は幸あ・隣している・びっくしの表情のみに使し、怒い鳴りは歯を食いし場った斜のェジを使用ます。参参照の状態シートとまったく同じです。
hat_color はまだ完全にパラメトリックです。任意の16進数を「渡」すると、それの中間トニーンとシャドウ・トニーンは、参照の既定の 1.0 / 0.742 / 0.592 のランプから導出されます。
Related MCP server: Minecraft MCP Server Pro
含まれるもの
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インストール
cd stickman_mcp
python3 -m venv venv
source venv/bin/activate
pip install -e .これで mcp と cairosvg(SVG→PNG レンダリング)、pillow(GIF 書き出し)が導入されます。GIF/PNG シーケンスの書き出しには追加のシステムツールは不要です。MP4 の書き出しは ffmpeg が PATH にインストールされてい必要があります。
MCP サーバーとして登録する
Claude Desktop / Claude Code — MCP 設備設定を追加してください(macOS では ~/Library/Application Support/Claude/claude_desktop_config.json、アナログに Claude Code の構成にはその該当箇所):
{
"mcpServers": {
"stickman": {
"command": "/absolute/path/to/stickman_mcp/venv/bin/python",
"args": ["-m", "stickman_mcp.server"],
"cwd": "/absolute/path/to/stickman_mcp"
}
}
}そして其でグスタンドアローンで stdio で実行してテストすることもできます。
python -m stickman_mcp.server利用できるツール
ツール | 動作 |
| 標準ポーズとそのすべての定義を一覧表示します。ここでポーズをコピーして調整できます。 |
| 標準の表情リストを一覧表示します。 |
| 手動でポーズを書くために、制御できるすべての関節とその初期角度を一覧表示します。 |
| 1つのフレームを表示します — プリセット名や/または明示のジョイント・オーバーライド、組み合わせ、オプションの |
| キーフレーム・アニメーション(ポーズ + 表情 + ホールド・トランジション・タイミングでの)をGIF、MP4、またはPNGシーケンスに書画出します。 |
| わかりやすいもの:N 步のループ歩きサイクルを出力します。 |
| 手軽な:N 步のループ走りサイクルを出力します。 |
ジョイント(角度はすべで度、0 は真ため、+ は時計回り)
l_shoulder, l_elbow, r_shoulder, r_elbow, l_hip, l_knee,
r_hip, r_knee, neck(頭部の傾き),
body_lift (垂直, 负レー値 = 上).
Wait - I must include both neck and body_lift: In original: "neck, spine (に ..., ridge spine(トルソの傾き)、hip_shift(px, 水平)、spine...`。 Let me write:
l_shoulder, l_elbow, r_shoulder, r_elbow, l_hip, l_knee,
r_hip, r_knee, neck???????, spine(りソの傾け), hip_shift(px, 水平), body_lift(px, 垂直、マイナス は上).
"l_ はキャラクタから見て左、つまり見る側から見てになります。ミラー的なポーズは膝の角度を反対の符号にする必要があります(l_knee=86, r_knee=-86)— これでする膝とものかがまず曲りとぞ同じになります。
スタイルのキー(スタイルはポーズごとで使用され、アニーション内で補間されません — キーフレームで瞬間的に切り替わります)
hands—"blob"(デフォルト)、"open"、または"fist"。側ごとに指定する dict を受け取ることもできます:{"r": "open"}とすると片方の手を blob のままにできます。front_arm—"l"、"r"、または"both"—— 指定した腕を頭(フェドラ)の上に描画します。手が顔に触れるポーズ(facepalm、thinking_pose)の場合に必要です。フェドラのつばよ幅は頭の幅の約1.5倍あるため、通常は手を隠してしまうからです。prop— 現時点では"chair"。sitポーズ後ろ側に椅子を描きます。
ポーズ
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.
表情
neutral, happy, excited, sad, angry, surprised, thinking,
wink, talking, calm.
例: コーディング・エージェントが短いクリップを制作する
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",
)エージェントはプリセットを丸ごと利用せず、ポーズを直接ハンドメイドで作ることもできる:
render_pose(
joints={"r_shoulder": -90, "r_elbow": 20, "neck": -10},
expression="excited",
)トランジションはスムーズステップのイージングで行われるため、ポーズはキーフレーム間を線形的にスライドするのではなく、ゆっくりと入り、ゆっくりと抜けていく動きになります。
メモ / 今後のステップ
リグが対応しているのは、正面を向いた2Dポーズのみです (参照セットの大部分がそうだから)。左向き・右向きのプロフィール版 — 側面図やカメラ方向へ歩く参照図の用に — は自然な次の追加になります。既存の関骨格は対応していますが、頭部、顔、トレースしたフェドラにはそれぞれプロフィール用のバリエーションが必要です。
sitは現在、prop="chair"で簡単な木製椅子を描画します。他の小道具はrig.pyの_chair_svgのパターンにそのまま取入れるできます。render_animationのキーフレームは「キャラクターが画面を横切って歩く」ショットのためにプログラムで生成できます:hip_shiftとwalk_1/walk_2を交互に動かせばOKです。
Let me check the final answer - Now, I should double-check the table for render_pose - Source: "a preset name and/or explicit joint overrides, an expression, optional hands/prop" - Actually the source says "a preset name and/or explicit pose overrides..." Wait recompute: The actual source: "a preset name and/or explicit joint overrides" - Actually it's "a preset name and/or explicit joint — Hmm if I look: "Renders one frame — a preset name and/or explicit joint overrides, an expression, optional hands/prop." Let me re-read source: "a preset name and/or explicit pose overrides" - No.
In the user message: "a preset name and/or explicit pose overrides, an expression, optional hands/prop." Hmm, the exact line says: "a preset name and/or explicit pose overrides" - Let me scroll:
"| render_pose | Renders one frame — a preset name and/or explicit
This server cannot be deployed
Maintenance
Related MCP Connectors
Make animated videos by asking Claude, Cursor or any MCP client. Your AI writes it, we render it.
Create images & video from any MCP agent — 17 models, spend limits, one URL.
Build editable 3D scenes, direct characters and cameras, and export AI video references with MCP.
Use AI models for chat, image, and video generation from Claude Code and other MCP hosts.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to control a Minecraft bot for movement, building, crafting, and instant schematic-based structure spawning via MCP tools.59 npm2Apache 2.0
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to control Minecraft via MCP with configurable versions, creative building commands, survival helpers, and an autonomous agent loop.Apache 2.0
- AlicenseBqualityCmaintenanceEnables agents to paint side-view pixel characters, apply hard-band shading, and build 8-frame joint animations through MCP tools.45MIT
- AlicenseNot gradedqualityBmaintenanceEnables MCP clients such as AstrBot, Claude, Cursor, or custom scripts to control a Minecraft bot over SSE through 49 tools covering perception, movement, building, gathering, crafting, combat, farming, memory, social interaction, and autonomous skills. It supports multi-client body control, emotion and event context, and survival/companion behaviors.MIT