Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
STYK_PYTHONNoSet STYK_PYTHON to choose a specific Python interpreter (Python 3.10 or newer is only needed to read and write Pivot .piv and .stk files).

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

CapabilityDetails
tools
{
  "listChanged": true
}
resources
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
capabilitiesA

Report what this server supports: the file formats it can read and write, whether the Python codec for Pivot files is available, and the projects that are currently open. Call this first when you do not know what the project looks like yet.

project_openA

Open a StykAnimate or Pivot project file and make it the active project. Accepts .styk, .stkz and .stykmov (StykAnimate native files, read directly in JavaScript) and .piv and .stk (Pivot files, read through the bundled Python codec). Returns a project id that later tools accept, plus a summary of the project. Opening a file does not change it.

project_closeA

Close an open project and release its editor. Unsaved changes are discarded; save first with project_save.

project_describeA

Report the structure of the open project: canvas, frame rate, keyframes, figure definitions and instances, layers, backgrounds, effects, movieclips and audio. Ask for the parts you need with the "include" list; without it the tool returns the summary alone.

project_validateA

Run the editor's own document validation over the open project and report the first problem it finds, or confirm that the project is valid. Use this after edits that a client rejected, and before saving.

project_saveA

Write the open project to a file. Use "styk" for a StykAnimate project, "stkz" for a single figure, "stykmov" for a movieclip, and "piv" or "stk" for Pivot files (these need the Python codec). A figure file holds one figure: name it with "figureTypeId" or "figureUid", or leave both out to take the first figure in the project. The file is written in full before it replaces the destination, so a failure leaves the previous file intact. Give a path to choose where it goes, or leave it out to save beside the file it was opened from.

project_timelineA

List the timeline of the open project. The "playback" section is the list of places the playhead moves through: their number is the frame number the pose and figure tools take. The "keyframes" section is the list of stored poses, with the place each one is shown at. Give "fromTick" and "toTick" to narrow the playback list.

project_seekA

Move the editor's playhead to a keyframe or an absolute tick. The playhead decides which keyframe later tools edit when no frame is named.

figure_listA

List the figure instances the animation shows, with their ids, names, layers, position, scale, opacity and colour, and the stored keyframes that hold them. Give a keyframe number to list the figures at that moment; without one the playhead decides. Use the ids this returns with the other figure and pose tools.

figure_describeA

Report one figure in full: its definition (every joint with its handle id, parent, length, angle, thickness, shape and colour), its fills, its rig, and where it sits in a keyframe. Name an instance with "uid", or a definition with "figureTypeId".

figure_addA

Add a figure instance to the keyframe the playhead is on, using one of the existing figure definitions. The new figure is placed at the given position, or at the centre of the canvas. Give a keyframe number to choose the keyframe; without one the playhead decides. Give the definition to use with "figureTypeId"; omit it to use the first definition in the project.

figure_duplicateA

Copy a figure, including its pose, into a keyframe. Give a keyframe number to choose it; without one the playhead decides. The copy is nudged by an offset so it does not sit exactly on the original. The copy gets a new id.

figure_deleteA

Remove a figure from a keyframe. Figures joined to it are detached and kept. Give "frames" to remove it from several keyframes at once.

figure_transformA

Change where a figure sits: move it, rotate it, scale it, flip it, align it with other figures, centre it, or change its draw order. Angles are in degrees and turns anticlockwise. Give "uids" to transform several figures in one step; they move together.

pose_evaluateA

Read the solved rig at a point in the animation: where every joint sits in canvas pixels, where each segment starts and ends, and what the inverse kinematics controllers are doing. Use this to find out where a hand or foot is before changing it, and to check a pose after changing it. Give a tick for sub-keyframe precision, or a keyframe number.

pose_setA

Change a figure's pose in one keyframe: move its root, scale it, and set the angle, length or world position of any of its joints. A joint is named by its handle id (from figure_describe) or by its index in the segment list. An angle is absolute, measured from the parent joint, in radians or degrees. Give a world x and y to place a joint at a point instead; that respects inverse kinematics. Everything in one call is a single undo step.

pose_ik_setA

Move the inverse kinematics target of a joint, placing a hand or foot at a point on the canvas. The controller must already be enabled on that joint; use figure_describe to see which joints have controllers. A pinned controller keeps the target when the figure moves; an unpinned one bakes the pose.

pose_set_ikA

Turn the inverse kinematics controller of a joint on or off, pin or unpin its target, allow it to stretch, or change how many bones its chain covers. Enabling a controller creates it at the joint's current position, so the pose does not jump.

pose_resetA

Return a figure to the rest pose of its definition, dropping the angles, lengths and bends it had. The figure keeps its position, size and colour.

keyframe_editA

Change the shape of the timeline: add a keyframe, delete keyframes, duplicate them, or move one to a different position. A keyframe holds the pose of every figure at that moment, so adding one copies the current pose. A keyframe number here is a stored pose, which is what the file keeps. Give "frames" to act on several keyframes at once.

keyframe_timingA

Change how long the animation runs: the length of a keyframe, the frame rate of the whole project, or the size of the canvas. A keyframe length is in ticks; at 24 fps a length of 24 is one second. A keyframe number here is a stored pose, which is what the file keeps.

layer_listA

List the layers of the open project, with their ids, names, visibility, lock state and the figures each one holds. Use the layer ids this returns with layer_edit and figure_transform.

layer_editA

Change the layers of the project: create one, rename one, delete one, reorder them, move figures between them, or show, hide, lock or unlock one. Give the action and the fields it needs.

style_setA

Change how something looks: the colour or opacity of a figure, the colour or thickness of one of its parts, the colour of a layer, or the colour behind the scene. A figure colour applies to every keyframe the figure appears in. A part colour changes the shared figure definition, so every instance of it changes too. Give a colour as "#rrggbb" or as three red, green and blue bytes.

history_undoA

Undo the last change to the open project. Every tool that changes a project makes one undoable step, so one call reverses one tool call. Repeat the call to undo further changes.

history_redoA

Redo the change that was last undone in the open project.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription
project-summaryA summary of every project this session holds open.

TDQS

A3.6/5.0

Scored across 26 tools

Disambiguation3/5

Most tools target a clear resource+operation, but `pose_ik_set` (move an IK target) and `pose_set_ik` (toggle/pin the IK controller) differ only by word order and will be misselected constantly. `pose_set` also overlaps with `pose_ik_set` since it can place a joint at a world position respecting IK, and `style_set` bundles figure, part, layer and background colouring that partly overlaps `layer_edit` and `figure_transform`.

Naming Consistency4/5

Nearly all 26 tools follow a noun_verb pattern (layer_list, project_open, figure_delete, keyframe_edit, pose_reset), which is predictable. The lone bare `capabilities` and the near-anagram `pose_ik_set`/`pose_set_ik` pair are the only deviations worth noting.

Tool Count3/5

26 tools sits just above the well-scoped band for a single animation editor, and several verbs are split across many narrow tools (six figure_*, six pose_*, two keyframe_*). It is defensible for a project/rig/timeline editor, but the surface feels heavy and some tools could be consolidated.

Completeness3/5

Core lifecycle is covered: open/close/save/validate/describe, undo/redo, layers, figures, poses, keyframes, timing and styling. But there is no tool to create or edit figure definitions/joints, no tool to edit effects, backgrounds or movieclips despite project_describe reporting them, and no render/export operation — notable dead ends for an animation tool.

Maintenance

ActivityMaintained
ResponsivenessNo issues