spine-mcp
Click on "Install 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., "@spine-mcpShow me info about cat.spine"
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.
spine-mcp
English | 简体中文
GitHub shows this English README.md by default. The Chinese version is maintained in README.zh-CN.md.
Local MCP server for Spine automation on Windows. It only calls the official Spine CLI and communicates over stdio, so AI tools like Claude Code, Codex, and Cursor can start it locally.
This server does not do UI automation, AutoHotkey, mouse or keyboard simulation, timeline operations, mesh binding, bone weight editing, or direct .spine internals modification. It only modifies .spine files through the official Spine CLI.
Requirements
Windows
Node.js 20+
Spine installed locally. This MCP does not include Spine and cannot run without a local Spine installation.
A Spine CLI executable available as either:
SPINE_EXE, preferably pointing toSpine.comor a
Spinecommand available onPATH
Related MCP server: spine-mcp
Spine Version Compatibility
This MCP package is version 0.1.0.
The Spine CLI command construction in this project has been checked against local Spine Pro / Spine Launcher 3.8.75. In particular, Spine 3.8.75 requires export commands to use an export settings JSON file:
Spine -i "<project.spine>" -o "<outputDir>" -e "<export-settings.json>"If a command fails even though the input paths are correct, first check whether your local Spine version has different CLI flags or export behavior. Run:
& "$env:SPINE_EXE" --helpThen compare the output with the command shown by the MCP result. Different Spine versions may require different export settings JSON formats, support different flags, or reject commands that work in 3.8.75.
Install
cd G:\spine-mcp
npm.cmd installConfigure Spine
Recommended: point SPINE_EXE to your local Spine.com. The example below is the default install style, but use the actual path for your own Spine installation.
$env:SPINE_EXE = "C:\Program Files\Spine\Spine.com"Example for a custom local install path:
$env:SPINE_EXE = "E:\BaiduNetdiskDownload\Spine pro 3.8.75+K'D\Spine.com"Confirm the CLI is reachable and note the version:
& "$env:SPINE_EXE" --helpTo persist it for future PowerShell sessions:
[Environment]::SetEnvironmentVariable("SPINE_EXE", "C:\Program Files\Spine\Spine.com", "User")If SPINE_EXE is not set, the server runs Spine directly.
Build
npm.cmd run build
npm.cmd run typecheckStart
node G:\spine-mcp\build\index.jsThe server uses stdio. Do not expect normal terminal output on stdout because stdout is reserved for the MCP protocol. Diagnostic logs go to stderr.
Add To Claude Code
Basic setup:
claude mcp add --transport stdio spine-mcp -- node G:\spine-mcp\build\index.jsWith an explicit Spine CLI path:
claude mcp add --transport stdio --env SPINE_EXE="C:\Program Files\Spine\Spine.com" spine-mcp -- node G:\spine-mcp\build\index.jsTools
spine_info
Inspect a .spine, .json, .skel, or folder input:
Spine -i "<inputPath>"Use this when you need Spine CLI metadata. Do not use it to export, pack, import, clean, open, or modify files.
spine_export
Export a Spine project:
Spine -i "G:\cat\cat.spine" -o "G:\cat\dist" -e export-settings.jsonOptional flags:
-mwhenclean=true
The exportSettingsPath parameter is required and must be a path to an existing Spine export settings JSON file. exportModeOrSettings is kept only as a deprecated compatibility alias. Mode strings like json or json+pack are not accepted by the Spine CLI -e flag.
Use this for official CLI exports. Do not use it for texture-only packing, JSON import, UI automation, or internal project edits.
spine_import_json
Import JSON, binary skeleton data, or another supported input into a .spine project:
Spine -i "G:\cat\cat.json" -o "G:\cat\cat.spine" -rOptional:
skeletonNameis added after-rscaleis added with-s <scale>before-o
Use this for official CLI imports. Do not use it for packing textures or direct project internals editing.
spine_clean
Run animation clean up:
Spine -i "G:\cat\cat.spine" -mUse this for Spine CLI clean up only. It does not delete user files.
spine_open_project
Open a .spine project in the local Spine application without waiting for Spine to exit:
Spine "G:\cat\cat.spine"Use this when you want to continue manual editing. Do not use it for exports or UI automation.
Animation Workflow
This server works with existing .spine projects and Spine JSON files. All animation generation is applied to a copy of the source files, leaving the originals untouched.
Recommended workflow
Have an existing
.spineproject or Spine JSON file ready.Use
spine_analyze_jsonto inspect the skeleton structure.Use
spine_control_bones,spine_build_animation_from_json, orspine_build_animation_from_existing_projectto add animations.Use
spine_exportto export the final output.
spine_analyze_json
Read-only inspection of a Spine JSON file:
Use spine_analyze_json:
jsonPath = G:\cat\cat.jsonReturns skeleton metadata, bones, slots, skins, attachments, animations, and inferred roles.
spine_add_simple_animation
Low-level debug tool when you know the exact bone:
Use spine_add_simple_animation:
sourceJsonPath = G:\psd-spine\cat.json
outputJsonPath = G:\cat-output\cat.tail-test.json
animationName = tail_test
targetBone = tail
animationType = rotate
keyframes = [
{ "time": 0, "angle": -10 },
{ "time": 0.5, "angle": 10 },
{ "time": 1, "angle": -10 }
]
overwrite = trueIt supports only rotate, translate, and scale timelines on one bone.
spine_control_bones
Control multiple existing bones by writing custom rotate, translate, and scale timelines into a Spine JSON copy:
Use spine_control_bones:
sourceJsonPath = G:\cat\cat.json
outputJsonPath = G:\cat-output\cat.controlled.json
animationName = custom_pose_loop
boneControls = [
{
"boneName": "head",
"rotate": [
{ "time": 0, "angle": -4 },
{ "time": 0.5, "angle": 4 },
{ "time": 1, "angle": -4 }
],
"translate": [
{ "time": 0, "y": 0 },
{ "time": 0.5, "y": 6 },
{ "time": 1, "y": 0 }
]
},
{
"boneName": "tail",
"rotate": [
{ "time": 0, "angle": -12 },
{ "time": 0.5, "angle": 12 },
{ "time": 1, "angle": -12 }
]
}
]
overwrite = trueThis is the main tool for explicit bone control. It validates that each bone exists and writes JSON animation data only. It does not drag bones in the Spine editor, bind meshes, edit weights, create IK, or directly mutate .spine binaries.
spine_generate_animation_json
Generate an animated JSON copy only:
Use spine_generate_animation_json:
sourceJsonPath = G:\cat\cat.json
outputJsonPath = G:\cat-output\cat.animated.json
userGoal = "cute cat loading animation with breathing, head float, tail swing, and blink"
animationName = generated_loop
duration = 2
characterType = cat
overwrite = trueSupported basic animation kinds include:
breathing: body/root scale
head_float: head translate
tail_swing: tail rotate
blink: eye slot attachment switch, or eye bone scale fallback
paw_wave: paw/hand/arm rotate
logo_bounce: root/logo translate and scale
floating: root/body translate
spine_create_loading_animation_preset
Focused loading presets:
Use spine_create_loading_animation_preset:
sourceJsonPath = G:\cat\cat.json
outputJsonPath = G:\cat-output\cat.loading.json
preset = cute_cat_loading
duration = 2
intensity = normal
overwrite = trueSupported presets:
cute_cat_loadinglogo_bouncebreathing_idlefloating_characterblink_loop
Use soft intensity for subtle UI loading loops and strong only when you want visibly larger motion.
spine_build_animation_from_json
One-step JSON pipeline:
Use spine_build_animation_from_json:
sourceJsonPath = G:\cat\cat.json
imagesDir = G:\cat\images
outputDir = G:\cat-output
projectName = cute_cat_loading
userGoal = "Make a cute cat loading animation. Body breathes, head floats, tail swings, eyes blink."
animationName = loading_loop
characterType = cat
exportSettingsPath = G:\cat\export-settings.json
openAfterBuild = true
overwrite = true
knowledgeDir = G:\spine-mcp\knowledgeIt runs:
analyze JSON -> generate animated JSON -> import .spine -> pack textures -> export -> optionally open projectIf exportSettingsPath is omitted, the tool still imports the generated .spine project and can open it, but it skips the final export step because Spine 3.8.75 requires -e <settings.json> for exports.
spine_build_animation_from_existing_project
Build animations on an existing .spine project or Spine JSON. Keeps original files untouched and writes a modified copy to outputDir.
Use spine_build_animation_from_existing_project:
spineProjectPath = G:\cat-source\cat.spine
outputDir = G:\cat-output
projectName = cute_cat_existing
userGoal = "Add a restrained idle animation with breathing and blinking."
characterType = cat
exportSettingsPath = G:\cat\export-settings.json
openAfterBuild = true
overwrite = trueWhen spineProjectPath is used without sourceJsonPath, provide sourceExportSettingsPath for the temporary project-to-JSON export. If it is omitted, the tool falls back to exportSettingsPath/exportMode when present.
This workflow only creates basic region/slot/keyframe animation. It does not bind mesh, edit weights, create IK, or modify the original .spine binary.
Corpus Learning Layer
If you have many local Spine source projects, run corpus learning first. This is not large-model training. It is local statistical analysis that extracts patterns from real .spine and .json projects, then writes markdown and JSON knowledge files that AI tools and MCP tools can read later.
Your source files are not uploaded. The server only reads the corpus directory, exports .spine files to local .cache/corpus-json/ when needed, and writes knowledge files to knowledge/ or the directory you choose.
Step 1: Scan Corpus
Use spine_scan_corpus:
corpusDir = G:\spine-corpus
maxProjects = 20This only confirms how many .spine and .json files can be found. It does not parse projects or call Spine CLI.
Step 2: Learn Corpus
Use spine_learn_from_corpus:
corpusDir = G:\spine-corpus
outputKnowledgeDir = G:\spine-mcp\knowledge
exportSettingsPath = G:\spine-corpus\json-export-settings.json
maxProjects = 819
overwrite = trueFor .json files, MCP parses them directly. For .spine files, MCP calls Spine CLI export:
Spine -i "<project.spine>" -o "G:\spine-mcp\.cache\corpus-json\<project>" -e "G:\spine-corpus\json-export-settings.json"If exportSettingsPath is omitted, .json corpus files can still be analyzed directly, but .spine corpus files cannot be exported and are recorded as failed projects.
If a project fails to export or parse, it is recorded in failedProjects and the batch continues.
Step 3: Read Guide
Use spine_get_generation_guide:
knowledgeDir = G:\spine-mcp\knowledgeThis returns the markdown guide plus machine-readable presets and naming rules. If the files do not exist, it asks you to run spine_learn_from_corpus.
Step 4: Recommend Parameters
Use spine_recommend_animation_params:
userGoal = "Make a cute cat loading animation with breathing, head bob, tail swing, and blinking."
characterType = cat
availableAssetRoles = ["body", "head", "tail", "eye_left", "eye_right"]
knowledgeDir = G:\spine-mcp\knowledgeThis returns recommended animations, duration, learned preset params, warnings, and a short reasoning summary. If knowledge is missing, it falls back to built-in defaults.
Development
npm.cmd run devFor production MCP usage, build first and run build/index.js.
Result Format
CLI-backed tools return JSON text containing:
commandargsstdoutstderrexitCodesuccess
This makes Spine CLI errors visible to the calling AI tool without crashing the MCP server.
Available Tools
16 toolsspine_add_simple_animationA
Low-level debug tool for adding one simple rotate, translate, or scale bone timeline to a Spine JSON copy. Use this when you already know the exact targetBone and keyframes you want. It only edits JSON and writes generation.manifest.json. Do not use it for natural-language animation planning, packing, exporting, UI automation, mesh, IK, weights, or direct .spine binary edits.
| Name | Required | Description | Default |
|---|---|---|---|
| keyframes | Yes | Timeline keyframes to write to the target bone. | |
| overwrite | No | When false, stop if outputJsonPath exists or animationName already exists. When true, overwrite those generated targets. | |
| targetBone | Yes | Existing bone name that receives the timeline. | |
| animationName | Yes | Animation name to add or overwrite. | |
| animationType | Yes | Simple bone timeline type to write. | |
| outputJsonPath | Yes | Destination JSON file where the modified copy will be written. | |
| sourceJsonPath | Yes | Source Spine JSON file to read. It is preserved unchanged. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full responsibility. It states the tool only edits JSON and writes generation.manifest.json, but does not disclose other behaviors like overwrite effects (though the overwrite parameter is in the schema) or potential risks of breaking the Spine data. More transparency about side effects would improve the score.
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 two sentences long, front-loads the purpose, and contains no redundant or unclear information. Every sentence contributes meaning.
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 mostly complete given the tool's complexity and the presence of sibling tools. However, it does not mention prerequisites like the source file needing to be a valid Spine JSON export, nor does it clarify whether the tool validates inputs or provides error messages. This minor gap prevents a perfect score.
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 100%, so baseline is 3. The description adds context about the tool's overall nature but does not enhance parameter semantics beyond what the schema already provides. For instance, the schema describes keyframes in detail; the description only reiterates that it's a low-level tool.
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 is for adding one simple bone timeline (rotate, translate, scale) to a Spine JSON copy, and specifies it is a low-level debug tool. It also lists what it does not do (e.g., natural-language planning, packing, exporting), effectively distinguishing it from 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 description explicitly says 'Use this when you already know the exact targetBone and keyframes you want' and provides a list of scenarios where it should not be used, giving clear guidance on when to invoke this tool vs alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
spine_analyze_jsonA
Read-only Spine JSON inspection tool. Use this to list skeleton metadata, bones, slots, skins, attachments, animations, and inferred common roles such as body, head, tail, eyes, paws, and logo before generating animation keyframes. Do not use it to modify files, call Spine CLI, export, import, or automate the Spine UI.
| Name | Required | Description | Default |
|---|---|---|---|
| jsonPath | Yes | Path to a Spine JSON file to inspect. The tool is read-only. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully discloses the read-only nature and the scope of inspection. It could mention permissions or output details, but for a simple read-only tool, the transparency is sufficient.
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 extremely concise: two sentences with zero waste. The first sentence immediately states purpose and scope; the second provides negative constraints. No redundant 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 no output schema or annotations, the description is nearly complete. It explains what the tool inspects, when to use it, and when not to. A slight gap is the lack of explicit mention about the return format, but 'list' implies output is a list.
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 single parameter (jsonPath) has 100% schema coverage. The description adds value by explaining the tool's purpose and context of use (before generating keyframes), enhancing the meaning beyond the schema's description.
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 'Read-only Spine JSON inspection tool' and lists specific elements to inspect (metadata, bones, slots, etc.), distinguishing itself from sibling tools by explicitly stating what it does not do.
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 explicit when-to-use context ('before generating animation keyframes') and explicit when-not-to-use conditions ('Do not use it to modify files, call Spine CLI, export, import, or automate the Spine UI'), offering clear guidance on alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
spine_build_animation_from_existing_projectA
Build simple animation keyframes on an existing Spine JSON or .spine project. Writes to outputDir, imports into .spine, exports, and can open the result. Requires sourceJsonPath or spineProjectPath. Not for mesh, IK, weights, or UI automation.
| Name | Required | Description | Default |
|---|---|---|---|
| userGoal | Yes | Natural-language animation goal. The tool uses this with learned corpus presets to choose simple keyframes for the existing skeleton. | |
| imagesDir | No | Optional folder containing images referenced by sourceJsonPath. When provided, it is copied to outputDir/images and the generated JSON uses that images folder. | |
| outputDir | Yes | Directory where the modified JSON, imported .spine project, copied images, and exported files should be written. | |
| overwrite | No | When false, stop if outputDir already exists. When true, overwrite generated files inside outputDir without deleting files outside it. | |
| exportMode | No | Deprecated alias for exportSettingsPath. Must be a Spine export settings .json file path. Mode strings like "json" or "json+pack" are not accepted by Spine 3.8.75. | |
| projectName | Yes | Project file base name to generate inside outputDir, without path separators. | |
| knowledgeDir | No | Directory containing learned knowledge files. Defaults to G:\spine-mcp\knowledge. If missing, built-in fallback presets are used. | G:\spine-mcp\knowledge |
| characterType | No | Character category used to choose default layout and animation presets. | |
| openAfterBuild | No | When true, open the generated .spine project after import/export without waiting for Spine to exit. | |
| sourceJsonPath | No | Optional existing Spine JSON file, for example a Photoshop to Spine exported skeleton JSON. When provided, this takes precedence over spineProjectPath. | |
| spineProjectPath | No | Optional existing .spine project. When sourceJsonPath is not provided, the tool exports this project to temporary JSON first using the Spine CLI. | |
| exportSettingsPath | No | Path to a Spine export settings .json file used with -e. If omitted, tools that can build a .spine project skip the final export step. | |
| sourceExportSettingsPath | No | Path to a Spine export settings .json file used to export spineProjectPath to JSON before analysis. Required when using spineProjectPath unless exportSettingsPath/exportMode also points to a JSON export setting. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, but the description reveals the tool's actions (writing to outputDir, importing, exporting, opening) and that it is not for mesh/IK/weights/UI automation. It does not cover permission or rate-limit details, but given the absence of annotations, it provides reasonable transparency.
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 sentences: first explains the core purpose and what the tool does, second gives requirements and limitations. No filler, effectively front-loaded.
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 13 parameters and no output schema, the description covers the tool's purpose and key constraints (required inputs, exclusions). It doesn't detail return values, but that is acceptable given the absence of an output schema. Provides sufficient context for selection.
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 100%, so baseline is 3. The description adds value by clarifying that one of sourceJsonPath or spineProjectPath is required (though both are optional in schema), explaining characterType enum purpose, and warning about exportMode deprecation. This goes beyond the schema descriptions.
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 builds simple animation keyframes on an existing Spine JSON or .spine project, and lists actions (writes, imports, exports, opens). It also distinguishes by stating 'Not for mesh, IK, weights, or UI automation,' which differentiates it from potential 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 description explicitly requires 'sourceJsonPath or spineProjectPath' and excludes complex animation types. However, it does not directly compare to sibling tools like spine_build_animation_from_json, leaving some ambiguity about when to choose one over the other.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
spine_build_animation_from_jsonA
One-step JSON animation pipeline: analyze source JSON, generate animated copy, import to .spine, optionally pack images, export, and open. Use for Spine JSON plus images. Not for .spine sources, mesh, IK, weights, or UI automation.
| Name | Required | Description | Default |
|---|---|---|---|
| userGoal | Yes | Natural-language goal used to select basic animation timelines. | |
| imagesDir | No | Optional folder containing images referenced by the JSON. When provided, it is copied to outputDir/images and packed. | |
| outputDir | Yes | Directory where animated JSON, .spine project, dist export, atlas/png pack, and manifest are written. | |
| overwrite | No | When false, stop if outputDir already exists. When true, overwrite generated files inside outputDir without deleting files outside it. | |
| exportMode | No | Deprecated alias for exportSettingsPath. Must be a Spine export settings .json file path, not "json" or "json+pack". | |
| projectName | Yes | Project file base name to generate inside outputDir, without path separators. | |
| knowledgeDir | No | Directory containing learned knowledge files. Defaults to G:\spine-mcp\knowledge. Missing knowledge falls back to built-in defaults. | G:\spine-mcp\knowledge |
| animationName | No | Optional animation name. Defaults to "generated_loop". | |
| characterType | No | Optional character hint such as "cat", "mascot", "logo", or "generic". | |
| openAfterBuild | No | When true, open the generated .spine project after import/export without waiting for Spine to exit. | |
| sourceJsonPath | Yes | Source Spine JSON file to analyze and animate. It is preserved unchanged. | |
| exportSettingsPath | No | Path to a Spine export settings .json file used with -e. If omitted, tools that can build a .spine project skip the final export step. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It outlines the pipeline steps and optional behaviors (packing, export, open). However, it does not fully disclose all side effects or what exactly happens to files (e.g., whether source is preserved, but that's in parameter description). Overall, it provides a good behavioral overview.
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 two sentences: first gives the pipeline steps, second gives usage/exclusions. No unnecessary words; every sentence adds unique value. Efficient and front-loaded.
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 tool has 12 parameters, no output schema, and no annotations, the description covers the main workflow and usage context. However, it does not mention what the tool returns (e.g., success message, paths) after execution, which could be a gap for an agent. It is otherwise complete for deciding to call the tool.
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 100%, so each parameter is well-described in the schema. The description adds value by integrating parameters into the workflow narrative (e.g., 'optionally pack images' relates to imagesDir). This helps the agent understand parameter roles without repeating schema details.
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 verb ('build animation'), resource ('from JSON'), and the one-step pipeline steps. It also explicitly excludes cases like .spine sources, mesh, IK, etc., distinguishing it from sibling 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?
The description provides explicit usage guidance: 'Use for Spine JSON plus images' and 'Not for .spine sources, mesh, IK, weights, or UI automation.' This clearly tells the agent when to use it and when not to, without ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
spine_cleanA
Use this to run Spine CLI animation clean up with -m on a project or supported input. Do not use it to delete files, rewrite project internals directly, export assets, pack textures, or automate the editor UI.
| Name | Required | Description | Default |
|---|---|---|---|
| inputPath | Yes | Path to the Spine project or import/export input that should be processed with Spine animation clean up. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description only states the action and exclusions; it does not disclose behavioral traits such as destructive potential, permission requirements, or reversibility.
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 concise sentences, front-loaded with the main action, and every word serves a purpose with no 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 simple tool with one parameter and no output schema, the description adequately covers purpose and limitations, though it could elaborate on what the cleanup entails.
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 100% for the single parameter, and the description adds meaningful context by specifying 'Spine project or import/export input' and 'clean up', enhancing understanding 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 specifies the action (run Spine CLI animation clean up with -m) and the resource (project or supported input), distinguishing it from sibling tools by listing exclusions.
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?
Provides explicit negative guidance on what not to use the tool for, giving clear context for when to avoid it, though it does not directly compare with alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
spine_control_bonesA
Write custom rotate, translate, and scale timelines for one or more existing bones into a Spine JSON copy. Use this when you know exact bone names and keyframes. This controls bones through JSON animation data only; it does not automate the Spine editor UI, bind meshes, edit weights, create IK, or mutate .spine binaries directly.
| Name | Required | Description | Default |
|---|---|---|---|
| overwrite | No | When false, stop if outputJsonPath exists or animationName already exists. When true, overwrite those generated targets. | |
| boneControls | Yes | Bone transform timelines to write. Supports multiple bones and multiple timeline types per bone. | |
| animationName | Yes | Animation name to add or overwrite. | |
| outputJsonPath | Yes | Destination JSON file where the modified copy will be written. | |
| sourceJsonPath | Yes | Source Spine JSON file to read. It is preserved unchanged. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Despite no annotations, the description transparently states it modifies a copy, operates on JSON animation data only, and lists exclusions to clarify scope.
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?
Three sentences, each serving a clear purpose: action, usage condition, and limitations. Front-loaded with the core action.
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?
Covers purpose, usage condition, and limitations. Lacks specification of return value or confirmation output. Adequate for an experienced user but missing some context.
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 100%, and the description does not add any additional parameter meaning beyond what is in the schema. Baseline 3.
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?
Description uses specific verb 'Write' and resource 'rotate, translate, and scale timelines for existing bones into a Spine JSON copy'. The negative list distinguishes from sibling tools by explicitly stating what it does not do.
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?
Explicitly says 'Use this when you know exact bone names and keyframes.' Also lists what it does not do, which helps the agent decide not to use it for those tasks.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
spine_create_loading_animation_presetA
Create a loading animation preset on a Spine JSON copy. Presets: cute_cat_loading, logo_bounce, breathing_idle, floating_character, blink_loop. Writes JSON + manifest only. Not for mesh, IK, weights, or UI automation.
| Name | Required | Description | Default |
|---|---|---|---|
| preset | Yes | Loading animation preset to generate. | |
| duration | No | Optional duration override in seconds. If omitted, the preset default is used. | |
| intensity | No | Motion intensity multiplier for transform amplitudes. | normal |
| overwrite | No | When false, stop if outputJsonPath exists or the preset animation already exists. When true, overwrite those generated targets. | |
| outputJsonPath | Yes | Destination JSON file where the modified loading animation copy will be written. | |
| sourceJsonPath | Yes | Source Spine JSON file to read. It is preserved unchanged. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses that the tool writes JSON + manifest only, preserves the source file unchanged, and explains the overwrite behavior. It does not cover permissions, error states, or side effects beyond file writing.
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 four sentences, each serving a clear purpose: purpose, presets, output scope, and exclusions. It is front-loaded with the most important information and contains no 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?
Given 6 parameters, no output schema, and no annotations, the description covers the key aspects: what it does, what it outputs, and what it excludes. It lacks explanation of return values or post-creation behavior, but is otherwise sufficient for an agent to select and invoke the tool.
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 100%, so baseline is 3. The description repeats the preset list but adds no additional meaning or usage context beyond the schema. It does not explain parameter interactions or provide examples.
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 (Create), names the resource (loading animation preset on a Spine JSON copy), lists all five presets, and explicitly states what it is not for (mesh, IK, weights, UI automation), clearly distinguishing it from 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?
It tells when not to use the tool ('Not for mesh, IK, weights, or UI automation') and implicitly defines usage via preset names. However, it does not explicitly reference alternative sibling tools or provide context for when to choose this over others.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
spine_exportA
Use this to export a .spine project with the official Spine CLI and an export settings JSON file. Do not use it for texture-only packing, JSON import, editor UI automation, or direct project structure edits.
| Name | Required | Description | Default |
|---|---|---|---|
| clean | No | When true, add -m to clean animations during export. | |
| outputPath | Yes | Destination file or directory for Spine export output, depending on the export setting. | |
| projectPath | Yes | Path to the source .spine project file that should be exported. | |
| updateVersion | No | Deprecated. Spine 3.8.75 help lists --update only for editor launch, not export commands. | |
| exportSettingsPath | No | Path to a Spine export settings .json file used with -e. Required for Spine 3.8.75 exports. | |
| exportModeOrSettings | No | Deprecated alias for exportSettingsPath. Mode strings like "json" or "json+pack" are not accepted. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It mentions dependency on 'official Spine CLI and an export settings JSON file', setting expectations for external requirements. However, it does not disclose potential side effects, failure modes, or prerequisites beyond the parameters.
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 consists of two concise sentences: the first states the core purpose, the second lists exclusions. No extraneous text, front-loaded with the most important information. Every sentence 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?
Given the complexity (6 parameters, 2 required, no output schema) and rich schema descriptions, the description covers core usage and exclusions adequately. It could provide more context on return values or error handling, but the combination of schema and description is reasonably 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 100%, and the schema's parameter descriptions are already quite detailed (e.g., clean, updateVersion, exportSettingsPath). The tool description adds little additional semantic meaning beyond the schema, so baseline score of 3 is appropriate.
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 'export a .spine project with the official Spine CLI and an export settings JSON file', clearly specifying verb, resource, and method. It also lists explicit exclusions (texture-only packing, JSON import, etc.) that differentiate it from siblings like spine_import_json or spine_add_simple_animation.
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 clearly states when to use the tool (exporting .spine projects) and provides a clear list of what not to use it for. While it does not explicitly name alternative sibling tools, the exclusions provide sufficient guidance for an agent to choose correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
spine_generate_animation_jsonA
Generate a modified Spine JSON copy by adding basic animation keyframes to an existing skeleton. Supports breathing, head_float, tail_swing, blink, paw_wave, logo_bounce, and floating by reading bones, slots, skins, and animations from sourceJsonPath. Use this for Photoshop-to-Spine JSON or existing exported Spine JSON. It only writes JSON and generation.manifest.json; it does not open Spine, import, export, pack textures, automate UI, bind mesh, edit weights, or modify .spine binaries.
| Name | Required | Description | Default |
|---|---|---|---|
| loop | No | Whether the generated keyframes should be loop-friendly. Spine JSON stores loop behavior at playback time, so this is recorded in the manifest. | |
| duration | No | Animation duration in seconds. Defaults to 2. | |
| userGoal | Yes | Natural-language animation goal used to select basic JSON animation timelines. | |
| overwrite | No | When false, stop if outputJsonPath exists or animationName already exists. When true, overwrite those generated targets. | |
| animationName | No | Animation name to add under animations. Defaults to "generated_loop". | generated_loop |
| characterType | No | Optional character hint such as "cat", "mascot", "logo", or "generic". | |
| outputJsonPath | Yes | Destination JSON file where the modified copy with generated animation will be written. | |
| sourceJsonPath | Yes | Source Spine JSON file to read. It is preserved unchanged. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must fully disclose behavior. It states that the tool only writes JSON and generation.manifest.json, reads from sourceJsonPath, supports various animations, and respects overwrite logic. However, it does not mention error handling or side effects beyond file writing, which is a minor 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?
The description is a single paragraph that efficiently conveys purpose, supported animations, usage context, and exclusions. It is front-loaded with the main action and contains no unnecessary repetition, though it could be slightly more structured with bullet points for readability.
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 no output schema, the description should clarify what the tool returns after execution. It states it writes to outputJsonPath and manifest, but does not explicitly mention that the tool returns a success message or the generated file path. This is a minor completeness gap.
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 100%, so all parameters are already documented. The tool description adds minimal extra value beyond listing supported animation types and usage context. Baseline of 3 is appropriate since the schema does the heavy lifting.
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 that the tool generates a modified Spine JSON by adding basic animation keyframes. It lists supported animations and explicitly distinguishes what it does not do, such as opening Spine or importing/exporting, which differentiates it from siblings like spine_add_simple_animation and spine_build_animation_from_json.
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 explicit guidance on when to use the tool: 'Use this for Photoshop-to-Spine JSON or existing exported Spine JSON.' It also lists specific supported animations and clearly states what the tool does not do, helping the agent avoid misuse.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
spine_get_generation_guideA
Use this to load the learned Spine generation guide and machine-readable presets before deciding animation parameters. It reads learned-spine-guide.md, learned-animation-presets.json, and learned-naming-rules.json. If files are missing, run spine_learn_from_corpus first. Do not use it to scan corpus, call Spine CLI, or build animations.
| Name | Required | Description | Default |
|---|---|---|---|
| knowledgeDir | No | Directory containing learned Spine knowledge files. Defaults to project knowledge/. |
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. It discloses that the tool reads specific files and that missing files will cause failure, with a remediation suggestion. It implies read-only behavior but does not explicitly state the absence of side effects or performance implications. This is good but not exhaustive.
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 three sentences, each serving a distinct purpose: stating the action and context, listing the files, and providing error handling and exclusions. It is front-loaded with the primary use case, with no wasted words.
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 tool's simplicity (one optional parameter, no output schema), the description covers all necessary information: purpose, usage context, prerequisite actions, and excluded use cases. It is complete for an agent to correctly select and invoke the tool.
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 input schema has one optional parameter 'knowledgeDir' with a description that matches the tool's purpose. Schema coverage is 100%, so the parameter is fully documented. The description does not add significant new information beyond the schema, as it already states the default location. Baseline 3 is appropriate.
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 verb 'load' and the specific resources (Spine generation guide, machine-readable presets, learned-spine-guide.md, learned-animation-presets.json, learned-naming-rules.json). It also explicitly distinguishes from sibling tools by stating what not to use it for (scan corpus, call Spine CLI, build animations).
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 explicit guidance on when to use (before deciding animation parameters) and what to do if files are missing (run spine_learn_from_corpus first). It also lists alternatives that are not appropriate, making the usage context very clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
spine_import_jsonA
Use this to import Spine JSON, binary skeleton data, or another supported input into a .spine project via the official Spine CLI. Do not use it for texture packing, project export, editor UI actions, or manual project internals editing.
| Name | Required | Description | Default |
|---|---|---|---|
| scale | No | Optional import scale value passed to Spine with -s. | |
| inputPath | Yes | Path to a Spine JSON, binary skeleton, or another supported project input to import. | |
| skeletonName | No | Optional skeleton name to pass after -r during import. | |
| outputProjectPath | Yes | Path where Spine should write the resulting .spine project. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It transparently states the tool uses the official Spine CLI and performs import operations. It does not disclose permissions or side effects like overwriting existing files, but the action is clearly defined.
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 consists of two concise sentences with no wasted words. The first sentence covers the core purpose, while the second provides critical usage exclusions.
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 tool's straightforward nature (4 parameters, no output schema), the description adequately covers the import operation and exclusions. It does not explain return values, but the output is implicitly the written .spine project.
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 100% with all parameters documented. The description does not add additional meaning beyond the schema, so a baseline score of 3 is appropriate.
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 verb 'import' and specifies the resource: Spine JSON, binary skeleton data, or other supported input into a .spine project via the official Spine CLI. It also distinguishes from sibling tools by listing what not to use it for (texture packing, project export, editor UI actions, manual project internals editing).
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 explicitly states when to use (for importing supported inputs into a .spine project) and when not to use (excludes texture packing, export, editor UI, manual editing). This provides clear context and differentiation from alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
spine_infoB
Use this to inspect Spine project, JSON, binary skeleton, or folder metadata through the Spine CLI. Do not use it to export, modify, pack, or open projects.
| Name | Required | Description | Default |
|---|---|---|---|
| inputPath | Yes | Path to a .spine, .json, .skel file, or an images folder to inspect with Spine CLI. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavioral traits. It states 'inspect' implying read-only, but does not explicitly confirm no modifications or detail side effects, error handling, or permission requirements. This is insufficient for a tool with no annotation support.
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 sentences: one for purpose, one for exclusions. Front-loaded, no redundant phrasing, efficient communication of essential 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?
For a simple one-parameter tool without output schema, the description covers basic purpose but lacks details on return values, error modes, or behavioral guarantees. Could be more complete but meets minimal adequacy.
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 100% for the single parameter inputPath, and the schema description is clear. The description adds no additional semantic detail beyond what the schema provides, so baseline 3 is appropriate.
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 inspects Spine project files and folders, with a specific verb 'inspect' and explicit resources (e.g., .spine, .json, .skel). It distinguishes from siblings by listing what not to do (export, modify, pack, open), but does not explicitly differentiate from other inspection/analysis sibling tools like spine_analyze_json, so not a full 5.
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?
Provides negative guidance ('Do not use it to export, modify, pack, or open projects'), which helps avoid misuse. However, it does not offer positive context or explicitly compare to sibling tools for when to use this over alternatives, leaving ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
spine_learn_from_corpusA
Use this to build the local Spine Corpus Learning Layer. It scans .json and .spine projects, exports .spine files to .cache/corpus-json when needed, extracts naming/animation/statistical features, and writes markdown/json knowledge files. It never modifies or deletes corpus source files. Single-project failures are recorded and do not stop the batch. Do not use it for live animation generation or UI automation.
| Name | Required | Description | Default |
|---|---|---|---|
| corpusDir | Yes | Directory containing real Spine .spine and .json source projects to analyze. | |
| overwrite | No | Whether to overwrite existing knowledge files in outputKnowledgeDir. | |
| maxProjects | No | Optional maximum project count for test runs before analyzing a full corpus. | |
| exportSettingsPath | No | Path to a Spine export settings .json file used to export .spine corpus projects to JSON. Required for analyzing .spine files with Spine 3.8.75. | |
| outputKnowledgeDir | No | Directory where learned knowledge files should be written. Defaults to project knowledge/. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses non-modification of source files, batch error handling, and export to cache. With no annotations, this provides sufficient safety and behavioral context.
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?
Four sentences with no redundancy; front-loaded with purpose. Every sentence contributes essential 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?
Covers purpose, process, safety, error handling, and output format. Missing explicit mention of default output knowledge directory, but schema provides that.
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 covers 100% of parameters, so baseline is 3. Description adds no parameter-specific detail beyond the schema's descriptions.
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?
Description clearly states the tool builds the local Spine Corpus Learning Layer and describes its scanning and extraction process. However, it does not explicitly differentiate from spine_scan_corpus or other 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?
Implies use for corpus learning layer building and warns against live animation/UI automation, but lacks explicit when-to-use or alternative tool comparisons.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
spine_open_projectA
Use this to open a .spine project in the local Spine application so you can continue manual editing. Do not use it for CLI exports, texture packing, JSON import, UI automation, or waiting for editor operations to finish.
| Name | Required | Description | Default |
|---|---|---|---|
| projectPath | Yes | Path to the .spine project file to open in the local Spine application. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It clearly states the action and exclusions, but could mention any side effects (e.g., closing previous project) or return behavior. Still, it is transparent enough for a simple open action.
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 efficiently communicates purpose and exclusions. Every word earns its place, with no fluff.
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 simplicity of the tool (one parameter, no output schema), the description is complete. It covers what the tool does and when to avoid it.
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 input schema already describes the single parameter with 100% coverage, so the description adds no additional meaning. Baseline 3 is appropriate.
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 verb 'open' and the resource '.spine project', and distinguishes it from sibling tools by listing specific exclusions (CLI exports, texture packing, etc.).
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?
Provides explicit context ('continue manual editing') and a list of what not to use it for, which helps the agent select the correct tool among many siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
spine_recommend_animation_paramsA
Use this to turn a user goal into recommended BasicAnimationRequest parameters using learned corpus presets and naming rules. It returns recommendedAnimations, duration, preset params, warnings, and a short reasoning summary. If knowledge is missing, it falls back to built-in defaults. Do not use it to write files, call Spine CLI, or build projects directly.
| Name | Required | Description | Default |
|---|---|---|---|
| userGoal | Yes | User's animation goal, for example a cute cat loading animation with blink and tail wag. | |
| knowledgeDir | No | Directory containing learned knowledge files. Defaults to project knowledge/. | |
| characterType | No | Character category used to choose default layout and animation presets. | |
| availableAssetRoles | No | Optional asset roles currently available, such as body, head, tail, eye_left, eye_right. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses the tool's fallback to built-in defaults when knowledge is missing and lists the output components. It does not contradict any annotations since none exist.
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, consisting of three sentences. The purpose is stated first (front-loaded), followed by return value summary, then a clear negative constraint. Every sentence adds value 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?
Given no output schema, the description adequately covers return values. The fallback behavior is explained. Parameter schema covers inputs well. However, it lacks details on how knowledgeDir defaults work or the role of availableAssetRoles beyond schema, which could be more explicit.
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 100%, so the schema already documents all parameters. The description adds high-level context ('using learned corpus presets and naming rules') but does not provide additional per-parameter meaning beyond what the schema already contains. Baseline of 3 is appropriate.
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 converts a user goal into recommended BasicAnimationRequest parameters using learned corpus presets and naming rules. It includes a specific verb ('turn') and resource ('BasicAnimationRequest parameters'), and distinguishes itself from sibling tools that build, export, or analyze spines.
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 negative guidance ('Do not use it to write files, call Spine CLI, or build projects directly') but lacks positive guidance on when to use this tool over alternatives like spine_build_animation_from_json or spine_generate_animation_json. Usage context is implied but not explicitly contrasted with siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
spine_scan_corpusA
Use this read-only tool to confirm a corpus path before learning. It recursively scans for .spine and .json files and returns counts without parsing or exporting projects. Do not use it to generate knowledge, call Spine CLI, modify corpus files, or build animations.
| Name | Required | Description | Default |
|---|---|---|---|
| corpusDir | Yes | Directory containing Spine source .spine and .json projects to scan. | |
| maxProjects | No | Optional maximum number of .spine/.json files to return for a quick test scan. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description discloses read-only behavior, recursive scanning, and that it does not parse or export. It comprehensively covers what the tool does and does not do.
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 well-structured sentences with no redundancy; front-loaded with purpose and behavioral constraints.
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 explains the tool's input and purpose but omits the output format (e.g., JSON structure of counts), which is not covered by an output schema.
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 100% and the description adds no extra semantics beyond the schema's parameter descriptions; baseline 3 applies.
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 scans a corpus directory for .spine and .json files and returns counts, distinguishing it from learning or export 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?
It explicitly says when to use (confirm path before learning) and lists prohibited actions (generate knowledge, modify files, etc.), but does not name alternative sibling tools directly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Most tools have distinct purposes, especially read-only vs. generative ones. However, there is some potential overlap among animation-creation tools like spine_add_simple_animation, spine_control_bones, and spine_generate_animation_json, which could confuse an agent despite descriptive names.
All tools share a 'spine_' prefix and mostly follow a verb_noun pattern. Deviations like 'spine_clean' (verb only) and 'spine_info' (noun) are minor, but the overall pattern remains predictable.
16 tools cover the core workflows of Spine animation: analysis, generation, import/export, learning, and recommendations. The number is well-scoped for the domain, neither too few nor excessive.
The tool set covers the main lifecycle of Spine projects—analysis, animation creation, import/export, and project management. Minor gaps exist, such as no dedicated tool for deleting animations or editing specific timeline properties, but these are not critical.
Maintenance
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
MCP server for Hailuo (MiniMax) AI video generation
MCP server for AI dialogue using various LLM models via AceDataCloud
MCP server for Luma Dream Machine AI video generation
An MCP server that provides asset auto generator
Related MCP Servers
- AlicenseAqualityCmaintenanceAn 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.4MIT
- FlicenseBqualityCmaintenanceMCP 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
- AlicenseAqualityAmaintenanceAn MCP server that empowers AI coding agents to work effectively with Minecraft mod development, providing static analysis of decompiled source code and runtime interaction with a running Minecraft instance.314213MIT
- AlicenseNot gradedqualityCmaintenanceEnables authoring, preview, and export of Spine 2D skeletal animations via natural language from Claude Code or any MCP client, with a web dashboard and tools for keyframing, templates, and GIF preview.2MIT
Appeared in Searches
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/1425sd/spine-MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server