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.

Внутри

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.

-
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