Substance Painter MCP
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., "@Substance Painter MCPBake the current mesh and export the Roblox textures."
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.
Substance Painter MCP
Lets Claude drive an open Adobe Substance 3D Painter: bake, build layers, tune materials, look at the result and export. 86 tools. Live-tested on Painter 12.2.0 on macOS.
This is a fork of elliezu/SubstancePainterMCP 1.0.0. See CHANGELOG.md for what changed, and that project's README for the full tool list. It is not affiliated with Adobe.
Setup
You need Painter on macOS and uv.
git clone https://github.com/MrReverso/substance-painter-mcp.gitcd substance-painter-mcpuv venv --python 3.12 .venvuv pip install --python .venv/bin/python -e ".[dev]"ln -sfn "$PWD/painter_plugin/painter_bridge.py" ~/Documents/Adobe/"Adobe Substance 3D Painter"/python/startup/painter_bridge.pyRestart Painter. Its log then shows Bridge listening on .... No launch flag is needed.
Then add the server to your MCP client. For Claude Code, put this in a .mcp.json, using your own paths:
{
"mcpServers": {
"substance-painter": {
"command": "/path/to/substance-painter-mcp/.venv/bin/python",
"args": ["-m", "substance_painter_mcp"],
"env": {
"SP_MCP_TIMEOUT": "300",
"SP_MCP_EXPORT_ROOTS": "/path/to/exports",
"SP_MCP_PROJECT_ROOTS": "/path/to/projects",
"SP_MCP_MESH_ROOTS": "/path/to/meshes"
}
}
}
}Related MCP server: dcc-mcp-substance3d-painter
Settings
Variable | Meaning |
| Bridge socket, default |
| Seconds to wait for Painter, default 30. |
|
|
| Folders exports may write to. |
| Folders |
| Folders project meshes may come from. |
| Folders high-poly and cage meshes may come from. |
| Folders imported resources may come from. |
Each file feature stays off until its folders are set. Separate several folders with :.
Typical flow
create_projectwith the mesh. If its UVs overlap or tile, passsettings={"auto_unwrap_settings": {"margin_size": 5, "island_orientation": "AlignWith3DMesh"}}, thenexport_meshso the game uses the same UVs.set_baking_mesh_inputswithlow_as_high=trueif there is no high-poly mesh, thenstart_batch_bake.Build layers with
create_fill_layer,insert_smart_material,set_layer_maskandinsert_mask_effect. Tune them withset_fill_parametersandset_levels.Check every side with
capture_turntable, close-ups with itsfocusandzoom, and single channels withcapture_channel.export_with_profilewithprofile="roblox". Checkomitted_files: Painter reports Success even when it skips a map.
Where the other ideas came from
All five projects are MIT licensed. Every file was read except lockfiles, licences and image assets.
Project | Used |
The base of this fork | |
Its notes on Painter's quirks, tuning generators, content effects, insert positions, Levels values, one undo step per recipe | |
Returning captures as images, channel previews, | |
The idea of a camera orbit, with the rotation order corrected for Painter, and the | |
Reporting the maps Painter skipped |
Read and left out, because they solve problems a one-person setup doesn't have: leases, receipts and brokers for several clients, installers and updaters, and a sandbox for script files.
QScreen.grabWindow, the capture used by jwang47 and parodyband, is not used here. On macOS it returns whatever is on screen at that spot, including other apps.
Limits
The bridge and capture are macOS-only as written. The bridge also needs a Unix socket.
capture_viewportandcapture_turntableneed Painter to have macOS Screen Recording permission, its window not to be minimized and the display to be awake.capture_channeldoesn't need any of these.Painter's Python API has no brush strokes, so paint layers can't be drawn by script.
No tool adds a stack channel such as Opacity. Use
execute_pythonfor that.Exported textures and meshes have not been tested in Roblox yet.
Available Tools
86 toolsapply_baking_presetA
Apply a captured baking preset transactionally after explicit confirmation.
| Name | Required | Description | Default |
|---|---|---|---|
| preset | Yes | ||
| confirm | No | ||
| texture_set | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It does disclose that the operation is transactional and requires explicit confirmation, which is useful mutation context, but it does not state what existing state may be overwritten, how rollback behaves, or what permissions or preconditions are required.
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 filler. Every phrase contributes to identifying the operation, its transactional nature, and its confirmation requirement.
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 mutation tool with no annotations, a nested preset object, and zero parameter descriptions, the description is too thin. The output schema reduces the need to explain return values, but the description still omits the meaning of texture_set, the preset shape, and the consequences of applying a preset.
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 for the three undocumented parameters. It implies the 'preset' argument and references confirmation, but it never explains 'texture_set' or the nested structure and contents of the preset object.
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 and resource: apply a captured baking preset. It also distinguishes this operation from capture_baking_preset and other baking siblings by emphasizing application rather than inspection or configuration.
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 'after explicit confirmation' gives a prerequisite for use, but the description does not compare this tool against alternatives such as configure_baking, preflight_bake, or apply_fill_preset. The usage context is implied rather than fully specified.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
apply_fill_presetC
Apply a named preset of a Fill, Fill Effect, Generator or Filter source.
| Name | Required | Description | Default |
|---|---|---|---|
| uid | Yes | ||
| preset | Yes | ||
| channel | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
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. 'Apply' signals a mutation that presumably overwrites existing fill settings, but the description never says what prior state is replaced, whether presets must pre-exist, or whether permissions/resources are required. Only the 'named preset' phrasing hints at a dependency.
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?
One efficient sentence with no padding, and the action is front-loaded. Its problem is under-specification rather than verbosity, which caps it at adequate.
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?
An output schema exists, so return values need not be described, but for a 3-parameter mutation tool with zero annotation coverage and zero schema descriptions the definition leaves too much unknown. An agent cannot tell what uid refers to or what applying a preset does to current fill state.
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 must compensate and largely doesn't. It only implies that 'preset' is a name; 'uid' (which object type?) and the optional 'channel' (what a channel selection does here) are completely unexplained.
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 definition names a specific verb+resource (apply a named preset) and enumerates the source kinds it targets: Fill, Fill Effect, Generator, Filter. That distinguishes it from apply_baking_preset and apply_smart_mask in the sibling list, though the target object (uid) is left unnamed.
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 versus set_fill_parameters, set_fill_resource, or apply_baking_preset, and no prerequisites (does the layer need to be a fill layer? must the preset already exist?). Usage is only inferable from the title.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
apply_smart_maskC
Apply a Smart Mask resource to a layer using transactional mask insertion.
| Name | Required | Description | Default |
|---|---|---|---|
| uid | Yes | ||
| resource_url | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the behavioral burden. It hints at a transactional insertion but does not disclose whether an existing mask is replaced, whether the layer must be selected or unlocked, what permissions or resource formats are required, or how failures behave.
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 no wasted text. It communicates the action and target efficiently.
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 tool is a mutation with no annotations and completely undocumented parameters. An output schema exists, so return values need not be explained, but the description is still too thin for an agent to call this safely and correctly.
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 both parameters need explanation. The description only weakly implies that uid identifies the layer and resource_url identifies the Smart Mask resource; it does not clarify expected formats, identifiers, or constraints.
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 resource: apply a Smart Mask resource to a layer. This is clear enough to understand the operation, but it does not differentiate the tool from nearby siblings such as insert_mask_effect or set_layer_mask.
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 guidance on when to use this tool versus insert_mask_effect, set_layer_mask, or insert_smart_material. The phrase 'using transactional mask insertion' describes mechanism, not usage conditions, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
audit_projectB
Audit texture sets, channels, layer hygiene, and outdated resources.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full disclosure burden. 'Audit' strongly implies a non-mutating inspection and there are zero parameters, so there is little risk of unintended writes, but the description says nothing about cost, coverage limits (whole project vs. selection), or what happens on large projects.
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?
One front-loaded sentence with no filler; every word earns its place by naming an audited domain. It is efficient but flat, with no structure to signal which domain matters most or how results are organized.
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?
An output schema exists, so return values need not be described, and the zero-parameter schema is trivially complete. What is missing is behavioral framing for a zero-arg project-wide diagnostic: whether it is read-only, how heavy it is, and whether it scopes to the whole project or the current 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?
The tool takes zero parameters, so there is no parameter semantics to explain and the baseline of 4 applies. Nothing in the description contradicts or obscures the empty 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 uses a specific verb ('Audit') and enumerates the four domains covered: texture sets, channels, layer hygiene, and outdated resources. That is enough to distinguish it from pure listers like list_layers or find_outdated_resources, though it never names a sibling or explains how the combined audit relates to those narrower 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 when-to-use, when-not-to-use, or alternative routing information. An agent cannot tell from the text whether to run this whole-project audit or instead call find_outdated_resources and list_layers individually, nor whether the audit is expensive enough to warrant that choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cancel_bakeB
Request cooperative cancellation of a running bake job.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. 'Cooperative cancellation' is genuinely useful — it tells the agent this is a request, not guaranteed immediate termination — but it omits idempotency, what state the job transitions to, whether partial bake output survives, and permission requirements.
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?
One sentence, front-loaded with the action and its scope, zero filler. Nothing is wasted or buried.
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 output schema covers return values, so the description needn't explain them. What's missing is operational context: how to obtain job_id, whether to poll get_bake_job afterward, and what happens to in-progress bake results.
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% and the single required parameter job_id is never described. The description does not say where the job id comes from (start_bake / get_bake_job) or what format it takes, leaving the only parameter undocumented in both schema and prose.
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?
Specific verb+resource ('cancel' + 'bake job') with a meaningful qualifier ('cooperative') that distinguishes it from any hard-kill semantics. It is clearly separable from start_bake/get_bake_job siblings, though it doesn't name them.
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 'running bake job' implies the applicable state, but there is no explicit when/when-not guidance, no mention of what to do if the job already completed, and no pointer to get_bake_job for checking status before or after.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
capture_baking_presetC
Capture a portable JSON baking preset without filesystem-backed properties.
| Name | Required | Description | Default |
|---|---|---|---|
| bakers | No | ||
| texture_set | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
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 discloses that the output is portable JSON without filesystem-backed properties, but does not clarify whether capture has side effects, required permissions, or mutation/read-only behavior.
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 filler, and the key qualifier about portability appears immediately. It is efficient, though it omits necessary detail rather than adding it.
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?
An output schema exists, so return values need not be explained, and no annotations are present. However, with two parameters at 0% schema description coverage and no usage or parameter detail in the description, the definition is not complete enough for reliable 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?
Schema description coverage is 0%, and the description does not mention either parameter. It gives no meaning for the required texture_set argument or the optional bakers list, leaving both undocumented beyond their schema titles.
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 states a specific verb and resource: capture a baking preset, and adds that the preset is portable JSON without filesystem-backed properties. It is distinguishable from siblings like apply_baking_preset or inspect_baking, though it does not explicitly name alternatives.
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 'without filesystem-backed properties' hints at a portability use case but does not say when to use this tool rather than inspect_baking, configure_baking, or apply_baking_preset. No alternatives or exclusions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
capture_channelC
See one flattened channel as a flat texture, for example Roughness or Normal.
| Name | Required | Description | Default |
|---|---|---|---|
| channel | No | BaseColor | |
| size_log2 | No | ||
| texture_set | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full behavioral burden. It does not clarify permissions, whether the operation is read-only, what is returned (image data, file path, etc.), or what happens if the channel is missing.
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?
It is a single, front-loaded sentence with no redundant or filler content. The description is concise and easy to scan, even though it omits necessary details elsewhere.
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 three parameters, no annotations, no output schema, and zero schema description coverage, the definition is substantially incomplete. It does not explain the return format, the role of texture_set, or the effect of size_log2, so an agent would need to guess.
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 should explain all three parameters. It only gives examples for 'channel' (Roughness, Normal) and does not mention 'texture_set' or 'size_log2', leaving most parameter meaning 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 description states a specific resource: one flattened channel rendered as a flat texture, with concrete examples (Roughness, Normal). The verb 'See' is a bit vague about whether this returns an image, a file, or a preview, and it does not distinguish itself from siblings like capture_viewport or capture_turntable.
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 gives no guidance on when to use this tool versus alternatives such as capture_viewport, capture_turntable, or export_textures. The intended context is only implied by the name and the word 'channel'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
capture_turntableB
See every side: orbit the camera, capture each yaw angle, then restore the view.
zoom above 1 moves closer. A negative elevation looks up from below. focus is the [x, y, z] point to orbit, for close-ups of one part; it defaults to the model's center.
| Name | Required | Description | Default |
|---|---|---|---|
| zoom | No | ||
| focus | No | ||
| angles | No | ||
| max_size | No | ||
| elevation | 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 one important side effect: the camera is orbited and then the view is restored, so the agent knows the viewport state is not left altered. It says nothing about what the call returns (image files? paths? a list?), where captures land, how many images the angles list produces, or whether it is slow/expensive.
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?
Front-loaded with the action summary followed by parameter hints; every sentence carries information and there is no filler. Slightly hurt by the abrupt line-wrapped fragments ('zoom above 1 moves closer.') that read as notes rather than a structured description.
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 five-parameter tool with no annotations and no output schema, the description is thin: it never states the return payload or output location, doesn't explain 'angles' or 'max_size', and gives no cost/pagination expectations for a multi-capture operation. An agent could call it but could not predict what it gets back.
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 explain zoom ('above 1 moves closer'), elevation (negative looks up from below) and focus ([x, y, z] orbit point, default model center). It leaves the 'angles' parameter list and 'max_size' entirely undocumented, so roughly two of five parameters remain guesswork.
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 concrete verb chain (orbit, capture each yaw angle, restore view) and a resource (the turntable/camera), so an agent knows this produces multi-angle captures rather than a single frame. It never names how it differs from capture_viewport or capture_channel, which are the obvious siblings an agent would confuse it 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?
'for close-ups of one part; it defaults to the model's center' implies a use case for the focus parameter, and 'see every side' implies the multi-angle use case. There is no explicit when-to-use-this-vs-capture_viewport guidance and no statement of prerequisites or when to avoid the tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
capture_viewportC
Look at Painter. view="3d" is the model; view="window" includes the whole UI.
| Name | Required | Description | Default |
|---|---|---|---|
| view | No | 3d | |
| max_size | 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, yet it discloses nothing about output format, whether an image is returned, or how max_size affects the result. The only content is a brief view-mode distinction.
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 only two short sentences and contains no filler. However, its brevity reflects under-specification rather than tightly packed useful detail.
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 two-parameter capture tool with no annotations or output schema, the description should at least state that it produces a viewport image and explain max_size. Neither is present, leaving meaningful gaps for correct 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?
Schema description coverage is 0%, so the description must compensate for both parameters. It explains the view parameter's two values but says nothing about max_size, leaving half the 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?
The description says only 'Look at Painter,' which is vague and never states that the tool captures a screenshot/image of the viewport. It clarifies the view mode values but does not clearly distinguish the tool's core action from capture_turntable or capture_channel.
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 guidance on when to use this tool versus alternatives such as capture_turntable or capture_channel. The view-mode distinction is useful but does not tell the agent when this capture is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
close_projectA
Close the open project; refuses unsaved work unless discard_unsaved=true.
| Name | Required | Description | Default |
|---|---|---|---|
| discard_unsaved | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the key refusal behavior and the flag override, which is valuable, but it doesn't say whether discarding is permanent, whether close is reversible, or what permissions or failure modes apply.
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?
One short sentence, front-loaded with the action and followed immediately by the key guardrail. 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?
The tool is simple, has only one boolean parameter, and has an output schema, so return values need not be explained. The description covers the essential call behavior and the main failure condition; only deeper mutation/safety context is missing.
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. It does: 'unless discard_unsaved=true' explains the effect of the only parameter in context, which is meaningfully beyond the bare name and default in 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 states a specific verb and resource ('Close the open project'), which clearly distinguishes it from siblings like save_project or open_project. It doesn't explicitly name those alternatives, but the purpose is 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?
It implies when the tool is usable ('open project') and when the flag is required ('refuses unsaved work unless discard_unsaved=true'), but it does not guide the agent to save_project instead of discarding, nor does it state any exclusions or prerequisites beyond the open-project implication.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
configure_bakingC
Transactionally configure Texture Set, UV tile, common, and per-baker settings.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | No | ||
| enabled | No | ||
| texture_set | Yes | ||
| baker_values | No | ||
| common_values | No | ||
| enabled_bakers | No | ||
| curvature_method | No | ||
| enabled_uv_tiles | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
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 mentions that configuration is 'transactional', which is a useful behavioral trait (atomicity), but it omits critical details such as required permissions, side effects, what happens to unspecified settings, and whether the operation is destructive or reversible.
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 is efficient, though given the tool's complexity and lack of other documentation, it may be too terse to be fully helpful.
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 tool has 8 parameters with zero schema descriptions and no annotations, making it complex. The description is minimal and does not provide enough context for an agent to invoke the tool correctly, especially regarding parameter meanings and behavioral constraints. An output schema exists, so return values need not be explained, but other gaps remain.
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 vaguely groups settings into 'Texture Set, UV tile, common, and per-baker settings', which partially maps to texture_set, enabled_uv_tiles, common_values, and baker_values, but it does not explain the remaining parameters (confirm, enabled, enabled_bakers, curvature_method) or provide any format or usage 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 explicitly states a specific verb (configure) and resources (Texture Set, UV tile, common, and per-baker settings), making the tool's purpose clear. It does not explicitly differentiate from sibling tools like apply_baking_preset or set_baking_mesh_inputs, but the scope is distinct enough that an agent can infer its role.
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 such as apply_baking_preset, inspect_baking_parameters, or start_bake. There are no exclusions or conditions that would help an agent choose among the many baking-related sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_fill_layerC
Create a Fill Layer, optionally with sRGB base color [r,g,b].
position is top, or above, below or inside reference_uid.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| position | No | top | |
| base_color | No | ||
| texture_set | No | ||
| reference_uid | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It conveys that this is a creation/mutation and that placement can be relative to reference_uid, but it does not disclose whether a project must be open, what happens with an invalid reference_uid, whether the new layer becomes selected, or whether the operation is undoable.
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 short sentences with the core action front-loaded and no filler. The position sentence is slightly awkwardly worded ('position is top, or above, below or inside reference_uid'), but it is compact and functional.
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?
An output schema exists, so return values need not be described, but for a five-parameter mutation tool with 0% schema coverage and no annotations, the description leaves texture_set and name unexplained and omits preconditions and side effects. It is under-specified 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 description coverage is 0%, so the description must compensate for five parameters. It adds real meaning for base_color (sRGB [r,g,b]) and position (top/above/below/inside relative to reference_uid, which is not expressed in the schema), but name and texture_set receive no explanation at all.
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 resource ('Create a Fill Layer'), which distinguishes it from create_paint_layer, create_group, and insert_smart_material by resource type. It stops short of explicitly naming a sibling or contrasting use cases, so it is clear but not fully differentiated.
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 explains how to use two parameters but never says when to choose this tool over create_paint_layer or insert_smart_material, nor does it state prerequisites such as an open project or an existing reference layer. No when/when-not guidance is present.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_groupC
Create a layer group at the top, or above, below or inside reference_uid.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| position | No | top | |
| texture_set | No | ||
| reference_uid | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full disclosure burden, yet says nothing about whether the layer stack is reordered, what happens when reference_uid is null while position is 'above'/'below'/'inside', permission or project-state requirements, or whether the group is empty on creation. It hints at placement semantics but does not resolve them into actionable behavior.
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 no padding, which is the right shape for a simple creation tool. However, the comma-laden clause 'at the top, or above, below or inside reference_uid' reads ambiguously and forces rereading, so brevity comes at the cost of parseability.
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?
An output schema exists, so return values need not be explained, but for a 4-parameter mutation tool with zero annotation coverage and zero schema descriptions, the single sentence leaves most call-critical information missing — notably the valid position values and the meaning of texture_set.
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 only two of four parameters get any mention: reference_uid is named, and position is gestured at through the 'top, above, below or inside' phrasing — but without stating those are the accepted token values, which the schema itself does not enumerate. 'name' and 'texture_set' are entirely undocumented anywhere.
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 resource ('Create a layer group'), which distinguishes it from create_fill_layer and create_paint_layer in the sibling list. The scope caveat that placement is relative to a reference layer adds usefulness, though the phrase 'at the top, or above, below or inside reference_uid' is grammatically muddled and never says plainly what 'top' means.
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?
No guidance on when to use this versus create_fill_layer, create_paint_layer, or insert_smart_material, and no prerequisites (must a project be open? must layers exist?). The agent must infer everything about selection 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.
create_layer_recipeB
Create a nested recipe atomically, optionally saving an approved .spp backup first.
| Name | Required | Description | Default |
|---|---|---|---|
| recipe | Yes | ||
| backup_mode | No | Incremental | |
| backup_path | No | ||
| texture_set | No | ||
| overwrite_backup | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It usefully discloses that creation is atomic and that a backup may be saved first, but it omits permissions, failure behavior, what an 'approved .spp' means, and how overwrite_backup affects existing backups.
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 immediately states the action and the optional backup behavior.
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?
This is a mutation tool with a required nested recipe array, five parameters, and no annotations, yet the description is extremely thin. The output schema may cover return values, but the input semantics and behavioral context are far too sparse for an agent to invoke 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 five parameters, so the description must compensate. It mentions the recipe and backup concepts but does not explain backup_mode, backup_path, texture_set, or overwrite_backup, leaving most parameter meaning 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 description gives a specific verb and resource: creating a nested recipe atomically, with an optional .spp backup. This is clear enough to understand the operation, but it does not explicitly distinguish it from the sibling plan_layer_recipe or clarify that it is a layer recipe.
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 plan_layer_recipe or other layer-creation siblings. The phrase 'optionally saving an approved .spp backup first' hints at a backup option but does not state when that option should be used or what conditions make this tool appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_paint_layerC
Create a Paint Layer at the top, or above, below or inside reference_uid.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| position | No | top | |
| texture_set | No | ||
| reference_uid | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full burden. It implies a mutation (creating a layer) and mentions relative placement, but omits side effects, whether the layer becomes selected/active, what happens if reference_uid is omitted, and permission requirements.
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?
It is a single front-loaded sentence with no filler, but the wording is awkward and under-specified rather than crisp. Brevity here comes at the cost of clarity.
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?
Output schema exists so return values needn't be explained, but for a mutation tool with no annotations and 0% schema coverage, the description leaves key parameters and behavioral effects undocumented. An agent would have to guess how name, texture_set, and position defaults interact.
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 for all four parameters. It vaguely touches position and reference_uid but never mentions name (required) or texture_set, and does not enumerate valid position values (top/above/below/inside).
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 concrete verb and resource ('Create a Paint Layer') and hints at placement relative to a reference. However, the placement phrasing 'at the top, or above, below or inside reference_uid' is grammatically garbled and does not distinguish this tool from siblings like create_fill_layer or create_group.
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?
No guidance on when to use this tool versus create_fill_layer, create_group, or insert_smart_material. It also does not explain when reference_uid should be supplied versus omitted.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_projectC
Back up an optional current project, create a typed project, and verify its file.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | No | ||
| settings | No | ||
| overwrite | No | ||
| backup_mode | No | Incremental | |
| output_path | Yes | ||
| mesh_file_path | Yes | ||
| replace_current | No | ||
| overwrite_backup | No | ||
| template_file_path | No | ||
| backup_current_path | No | ||
| mesh_map_file_paths | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations at all, the description carries the full burden, and it discloses only that a backup happens and that the file is verified. It says nothing about what the backup touches, whether existing projects are replaced, whether the call is blocking or returns a job, or what confirm/overwrite mean behaviorally — significant gaps for a mutating tool with destructive-sounding flags.
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 main action front-loaded and no filler. It is efficient, though the brevity is partly achieved by omitting information the agent actually needs.
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?
An output schema exists, so return values need not be explained, but for an 11-parameter mutation with no annotations the description is far too thin. Critical details — the role of confirm, what overwrite/replace_current destroy, and the relationship to the plan/job siblings — are absent.
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 11 parameters, so the description must compensate and largely does not. 'Back up an optional current project' only loosely gestures at backup_mode/backup_current_path, and nothing explains confirm, overwrite, replace_current, overwrite_backup, settings, template_file_path, or mesh_map_file_paths.
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 specific verbs and a resource: back up the current project, create a typed project, verify the file. An agent can tell this is the creation step rather than a status/list tool. It stops short of distinguishing itself from siblings like plan_project_creation or get_project_creation_job, which appear to belong to the same plan/execute/job family.
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 guidance on when to call this instead of plan_project_creation, get_project_creation_job, or open_project, and no stated prerequisites (for example, whether planning must happen first or whether confirm must be set). The agent must infer the workflow position 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.
delete_layerB
Delete a layer or group by UID. This modifies the open project.
| Name | Required | Description | Default |
|---|---|---|---|
| uid | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden, and it only says that the operation modifies the open project. It does not disclose whether deletion is permanent, whether deleting a group deletes its contents, or what permissions or project state are required.
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 short sentences with no wasted phrasing. The primary purpose is front-loaded, followed by the most important behavioral note.
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?
An output schema exists, so return values need not be explained, but this is a destructive mutation with no annotations. The description is insufficiently complete about safety, irreversibility, group deletion semantics, and how to identify a valid UID.
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 for the undocumented uid parameter. It does identify that the argument is a UID and that it can refer to a layer or group, but it does not explain UID format or where to find valid UIDs.
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 states a specific verb and resource: delete a layer or group by UID. It clearly distinguishes this tool from sibling layer tools such as create_paint_layer, rename_layer, and list_layers, which do not delete layers.
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 deletion but gives no guidance on when to use it versus alternatives, how to obtain the UID, or whether deletion is reversible. It also does not mention prerequisites such as selecting or locating the target layer first.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
diff_layer_snapshotsB
Compare two layer snapshots by UID and report added, removed, and changed nodes.
| Name | Required | Description | Default |
|---|---|---|---|
| after | Yes | ||
| before | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the burden, and it does establish this is a non-mutating comparison producing a structured change report rather than an edit. However, it omits important behavior: whether mismatched or stale snapshots are rejected, whether it is read-only, and how 'changed' is determined. An output schema exists, so return formatting is not required here.
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 action, the inputs, and the result shape front-loaded. Nothing is padded and nothing needs trimming.
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 output schema covers the return value, so the description need not enumerate result fields. But for a two-argument tool with nested, fully undocumented object parameters, the description should at least say where the snapshot objects come from and what constraints they must satisfy; those gaps are unfilled.
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% and both parameters are opaque 'object' types with no titles or descriptions, so the description must compensate. It only indirectly implies the parameters are layer snapshots and introduces 'by UID', which actually creates ambiguity about whether before/after are snapshot objects, UID strings, or payloads from snapshot_layer_tree.
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 gives a specific verb ('Compare') and resource ('two layer snapshots') and names the output shape (added, removed, changed nodes), so the operation is unambiguous. It does not explicitly point at the sibling that produces snapshots (snapshot_layer_tree) or distinguish itself from list_layers/find_layers, so it falls short of full sibling differentiation.
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: an agent can infer this is the tool for spotting drift between two captured layer-tree states. There is no stated precondition (e.g. both snapshots must come from the same project/layer tree), no mention of the paired snapshot_layer_tree tool, and no guidance on when a plain list_layers call would suffice instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
execute_pythonA
Execute raw Painter Python only when SP_MCP_ALLOW_EXECUTE_PYTHON=1.
Variables survive between calls. Assign to result to return a value; printed
text comes back as output.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It usefully discloses state persistence between calls and how values are returned via `result` or printed `output`, but it omits key behavioral details such as side effects, security scope, failures, timeouts, and execution 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?
The description is short and front-loaded: the gating condition appears first, followed by only the essential persistence and return-value semantics. Every sentence adds useful 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?
An output schema exists, so the description need not fully explain return values, and it still helpfully notes `result` and `output`. For a raw code-execution tool with no annotations, however, it should say more about side effects, permissions, and failure modes to be 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%, so the description must compensate for the undocumented `code` parameter. It explains the return conventions using `result` and `output`, but it does not describe what form the code parameter should take or any constraints on the supplied Python.
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 and resource: executing raw Painter Python. It distinguishes this as a low-level escape hatch through the environment-variable gate, but it does not explicitly contrast it with the many domain-specific 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?
It gives one important usage condition: only execute when SP_MCP_ALLOW_EXECUTE_PYTHON=1. However, it does not say when an agent should prefer this over dedicated siblings like create_project, configure_baking, or set_fill_parameters.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_meshB
Export the project mesh, with any Auto UV result, inside SP_MCP_EXPORT_ROOTS.
| Name | Required | Description | Default |
|---|---|---|---|
| overwrite | No | ||
| output_path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
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 does disclose a real behavioral constraint not present in the schema — the output path is sandboxed to SP_MCP_EXPORT_ROOTS — which is genuinely useful. However, it says nothing about what happens when the file already exists, what the Auto UV inclusion implies for the written asset, or any failure modes, leaving the mutation semantics largely unexplained.
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 no filler; the verb and resource come first and the path constraint follows. It is arguably too terse rather than too long, but nothing is wasted.
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 output schema means return values need not be explained, and the description covers purpose plus the path sandbox. With no annotations and zero schema coverage, the missing piece is overwrite/failure behavior for a write tool, which is a meaningful gap for correct 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?
Schema description coverage is 0% for two parameters. The description partially compensates for output_path by revealing the export-root restriction, but says nothing about 'overwrite' — whether omission means the call fails on an existing file or silently skips — leaving one of two parameters entirely 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 ('Export') and resource ('the project mesh'), and adds the notable detail that any Auto UV result is included. It distinguishes itself from the sibling export_textures/export_with_profile tools by naming the mesh as the exported artifact, though it never explicitly contrasts with them.
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: the export must land inside SP_MCP_EXPORT_ROOTS. There is no statement of when to prefer this over export_textures or export_with_profile, nor any prerequisite (e.g. project open, mesh loaded). The constraint hints at usage but does not guide tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_smart_maskC
Export a layer mask as a verified Smart Mask inside SP_MCP_EXPORT_ROOTS.
| Name | Required | Description | Default |
|---|---|---|---|
| uid | Yes | ||
| name | Yes | ||
| overwrite | No | ||
| output_directory | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full disclosure burden. It does add one real behavioral constraint — output is confined to SP_MCP_EXPORT_ROOTS — but says nothing about what 'verified' means, whether export fails or silently succeeds on collision, or how the `overwrite` flag (default false) changes behavior.
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 no filler, leading with the action and resource. It is efficient, though that efficiency is partly the result of omitting information the agent actually needs.
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?
An output schema exists, so return values needn't be spelled out. However, for a four-parameter, no-annotation export/mutation tool, the description leaves preconditions, overwrite semantics, naming behavior, and 'verified' undefined — significant gaps for correct 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?
Schema description coverage is 0% across four parameters, so the description must compensate and largely doesn't. It implies output_directory is constrained to SP_MCP_EXPORT_ROOTS, which is genuinely useful, but `uid`, `name`, and `overwrite` are left entirely unexplained (whose uid, name of what artifact, overwrite of what).
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?
Names a specific verb (Export) and a specific resource (a layer mask, materialized as a 'verified Smart Mask'), which is enough to separate it from export_smart_material and export_textures in the sibling list. It stops short of explicitly contrasting itself with those siblings, so an agent must infer the distinction.
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 when-to-use guidance: nothing about preconditions (e.g. the layer must already have a mask), nothing about when to prefer apply_smart_mask or export_smart_material instead, and no mention of what to do if an export already exists. Usage has to be inferred entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_smart_materialC
Export a group as a verified Smart Material inside SP_MCP_EXPORT_ROOTS.
| Name | Required | Description | Default |
|---|---|---|---|
| uid | Yes | ||
| name | Yes | ||
| overwrite | No | ||
| output_directory | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the load; it does disclose two real behavioral facts: output is confined to SP_MCP_EXPORT_ROOTS (a sandbox constraint) and the material is 'verified'. It says nothing about what 'verified' entails, whether existing files are replaced, or what failures look like — notable given the 'overwrite' parameter exists.
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 no filler; the constraint on output location is stated up front. It is tight rather than padded, though its brevity comes at the cost of the missing detail noted elsewhere.
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?
An output schema exists, so return values need not be described, but for a file-writing export tool with no annotations and four undocumented parameters (0% coverage) the definition leaves key questions open: which group uid refers to, what happens when overwrite is false and the target exists, and how 'verified' is determined.
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 barely does: 'a group' loosely implies uid identifies a group, and the export-roots clause constrains output_directory. Nothing explains what 'name' names, what 'overwrite' does, or the format of uid.
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 names a specific verb ('Export'), a specific source object ('a group') and a specific artifact ('a verified Smart Material'), plus a hard output boundary (SP_MCP_EXPORT_ROOTS). That is enough to distinguish it from siblings like export_smart_mask, export_textures, export_mesh and export_with_profile, though it never explicitly contrasts with them.
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?
No statement of when to use this rather than export_smart_mask or export_textures, no prerequisites, and no note on whether the group must already be selected or created. Usage is only implied by the tool's name and the word 'Export'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_texturesB
Export textures inside SP_MCP_EXPORT_ROOTS and verify every output file.
| Name | Required | Description | Default |
|---|---|---|---|
| preset | Yes | ||
| bit_depth | No | ||
| overwrite | No | ||
| size_log2 | No | ||
| file_format | No | ||
| texture_sets | No | ||
| output_directory | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It does disclose two genuinely useful traits: output is confined to SP_MCP_EXPORT_ROOTS and each written file is verified. It omits overwrite semantics (despite an overwrite parameter defaulting to false), failure/partial-write behavior, and permission requirements for a mutating tool.
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 zero filler; the safety boundary and verification guarantee are stated up front. 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?
An output schema exists, so return values need not be explained. But for a 7-parameter mutation tool with no annotations and no parameter documentation, the description leaves too much unspecified — particularly the required preset vocabulary and the overwrite/bit-depth behaviors that materially change the result.
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 7 parameters, so the description must compensate and does not. It never mentions preset, output_directory, overwrite, bit_depth, size_log2, file_format, or texture_sets, leaving the agent to guess valid values and defaults from bare titles.
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 resource ("Export textures") plus a distinctive behavior ("verify every output file"), which an agent can grasp immediately. It does not, however, distinguish itself from siblings like plan_texture_export or export_with_profile, so the agent cannot tell from the description alone which export path to take.
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 the obvious alternatives (plan_texture_export, export_with_profile, plan_profile_export). The only implied constraint is the SP_MCP_EXPORT_ROOTS boundary, which is a limitation rather than routing advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_with_profileC
Run a curated export profile inside SP_MCP_EXPORT_ROOTS and verify outputs.
| Name | Required | Description | Default |
|---|---|---|---|
| profile | Yes | ||
| overwrite | No | ||
| size_log2 | No | ||
| texture_sets | No | ||
| output_directory | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the full behavioral burden. It mentions running a profile and verifying outputs, but does not explain write behavior, overwrite semantics, permissions, side effects, or what verification entails.
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 filler. It is concise, though the terse phrasing leaves important behavior and parameter details unstated.
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?
An output schema exists, so return values need not be explained. However, for a five-parameter export operation with no annotations and no schema descriptions, the description is missing too much about inputs, overwrite behavior, and execution scope.
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 has five parameters with 0% description coverage, and the description only names the profile concept. It provides no meaning for output_directory, overwrite, size_log2, or texture_sets.
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 names a specific action and resource: running an export profile and verifying outputs. It does not distinguish this from siblings such as export_textures, plan_profile_export, or list_export_profiles, so an agent cannot fully infer when this is the right 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?
The only implied constraint is that execution happens inside SP_MCP_EXPORT_ROOTS. There is no explicit guidance on when to use this instead of plan_profile_export, export_textures, or list_export_profiles.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_layersC
Search layers by partial name, exact node type, and visibility.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | ||
| visible | No | ||
| node_type | No | ||
| texture_set | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden. It does not say what an empty query returns (all layers?), whether matching is case-sensitive, whether filters are ANDed, or whether results are capped — all material for a search tool. It also omits the texture_set filter entirely.
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 zero filler; the three filter axes are listed immediately. It is efficient, though the terseness is part of why behavioral and parameter gaps remain.
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?
An output schema exists, so return values need not be explained, but for a 4-parameter search tool with no annotations the description is thin: one parameter is unmentioned and default/semantics of empty filters are undefined. An agent could call it, but could not predict its results 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 and it partly does: it clarifies that query matches on partial name while node_type requires an exact match, which the bare schema never states. The fourth parameter, texture_set, is left undocumented in both schema and description, so coverage is incomplete.
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 (Search) plus resource (layers) and enumerates the three filter axes (partial name, exact node type, visibility). An agent can tell this is a filtered lookup rather than a mutation. It does not, however, contrast itself with the sibling list_layers, which is the nearest alternative.
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 only describes what the tool does; it never says when to reach for it over list_layers or the layer-tree inspection tools (snapshot_layer_tree, diff_layer_snapshots). There are no preconditions, no exclusions, and no note on how filters combine.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_outdated_resourcesA
Plan project-resource replacements without modifying the project.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
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 usefully disclose that the operation is non-destructive ('without modifying the project'). However, it doesn't explain what makes a resource 'outdated', whether the scan is project-wide or limited to selected layers, or any cost/permission implications — meaningful gaps for a no-annotation tool.
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?
One short sentence with zero waste, and the most decision-relevant fact (non-mutating) is front-loaded after the purpose.
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?
An output schema exists, so return-value explanation is unnecessary, and there are no parameters to document. What is missing is domain context: the criteria for 'outdated' and the scope of the scan, which an agent needs to decide whether this is the right tool versus list_project_resources or search_resources.
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 takes zero parameters, so there is nothing for the description to disambiguate. Baseline 4 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?
States a specific action ('plan project-resource replacements') against a specific resource, and the name plus description together make clear it identifies outdated resources. It doesn't name the sibling replace_outdated_resources explicitly, but 'without modifying the project' signals the read-only distinction from that mutation 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?
The phrase 'without modifying the project' implies this is the planning step before a replacement operation, but no explicit when-to-use, prerequisites, or named alternative (e.g., replace_outdated_resources) is given. The agent must infer the workflow from the sibling names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_bake_jobB
Return progress and terminal status for the latest or selected bake job.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
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 disclosure burden. It indicates a read-oriented status check but does not explicitly state that it is non-destructive, whether it blocks or polls, what happens if the job is missing, or any auth/rate-limit considerations. The output schema may cover return shape, but behavioral traits are largely left implicit.
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 definition is a single front-loaded sentence with no wasted words. It immediately communicates the action and the two supported job-selection modes.
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 output schema exists, so the description need not explain return values in detail. However, for a job-status tool with no annotations, the description is only minimally complete: it omits polling expectations, error behavior, and how it fits into the bake workflow alongside start_bake and cancel_bake.
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% and the only parameter is undocumented in the schema beyond 'Job Id' with a null default. The description compensates by explaining that the tool returns the latest job by default or a selected job when an identifier is supplied, which is meaningful semantic guidance for the optional job_id parameter.
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 states a specific verb ('Return') and resource ('progress and terminal status') for a bake job, and clarifies that it works for either the latest or a selected job. It is clear enough to distinguish from siblings like start_bake or cancel_bake, though it does not explicitly name those alternatives.
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 polling usage through 'progress and terminal status' but gives no explicit guidance on when to call it, when not to call it, or how it relates to start_bake, cancel_bake, or other job-status siblings such as get_mesh_reload_job. An agent must infer the workflow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_capabilitiesA
Report runtime-supported channels, blend modes, and version-sensitive features.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. "Report" implies a read-only operation, and "runtime-supported" and "version-sensitive" add some useful context, but it does not state side effects, permissions, or whether results vary by environment. The output schema covers return values.
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 clear sentence with no wasted words. The key information is 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?
For a zero-parameter capability-discovery tool with an output schema, the description is nearly complete. It specifies the categories of information returned, though it could say more about runtime context or how to use the result.
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, so there is no parameter semantics to document. Baseline score 4 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?
Uses a specific verb ("Report") and names the exact resources: runtime-supported channels, blend modes, and version-sensitive features. It is distinguishable from siblings like get_project_info or painter_status, though it does not explicitly contrast itself with them.
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 intended use is implied by the name and description—call it to discover runtime capabilities—but there is no explicit when-to-use guidance, prerequisites, or comparison to alternative tools. Adequate but not instructive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_fill_parametersB
Inspect parameters and presets of a Fill, Fill Effect, Generator or Filter.
Use it to tune generators such as edge wear. Effect UIDs come from snapshot_layer_tree.
| Name | Required | Description | Default |
|---|---|---|---|
| uid | Yes | ||
| channel | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the behavioral burden; 'Inspect' implies a non-destructive read, which is the key safety signal, and the UID provenance hint adds workflow context. It does not say whether results reflect live state, whether presets are included in the response, or what the 'channel' scoping does.
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 short sentences, front-loaded with the purpose before the workflow hint, with no filler. The 'tune' phrasing is the only slightly wasteful/ambiguous word.
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?
An output schema exists, so return values need not be described, and the description covers what the tool operates on and where UIDs come from. The unexplained 'channel' parameter and the absence of any read-only or side-effect statement leave gaps for a tool with no annotations.
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, and it only partially does: it explains where UIDs come from (snapshot_layer_tree) but not what kind of object the UID identifies at call time. The 'channel' parameter is never mentioned in the description or the schema, leaving one of two arguments fully opaque.
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 ('Inspect') and resource ('parameters and presets of a Fill, Fill Effect, Generator or Filter'), which clearly distinguishes it from the sibling setter set_fill_parameters. It stops short of naming that sibling explicitly, so the read-vs-write contrast is inferred rather than stated.
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 it to tune generators such as edge wear' gives a context of use, and 'Effect UIDs come from snapshot_layer_tree' gives the prerequisite for obtaining the required argument. However, 'tune' muddies the read-only intent, and there is no explicit statement of when to use this versus set_fill_parameters or get_procedural_inputs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_fill_projectionB
Inspect a Fill layer's projection mode and common UV transformation.
| Name | Required | Description | Default |
|---|---|---|---|
| uid | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full behavioral burden. "Inspect" does convey a non-mutating read, which is the most important trait, but it says nothing about error behavior on non-fill layers, required permissions, or whether the "common UV transformation" is a normalized summary versus raw values.
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 no filler; the verb and target come first and 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?
An output schema exists, so return-value explanation is appropriately omitted, and the tool is simple. However, the undescribed uid and the unstated precondition that the layer be a Fill layer leave meaningful gaps for a call that will fail outright with a wrong or non-fill uid.
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 single parameter 'uid' is completely undocumented in both schema and description. The description never states that uid identifies the target layer, nor what kind of identifier it is — leaving the caller to guess.
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?
Names a specific verb ("Inspect") and a specific resource ("a Fill layer's projection mode and common UV transformation"), which cleanly signals a read operation on fill projection state. It implicitly separates from the sibling mutators set_fill_projection / set_fill_projection_advanced, though it never names them 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?
There is no when-to-use guidance, no prerequisites (e.g. that the layer must be a Fill layer), and no mention of the sibling set_fill_projection / set_fill_projection_advanced as the write-side counterparts. An agent must infer the read-before-write workflow entirely on its own.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_fill_sourcesC
Inspect a Fill layer's material or per-channel color/resource sources.
| Name | Required | Description | Default |
|---|---|---|---|
| uid | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
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. 'Inspect' strongly implies a read-only operation and it scopes the inspection to material or per-channel color/resource sources, but it does not explicitly state read-only behavior, prerequisites, or whether the target must be a Fill layer. The output schema reduces the need to describe return values.
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 filler, starting with the verb and immediately stating what is inspected. It is efficient, though quite terse given the missing usage and parameter context.
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?
An output schema exists, so the description need not explain return values. However, for a one-parameter tool with no annotations, it leaves the sole uid parameter undefined and provides no usage context, making the definition incomplete for reliable 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 has one required integer parameter, uid, with 0% description coverage, and the tool description never mentions uid or explains what it identifies. The phrase 'a Fill layer's' is only an indirect clue and does not compensate for the undocumented parameter.
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 ('Inspect') and a specific resource ('a Fill layer's material or per-channel color/resource sources'), so the agent can tell it retrieves fill-source information rather than mutating it. It does not explicitly differentiate itself from sibling getters like get_fill_parameters or get_fill_projection, which keeps it from a 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?
There is no when-to-use guidance, no exclusions, and no named alternatives despite many closely related fill-related sibling tools. The only implied usage is 'inspect,' leaving the agent to infer when this should be preferred over get_fill_parameters or get_fill_projection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_geometry_maskB
Inspect a layer's Mesh/UVTile geometry mask and available elements.
| Name | Required | Description | Default |
|---|---|---|---|
| uid | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
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. Beyond 'inspect' hinting at a read operation, it says nothing about permissions, side effects, or what 'available elements' means for a non-authored mask; an output schema exists but behavioral context is still missing.
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 that front-loads the verb and resource with no wasted words. Appropriately sized for a simple one-parameter read 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?
The presence of an output schema means return values need not be explained, but the absent annotations and undocumented uid leave the definition thin for a tool whose data model ('Mesh/UVTile geometry mask') is non-obvious. 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% and the sole 'uid' parameter is documented only as an integer with no description. The phrase 'a layer's' weakly implies uid identifies a layer, but the description adds no format, source, or lookup guidance to compensate for the empty 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?
States a specific verb ('Inspect') and resource ('a layer's Mesh/UVTile geometry mask and available elements'), which clearly distinguishes it from the sibling set_geometry_mask by its read/inspect orientation. The lack of an explicit sibling callout keeps it from a 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?
Usage is only implied by the verb 'Inspect' contrasted against the write-oriented sibling 'set_geometry_mask'; there is no explicit when-to-use or when-not-to-use guidance. An agent can infer the read-vs-write split but must do the work itself.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_mesh_reload_jobB
Return status and texture-set changes for the latest mesh reload job.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the behavioral weight; it does signal a read-only inspection and that texture-set changes are part of the payload. However, 'for the latest mesh reload job' sits uneasily against the optional job_id parameter, leaving it unclear whether this tool targets the most recent job or an arbitrary one.
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?
One short sentence of eleven words with the verb front-loaded and no wasted clauses. It is efficient, though the phrase 'latest ... job' arguably spends words on a scoping claim that is ambiguous rather than clarifying.
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?
An output schema exists, so the return payload need not be described, and with one optional parameter the tool is simple. Still, for a job-status tool an agent needs to know the lifecycle context (call after start_mesh_reload, how terminal states are reported) and the job_id default rule, neither of which is covered.
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 has 0% schema description coverage, and the description never explains job_id: not what format it takes, not what happens when it is omitted (default null), not whether it must come from start_mesh_reload. The word 'latest' only hints at the default behavior without defining it.
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 ('Return') and resource ('status and texture-set changes for the latest mesh reload job'), which is enough to separate it from the planning/mutation siblings plan_mesh_reload and start_mesh_reload. It does not, however, state how it relates to the other job-polling siblings such as get_bake_job or get_project_creation_job.
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 guidance at all on when to call this tool: no mention of polling after start_mesh_reload, no mention of what to do if no job exists, and no named alternative. The only implicit cue is the word 'latest'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_procedural_inputsC
Inspect image inputs on Fill, Fill Effect, Generator, or Filter sources.
| Name | Required | Description | Default |
|---|---|---|---|
| uid | Yes | ||
| channel | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
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. 'Inspect' implies a read-only operation, but the description says nothing about permissions, error behavior for invalid uids, or side effects; beyond the verb there is essentially no 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?
A single efficient sentence with the verb and scope front-loaded and no filler. It is concise to the point of under-specification, but that is a completeness issue rather than verbosity.
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?
An output schema exists, so return values needn't be explained, but with zero annotation coverage and zero schema descriptions the definition omits critical parameter meaning and usage context. The agent knows what domain this touches but not how to call it correctly.
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% for two parameters, and the description never mentions 'uid' or 'channel'. The channel selector in particular is undocumented, leaving the agent to guess its meaning and valid values.
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 (Inspect) and resource (image inputs) with a scoped list of source types (Fill, Fill Effect, Generator, Filter). It does not distinguish itself from nearby siblings such as get_fill_sources or get_fill_parameters, and the 'procedural inputs' vs. 'image inputs' terminology is slightly loose.
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 guidance on when to call this versus get_fill_sources or get_fill_parameters, no prerequisites (e.g., project/layer must exist), and no exclusions. The source-type list implies scope but does not route the agent among alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_project_creation_jobB
Read terminal state and file verification for an asynchronous project creation.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are supplied, so the description carries the full behavioral burden and largely drops it. It never says whether this blocks, whether it is safe to poll repeatedly, what it returns while the job is still running, or what error surfaces for an unknown job — only that it reads 'terminal state' and 'file verification'.
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 of ten words with zero filler; the object of the read is placed before any qualification. Nothing in it could be trimmed without losing content.
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?
An output schema exists, so return values need not be explained, but the tool is still under-specified for its async-job role: no polling guidance, no null-job_id behavior, and no mention of the companion creation tools. For a job-inspection endpoint with a deliberately nullable key, the description leaves the operational essentials unstated.
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 single parameter job_id is optional with a null default, which is a semantically significant fact the description completely ignores. An agent cannot tell from the description what happens when job_id is omitted (most recent job? error? listing all?), so almost no meaning is added 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 names a specific verb ('Read') and a specific resource ('terminal state and file verification for an asynchronous project creation'), which an agent can map to a job-status tool. It does not, however, name the sibling that starts such jobs (create_project/plan_project_creation), so differentiation relies on the reader's knowledge of the async pattern.
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 is only implied: the phrase 'for an asynchronous project creation' suggests calling this after kicking off a creation job, and the sibling set (get_bake_job, get_mesh_reload_job, get_shelf_refresh_job) reinforces that pattern. There is no explicit when-to-use, no alternative named, and no statement about polling or when to stop.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_project_infoA
Return the current project path and texture-set names.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the disclosure burden; 'Return' implies a read-only, side-effect-free call, and it names the returned data. However, it says nothing about behavior on no-open-project, permissions, or freshness of the values, which are the traits an agent would want for a zero-param query tool.
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 no filler; the most useful information (project path, texture-set names) appears immediately. Nothing is padded or restated from the name.
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 zero-parameter read tool with an output schema covering the return shape, the description is almost sufficient; the only gap is edge-case behavior (e.g., no project open) which the output schema can't convey.
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 takes zero parameters, so the baseline of 4 applies; there is nothing for the description to disambiguate. It correctly adds no parameter discussion, keeping focus on the returned values.
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 ('Return') and the exact resources ('current project path and texture-set names'), so an agent can tell what it produces. It doesn't explicitly distinguish itself from siblings like list_project_resources or audit_project, but the described output is precise enough to characterize the 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?
The description gives no when-to-use or when-not-to-use guidance and names no alternative tool. An agent must infer from the output description alone that this is the lightweight 'what project am I in' check versus heavier inventory tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_shelf_refresh_jobB
Read persistent state for the latest or selected shelf refresh job.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden. 'Read persistent state' implies a safe, non-mutating operation and that state survives beyond the call, but nothing is said about behavior with an unknown job_id, job expiry/retention, or concurrency concerns.
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 the resource front-loaded and zero filler. It is terse to the point where a little more content (polling/lifecycle) would have earned space, but nothing present is wasted.
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?
An output schema exists, so return-value explanation is not needed, and a one-optional-parameter getter is simple. Still, the relationship to start_shelf_refresh and the meaning of a job's lifecycle are unstated, leaving the agent to infer the workflow.
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 the single optional job_id parameter, so the description must compensate. 'Latest or selected' does add real meaning — omitting job_id returns the newest job — but it does not clarify format, validity, or error behavior for an unknown id.
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 ('Read') on a specific resource ('persistent state ... shelf refresh job'), which cleanly separates it from the sibling 'start_shelf_refresh' that initiates a job. It stops short of naming that sibling explicitly, but the read-versus-start distinction is inferable from the text 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?
The phrase 'latest or selected' implicitly tells the agent it can call this without a job_id to get the newest job, but there is no explicit when-to-use guidance, no mention of calling it after start_shelf_refresh to poll progress, and no named alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
import_project_resourceC
Import and verify a sandboxed resource inside the open Painter project.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| group | No | ||
| usage | Yes | ||
| confirm | No | ||
| file_path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
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, yet it does not say whether this mutates the project persistently, what 'verify' actually checks, what 'sandboxed' constrains, or what the `confirm` flag gates. For a write-ish import operation with a confirmation parameter, 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 front-loaded sentence with no filler, which is structurally clean, but it is under-specified rather than appropriately concise for a five-parameter mutation 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?
An output schema exists so return values needn't be described, but with zero annotation coverage, 0% parameter documentation, and a confirmation gate, the description leaves an agent unable to call this correctly without guessing.
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 5 parameters, and the description names none of them. Terms like `usage`, `group`, `name`, and especially `confirm` (default false) are left entirely unexplained, so the description adds no meaning beyond the bare 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?
States a specific verb ('Import and verify') and resource ('sandboxed resource') scoped to the open Painter project, which distinguishes it from shelf/session variants in spirit. It never names the sibling tools (import_shelf_resource, import_session_resource) that an agent would otherwise confuse it with, so the differentiation is only implicit.
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 (must a project be open? does the file need to be in a sandbox?), and no mention of the closely related siblings that handle other import scopes. The agent must infer everything from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
import_session_resourceC
Import and verify a sandboxed resource for the current Painter session.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| group | No | ||
| usage | Yes | ||
| confirm | No | ||
| file_path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
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. 'Import' implies a write, and 'verify' implies a post-import validation step, but neither is explained: it does not say what gets written into the session, whether an existing resource is overwritten, whether the operation is reversible, or what 'verify' actually checks.
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?
It is a single front-loaded sentence with no filler, which is structurally clean. However, for a five-parameter tool with a confirmation gate, one sentence provides no structure to organize the invocation details an agent needs.
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?
An output schema exists, so return values need not be described, but everything else is missing: five undocumented parameters, no annotation coverage, no sibling differentiation, and no explanation of the verify step or the confirm gate. For an import/mutation tool this leaves the agent materially under-informed.
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 five parameters, and the description adds no information about any of them. The required file_path and usage, the optional name/group, and especially the confirm boolean are all left entirely unexplained.
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 names a specific verb (import) plus a verification step and a scoped resource (sandboxed resource for the current Painter session). It is clear on its own, but it does not distinguish itself from the close siblings import_project_resource and import_shelf_resource, which an agent must choose between.
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 guidance on when to use this tool rather than import_project_resource or import_shelf_resource, and no mention of prerequisites such as the session being open. The presence of a 'confirm' flag suggests a gated or potentially destructive step, but the description never says when confirmation is required or what happens without it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
import_shelf_resourceC
Import and verify a safe resource in an editable shelf or the user shelf.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| group | No | ||
| usage | Yes | ||
| confirm | No | ||
| file_path | Yes | ||
| shelf_name | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
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. For an import/mutation tool it says nothing about permissions, whether an existing resource is overwritten, what 'verify' entails, what the 'confirm' flag gates, or what side effects occur on the shelf — all significant gaps.
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 sentence with no wasted words, but it is under-specified rather than concise — brevity comes at the cost of the operational detail an agent needs.
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?
An output schema exists so return values need not be described, but with six undocumented parameters, no annotations, and a destructive-looking import operation, the description leaves too much unstated for an agent to call 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% across six parameters, so the description must compensate and it does not: file_path, usage, confirm, name, group, and shelf_name are all undocumented anywhere. In particular, the required 'usage' string and the confirm-gate are entirely opaque to the agent.
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 names a verb+resource ('Import and verify a ... resource') and a target ('an editable shelf or the user shelf'), which conveys the general action. However, 'safe resource' is unexplained jargon and it never distinguishes itself from sibling importers such as import_project_resource and import_session_resource, so an agent cannot tell which shelf-scoped import to pick.
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 guidance on when to use this versus import_project_resource, import_session_resource, or start_shelf_refresh, all of which appear in the sibling list. The only implicit cue is the phrase 'editable shelf or the user shelf', with no statement of prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
insert_content_effectC
Insert Fill, Paint, Generator, Filter, Levels or Anchor into a layer's content.
| Name | Required | Description | Default |
|---|---|---|---|
| uid | Yes | ||
| name | No | ||
| effect_type | Yes | ||
| resource_url | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
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 implies a mutation by saying 'Insert' and lists effect types, but it does not disclose required permissions, side effects, failure behavior, or how it interacts with the target layer beyond that.
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 wording. Its brevity is appropriate structurally, though it reflects under-specification rather than rich conciseness.
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 mutation tool with four parameters, no annotations, and 0% schema description coverage, the description is not complete enough to guide reliable invocation. It does not clarify required inputs, layer context, effect_type constraints, or resource_url behavior, even though an output schema exists.
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 only hints at acceptable effect_type values by naming Fill, Paint, Generator, Filter, Levels, and Anchor. It does not explain the required uid, optional name, or resource_url parameters, leaving most parameter semantics 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 description states a specific verb and resource: inserting content effects such as Fill, Paint, Generator, Filter, Levels, or Anchor into a layer's content. It is clear what the tool does, though it does not explicitly distinguish itself from nearby siblings like insert_mask_effect or create_fill_layer/create_paint_layer.
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 guidance on when to use this tool versus alternatives such as insert_mask_effect, create_fill_layer, create_paint_layer, or insert_smart_material. The implied usage is inserting a content effect into a layer, but no exclusions or prerequisites are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
insert_mask_effectC
Insert Fill, Paint, Generator, Filter, Levels, Anchor, or Smart Mask into a mask.
| Name | Required | Description | Default |
|---|---|---|---|
| uid | Yes | ||
| name | No | ||
| effect_type | Yes | ||
| resource_url | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
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 implies a mutation but does not disclose side effects, permission requirements, whether existing mask effects are affected, or any other operational 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?
The description is a single front-loaded sentence with no wasted words. It is appropriately concise, though its terseness leaves important gaps that are better captured under other dimensions.
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, 0% schema description coverage, and four parameters, the description is not complete enough for reliable invocation. The output schema exists, so return values need not be explained, but input semantics and behavioral context are largely missing.
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 for four undocumented parameters. It enumerates possible effect_type values, which adds some meaning, but it says nothing about uid, name, or resource_url.
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 states a specific verb and resource: inserting one of several named effect types into a mask. It is clear enough to distinguish from generic layer creation, but it does not explicitly differentiate itself from siblings such as insert_content_effect or apply_smart_mask.
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 lists effect types but gives no guidance on when to use this tool versus alternatives, nor any prerequisites or exclusions. An agent must infer usage from the name and sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
insert_smart_materialC
Insert a Smart Material at the top, inside parent_uid, or relative to reference_uid.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| position | No | top | |
| parent_uid | No | ||
| texture_set | No | ||
| resource_url | Yes | ||
| reference_uid | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
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 only states that an insert occurs and says nothing about permissions, whether existing content is overwritten, what side effects occur, or how positioning affects the layer tree.
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 definition is a single front-loaded sentence with no filler, and the verb is placed first. It is efficient, though the terseness contributes to under-specification elsewhere.
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 tool has six parameters, no annotations, and no schema descriptions, yet the description covers only positioning. Output schema existence reduces the need to explain return values, but the description still leaves required inputs and mutation behavior undocumented.
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 explain all six parameters. It only clarifies parent_uid, reference_uid, and the 'top' position; the required resource_url, plus name and texture_set, are left unexplained.
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 clear verb and resource, 'Insert a Smart Material,' and adds positioning context with 'at the top, inside parent_uid, or relative to reference_uid.' It does not explicitly distinguish this tool from any sibling, but the purpose itself is specific and 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 implies three insertion modes (top, inside parent_uid, relative to reference_uid), which gives some invocation guidance. However, it never states when to choose this tool over alternatives such as import_project_resource, import_shelf_resource, or insert_content_effect, and it omits prerequisites entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
inspect_bakingB
Inspect enabled bakers, UV tiles, and mesh-map assignments without starting a bake.
| Name | Required | Description | Default |
|---|---|---|---|
| texture_set | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
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. 'Inspect' and 'without starting a bake' imply a read-only, non-mutating operation, but the description does not explicitly confirm read-only behavior, permissions, or side effects.
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 states the tool's scope and the key constraint of not starting a bake.
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?
An output schema exists, so return values need not be explained. However, the description omits parameter semantics and, with no annotations, does not fully cover behavioral details such as read-only guarantees or usage relative to sibling tools.
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?
There is one optional parameter, texture_set, with 0% schema description coverage. The description never mentions this parameter or explains how it filters the inspection, so it fails to compensate for the schema gap.
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 ('Inspect') and resource ('baking'), and enumerates what is inspected: enabled bakers, UV tiles, and mesh-map assignments. It does not explicitly distinguish itself from the sibling tool inspect_baking_parameters, which prevents a 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?
The phrase 'without starting a bake' implies this is a pre-bake inspection tool, giving some usage context. However, it does not state when to use this versus inspect_baking_parameters, preflight_bake, or other baking-related siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
inspect_baking_parametersC
Inspect editable common parameters and one baker's typed property metadata.
| Name | Required | Description | Default |
|---|---|---|---|
| baker | No | ||
| texture_set | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
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 implies a read-only inspection, but does not state whether it mutates anything, what permissions are needed, or how the editable versus non-editable parameters behave. It also does not clarify the interaction with the required texture_set parameter.
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 efficient sentence with no wasted words, but it is under-specified rather than genuinely concise. It front-loads the action but does not provide enough substance for the tool's complexity.
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?
An output schema exists, so return values need not be explained. However, with two parameters at 0% schema coverage and no annotations, the description leaves too much unspecified, including parameter meanings, read-only behavior, and when this inspection is appropriate.
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 only loosely maps 'one baker's' to the optional baker parameter and does not explain the required texture_set parameter, acceptable formats, or what 'typed property metadata' means in practice.
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 states a specific verb, 'inspect,' and identifies the resource area: editable common parameters and one baker's typed property metadata. However, 'common parameters' is vague, and it does not distinguish itself from the sibling tool 'inspect_baking' or explain what inspecting yields beyond metadata.
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 such as 'inspect_baking' or 'configure_baking.' The only implied context is inspection of baking parameters, but no exclusions or selection criteria are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
inspect_export_presetB
Resolve an export preset and preview its map names without writing files.
| Name | Required | Description | Default |
|---|---|---|---|
| preset | Yes | ||
| texture_set | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
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 the non-mutating nature ("without writing files"), but says nothing about what happens with an unknown/invalid preset, whether texture_set resolution changes the returned map names, or whether resolution requires an open project. For a zero-annotation tool this is a thin 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?
One tight sentence with the verb and the key non-mutation constraint front-loaded and zero filler. Nothing in it is redundant with the schema or wasteful.
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?
An output schema exists, so return structure need not be explained, and the tool is genuinely simple. However, with no annotations and no parameter documentation, the definition leaves an agent without enough to know how texture_set alters the result or how failures present.
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 and does not. It accounts only for "preset" ("Resolve an export preset") and never mentions texture_set, leaving the optional second parameter's meaning, format, or effect on the previewed map names entirely 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 description pairs a specific verb ("Resolve") with a specific resource ("export preset") and states the scope of what is returned ("preview its map names"). The phrase "without writing files" implicitly separates it from export_textures/export_with_profile, though it never names a sibling outright.
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: an agent can infer this is the pre-flight inspection step before an actual export. There is no explicit "use this when..." or "use export_textures instead when..." routing, and no mention of prerequisites such as the preset needing to already exist.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_anchor_pointsC
List Anchor Point effects with owner and Texture Set context.
| Name | Required | Description | Default |
|---|---|---|---|
| texture_set | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
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. "List" implies a read-only operation, but the description does not explain scope, filtering behavior when texture_set is omitted, permissions, or result limits.
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 filler. It is appropriately sized for a simple list 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?
The tool is simple and has an output schema, so return values need not be explained. However, the description leaves the optional texture_set parameter's behavior and the tool's relationship to sibling tools unclear.
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?
There is one optional parameter, texture_set, with 0% schema description coverage. The description mentions "Texture Set context" but does not explain whether the parameter filters results, what format it expects, or what happens when it is null.
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 states a specific verb ("List") and resource ("Anchor Point effects") plus additional context fields. It is clear what the tool returns at a high level, though it does not differentiate itself from related sibling tools such as set_fill_anchor_source.
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 explicit guidance on when to use this tool, when not to use it, or which alternatives exist among the many sibling tools. Usage is only implied by the verb "List".
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_export_presetsA
List built-in and shelf export presets without exporting files.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
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 trait that no files are written, plus the two preset sources. It omits other traits such as whether shelf presets require a running/refreshed shelf or whether results are paginated.
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 zero filler; the scope and the non-mutating guarantee both land 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?
An output schema exists and there are no parameters, so the description only needs to convey scope and side-effect profile, which it does. Only the relationship to sibling tools (inspect_export_preset, list_export_profiles) is left implicit.
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 takes zero parameters, so there is nothing for the description to disambiguate and the baseline of 4 applies. The description correctly adds no spurious parameter discussion.
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 (export presets) with the scope qualifier 'built-in and shelf'. The clause 'without exporting files' separates it from export_textures/export_with_profile, though it does not explicitly distinguish it from inspect_export_preset.
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: the 'without exporting files' phrase signals a discovery step before exporting, but there is no explicit when-to-use guidance or named alternative such as inspect_export_preset for details or list_export_profiles for profiles.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_export_profilesA
List curated engine export profiles and whether their Painter presets are available.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the burden; 'List' adequately implies a read-only, non-destructive operation. However, it says nothing about whether a live Painter connection is required, what 'available' means when a preset is missing, or how curated profiles are sourced — relevant for a tool whose whole value is cross-app preset availability.
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 no filler; the resource and the notable extra attribute (preset availability) are both stated 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?
With an output schema present and no parameters, the description needn't explain return values, and it covers the essentials. It falls short only on prerequisites (Painter running/connected) and how the result feeds export_with_profile or plan_profile_export.
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 takes zero parameters, so there is nothing for the description to disambiguate; baseline 4 applies. The description correctly does not waste space restating an empty 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?
States a specific verb ('List') and a specific resource ('curated engine export profiles'), plus an extra attribute (Painter preset availability). It is distinguishable from siblings like list_export_presets and inspect_export_preset by the 'engine profiles' scope, though it never explicitly contrasts with them.
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?
No indication of when to call this versus list_export_presets, inspect_export_preset, plan_profile_export, or export_with_profile, all of which appear in the sibling list. The usage is only inferable from the phrase 'list ... profiles'; no exclusions or prerequisites are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_layersB
List layers with stable UIDs, types, visibility, and optional group children.
| Name | Required | Description | Default |
|---|---|---|---|
| recursive | No | ||
| texture_set | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. "List" implies a non-mutating read, and it discloses the shape of what comes back (UIDs, types, visibility, children), which is useful. But it says nothing about ordering, scale/cost of recursion, or whether reads are filtered by the active texture set.
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 no filler. It is efficient, though the terseness is part of why the usage and parameter gaps exist.
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?
An output schema exists, so the description needn't explain return values, and it appropriately only summarizes them. The remaining gap is behavioral/scoping context: what texture_set does and how this differs from the other layer-listing tools is left to inference.
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 both parameters are undocumented in structured fields. The phrase "optional group children" loosely gestures at the recursive flag, but texture_set — an important scoping parameter with a null default — gets no explanation whatsoever, leaving half the surface ambiguous.
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 gives a specific verb and resource ("List layers") and enumerates what the listing contains: stable UIDs, types, visibility, and group children. That is concrete and distinguishable from mutating siblings like rename_layer or set_layer_properties, though it never contrasts itself with find_layers or snapshot_layer_tree.
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 use this versus close alternatives such as find_layers (presumably searched) or snapshot_layer_tree (presumably for diffing). The word "optional" hints that children may be excluded, but no condition or alternative routing is offered.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_project_resourcesA
List resources referenced by the open project.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
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 implies a read-only operation scoped to the currently open project, but it does not explicitly state safety, side effects, or prerequisites beyond the implicit need for an open 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?
A single, front-loaded sentence with no filler. It is appropriately sized for a simple zero-parameter list operation.
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, zero parameters, and an output schema that explains return values, the description is nearly complete. It only misses an explicit prerequisite statement that an open project is required.
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 takes zero parameters, so there is nothing for the description to clarify beyond the schema. Baseline 4 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 states a specific verb ('List') and resource ('resources referenced by the open project'), so the agent can distinguish this from broader resource search tools like search_resources. It is clear, but it does not explicitly name sibling alternatives.
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 'open project' implies a context, but there is no explicit guidance on when to use this versus search_resources or find_outdated_resources. No exclusions or alternatives are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_shelvesA
List Painter shelves with paths, write capability, and crawling state.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
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 usefully discloses that results include 'paths, write capability, and crawling state,' but it does not mention permissions, pagination, or whether the listing triggers any refresh/crawl behavior. The 'List' verb implies read-only, but this is not explicitly confirmed.
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 filler. Every phrase contributes either the action or the returned 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?
The tool is a simple zero-parameter list operation and has an output schema, so the description need not explain return values in detail. It covers the resource and the notable fields returned, though it could say more about when to choose this listing over sibling resource-listing tools.
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 takes zero parameters, so there is no parameter semantics for the description to clarify. The empty input schema is consistent with the description, and the baseline for a zero-parameter tool is 4.
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 gives a specific verb and resource: 'List Painter shelves,' and adds the returned fields 'paths, write capability, and crawling state.' This clearly distinguishes it from mutating shelf tools like import_shelf_resource or start_shelf_refresh, though it does not explicitly name alternatives.
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 guidance about when to use this tool versus alternatives such as list_project_resources or search_resources. The description states what the tool does but provides no conditions, exclusions, or routing hints.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
open_projectB
Open an approved .spp, requiring a backup when the current project is dirty.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | No | ||
| backup_mode | No | Incremental | |
| project_path | Yes | ||
| overwrite_backup | No | ||
| backup_current_path | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It discloses one meaningful trait (backup triggered on a dirty project), but leaves unexplained what 'approved' means, whether unsaved changes are discarded, what 'dirty' is detected from, or whether this is destructive to current state.
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 no filler; the core action leads and the conditional constraint follows. 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?
An output schema exists so return values needn't be covered, but for a 5-parameter project-opening operation with zero schema descriptions and no annotations, one sentence is far too thin. The agent lacks the information needed to set confirm, overwrite_backup, or backup_current_path safely.
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 5 parameters, so the description must compensate and it largely does not. The word 'backup' hints that backup_mode, backup_current_path, and overwrite_backup exist, but confirm and project_path receive no explanation and the string/boolean semantics of the backup options are 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?
States a specific verb and resource ('Open an approved .spp'), including the file type, which distinguishes it from create_project and plan_project_creation in the sibling set. It stops short of explicitly naming the adjacent tools (close_project, save_project), but an agent can infer the operation unambiguously.
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 one conditional usage rule — a backup is required when the current project is dirty — which tells the agent something about preconditions. It offers no guidance on when to prefer this over create_project or save_project, and no instruction on how to handle 'confirm' or 'overwrite_backup' before invoking.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
painter_statusA
Check the connection and report Painter, Python API, and project status.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full burden. It implies a harmless read-only probe, but does not say what happens when the connection is down (error vs. degraded status), whether it is safe to call repeatedly, or how expensive it is. For a zero-side-effect status tool this is a modest but real 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 front-loaded sentence with no filler, and the connectivity check is stated before the status report. It is efficient, though very terse for a tool whose output has several distinct sections.
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 zero parameters and an output schema present, the description needn't enumerate return fields. However, it does not explain what 'project status' comprises or how failures are surfaced, which matters for an unannotated tool an agent may call as a first step.
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 takes no parameters, so there is nothing for the description to disambiguate; baseline 4 applies. Nothing in the description misleads about inputs.
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?
Specific verbs (check, report) and named resources (connection, Painter, Python API, project status) make the tool's job clear. It is distinguishable from get_project_info and get_capabilities as a combined health/connectivity probe, though the overlap with those siblings is not addressed.
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: an agent can infer this is the first-call/health-check tool, but the description never says when to prefer it over get_capabilities or get_project_info, nor when not to call it. No prerequisites or exclusions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
plan_layer_recipeB
Validate a recipe, resolve channels, and preview backup/mutation scope without editing.
| Name | Required | Description | Default |
|---|---|---|---|
| recipe | Yes | ||
| backup_mode | No | Incremental | |
| backup_path | No | ||
| texture_set | No | ||
| overwrite_backup | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
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 critical non-mutating behavior ('without editing') plus what is previewed (backup/mutation scope, channel resolution). It says nothing about failure behavior, permissions, or whether backup artifacts are actually created in preview mode.
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 three concrete actions and the non-editing constraint; no filler, nothing buried.
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 output schema removes the need to explain return values, and the no-edit behavior is covered, but with 0% parameter coverage and no annotations the definition leaves too much unexplained about how to supply the recipe and what backup_mode/overwrite_backup control.
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% across 5 parameters, so the description must compensate. It gestures at backup and mutation scope but never mentions recipe, backup_mode, backup_path, texture_set, or overwrite_backup, leaving the recipe structure and backup options entirely 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 specific verbs (validate, resolve, preview) against a concrete resource (a layer recipe) and adds the key qualifier 'without editing', which distinguishes it from create_layer_recipe. The sibling name is never mentioned, so differentiation is implicit rather than explicit.
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?
'without editing' implies this is a dry-run to call before committing a recipe, but there is no explicit when-to-use, when-not-to-use, or named alternative (create_layer_recipe) to route the agent. Usage must be inferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
plan_mesh_reloadB
Validate a mesh reload and preview texture-set and backup impact.
| Name | Required | Description | Default |
|---|---|---|---|
| backup_mode | No | Incremental | |
| backup_path | No | ||
| mesh_settings | No | ||
| import_cameras | No | ||
| mesh_file_path | Yes | ||
| overwrite_backup | No | ||
| preserve_strokes | No | ||
| auto_unwrap_settings | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It does disclose that the tool validates and previews impact rather than performing the reload, which is useful behavioral context. However, it leaves open whether backup_path means files are actually written, whether the operation has side effects, or what permissions are needed — important ambiguities for a tool with an overwrite_backup parameter.
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 no filler. It is efficient, though brevity here comes partly at the cost of the missing usage and parameter detail rather than from disciplined editing.
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?
An output schema exists, so return values need no explanation, but for an 8-parameter planning tool with zero schema coverage the description is far too thin. An agent cannot predict what the preview contains, whether the call has side effects, or what the non-required settings parameters do.
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 8 parameters, so the description must compensate and largely doesn't. 'Texture-set and backup impact' loosely hints at backup_mode/backup_path, but mesh_settings, auto_unwrap_settings, import_cameras, preserve_strokes, and overwrite_backup receive no explanation anywhere.
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 specific verbs ('validate', 'preview') and resources ('mesh reload', 'texture-set and backup impact'), which clearly delineates it from the execution sibling start_mesh_reload. It stops short of naming the sibling explicitly, so an agent must infer the plan-vs-execute distinction from naming conventions.
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 'plan_/preview' framing implies this should be called before start_mesh_reload, but the description never states when to use it, when to skip it, or that start_mesh_reload is the follow-up action. Usage is inferred from the tool name rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
plan_profile_exportB
Preview an engine-profile texture export without writing files.
| Name | Required | Description | Default |
|---|---|---|---|
| profile | Yes | ||
| size_log2 | No | ||
| texture_sets | No | ||
| output_directory | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It does disclose the important non-mutating trait by saying files are not written, but it omits prerequisites, validation behavior, and whether the output_directory must exist even for a preview.
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 immediately communicates the core action and the non-writing constraint.
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 tool accepts four parameters with no schema documentation and no annotations. Although an output schema exists and may cover return values, the description still leaves the required parameters and filtering options unexplained, making it inadequate for correct 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 has zero description coverage for four parameters, including required 'profile' and 'output_directory'. The description adds no meaning for any parameter and does not explain size_log2 or texture_sets, so it fails to compensate for the coverage gap.
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 clear verb ('Preview') and specific resource ('engine-profile texture export') plus a scoping constraint ('without writing files'). It distinguishes the operation from actual export tools by emphasizing preview, though it does not explicitly name sibling alternatives.
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 'without writing files' implies this should be used before committing to a real export, but it gives no explicit when-to-use guidance, no exclusions, and does not name alternatives such as export_with_profile or plan_texture_export. Usage is inferable but not clearly directed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
plan_project_creationC
Validate a new project, typed import settings, context switch, and backup.
| Name | Required | Description | Default |
|---|---|---|---|
| settings | No | ||
| overwrite | No | ||
| backup_mode | No | Incremental | |
| output_path | Yes | ||
| mesh_file_path | Yes | ||
| replace_current | No | ||
| overwrite_backup | No | ||
| template_file_path | No | ||
| backup_current_path | No | ||
| mesh_map_file_paths | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
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 does not clarify whether this tool performs validation only (dry-run) or mutates state, even though parameter names like overwrite, replace_current, and overwrite_backup suggest mutation planning. Auth requirements, side effects, and whether a backup actually occurs are all undisclosed.
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?
It is a single short sentence with no filler, but the comma-separated noun list is awkward and front-loads 'validate' rather than stating scope clearly. It is concise but at the cost of comprehension.
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 10-parameter tool with no annotations and no schema descriptions, the description is far too thin. The output schema relieves the need to explain return values, but the agent still lacks enough to know what this plans, what it validates, and how it relates to create_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?
With 10 parameters at 0% schema description coverage, the description should compensate heavily but does not. It mentions 'import settings' and 'backup' loosely but never explains mesh_file_path, output_path, backup_mode, template_file_path, mesh_map_file_paths, or the overwrite flags.
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 lists activities ('validate a new project, typed import settings, context switch, and backup') which conveys that this is a planning/validation step rather than execution, but the phrasing is fragmentary and 'typed import settings' is opaque. It implies a distinction from create_project (plan vs. create) only through the name, not through explicit statement.
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 when-to-use guidance and no reference to alternatives, despite create_project and get_project_creation_job being direct siblings. An agent must infer that 'plan' precedes creation, but nothing states this or explains exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
plan_texture_exportB
Validate an export and list exact output files without writing them.
| Name | Required | Description | Default |
|---|---|---|---|
| preset | Yes | ||
| bit_depth | No | ||
| size_log2 | No | ||
| file_format | No | ||
| texture_sets | No | ||
| output_directory | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description does carry the crucial safety disclosure that nothing is written to disk, which is the most important behavioral fact for a tool that could otherwise be mistaken for an exporter. It does not say what validation failures look like, whether the output directory must pre-exist, or how presets are resolved; an output schema covers return shape.
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 outcome and the non-destructive constraint front-loaded. No filler, nothing to trim.
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 six-parameter tool with zero schema coverage and no annotations, the description is too thin. It never explains how the preset interacts with the optional overrides or what texture_sets scoping does, so an agent cannot confidently populate the schema even though the return shape is 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?
Six parameters with 0% schema description coverage, and the description mentions none of them. preset, bit_depth, size_log2, file_format, texture_sets, and output_directory get no explanation of accepted values or interaction (e.g. how texture_sets narrows output), leaving the agent to guess entirely from bare type names.
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), a concrete outcome (list exact output files), and a key scope qualifier (without writing them). This implicitly separates it from export_textures and export_with_profile, though no sibling is named 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?
The phrase 'without writing them' implies a dry-run/preview step before a real export, but the description never states when to choose this over export_textures or plan_profile_export, nor any prerequisites. Usage is inferable rather than specified.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
preflight_bakeC
Validate selected Texture Sets, mesh inputs, UV tiles, and expected mesh maps.
| Name | Required | Description | Default |
|---|---|---|---|
| texture_sets | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
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. 'Validate' suggests a non-mutating check, but the description does not explicitly state read-only behavior, side effects, required project state, or what happens on validation failure.
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 immediately states the validation scope.
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?
An output schema exists, so return values need not be explained. However, with zero annotation coverage and no schema parameter descriptions, the definition still leaves gaps around usage context and the semantics of texture_sets.
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 only parameter, texture_sets, is only indirectly referenced by the phrase 'selected Texture Sets'. The description does not explain whether the values are names, IDs, paths, how null behaves, or what 'selected' means in this 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 uses a specific verb, 'Validate', and names concrete resources: Texture Sets, mesh inputs, UV tiles, and expected mesh maps. It is clear what the tool does, but it does not explicitly distinguish itself from nearby siblings such as inspect_baking or start_bake.
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 explicit when-to-use guidance, prerequisites, or alternatives. The name 'preflight_bake' hints that it should be used before baking, but the description itself never states this or contrasts it with inspection/configuration tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rename_layerC
Rename a layer or group by UID.
| Name | Required | Description | Default |
|---|---|---|---|
| uid | Yes | ||
| name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
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 states no side effects, no error behavior for an invalid UID, no note on whether renaming a group affects children, and no indication of 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?
A single short sentence with the action and selector front-loaded. Nothing is wasted or buried.
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 mutation tool with no annotations and zero schema descriptions on its two required parameters, the description is too thin. The output schema excuses explaining return values, but the lack of any mutation behavior or failure-mode detail leaves real 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%, so the description must compensate. 'By UID' does clarify that uid is the selector and 'rename' implies name is the new label, but neither parameter's format, constraints, or collision behavior is 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?
Clear verb+resource: 'Rename a layer or group by UID' tells the agent exactly what the tool mutates and how the target is identified. It is distinguishable from siblings like set_layer_properties or list_layers, though it doesn't explicitly say so.
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?
No guidance on when to use this versus alternatives such as set_layer_properties, nor any preconditions (e.g., layer must exist, whether renames are allowed on locked layers). The agent must infer usage entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
replace_outdated_resourcesA
Atomically replace all outdated resources after explicit confirm=true.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
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 two meaningful traits: the operation is atomic and requires explicit confirmation. It does not say whether the replacement is irreversible, what happens to resources that fail validation, or whether the project must be saved beforehand.
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?
One sentence, front-loaded with the action and scope, with the confirmation gate as the trailing condition. Nothing is wasted and nothing important is buried.
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?
An output schema exists, so return values needn't be explained. But this is an unannotated bulk mutation, and the description omits irreversibility, preconditions, and its relationship to find_outdated_resources — enough missing context to leave an agent guessing about side effects.
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 has zero schema description coverage (only a boolean with default false), so the description must carry meaning — and it does, explaining that confirm must be explicitly set to true, implying a default of false means no-op. It still doesn't say what happens if confirm is omitted versus explicitly false.
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 verb 'replace' targets a specific resource set ('all outdated resources'), so the operation and its scope are unambiguous. It doesn't distinguish itself from siblings like find_outdated_resources or list_project_resources, but the action itself is clear.
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 'after explicit confirm=true' implies a prerequisite gate, which hints at the workflow. However, it never states when to prefer this over alternatives (e.g., run find_outdated_resources first, or that this is the remediation step for that listing), nor any when-not conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_projectB
Overwrite and verify the current saved project after explicit confirmation.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | Incremental | |
| confirm | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description does carry real weight: 'overwrite' signals a destructive write and 'after explicit confirmation' flags a confirmation gate, plus a post-write verification step. It stops short of disclosing what the incremental-vs-full behavior is, whether prior state is recoverable, or what happens if confirm is false.
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 destructive verb first and no filler; nothing in it is wasted. It is arguably too terse for the amount of undocumented behavior, but as structure it is clean.
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?
A destructive, no-annotation tool with 0% schema coverage and two opaque parameters. An output schema exists so return values needn't be described, but the description leaves the mode semantics, the confirmation contract, and failure behavior unstated — gaps an agent would have to guess at.
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 explain the two parameters and largely doesn't. 'explicit confirmation' gestures at the confirm boolean but never says it must be true to proceed, and 'mode' (default 'Incremental') is entirely unexplained — the agent cannot tell what alternate modes exist or what they change.
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?
Specific verb pair ('overwrite and verify') against a specific resource ('the current saved project'), so an agent knows this persists the open project state rather than creating a copy. It does not explicitly distinguish itself from the sibling save_project_copy, which is the main residual ambiguity.
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?
'after explicit confirmation' implies a precondition for calling, but the description never states when to prefer this over save_project_copy or what the trigger conditions are. Usage is inferable rather than spelled out, and no exclusions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_project_copyB
Save a verified .spp copy inside SP_MCP_PROJECT_ROOTS without relocating the project.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | Incremental | |
| overwrite | No | ||
| output_path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
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 discloses the path-root restriction and non-relocation behavior, but does not explain what 'verified' means, how overwrite behaves, what mode controls, or what happens if the destination already exists.
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 definition is a single front-loaded sentence with no filler. Every element, including the verified-copy constraint and the project-root restriction, is relevant to selecting or invoking the 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?
The output schema means return values need not be described, but for a mutation tool with no annotations and 0% parameter description coverage, the description is insufficient. It leaves mode, overwrite, verification behavior, and destination-path validation 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 description coverage is 0%, so the description needs to compensate for all three parameters. It only indirectly touches output_path by saying the copy must be inside SP_MCP_PROJECT_ROOTS, and says nothing about mode or overwrite.
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 states a specific verb and resource: save a verified .spp copy. It also distinguishes the operation from relocating the project, which helps separate it from save_project in practice, though it does not explicitly name that sibling.
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 'without relocating the project' implies this tool is for making a copy while keeping the active project in place. However, it does not explicitly say when to use this instead of save_project or what conditions make a copy the right choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_resourcesB
Search Painter resources and return identifiers, type, category, and usages.
query uses Painter's shelf syntax: words such as "rust", or filters such as "u:generator", "u:smartmaterial rust", "u:basematerial" or "p:starter_assets". Underscores in a resource name don't match; search one word of it.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | Yes | ||
| usage | No | ||
| resource_type | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must carry the behavioral burden. It does disclose one genuinely useful quirk (underscores don't match, search a single word), but it says nothing about read-only semantics, permissions, pagination behavior for limit (default 50), or how filtering interacts with the query string.
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?
Front-loads the purpose sentence, then supplies query syntax examples with no filler. Slightly redundant framing around 'shelf syntax' for a tool named search_resources, but every sentence carries 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?
An output schema exists, so return values needn't be spelled out, and the query-format gotcha is a real addition. However, for a four-parameter, zero-coverage search tool with no annotations, the absence of filter/limit semantics and sibling routing leaves notable 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%, so the description must explain all four parameters. It explains query thoroughly with concrete syntax examples ('u:generator', 'p:starter_assets'), but says nothing about usage, resource_type, or limit, leaving three of four parameters undocumented anywhere.
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 (search) and resource (Painter resources) plus the return shape (identifiers, type, category, usages). It does not distinguish itself from nearby siblings such as list_project_resources or list_shelves, leaving the agent to infer which retrieval tool to pick.
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 spends its effort on how to write the query, not on when to use this tool versus list_shelves, list_project_resources, or find_layers. Usage is implied by the syntax examples but no exclusions or alternatives are named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
select_layersC
Select one or more layers in Painter by UID.
| Name | Required | Description | Default |
|---|---|---|---|
| uids | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and discloses nothing about behavior: whether selection replaces or adds to the current selection, whether it changes the active layer, whether hidden/locked layers can be selected, or what happens on invalid UIDs.
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?
One short sentence with the key scope (in Painter, by UID) front-loaded and no filler. Its brevity is close to under-specification, but on the conciseness axis itself there is no waste.
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?
An output schema exists so return values need not be explained, but for a state-mutating selection tool with zero annotations and zero parameter documentation, the definition leaves the agent without the essentials needed to invoke 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% for the single `uids` parameter. The phrase 'one or more layers ... by UID' only restates that it is a list of UIDs; it adds no detail on where UIDs come from, ordering, or handling of unknown IDs.
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 (select) and resource (layers) plus the mechanism (by UID) in Painter. It is distinguishable from the read-only siblings list_layers and find_layers, though it never explicitly contrasts itself with them.
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?
No indication of when to use this versus list_layers/find_layers, no prerequisites (e.g. that UIDs must first be discovered), and no statement of what selection accomplishes downstream. Usage must be entirely inferred from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_active_channelsC
Replace a Fill or Paint layer's active channel set by UID.
| Name | Required | Description | Default |
|---|---|---|---|
| uid | Yes | ||
| channels | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full disclosure burden. 'Replace' hints that the existing set is overwritten, but it does not say whether unlisted channels are disabled, whether an empty array clears the set, what validation failures look like, or whether the operation is undoable/requires a specific layer selection state.
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 sentence with no filler, and the target resource and key are front-loaded. It is efficient, though arguably too terse for a mutation with an unconstrained string array.
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 output schema covers return values, but for a mutation tool with zero annotation coverage and zero percent parameter documentation, the description should at minimum pin down the channel identifier vocabulary and replacement semantics. Those gaps leave the definition under-specified relative to its 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% and the description adds little: 'uid' is implied to be a layer UID, and 'channels' is only characterized as an 'active channel set' array of strings. The critical vocabulary — which channel identifiers are valid for Fill vs Paint layers — is undocumented anywhere, so an agent cannot reliably construct the call.
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 ('Replace') and resource ('a Fill or Paint layer's active channel set'), plus the lookup key (UID). It is clear what the tool does, but it does not distinguish itself from the sibling 'set_fill_channels', which plausibly overlaps.
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?
No guidance on when to choose this over 'set_fill_channels' or 'set_layer_properties', no prerequisites, and no note that 'replace' semantics vs incremental changes are a decision point. The only implied scope is 'Fill or Paint layer', which is stated as a capability rather than as a selection criterion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_baking_mesh_inputsC
Assign sandboxed high-poly/cage meshes and related common baker settings.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | No | ||
| cage_file | No | ||
| cage_mode | No | ||
| low_as_high | No | ||
| texture_set | Yes | ||
| high_poly_files | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It does not disclose what 'sandboxed' means operationally, what happens to previously assigned meshes, why a 'confirm' flag exists, or whether the operation is reversible. For a mutation tool with zero annotation coverage 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 the primary resource front-loaded. It is not padded, though the terseness is part of the under-specification problem.
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?
An output schema exists, so return values need not be explained, but six parameters at 0% coverage plus no annotations and no usage routing leaves the definition too thin for correct invocation of a mutation 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 0%, so the schema documents only names and types for all six parameters. The description gestures at high_poly_files and cage inputs but says nothing about cage_mode values, low_as_high, texture_set, or the confirm flag, leaving most semantics unexplained.
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 states a specific verb ('Assign') and resource ('high-poly/cage meshes') plus a secondary scope ('common baker settings'), which clearly separates it from bake-execution siblings like start_bake. It does not explicitly distinguish itself from configure_baking or set_baking_resource_input, so it stops short of a 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?
There is no statement of when to use this versus configure_baking, inspect_baking_parameters, or set_baking_resource_input, and no preconditions such as needing an existing bake configuration. The agent must infer placement in the workflow 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.
set_baking_resource_inputC
Set or clear a Resource-typed common/per-baker input transactionally.
| Name | Required | Description | Default |
|---|---|---|---|
| baker | No | ||
| clear | No | ||
| confirm | No | ||
| parameter | Yes | ||
| texture_set | Yes | ||
| resource_url | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the full behavioral burden. 'Transactionally' usefully discloses atomic behavior, and 'clear' implies removal, but the description does not say what happens on failure, whether clearing is destructive, what confirm does, or what permissions are required for a mutation tool.
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?
It is a single front-loaded sentence with no filler, and the set/clear dichotomy comes early. It is efficiently written, though its brevity reflects under-specification rather than disciplined pruning.
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 six-parameter mutation tool with no annotations and 0% schema coverage, one sentence is far too thin; an agent cannot infer what texture_set and parameter mean or when confirm is required. The output schema relieves the need to explain return values, but the input semantics and safety profile remain seriously under-described.
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 six parameters, including required ones like texture_set and parameter. The description only hints at 'baker' ('per-baker'), the clear mode ('clear'), and transactionality, leaving confirm, resource_url, texture_set, and parameter entirely unexplained.
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 states a specific verb ('Set or clear') and a specific resource ('Resource-typed common/per-baker input'), making the scope clear. It does not explicitly contrast with nearby siblings like set_baking_mesh_inputs or set_fill_resource, so differentiation is implied by the resource-type qualifier rather than stated.
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 'Set or clear' signals the two modes, which is useful, but there is no guidance on when to use this versus configure_baking, set_baking_mesh_inputs, or set_fill_resource. No prerequisites, ordering, or exclusions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_fill_anchor_sourceC
Connect an Anchor Point to one Fill channel or the complete material source.
| Name | Required | Description | Default |
|---|---|---|---|
| uid | Yes | ||
| channel | No | ||
| anchor_uid | Yes | ||
| material_mode | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
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 implies mutation via 'Connect' but does not disclose side effects, required permissions, reversibility, or what happens to existing fill source connections.
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 efficient sentence with no wasted text and the operation is front-loaded. It is concise, though its terseness contributes to the missing usage and parameter detail elsewhere.
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?
An output schema exists, so return values need not be explained. However, for a mutation tool with no annotations and 0% schema description coverage across four parameters, the description is far too incomplete to guide correct 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?
Schema description coverage is 0% for four parameters. The description loosely maps to 'channel' and 'material_mode' by mentioning one Fill channel versus the complete material source, but it does not explain the required uid, anchor_uid, or how those parameters interact.
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 operation: connecting an Anchor Point to a Fill channel or the complete material source. This is more than a tautology and is distinguishable from read-only sibling tools like list_anchor_points and get_fill_sources, though it does not explicitly name alternatives or fully clarify what 'uid' identifies.
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 guidance on when to use this tool versus alternatives such as set_fill_resource, set_fill_channels, or set_fill_projection. It implies a usage context from the operation itself, but provides no explicit when/when-not rules or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_fill_base_colorB
Set a Fill Layer's base color using its UID and sRGB [r,g,b] values.
| Name | Required | Description | Default |
|---|---|---|---|
| uid | Yes | ||
| color | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
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, and it discloses almost nothing beyond the mutation implied by 'Set'. It does not say whether the prior color is overwritten irreversibly, what permissions or layer state are required, or what happens on an invalid UID.
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 zero filler; the target and both inputs appear immediately. It is efficient, though arguably too terse for a mutation tool with no annotations to lean on.
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?
An output schema exists, so return values need not be described, and the tool is a simple two-parameter setter. Still, with no annotations and no schema descriptions, the missing color range, preconditions, and overwrite semantics leave real gaps an agent would hit when calling 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?
Schema coverage is 0% (only bare titles 'Uid' and 'Color'), so the description must compensate, and it does add real meaning: uid identifies the fill layer and color is an sRGB triple. It omits the critical detail missing from the schema: the numeric range/scale (0-1 vs 0-255) and whether the array must be exactly three elements.
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 resource ('Set a Fill Layer's base color'), which is concrete enough to act on. It does not address how this relates to the overlapping sibling set_fill_parameters, which could plausibly also change fill color, so it stops short of full sibling differentiation.
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: you need an existing fill layer UID and want to change its base color specifically. There is no explicit when-to-use, no named alternative (e.g., set_fill_parameters for other fill settings), and no preconditions such as whether the layer must be selected or visible.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_fill_channelsC
Set and enable multiple uniform Fill channels, such as Roughness or Metallic.
| Name | Required | Description | Default |
|---|---|---|---|
| uid | Yes | ||
| values | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
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 implies a mutation ('Set and enable') but does not explain permissions, reversibility, whether enabling channels disables others, or what happens to existing channel values.
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 action and gives useful examples without burying them.
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 mutation tool with no annotations and completely undescribed parameters, the description is too thin. The output schema reduces the need to explain return values, but key invocation details such as what 'uid' refers to and how 'values' maps to channels are missing.
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 should compensate, but it only partially does so. The examples of Roughness/Metallic help interpret the 'values' map as channel names, but 'uid' is unexplained and the schema's scalar-or-array value options are not clarified.
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 states a specific verb and resource: set and enable multiple uniform Fill channels, with Roughness and Metallic as concrete examples. It is clear enough to distinguish from generic fill-parameter tools, but it does not explicitly differentiate itself from siblings such as set_fill_parameters or set_active_channels.
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 guidance on when this tool should be used versus alternatives, nor does it state prerequisites such as whether a fill layer must be selected first. Usage is only implied by the phrase 'uniform Fill channels'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_fill_parametersB
Update parameters of a Fill, Fill Effect, Generator or Filter; rolls back on failure.
| Name | Required | Description | Default |
|---|---|---|---|
| uid | Yes | ||
| values | Yes | ||
| channel | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden; it does add one genuinely valuable behavioral trait — atomic 'rolls back on failure'. But critical mutation semantics are absent: whether the `values` object is merged into or replaces existing parameters, what happens to unspecified parameters, and whether the operation requires specific permissions or an open 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?
A single tight sentence with the destructive/atomic behavior front-loaded after the purpose — no filler. Brevity is efficient, though it edges toward under-specification rather than crispness.
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 mutation tool with a free-form nested payload, zero schema descriptions, and no annotations, the definition leaves too much open: valid parameter keys, merge-vs-replace behavior, and channel targeting are all unstated. The output schema does cover return values, so that need is satisfied, but the invocation contract is not.
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 3 parameters, and `values` is an unconstrained nested object (additionalProperties: true) — the exact case where the description must compensate. It says nothing about which keys are valid in `values`, what format they take, or what `channel` selects when omitted, leaving the agent to guess at the call shape.
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 ('Update parameters') and enumerates the target resource types (Fill, Fill Effect, Generator, Filter), which is far more precise than a bare name restatement. However, it never distinguishes itself from close siblings like set_fill_base_color, set_fill_channels, set_procedural_input, or apply_fill_preset, so the agent must infer the boundary.
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 by the object types it targets; there is no explicit 'use this when...' guidance, no mention of prerequisites (layer/fill must exist), and no routing to alternatives such as set_procedural_input for procedural inputs. An agent can guess, but with 4 similarly-named set_fill_* siblings the omission matters.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_fill_projectionC
Set Fill, UV, or Triplanar projection with transactional transform updates.
| Name | Required | Description | Default |
|---|---|---|---|
| uid | Yes | ||
| mode | Yes | ||
| scale | No | ||
| offset | No | ||
| rotation | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations at all, the description carries the full behavioral burden and largely fails it: it does not say whether the operation overwrites an existing projection, what permissions or layer state are required, or what 'transactional transform updates' actually guarantees (rollback? atomic apply?). That phrase gestures at behavior but never explains it.
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 no wasted words, but for a five-parameter mutation tool with zero annotation or schema coverage it is too terse rather than appropriately sized. The trailing clause 'with transactional transform updates' is vague enough to add noise rather than 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?
An output schema exists, so return values need not be explained, but everything else is missing: no parameter guidance, no mode semantics, no interaction with the advanced sibling, no behavioral context for a write operation. The definition is not complete enough for an agent to call this 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% for five parameters, so the description must compensate and does not: uid, scale, offset, and rotation are never mentioned. The only added meaning is that 'mode' likely takes Fill/UV/Triplanar values, which is partial credit at best.
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 resource ('Set ... projection') and enumerates the projection modes it covers (Fill, UV, Triplanar), so an agent can tell what the tool does. It does not distinguish itself from the sibling set_fill_projection_advanced or explain how it relates to get_fill_projection, which keeps it below 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?
There is no guidance on when to use this versus set_fill_projection_advanced, get_fill_projection, or set_fill_baking_mesh_inputs-style alternatives. The only hint is the implicit framing of 'setting' a projection, with no exclusions or preconditions stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_fill_projection_advancedC
Configure UV, triplanar, planar, spherical, or cylindrical projection details.
| Name | Required | Description | Default |
|---|---|---|---|
| uid | Yes | ||
| mode | Yes | ||
| settings | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the behavioral burden. It does not state what 'advanced' changes, whether existing projection data is overwritten, what permissions are needed, or what happens on failure; it only lists projection categories.
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 clauses. It is concise, though the word 'details' is vague enough that the sentence could be more informative without becoming bloated.
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 a mutation-style tool with a nested `settings` object, no annotations, and 0% schema description coverage, the description is too thin. The output schema covers return values, but the description still fails to explain how `settings` should be structured or how this tool differs from its basic sibling.
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 the `uid`, `mode`, or nested `settings` parameters. It lists possible projection types but does not tie them to the `mode` parameter or clarify what belongs in `settings`.
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 ('Configure') and resource ('fill projection details'), and it names several projection modes. However, it does not distinguish this 'advanced' tool from the sibling `set_fill_projection`, so an agent cannot tell which projection tool to choose 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 guidance on when to use this tool versus `set_fill_projection`, `get_fill_projection`, or `set_fill_parameters`. The description only implies that it configures projection details, leaving the choice among closely related siblings to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_fill_resourceB
Assign a Painter resource to one Fill channel, a whole material or a mask Fill.
A Fill inside a mask has no channels, so leave channel out for one.
| Name | Required | Description | Default |
|---|---|---|---|
| uid | Yes | ||
| channel | No | ||
| resource_url | Yes | ||
| material_mode | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the full behavioral burden. It discloses the mask-Fill channel exception, but it does not say whether an existing resource is overwritten, what permissions or preconditions apply, or how material_mode changes behavior.
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 short sentences with no wasted language, and the core purpose is front-loaded before the mask-Fill caveat.
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 mutation tool with four parameters, no annotations, and no parameter descriptions in the schema, the description is too sparse. The output schema exists so return values need not be explained, but key invocation details around material_mode, uid, and resource_url remain missing.
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 explain the four parameters. It clarifies channel behavior for mask Fills but does not define uid, resource_url, or material_mode, and the phrase 'whole material' does not explicitly map to the material_mode boolean.
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 gives a specific verb, 'Assign', and a specific resource, a Painter resource, to Fill targets: a channel, a whole material, or a mask Fill. It is clear what the tool does, though it does not explicitly distinguish itself from close siblings such as set_fill_channels or set_fill_base_color.
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 gives one useful conditional: omit channel for a Fill inside a mask because such a Fill has no channels. However, it does not explain when to set material_mode, nor does it compare this operation with sibling tools that also modify Fill settings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_geometry_maskC
Set a geometry mask using mesh names or standard UDIM numbers.
| Name | Required | Description | Default |
|---|---|---|---|
| uid | Yes | ||
| elements | Yes | ||
| mask_type | Yes | ||
| inclusion_list | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
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 never states whether this replaces or extends the current mask, what values mask_type accepts, what inclusion_list does (include vs. exclude), or whether the operation is reversible — all critical for a mutation tool.
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, waste-free sentence that is front-loaded with the verb and resource. It is appropriately sized, though concision here comes at the cost of missing content elsewhere.
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 4-parameter mutation tool with zero annotation coverage and 0% schema descriptions, the description is far too thin. An output schema exists, so return values needn't be explained, but the input semantics and behavioral effects are not covered.
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 and mostly doesn't: it clarifies only that elements can be mesh names or UDIM numbers. The uid, mask_type, and inclusion_list parameters remain completely undefined in both schema and 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?
Specific verb+resource: 'Set a geometry mask' tells the agent exactly what changes, and the mention of 'mesh names or standard UDIM numbers' hints at the accepted element forms. It doesn't explicitly distinguish itself from the sibling get_geometry_mask, but the set/get pair is self-evident.
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 guidance on when to use this instead of get_geometry_mask, no prerequisites (e.g., an open project or uid requirement), and no indication of what happens to an existing mask. The agent must infer all usage conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_layer_maskC
Add/update or remove a layer mask; backgrounds are reported by get_capabilities.
| Name | Required | Description | Default |
|---|---|---|---|
| uid | Yes | ||
| enabled | Yes | ||
| background | No | Black |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It discloses that backgrounds can be discovered via get_capabilities, but does not explain the mutating effects, what happens to existing mask data, whether removal is destructive, or any permission or reversibility concerns.
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 filler. The get_capabilities reference is useful, though the overall brevity leaves important gaps that are captured under other dimensions.
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 mutation tool with no annotations, three undocumented parameters, and 0% schema description coverage, the description is too sparse. The output schema covers return values, but the description should do more to explain parameter meaning and side effects.
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 explain the three parameters. It only indirectly clarifies that background values come from get_capabilities; it says nothing about what uid identifies or how enabled controls add/update/remove behavior.
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 states a specific verb and resource: adding, updating, or removing a layer mask. It is clear what the tool does, though it does not explicitly distinguish itself from related mask tools such as set_geometry_mask or apply_smart_mask.
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 lists the operations but gives no guidance on when to use this tool versus alternatives like set_geometry_mask or apply_smart_mask. It also provides no prerequisites or conditions for choosing add/update versus remove.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_layer_propertiesC
Set visibility, opacity, or blend mode; channel defaults to BaseColor.
| Name | Required | Description | Default |
|---|---|---|---|
| uid | Yes | ||
| channel | No | ||
| opacity | No | ||
| visible | No | ||
| blending_mode | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must carry the full behavioral burden. It discloses that channel defaults to BaseColor, which is useful, but says nothing about mutation semantics: whether omitted/null parameters leave values untouched, whether multiple properties can be set in one call, reversibility/undo, or required permissions. That is a significant gap for a write tool.
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 no wasted words. It is efficient, though the terseness comes at the cost of the missing detail captured in other dimensions.
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 five-parameter mutation tool with no annotations and no schema descriptions, the description is too thin. The output schema covers return values, but an agent still lacks target-identification semantics (uid), value formats, and mutation behavior needed to call this correctly.
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 maps three optional fields (visible, opacity, blending_mode) and clarifies the channel default, but leaves uid unexplained, gives no opacity range (0–1 vs 0–100), no valid blend-mode values, no channel enumeration, and no null-handling semantics. The compensation is only partial.
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 resource ('Set layer properties') and enumerates the affected fields: visibility, opacity, blend mode, plus channel. It does not explicitly distinguish itself from nearby siblings like rename_layer, set_layer_mask, or set_active_channels, so it stops short of a 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?
There is no when-to-use guidance, no exclusions, and no alternatives named. An agent must infer that this is the tool for toggling visibility/opacity/blending on an existing layer rather than one of the many other layer-mutating siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_levelsC
Tune a Levels effect, for example to push a mask's contrast.
channel picks what a content Levels affects, such as BaseColor or Roughness.
| Name | Required | Description | Default |
|---|---|---|---|
| uid | Yes | ||
| clamp | No | ||
| gamma | No | ||
| channel | No | ||
| input_max | No | ||
| input_min | No | ||
| output_max | No | ||
| output_min | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden, yet it says nothing about mutation semantics: whether omitted parameters retain their current values, whether changes are undoable, whether this requires an active-editing session, or what happens if the uid has no Levels effect. Only the output schema relieves it of explaining return values.
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 short sentences with the core action front-loaded and no filler. The second sentence is a bit awkwardly phrased ("what a content Levels affects") but is still efficient; the sparseness is a completeness problem, not a verbosity problem.
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?
An eight-parameter, unannotated mutation tool with 0% schema coverage needs substantially more: the description addresses one parameter and never covers the numeric range parameters that define a Levels adjustment. An agent could not confidently construct a call from this plus the bare 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 description coverage is 0%, so the description must compensate, but it explains only one of eight parameters (channel, with examples BaseColor/Roughness). The seven remaining fields — uid, clamp, gamma, input_min/max, output_min/max — get no meaning, valid ranges, or defaults guidance beyond their names.
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?
"Tune a Levels effect" names a specific verb and resource, and the mask-contrast example makes the effect's role concrete. It does not distinguish this from nearby effect-manipulation siblings such as insert_content_effect, insert_mask_effect, or apply_smart_mask, so an agent must infer that set_levels adjusts an already-existing Levels node.
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 example ("push a mask's contrast") implies a typical usage context, but no explicit when-to-use/when-not-to-use guidance is given, and no alternative tool is named. It also omits the prerequisite that a Levels effect must already exist on the target layer before tuning.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_procedural_inputC
Connect a resource to a procedural image input or reset it to its default.
| Name | Required | Description | Default |
|---|---|---|---|
| uid | Yes | ||
| reset | No | ||
| channel | No | ||
| input_name | Yes | ||
| resource_url | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full behavioral burden. It mentions a reset operation but does not disclose whether reset overwrites existing data, what permissions are required, or what happens to the current input when connecting a new resource.
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 extraneous wording. It is appropriately concise, though its brevity contributes to gaps in behavioral and parameter detail.
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 tool has five parameters, no annotations, and no schema descriptions, which places a high burden on the description. While an output schema exists so return values need not be explained, the description is too thin to fully guide correct 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?
Schema description coverage is 0%, so the description should compensate for all five undocumented parameters. It only vaguely references a resource, an input, and reset, without explaining uid, input_name, channel, or resource_url 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 states a specific verb and resource: connect a resource to a procedural image input or reset it. It is clear what the tool does, but it does not explicitly distinguish itself from related siblings such as get_procedural_inputs or set_fill_resource.
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 usage by mentioning connecting a resource or resetting to default, but it does not say when to choose this tool over alternatives. No exclusions, prerequisites, or sibling comparisons are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
snapshot_layer_treeC
Capture a detailed layer/effect snapshot with a deterministic SHA-256 digest.
| Name | Required | Description | Default |
|---|---|---|---|
| texture_set | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
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 the snapshot includes a deterministic SHA-256 digest, but it does not clarify read-only versus mutating behavior, what exactly is captured, whether capture has side effects, or any permission/performance characteristics.
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 well-formed sentence with no filler, and the most distinctive detail, the deterministic SHA-256 digest, is front-loaded. It is compact 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?
For a snapshot tool with no annotations and an undocumented optional parameter, the description is under-specified. The output schema can carry return-value details, but the agent still lacks guidance on what `texture_set` affects and how this tool fits into the snapshot/diff workflow.
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 optional `texture_set` parameter has 0% schema description coverage and is not mentioned at all in the description. The description does not compensate for that gap, leaving the parameter's scope and effect unexplained.
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, "Capture", and a clear resource, "layer/effect snapshot", plus a distinguishing feature, a deterministic SHA-256 digest. It is understandable apart from siblings like `diff_layer_snapshots`, though it does not explicitly position itself relative to listing or diffing 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 guidance on when to use this snapshot tool versus `list_layers`, `find_layers`, or `diff_layer_snapshots`, nor any mention of prerequisites or exclusions. The intended workflow is only weakly implied by the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
start_bakeB
Start an asynchronous mesh-map bake after explicit confirmation.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | No | ||
| backup_mode | No | Incremental | |
| backup_path | No | ||
| texture_set | Yes | ||
| overwrite_backup | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It usefully discloses that the bake is asynchronous and requires explicit confirmation, but omits whether it mutates project state, what backup behavior means, and how it interacts with existing bake jobs or backups.
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 no filler. It is efficient, though its brevity contributes to the broader specification gaps rather than being a flaw of density.
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?
An output schema exists, so return values need not be explained. But for a five-parameter mutation tool with zero annotation coverage and complex baking siblings, the description is too thin to ensure an agent invokes it correctly or understands the backup-related parameters.
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 five parameters, so the description must compensate. It mentions 'confirmation' (loosely implying the confirm flag) but says nothing about texture_set, backup_mode, backup_path, or overwrite_backup, leaving critical 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 resource: start an asynchronous mesh-map bake. This is clear enough for an agent to identify the operation, though it does not explicitly distinguish itself from siblings like start_batch_bake, preflight_bake, or configure_baking.
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 'after explicit confirmation' establishes a prerequisite, implying the agent must confirm before invoking. However, it gives no guidance on when to use this versus preflight_bake, start_batch_bake, or inspect_baking, and does not describe exclusions or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
start_batch_bakeC
Preflight and start a cancellable multi-Texture-Set bake with result manifests.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | No | ||
| backup_mode | No | Incremental | |
| backup_path | No | ||
| texture_sets | Yes | ||
| overwrite_backup | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
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 discloses cancellability and result manifests, but omits side effects, backup/overwrite behavior, confirm semantics, permissions, and failure handling.
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 no filler. It is efficient, though arguably too compressed for the tool's complexity.
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 output schema covers return values, but for a five-parameter mutation tool with no annotations, the description lacks the usage, parameter, and safety details needed to invoke 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%, and the description only hints at texture_sets via 'multi-Texture-Set'. The confirm, backup_mode, backup_path, and overwrite_backup parameters are entirely 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 ('Preflight and start') and resource ('multi-Texture-Set bake'), plus cancellable/manifests. It does not explicitly contrast with sibling tools like start_bake or preflight_bake, so it stops short of a 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?
No when-to-use or when-not guidance is given, and it does not mention alternatives such as preflight_bake or start_bake. The batch context is only implied by 'multi-Texture-Set'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
start_mesh_reloadC
Back up and asynchronously reload a mesh after explicit confirmation.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | No | ||
| backup_mode | No | Incremental | |
| backup_path | No | ||
| mesh_settings | No | ||
| import_cameras | No | ||
| mesh_file_path | Yes | ||
| overwrite_backup | No | ||
| preserve_strokes | No | ||
| auto_unwrap_settings | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
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 does disclose two important traits — the operation is asynchronous (implying a job handle must be polled via get_mesh_reload_job) and it takes a backup before reloading — which is genuine value. It omits what happens on confirm=false, whether the backup is destructive/overwriting, and what happens to current in-memory state during reload.
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 gating condition placed at the end — no waste, but the extreme brevity is under-specification rather than disciplined concision for a 9-parameter mutation 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?
An output schema exists, so return values need not be explained. But for a destructive 9-parameter operation with no annotations and no schema descriptions, the description leaves too much unstated: required sequencing with plan_mesh_reload, semantics of confirm=false, and the meaning of six of the nine parameters.
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 9 parameters, so the description must compensate and largely does not. 'Back up' loosely gestures at backup_mode/backup_path/overwrite_backup and 'explicit confirmation' at confirm, but mesh_settings, import_cameras, preserve_strokes, auto_unwrap_settings, and mesh_file_path are entirely unexplained.
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?
Names a specific compound action (back up + asynchronously reload) on a specific resource (mesh), plus the gating condition (explicit confirmation). It does not distinguish itself from the sibling trio plan_mesh_reload and get_mesh_reload_job, so an agent cannot tell where this sits in the plan/start/poll sequence 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?
'after explicit confirmation' implies a prerequisite, but nothing says whether plan_mesh_reload must be called first, or when to prefer this over that sibling. Given three mesh-reload siblings, the absence of any routing guidance is a real gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
start_shelf_refreshC
Start event-observed discovery for one Painter shelf after confirmation.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | No | ||
| shelf_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and doesn't state whether this is an async job (implied by the existence of get_shelf_refresh_job), what state it mutates, or what happens if confirm is false. "Event-observed" hints at an observable job model, but only barely.
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 no filler or repetition. It is efficient, though the terseness comes at the cost of the missing information scored elsewhere.
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?
This is an async, state-changing job starter with an output schema (so return values needn't be spelled out) but no annotations and 0% parameter documentation. The description should at least mention that it kicks off a job tracked via get_shelf_refresh_job and what the confirmation gate enforces; neither is present.
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. It does partially: "one Painter shelf" maps to shelf_name and "after confirmation" maps to the confirm boolean. However it never explains the semantics of confirm (default false – does the call no-op without it?) or the required shelf naming expectations.
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?
"Start ... discovery for one Painter shelf" gives a verb and a resource, but the qualifier "event-observed discovery" is internal jargon that doesn't plainly say what happens (a rescan of a shelf's contents?). It also fails to distinguish the tool from siblings like get_shelf_refresh_job or import_shelf_resource.
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 only usage cue is "after confirmation," which gestures at a precondition but never explains when to call this versus get_shelf_refresh_job (the polling counterpart) or import_shelf_resource. No when-not conditions or alternatives are named.
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.
86 tool updates
v1.2.0- First observed
apply_baking_preset - First observed
apply_fill_preset - First observed
apply_smart_mask - First observed
audit_project - First observed
cancel_bake - First observed
capture_baking_preset - First observed
capture_channel - First observed
capture_turntable - First observed
capture_viewport - First observed
close_project - First observed
configure_baking - First observed
create_fill_layer - First observed
create_group - First observed
create_layer_recipe - First observed
create_paint_layer - First observed
create_project - First observed
delete_layer - First observed
diff_layer_snapshots - First observed
execute_python - First observed
export_mesh - First observed
export_smart_mask - First observed
export_smart_material - First observed
export_textures - First observed
export_with_profile - First observed
find_layers - First observed
find_outdated_resources - First observed
get_bake_job - First observed
get_capabilities - First observed
get_fill_parameters - First observed
get_fill_projection - First observed
get_fill_sources - First observed
get_geometry_mask - First observed
get_mesh_reload_job - First observed
get_procedural_inputs - First observed
get_project_creation_job - First observed
get_project_info - First observed
get_shelf_refresh_job - First observed
import_project_resource - First observed
import_session_resource - First observed
import_shelf_resource - First observed
insert_content_effect - First observed
insert_mask_effect - First observed
insert_smart_material - First observed
inspect_baking - First observed
inspect_baking_parameters - First observed
inspect_export_preset - First observed
list_anchor_points - First observed
list_export_presets - First observed
list_export_profiles - First observed
list_layers - First observed
list_project_resources - First observed
list_shelves - First observed
open_project - First observed
painter_status - First observed
plan_layer_recipe - First observed
plan_mesh_reload - First observed
plan_profile_export - First observed
plan_project_creation - First observed
plan_texture_export - First observed
preflight_bake - First observed
rename_layer - First observed
replace_outdated_resources - First observed
save_project - First observed
save_project_copy - First observed
search_resources - First observed
select_layers - First observed
set_active_channels - First observed
set_baking_mesh_inputs - First observed
set_baking_resource_input - First observed
set_fill_anchor_source - First observed
set_fill_base_color - First observed
set_fill_channels - First observed
set_fill_parameters - First observed
set_fill_projection - First observed
set_fill_projection_advanced - First observed
set_fill_resource - First observed
set_geometry_mask - First observed
set_layer_mask - First observed
set_layer_properties - First observed
set_levels - First observed
set_procedural_input - First observed
snapshot_layer_tree - First observed
start_bake - First observed
start_batch_bake - First observed
start_mesh_reload - First observed
start_shelf_refresh
TDQS
Scored across 86 tools
The domain is genuinely large, and most tools state a distinct target (e.g., set_fill_base_color vs set_fill_channels vs set_fill_parameters). However, several clusters overlap heavily — three capture_* tools, set_fill_projection vs set_fill_projection_advanced, insert_content_effect vs insert_mask_effect vs insert_smart_material, and apply_smart_mask vs set_layer_mask — forcing an agent to read long descriptions to choose correctly.
Nearly everything follows a snake_case verb_noun pattern (list_*, get_*, set_*, create_*, plan_*, start_*_job, get_*_job), which is predictable and readable. Minor deviations like painter_status (noun-first) and the mix of plan/start/get_job job-lifecycle verbs are the only friction.
86 tools is far beyond what an agent can reliably navigate in one surface; the plan/start/get_job triples alone multiply the tool count considerably. This is an extreme mismatch for a single server, even given the breadth of Substance Painter.
Coverage is unusually thorough: project lifecycle, layers, masks, fills/generators, baking, mesh reload, export/import, resources, and job polling are all represented with verification and rollback. Gaps like undo/redo, texture-set creation, and resource deletion are minor workarounds rather than dead ends.
Maintenance
Related MCP Connectors
Control Unreal Engine to browse assets, import content, and manage levels and sequences. Automate…
Blender-as-a-service for agents: search 3D assets, run Blender Python, or brief the studio agent.
Connect your AI assistant to Blender for 3D modeling, Geometry Nodes, materials, lighting, animation, rendering and export. Inspect real scenes and viewport images, refine the result and restore checkpoints. OAuth connects your chat to Blender Bridge Desktop on an online Windows 10/11 x64 computer running Blender 4.2+. The chat can run on another device. Requires an active Blender Bridge account; 7-day trial available. AI model access is separate.
Connect Claude to your Platform7n workspaces: chat, links, work and decks. One-click OAuth.
Related MCP Servers
- AlicenseBqualityDmaintenanceEnables Claude AI to directly control Blender for automated 3D modeling, scene creation, and object manipulation. It provides tools for material management, scene inspection, and integration with third-party asset libraries like Poly Haven and Sketchfab.102MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to control Substance 3D Painter, inspecting projects and exporting texture sets via a secure preset-based tool.37 PyPI1MIT
- AlicenseBqualityDmaintenanceEnables Claude AI to interact with and control Blender for 3D modeling, scene creation, and manipulation.22MIT
- AlicenseNot gradedqualityDmaintenanceEnables conversational control of Adobe Substance 3D Painter for look-dev iteration, including baking, smart materials, and generator parameter tuning.MIT