io.github.hpdkhoa/poselab-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| POSELAB_OUT | No | the only folder Pose Lab writes to (renders, the worker's log); default `~/.poselab` | ~/.poselab |
| POSELAB_RIGS | No | a `rigs.json` describing your own rigs (see `examples/rigs.example.json`) | |
| POSELAB_BLENDER | No | Blender's executable, if it is not on the PATH or in the usual install folder |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_rigsC | The rigs to load: the built-in sample and those in the rigs file (POSELAB_RIGS). |
| load_rigB | Loads a rig: the arms on their idle pose, the rifle on the gun bone, its clips. Returns the frames, sign rules, named points, clips and moving parts. Call first. |
| describeB | What is loaded and the conventions every tool uses. |
| pose_idleC | The arms back on the idle pose, every rifle part home. |
| pose_clipC | The arms as a clip has them at a time in seconds. The rifle follows the gun bone; its parts stay where move_part left them. |
| move_partC | Draws a moving part of the rifle (such as carrier) back along the barrel, cm from home. |
| move_gunB | Moves the rifle from where it stands: roll + turns its right side up (about the bore); swing + takes the muzzle left, pitch + the muzzle up (about the pivot); right, forward, up move it in the view, cm. The hands in keep_hands keep their hold. Returns how far each hand ended from its hold and the barrel's angle off the view line. |
| reachA | Puts a wrist on a point by arm IK; the hand keeps its turn. Returns how far the wrist ended from the point. Trying poles while the wrist stays put moves only the elbow: a way to clear a forearm. |
| snapshotC | Saves or loads a named pose (the arms and the rifle's parts). |
| whereC | Where bones, fingertips (tip<l|r>) and rig points are, in a frame. |
| distanceC | The distance between two points, cm, and b minus a in the frame. |
| clearanceC | How deep the rifle sits inside the arms (capsules: forearm 3 cm, palm 1.8 cm, finger segments 0.75 cm). worst_cm 0 means nothing touches. The deepest contacts by segment, with the rifle point in the frame. |
| faces_eyeC | How squarely a surface faces the eye: facing 1 square on, 0 edge on, below 0 turned away. |
| visibleC | The share of a small disc round a point that the eye sees with nothing (arms, rifle) in the way. |
| screenB | Where a point falls on a 90 degree, 16:9 screen from the eye: x and y from -1 to 1, and whether it is on screen. |
| solveB | Searches rifle moves from the current pose for one meeting every goal, and leaves the scene there. Reports each goal at the best move and how often it was met across samples: a goal never met is a fact of the geometry. |
| renderB | Renders the pose as one labelled contact sheet: eye is the player's camera (90 degrees, 5 cm near plane); right, left, top and front look at the rifle from outside. Every tile is a Blender view, labelled so. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 17 tools
Each tool targets a distinct action or spatial question: loading/rig setup, posing modes, rifle/part translation, wrist IK, snapshot save/load, geometry queries, solving, and rendering. Even the eye-related tools (faces_eye, visible, screen) measure different things and are differentiated by their descriptions.
All names are lowercase snake_case, so casing and separators are consistent. The only minor deviation is that some tools are verb-led actions while others are noun/adjective-style queries (where, distance, visible), so it is not a strict verb_noun pattern.
17 tools is slightly above the typical 3-15 range, but the domain is a specialized 3D rig/rifle posing and analysis lab with many distinct operations. Each tool appears to cover a separate capability, so the count is reasonable rather than bloated.
The surface covers the core lifecycle: list/load rigs, describe conventions, reset/clip posing, manipulate rifle and parts, wrist IK, save/load snapshots, spatial diagnostics, goal solving, and rendering. Minor gaps include snapshot management (list/delete) and direct hand-orientation control, but the main workflows are complete.