Skip to main content
Glama
meAnkit18

Stickman Character MCP Server

by meAnkit18

スティックマン キャラクター 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

利用できるツール

ツール

動作

list_pose_presets

標準ポーズとそのすべての定義を一覧表示します。ここでポーズをコピーして調整できます。

list_expressions

標準の表情リストを一覧表示します。

list_joints

手動でポーズを書くために、制御できるすべての関節とその初期角度を一覧表示します。

render_pose

1つのフレームを表示します — プリセット名や/または明示のジョイント・オーバーライド、組み合わせ、オプションの hands/prop を指定。PNG(または生のSVG)を返すます。

render_animation

キーフレーム・アニメーション(ポーズ + 表情 + ホールド・トランジション・タイミングでの)をGIF、MP4、またはPNGシーケンスに書画出します。

render_walk_cycle

わかりやすいもの:N 步のループ歩きサイクルを出力します。

render_run_cycle

手軽な: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

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables 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