GPT Spine MCP
Provides an OpenAI Agents SDK client that launches the MCP server over stdio and runs natural-language production requests through an OpenAI agent; also supports Codex MCP registration.
Integrates with a licensed Spine CLI to pack textures into atlases, create editable .spine projects from runtime JSON, export runtime output, inspect Spine projects, and generate editable Spine 2D rigs and animations when the CLI is available.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@GPT Spine MCPRig mega_win.psd with clean meshes, auto-weight, IK, and intro/celebration animations"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
GPT Spine MCP
OpenAI/Codex tooling for turning a layered PSD or PhotoshopToSpine export into a
validated Spine 2D rig, animation set, atlas, preview, and—when a licensed Spine
CLI is installed—an editable .spine project and runtime export.
This project is based on
egorfedorov/spine-mcp and keeps the
original MIT licence and server tools. It removes the Claude-only setup path,
adds a production CLI, exposes a complete MCP workflow, and includes an OpenAI
Agents SDK client.
What it produces
mega_win.spine # when the licensed Spine CLI is available
mega_win.atlas
mega_win.png
mega_win.json
rig_report.json
preview/
montage.png
export/ # optional Spine CLI exportThe pure-Python rig, atlas, runtime JSON, validation report, and preview work without Spine. Spine is commercial software and is not bundled or licensed by this project.
Related MCP server: spine-anim-mcp
One-command local install
From a checkout on macOS or Linux:
./scripts/install.shThat installs gpt-spine, gpt-spine-mcp, and the optional OpenAI Agents SDK
with uv. Pass --codex to also register the local stdio MCP server:
./scripts/install.sh --codexOn Windows PowerShell:
.\scripts\install.ps1
.\scripts\install.ps1 -Codex # also register the stdio server with CodexFor an immutable release, replace the URL below with the published fork and pin the tag:
uv tool install "gpt-spine-mcp[agents] @ git+https://github.com/kumikilongyeyo/gpt-spine-mcp@v0.7.0"
codex mcp add gpt-spine -- gpt-spine-mcpCommand line workflow
gpt-spine rig mega_win.psd \
--source-group "mega win" \
--clean-mesh \
--auto-weight \
--ik \
--clipping \
--slot-presets pulse,flash,flicker \
--fx-presets coin_splash,glow_flash,particle_explosion,bomb_explosion,fire,splash \
--animations intro,steering,wave,mega_win,celebrationUseful modes:
# Skeleton, atlas, and validation only—no animation timelines.
gpt-spine rig character.psd --rig-only
# Keep runtime output independent of the licensed editor.
gpt-spine rig character.psd --no-editable --no-export
# Check which Spine executable was auto-detected.
gpt-spine doctor
# Reject a blank/static preview and compare it with an art-direction reference.
gpt-spine audit-preview build/mega_win.gif --reference art-direction.gifSPINE_BIN has priority when set. Otherwise macOS detection checks the normal
app bundle, user Applications, Setapp, versioned bundles, and PATH. Windows
checks Spine.com first (the console executable recommended for CLI use), then
Spine.exe, under Program Files, Program Files (x86), LocalAppData, and PATH.
Linux checks ~/Spine/Spine.sh, /opt/Spine/Spine.sh, and PATH.
OpenAI Agents SDK client
Set OPENAI_API_KEY, then give the agent a natural-language production request:
gpt-spine agent "Inspect ./mega_win.psd, build a clean weighted rig with IK, generate intro and celebration, and validate it"The client launches this repository's MCP server over stdio with
MCPServerStdio, attaches it to an OpenAI Agent, and runs the request through
the Agents SDK. Use only trusted MCP servers and review actions that touch
licensed projects or production assets.
MCP tools
build_workflow— complete rig → animation → save/export → preview → validate flowspine_doctor— dependency and Spine CLI diagnosisinspect_source— layer, part, and head-state inspectionrig_and_animate— lower-level rig builder with mesh/weight/IK/clipping optionsvalidate_output— semantic runtime/atlas validationpack_atlas— licensed Spine CLI texture packingmake_project— runtime JSON to editable.spineexport_project—.spineto runtime outputproject_info— licensed CLI project inspectionpreview— fast keyframe montageaudit_preview— objective blank/static/duration/motion/occupancy delivery gateapply_motion_spec— compile model-authored numeric clips with named easing curvesvalidate_motion— frame-grid, intro→loop handoff, and loop-seam auditbatch— process a roster of PhotoshopToSpine exports
Rig and animation behavior
--clean-meshconverts regions to non-degenerate four-corner meshes.--auto-weightwrites single-bone weighted vertices as an editable baseline.--ikadds a target and constraint for the head, or body when no head exists.--clippingadds a full-rig bounds clip that can be reshaped in Spine.Known state names (
intro,steering,wave,mega_win,celebration) get tailored starter timelines. Any other state gets a safe neutral motion instead of being dropped.Slot presets (
pulse,flash,flicker) are separate animations suitable for mixing on another track.Head variants named
<base>_winand<base>_blinkcollapse into one slot and use attachment timelines.
These are deterministic production starters, not an art-director replacement. Mesh topology, weights, constraint targets, and clipping shapes should still be reviewed on hero assets.
Authored motion workflow
The MCP does not pretend a preset name can understand art direction. For hero
animation, the agent first inspects the actual bones and slots, translates the
description into a numeric JSON motion spec, and calls apply_motion_spec.
Supported named curves are out, in, inout, sine, outback, and expo.
validate_motion then checks frame alignment, exact intro→loop handoffs, and
loop seams before the editor import/render step.
FX packs are mixable independent animations: fx_coin_splash,
fx_glow_flash, fx_particle_explosion, fx_bomb_explosion, fx_fire, and
fx_splash. They use additive white-on-alpha light assets, staggered bones,
overshoot/follow-through, source coin artwork when available, and authored
Bezier curves. Procedural fire/smoke are blocking FX; painterly hero effects
should still be supplied as art and driven by the same motion-spec compiler.
Editable .spine files do not embed bitmaps. Always deliver the project beside
its images/ folder. GPT Spine copies every source and generated image into the
final output before import and fails portability validation if any are missing.
Input conventions
A PhotoshopToSpine directory needs a layout JSON containing skins and an
images/ directory. PSD import walks visible nested leaf layers, assigns unique
attachment names, and reports semantic role guesses. Use --source-group when
the intended asset set is inside a named folder; this prevents unrelated PSD
concepts from being flattened into the rig. The
default head classifier recognizes head,face,golova,crown,tooth; override it:
export SPINE_HEAD_WORDS="kopf,gesicht,krone"Development and verification
uv sync --extra dev --extra agents
uv run pytest
uv run gpt-spine doctorThe macOS, Windows, and Linux CI jobs build a synthetic character end to end, assert rig-only behavior, verify mesh weights, IK, clipping, state generation, slot presets, reports, and preview output. Tests do not require a Spine licence or OpenAI API key.
Release line
Version | Scope |
| upstream MCP rig/animation foundation |
| PSD import and rig workflow |
| mesh, weights, and constraints |
| multi-state animation generation |
| slot FX, clipping, validation, OpenAI/Codex client |
| macOS/Windows/Linux installers and cross-platform CI |
| nested PSD groups, semantic inspection, reference preview QA, portable image checks |
| package QA module and install PSD composite dependencies |
| numeric motion-spec compiler, curve/seam validation, and mixable FX packs |
| planned stable workflow after real-asset compatibility testing |
Never move a published tag. Patch a release and add a new tag so a known-good production build remains reproducible.
Licence
MIT. See LICENSE. Original work copyright remains with its author;
new contributions remain under the same licence.
Available Tools
14 toolsapply_motion_specA
Compile an explicit numeric motion spec into a Spine skeleton.
Inspect the source/project first, translate art direction into timed bone and slot tracks with named eases, then call this tool. Specs contain fps, clips, optional handoffs, and bone/slot keys. This validates target names, curve generation, frame alignment, intro→loop handoffs, and loop seams.
| Name | Required | Description | Default |
|---|---|---|---|
| out_json | Yes | ||
| motion_spec | Yes | ||
| runtime_json | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does disclose real behavior: it validates target names, curve generation, frame alignment, handoffs, and loop seams, implying invalid specs are rejected. However it doesn't say whether it mutates runtime_json in place, whether it is idempotent, or what a validation failure looks like, which matters for a tool writing out_json.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded in the first sentence and the remaining sentences add workflow, spec shape, and validation behavior. Slightly dense and mixes imperative instructions with descriptive facts, but no sentence is filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-required-param mutation tool with no annotations and no output schema, the description covers the spec payload and validation behavior reasonably but omits the meaning of the two file-path parameters and any hint about the result written to out_json. Adequate but with clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% for three required params, so the description must compensate. It partially does by describing the motion_spec contents (fps, clips, optional handoffs, bone/slot keys), which is genuinely beyond the generic 'object' schema, but runtime_json and out_json are never explained, leaving two of three parameters undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and artifact ('Compile an explicit numeric motion spec into a Spine skeleton'), which is enough for an agent to distinguish it from validate_motion or rig_and_animate. It identifies the input artifact and the output target, though it never explicitly names the sibling it must not be confused with.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives workflow placement ('Inspect the source/project first ... then call this tool'), which implies the prerequisite inspect_source step and clarifies the ordering relative to other tools. It stops short of explicit when-not-to-use conditions or naming alternatives like validate_motion for an already-built spec.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
audit_previewB
Reject blank/static previews and compare duration, motion, and occupancy against an optional art-direction reference before a delivery is accepted.
| Name | Required | Description | Default |
|---|---|---|---|
| preview_gif | Yes | ||
| reference_gif | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it does disclose the key behavioral contract: blank/static previews are rejected and motion/duration/occupancy are compared. It does not state what the result of a failed audit looks like, whether it mutates or blocks any state, or any permission requirements, so significant gaps remain.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with the reject condition first and the comparison second; no filler. It is slightly dense and could have used a clause to route against siblings, but every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter validation tool with no output schema and no annotations, the description covers the core purpose and the optional reference reasonably well. It leaves the failure/output behavior and the required parameter's format undocumented, which is the main missing piece.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It does clarify that the reference GIF is an optional 'art-direction reference', which explains the reference_gif parameter and its empty default, but it says nothing about the required preview_gif or expected format beyond naming the checks.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific action ('reject blank/static previews') on a specific resource (the preview GIF) and enumerates the checks it performs: duration, motion, occupancy. An agent can tell this is a preview-quality gate, though it doesn't explicitly contrast itself with the nearby validate_motion / validate_output siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'before a delivery is accepted' implies usage timing, so an agent can infer this is a final gate step. However, no alternatives are named and there is no guidance on when to prefer this over validate_output, preview, or validate_motion, which is a real gap given how many similar siblings exist.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
batchB
Rig every PhotoshopToSpine export subfolder under roster_dir into out_root//. Returns per-character summaries.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | symbol | |
| out_root | Yes | ||
| roster_dir | Yes | ||
| make_editable | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description mentions the return value but does not disclose potential side effects (e.g., file modification, overwriting, required permissions) nor any behavioral traits beyond the basic action. With no annotations, this transparency gap is significant.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (two sentences), well-structured, and free of unnecessary details. It efficiently communicates the core functionality without padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the main action and return, but lacks details about the two unexplained parameters, potential prerequisites, error conditions, or how the output summaries are structured. This leaves some gaps, though it is not overly complex.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description explains two parameters (roster_dir and out_root) by referencing them in the action, but leaves kind and make_editable unexplained. Since the schema provides no descriptions, the description only partially compensates for the missing parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action ('Rig every PhotoshopToSpine export subfolder under roster_dir into out_root/<name>/') and its output ('Returns per-character summaries'), providing a specific and unambiguous purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no indication of when to use this tool over alternatives, lacks prerequisites or conditions, and does not mention any specific use cases or limitations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
build_workflowB
Run the complete production workflow: rig, animate, mesh/weight, add optional IK and clipping, save/export when Spine is installed, render a preview, and write rig_report.json. Set rig_only for a zero-animation rig.
| Name | Required | Description | Default |
|---|---|---|---|
| ik | No | ||
| name | No | ||
| source | Yes | ||
| out_dir | Yes | ||
| clipping | No | ||
| rig_only | No | ||
| animations | No | ||
| clean_mesh | No | ||
| fx_presets | No | ||
| auto_weight | No | ||
| make_preview | No | ||
| slot_presets | No | ||
| source_group | No | ||
| make_editable | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it does disclose real behavior: the ordered pipeline, that export/Spine save happens only when Spine is installed, and that a rig_report.json artifact is written. However, it says nothing about overwrite semantics for out_dir, permissions/auth, runtime or failure behavior for a heavy multi-stage mutation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tightly packed sentences with the full-pipeline scope front-loaded and the rig_only special case last. Dense but every clause corresponds to a distinct stage of the operation; nothing is redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 14-parameter, no-annotation, no-output-schema tool, the description covers scope and the output artifact but leaves most parameter semantics, overwrite/permission behavior, and failure handling unaddressed. It is minimally viable rather than complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 14 parameters, so the description is the only source of parameter meaning. It does map several parameters to pipeline steps (animate→animations, mesh/weight→auto_weight/clean_mesh, preview→make_preview, and explicitly rig_only, ik, clipping), but source, out_dir, name, source_group, fx_presets, and slot_presets remain undefined.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Run the complete production workflow') and enumerates the resource stages (rig, animate, mesh/weight, IK, clipping, save/export, preview, report). It implicitly distinguishes itself as the end-to-end pipeline versus siblings like rig_and_animate or apply_motion_spec, but never names an alternative explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: 'complete production workflow' suggests running this when you want everything in one pass, and 'Set rig_only for a zero-animation rig' gives one conditional branch. There is no explicit when-to-use vs when-not-to-use guidance relative to rig_and_animate, apply_motion_spec, or the individual step tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_projectB
Export a .spine project to runtime files (fmt: json|binary, +pack for atlas).
| Name | Required | Description | Default |
|---|---|---|---|
| fmt | No | json+pack | |
| out_dir | Yes | ||
| project | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It does not mention side effects (e.g., file overwrites), required permissions, or what happens to existing files. The agent cannot infer whether this is a safe read-only operation or a mutating export.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that immediately conveys the action and key choices. It uses no filler and efficiently communicates the core purpose and format options.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is sparse for a tool with no annotations and no output schema. It does not mention side effects (e.g., writing files, overwriting), required permissions, or what constitutes a successful result. The '+pack for atlas' hint touches on related functionality but doesn't clarify dependencies or edge cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description explains the 'fmt' parameter with 'json|binary' and '+pack for atlas', adding meaning beyond the schema's default. It does not elaborate on 'project' or 'out_dir', but these are fairly self-explanatory from their names. Given 0% schema coverage, the description partially compensates but could be more explicit about all parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Export a .spine project') and the resource (runtime files), with format options. This distinguishes it from siblings like pack_atlas and project_info, making its purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide explicit guidance on when to use this tool versus alternatives. It implies usage for generating runtime files but lacks context about prerequisites, scenarios, or boundaries with sibling tools like pack_atlas or preview.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
inspect_sourceA
List the parts and detected head-state families of a .psd or a PhotoshopToSpine export folder, WITHOUT building anything. Use this first to confirm what will be rigged.
| Name | Required | Description | Default |
|---|---|---|---|
| source | Yes | ||
| source_group | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It usefully discloses that this is a non-destructive inspection ('WITHOUT building anything'), but adds nothing about permissions, side effects, or output format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with no waste; the capstone constraint (no building) and the sequencing advice are both front-loaded and easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations, no output schema, and 0% schema description coverage, the description should do more. It conveys what gets listed and when to call it, but leaves source_group and the return shape unexplained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate, yet it only indirectly clarifies 'source' (accepts a .psd file or an export folder) and says nothing about 'source_group' or its default. The second parameter is effectively undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (list) and resource (parts and detected head-state families) and scopes it to .psd or PhotoshopToSpine export folders. Distinguishes itself from build-oriented siblings via 'WITHOUT building anything', though it doesn't name the specific alternative tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Use this first to confirm what will be rigged' gives clear sequencing guidance and an implied alternative (build/rig later). It stops short of explicitly naming rig_and_animate or build_workflow as the follow-up.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
make_projectB
Import a runtime skeleton json into an EDITABLE .spine project.
| Name | Required | Description | Default |
|---|---|---|---|
| out_spine | Yes | ||
| runtime_json | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It reveals the import/creation nature but omits critical details such as overwrite behavior, required permissions, return values, and what 'EDITABLE' implies for the output project.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. It efficiently communicates the core action without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with only two string parameters and no output schema, the description should clarify expected return behavior and side effects. It does not state whether the output file is created, overwritten, or what happens on failure, making it incomplete for confident invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides no parameter descriptions (0% coverage), and the description only loosely maps runtime_json to 'runtime skeleton json' and out_spine to '.spine project'. It does not clarify formats, constraints, or provide examples, leaving agents to guess parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action: importing a runtime skeleton json into an editable .spine project. This distinguishes it from siblings like export_project and pack_atlas, which perform different operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance on when to use this tool versus alternatives. The description only states what it does, without mentioning prerequisites, exclusions, or a preferred context, leaving the agent to infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pack_atlasB
Pack a folder of PNGs into .atlas + .png with the Spine packer.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| out_dir | Yes | ||
| images_dir | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full responsibility for behavioral disclosure. It does not mention any side effects, whether output files are overwritten, prerequisites, or the nature of the operation beyond 'pack.' This lack of detail is insufficient for an agent to anticipate consequences.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the core action and output. It contains no redundant or unnecessary information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that there is no output schema and no annotations, the description provides a minimal but adequate overview for a simple tool. It states the output files (.atlas and .png) but omits behavioral details like overwriting or directory creation, making it only partially complete for an agent to safely invoke.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description does not explain any of the three parameters (images_dir, out_dir, name). While parameter names are somewhat self-explanatory, the description adds no explicit meaning beyond the schema titles, leaving the agent to infer semantics from context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Pack a folder of PNGs into <name>.atlas + <name>.png with the Spine packer.' It uses a specific verb (pack) and resource (folder of PNGs → atlas + png), distinguishing it from sibling tools like export_project or batch.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage context is implied by the action ('Pack a folder of PNGs') but there is no explicit guidance on when to use this tool versus alternatives, nor any exclusion criteria. The description does not mention when it is appropriate or inappropriate to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
previewB
Render a keyframe-montage PNG of a built rig (idle/win/blink/pop poses).
rig_dir folder holding .json (the out_dir from rig_and_animate) images_dir folder with the part PNGs (defaults to the source export images) out_png output path (defaults to /_preview.png)
| Name | Required | Description | Default |
|---|---|---|---|
| maxpx | No | ||
| out_png | No | ||
| rig_dir | Yes | ||
| images_dir | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, and the description does not disclose side effects such as file creation (the output PNG) or whether it modifies existing rig data. It simply says 'Render a PNG' without stating if it is read-only or if it overwrites files, leaving behavioral ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and uses a clear list format for parameters, avoiding unnecessary verbosity. It efficiently conveys the tool's purpose and parameter meanings, though the formatting with backticks and angle brackets is slightly cryptic.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the tool's core function and provides parameter defaults, but lacks a complete picture. It does not mention what the tool returns (e.g., the output path) and omits maxpx, so a user might be uncertain about the full input/output contract.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description explains three of four parameters (rig_dir, images_dir, out_png) with useful defaults and context, but omits any explanation for maxpx. Since the schema has no parameter descriptions, this partial coverage leaves a gap in understanding the maxpx parameter's meaning or units.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the tool renders a keyframe-montage PNG of a built rig with specific poses (idle/win/blink/pop), making its primary function clear. It also distinguishes itself from sibling tools like pack_atlas or export_project by focusing on preview generation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no explicit guidance on when to use this tool versus alternatives. It implies it is for previewing a built rig but does not mention prerequisites, sequencing, or scenarios where other tools would be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
project_infoB
Print bones/slots/animations of a .spine project or skeleton .json.
| Name | Required | Description | Default |
|---|---|---|---|
| project_or_json | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. 'Print' suggests a read-only operation, but the description does not state whether it reads from the file system, what the output format is, whether it has any side effects, or what error conditions may occur. The existence of an output schema is not reflected in the description, leaving the agent without a clear understanding of what to expect on success.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that immediately identifies the tool's action and target. It contains no filler, is front-loaded with the purpose, and does not repeat information already available in the schema or tool name. Every word contributes to the tool's understanding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter tool with a structured output schema, the description is nearly adequate—it states what the tool produces and its input domain. However, it lacks clarification on the parameter's exact form (path vs. content) and offers no guidance against sibling tools like inspect_source. These gaps make the description minimally complete but not fully self-sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description must compensate for the parameter's meaning. It clarifies that 'project_or_json' refers to a '.spine project or skeleton .json', which adds some semantic value beyond the bare schema. However, it does not specify whether the parameter accepts a file path, file contents, or a URL, so the agent still has to guess the exact expected input format.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb+resource pattern: 'Print bones/slots/animations' identifies the exact output content, and it specifies the input scoping to '.spine project or skeleton .json'. This clearly distinguishes it from the sibling tools like pack_atlas or export_project, though it does not explicitly name an alternative for comparison.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is used for inspecting the structural components of a Spine project or skeleton JSON, but it offers no explicit guidance on when to choose this tool over siblings like inspect_source or preview. There are no stated prerequisites or exclusions, so usage context is left entirely to the agent's inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rig_and_animateA
Build a rigged + animated Spine skeleton from a cut-up character.
source path to a .psd OR a PhotoshopToSpine export folder out_dir where to write .json/.atlas/.png (e.g. a game's static/assets/spine//) name skeleton name (defaults to the source basename) kind "symbol" or "mascot" (reserved; both rig the same body+head now) anims subset of ["idle","win","blink","pop"] (default all applicable) make_editable also emit an editable .spine next to the source (Spine CLI)
Returns a summary incl. file paths and an editable-project path.
| Name | Required | Description | Default |
|---|---|---|---|
| ik | No | ||
| kind | No | symbol | |
| name | No | ||
| anims | No | ||
| source | Yes | ||
| out_dir | Yes | ||
| clipping | No | ||
| clean_mesh | No | ||
| fx_presets | No | ||
| auto_weight | No | ||
| slot_presets | No | ||
| source_group | No | ||
| make_editable | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it does add real context: make_editable requires the Spine CLI, kind is reserved with both values rigging identically, and a summary with file paths is returned. However, it is silent on the behavior of the seven undocumented flags (ik, clipping, clean_mesh, auto_weight, fx_presets, slot_presets, source_group), so key mutation traits remain opaque.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The one-line purpose is front-loaded, followed by a clean aligned parameter list that is easy to scan. Padding is minimal, though the choice to document only a subset of parameters leaves the list structurally incomplete.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 13-parameter mutation tool with no annotations and no output schema, the description covers only 6 parameters and omits all seven of the optional flags an agent would need to reason about. It does compensate for the missing output schema by summarizing the return value, but the parameter gaps are too large for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate, and it partially does: it explains source formats, the out_dir layout, name defaulting, anims defaults, and the make_editable side effect. But 7 of 13 parameters receive no explanation at all, leaving more than half the surface undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening line states a concrete verb (build), the transformation (rig + animate), and the precise artifact (a Spine skeleton) from a defined input (a cut-up character). This distinguishes it clearly from siblings like pack_atlas, make_project, and export_project, which operate on different artifacts and stages.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied rather than stated: the source is described as a .psd or PhotoshopToSpine export folder, which signals the required precondition, but there is no explicit when-to-use guidance and no named alternative among the many workflow siblings (build_workflow, make_project). The agent must infer when this step belongs in a pipeline.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
spine_doctorA
Report whether the Spine CLI and Python deps are available.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description must fully disclose behavioral traits. It only states the action (report availability) without mentioning whether it is read-only, whether it has side effects, what it does if dependencies are missing, or any potential errors. The description is minimal and leaves many behavioral aspects unstated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that conveys the tool's function without any fluff. Every word contributes to clarity, and it is front-loaded with the action verb 'Report' immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity of a no-parameter doctor check, the description is adequate but incomplete. It does not specify what 'availability' entails (e.g., version checks, path requirements) or what the output format is (e.g., boolean, message). Without an output schema or annotations, the description could be more explicit about the return value and any caveats.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and the schema is fully covered by the absence of properties. Per the rule, a baseline of 4 applies for zero-parameter tools. The description adds no parameter information, but since there are no parameters, there is nothing to clarify beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: it reports on the availability of the Spine CLI and Python dependencies. This is a specific verb ('report') and resource, and it effectively distinguishes itself from sibling tools that handle project operations like packing, exporting, or previewing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention any prerequisites, such as running this before other tools, or conditions under which it should be called. The name 'doctor' implies a health check, but without explicit context, an agent may not know when to invoke it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
validate_motionC
Audit authored clips for frame-grid, curve, handoff, and loop-seam errors.
| Name | Required | Description | Default |
|---|---|---|---|
| clips | No | ||
| handoffs | No | ||
| runtime_json | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden, and it does not state whether the tool is read-only, whether it mutates the authored clips, what it returns, or how errors are surfaced. 'Audit' implies a non-destructive read, but that is inference, not disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence with the detection scope front-loaded and no filler. The terseness is efficient rather than padded, though it errs toward under-specification given the zero param coverage.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-param validation tool with no annotations, no output schema, and 0% schema coverage, the description omits the return shape, error format, and the role of runtime_json. An agent knows what it detects but not enough to call it confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across three parameters, so the description is the only source of meaning. It loosely echoes 'clips' and 'handoff' from the parameter list, but the required runtime_json (presumably the bulk of the payload) is entirely unexplained, as are the expected shapes of clips and handoffs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Audit') and resource ('authored clips') and enumerates the error classes checked (frame-grid, curve, handoff, loop-seam), which tells an agent exactly what the tool detects. It never distinguishes itself from siblings like validate_output, audit_preview, or spine_doctor, which sound like overlapping validation tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to reach for this tool versus validate_output or audit_preview, and no prerequisites or exclusions. The agent must infer the trigger condition from the sibling name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
validate_outputC
Validate bone, slot, skin, IK, atlas, texture, and animation references.
| Name | Required | Description | Default |
|---|---|---|---|
| atlas | No | ||
| texture | No | ||
| runtime_json | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It never states whether validation is read-only, what it returns on failure (errors list? boolean?), whether it throws or reports, or what happens when atlas/texture are empty strings. For a no-annotation tool this is a substantial gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single efficient sentence with no filler and the scope front-loaded. It is concise, though its brevity edges toward under-specification for a validation tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-parameter tool with no annotations, no output schema, and 0% schema coverage, the description leaves the required runtime_json undocumented and says nothing about the shape of validation results. An agent can guess the intent but not how to call or interpret it reliably.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It mentions atlas and texture as validated targets, which loosely maps to two of the three parameters, but the required parameter runtime_json is never explained and no parameter formats or default-empty-string behavior are described.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Validate') and resource ('references') and enumerates the reference kinds checked (bone, slot, skin, IK, atlas, texture, animation), which is more than a tautology. However, it does not distinguish itself from the closely-named sibling validate_motion or from spine_doctor, so an agent cannot tell which validator to pick from the description alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites, and no mention of alternatives such as validate_motion or spine_doctor. The agent is left to infer that this belongs in a build/export validation step.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
14 tool updates
v0.7.0- First observed
apply_motion_spec - First observed
audit_preview - First observed
batch - First observed
build_workflow - First observed
export_project - First observed
inspect_source - First observed
make_project - First observed
pack_atlas - First observed
preview - First observed
project_info - First observed
rig_and_animate - First observed
spine_doctor - First observed
validate_motion - First observed
validate_output
TDQS
Scored across 14 tools
Most tools have clearly distinct purposes (inspect_source vs rig_and_animate vs apply_motion_spec vs pack_atlas). The main overlap is build_workflow, which subsumes rig_and_animate plus mesh/clip/export steps, so an agent may be unsure whether to use the atomic tool or the all-in-one pipeline. The validation trio (audit_preview, validate_motion, validate_output) is distinguishable by target but close enough to require care.
The set mostly follows a verb_noun snake_case pattern (inspect_source, rig_and_animate, apply_motion_spec, validate_motion, pack_atlas, make_project, export_project). A few deviations exist — spine_doctor and project_info are noun-first, while preview and batch are bare. Still readable and largely predictable.
14 tools for a full rig/animate/validate/export pipeline is reasonable and most earn their place as distinct pipeline stages. It sits at the higher end but does not feel redundant given the breadth of the workflow.
The surface covers the full lifecycle: environment check (spine_doctor), inspect, rig/animate, motion-spec authoring, mesh/IK/clip validation, atlas packing, editable project round-tripping (make_project/export_project/project_info), preview rendering, batch roster processing, and quality gating. No obvious dead ends.
Maintenance
Related MCP Connectors
Build editable 3D scenes, direct characters and cameras, and export AI video references with MCP.
Generate authentic pixel art - sprites, animations, and tilesets - from any MCP client
Split character art into named layers and export PSDs for Live2D and Spine.
Create AI animations and export transparent sprite sheets, alpha video, frames, and game assets.
Related MCP Servers
- AlicenseAqualityDmaintenanceLocal MCP server for automating Spine projects via the official CLI, enabling AI tools to inspect, export, import, and add animations to .spine files.1616 npm16Apache 2.0
- AlicenseAqualityDmaintenanceAn MCP server that converts layered PSD characters into Spine 4.2 rigs with deterministic, parametric 2D/2.5D animations (idle, walk, run, jump, attack, hit) ready for the Spine editor and Unity.42MIT
- FlicenseBqualityDmaintenanceMCP server for reading, validating, and modifying Spine 4.1.24 JSON animation files, with tools for animation timeline editing, validation, preview, and agent integration.36-
- AlicenseAqualityDmaintenanceAutomates Spine asset pipeline tasks such as export, texture packing, resource validation, and file summarization through the Spine CLI.6MIT