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.pyHAT_PATHS)というて用意されており、頭部半径単位で表さるれ、translate(head) scale(head_radius) で描画されます。これにより、どのようの傾けてのにもの頭に追従し、元のつばのカーブ、クラウンの時しみ、どめのバードを其のままに保てます。

  • パレットはアートからサンプリングは参考は以下の通りです: #D51918の明るい赤、#A01513の中ぶ、#7E1212の影、#C2C355の顔の影、#D2D355の地面の影。

  • は参照の約束に従っています — 無表情は黒をりのオベールの2つであり、口ません 白目と瞳孔の目は幸あ・隣している・びっくしの表情のみに使し、怒い鳴りは歯を食いし場った斜のェジを使用ます。参参照の状態シートとまったく同じです。

hat_color はまだ完全にパラメトリックです。任意の16進数を「渡」すると、それの中間トニーンとシャドウ・トニーンは、参照の既定の 1.0 / 0.742 / 0.592 のランプから導出されます。

含まれるもの

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 .

これで mcpcairosvg(SVG→PNG レンダリング)、pillow(GIF 書き出し)が導入されます。GIF/PNG シーケンスの書き出しには追加のシステムツールは不要です。MP4 の書き出しは ffmpegPATH にインストールされてい必要があります。

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" —— 指定した腕を頭(フェドラ)の上に描画します。手が顔に触れるポーズ(facepalmthinking_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_shiftwalk_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

-
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