Skip to main content
Glama
meAnkit18

Stickman Character MCP Server

by meAnkit18

Stickman Character MCP Server

Превращает ваш референс-арт стикмен-инженера Red Hat в персонажа с ригом и позами, которым может напрямую управлять любой MCP-совместимый агент написания кода (Claude Code, Claude Desktop, Cursor и т. д.) — задавать углы суставов, выбирать мимику и рендерить отдельные кадры или полноценные анимации (GIF/MP4). Так как каждый кадр создаётся из одного и того же параметрического SVG-рига, персонаж остаётся идеально on-model на протяжении всего видео, а не дрейфует, как это бывает при покадровой генерации изображений.

Соответствие референсу

Риг снимается прямо с референс-листа, а не приблизительно, поэтому рендер почти в точку совпадает с исходным артом:

  • Пропорции взяты из фронтального референса (исходник 1024px, внешний радиус головы 121px) и масштабированы с коэффициентом 0.546 на холст 400x520: позвоночник 215px, плечо/предплечье 108/120, бедро/голень 126/127, толщина обводки конечностей ~ 19px, центр головы на 133px выше развилки плеч.

  • Федора — векторная обводка шляпы с референса, а не приближение, собранное вручную. Она хранится как нормализованные SVG-пути (HAT_PATHS в rig.py) в единицах радиуса головы и рисуется через translate(head) scale(head_radius), поэтому «едет» за головой при любых наклона и сохраняете точный размах полей, прищипку тульи и ленту оригинала.

  • Палитра считана с арт-а: #D51918 я друкий красный, #A01513 средний, #7E1212 тень, #C2C3C5 заентение лицача, #D2D3D5 тень на землe.

  • Лицо соответствует референсным условностям: нейтральное лицо — это два сплошных чёрных овала и без рта. Глаза с белым яблоком и зрачком используются только для happy/excited/surprsuperscript, а angry использует скошенные клинья со сцжевными зубами — точно как на референсных листах выражений.

hat_color остается полностью параметррическим: передайте любой hex, и средний и течный тона выводятся из него по рам п референса 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, cairiosv (SVG→PNG-рен деринг) и pillow (как GIF). Длая экспера GIF/PNG-последовательносNET не требуются дополните льные системные зависимости; экспорт MP4 требует ffmepg , установ во енного и досупного в PATH.

Регистрацияя в качестве MCP-сервера

Clauude Desktoptip / Claude Code — добавить в MCP-конфиг (~/Library/Applization Support/Claude/claude_desktop_config.json на macOS или эквivalentный конфиг Claude Code):

```json

{ "mcpServers": { "stickman": { "command": "/absolute/path/to/stickman_mcp/venv/bin/python", "args": ["-m", "stickman_mcp.server"], "cwd": "/absolute/path/to/stickman_mcp" } } }


Или запустите его автономно через stdio для теста:

### ```bash
python -m stickman_mcp.server

Доступные инструменты

Инструмент

Что делает

list_pose_presets

Перечисляет встроенные позы и их полные определения, чтобы позу можно было скопировать и скорректировать

list_expressions

Перечисляет встроенные выражения лица

list_joints

Перечисляет все управляемые суставы и их углы по умолчанию для поз, созданных вручную

render_pose

Рендерит один кадр — имя пресета и/или явные переопределения суставов, выражение, необязательные 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 (наклон головы), spine (наклон корпуса), hip_shift (px, горизонтальное смещение), body_lift (px, вертикальное смещение, отрицательное — вверх).

l_ — это левая сторона персонажа, то есть правая стороне зрителя. Зеркальные позы требуют противоположных по знаку углов коленей (l_knee=36, r_knee=-36), чтобы обе голени сгибались одинаково.

Стилевые параметры (задаются на позу, не интерполируются — применяются скачком на ключевом кадре)

  • hands — "blob" (по умолчанию), "open" или "fist". Также принимает словарь для управления по сторонам: {"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, celestate, typing.

Выражения

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

Пример: coding-агент собирает короткий клип

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",
)

Переходы используют сглаживание smoothstep, поэтому позы плавно входят и выходят из движения, а не просто линейно перетекают между ключевыми кадрами.

Заметки / следующие шаги

  • Риг покрывает только фронтальные 2D-позы (как и большинство референсов). Профильный вариант слева/справа — для бокового профиля и сцен, где персонаж идёт к камере — естественное следующее улучшение: скелет уже поддерживает, но голове, лицу и обведённой шляпе потребуется профильный вариант.

  • sit теперь рисует простой деревянный стул через prop="chair". Другие предметы можно встроить по шаблону _chair_svg в rig.py.

  • Ключевые кадры для render_animation можно генерировать кодом для кадра «персонаж идёт через экран»: плавно меняйте hip_shift, чередуя walk_1 / walk_2.

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