Maya MCP
Maya MCP is a local Model Context Protocol server that lets external clients control Autodesk Maya through a typed tool interface, covering the full range of 3D scene work without writing raw Maya API code.
Connection & Health
Check Maya connection health, connect/disconnect to Maya's
commandPort(health.check,maya.connect,maya.disconnect)
Scene Management
Get scene info (file path, FPS, frame range, up axis), create/open/save/save-as scenes
Import files (.ma, .mb, .obj, .fbx, .abc, .usd, etc.) and export scene content
Undo/redo operations
Node & Attribute Management
List, create, delete, rename, parent, and duplicate nodes
Get detailed node info (transform, hierarchy, attributes, shape)
Get/set attribute values in batch; list, connect, and disconnect attributes between nodes
Traverse construction/deformation history (upstream/downstream)
Selection
Get, set, or clear object/component selections (vertices, edges, faces)
Convert between component types
Mesh Analysis
Get mesh statistics (vertex/face/edge counts, bounding box, UVs)
Query vertex positions with pagination
Evaluate topology for issues (non-manifold geometry, lamina faces, holes, border edges)
Modeling
Create polygon primitives (cube, sphere, cylinder, cone, torus, plane)
Extrude faces, bevel, bridge edge loops, insert edge loops, delete faces
Boolean operations (union, difference, intersection), combine/separate meshes, merge vertices
Freeze transforms, delete construction history, center/set pivot points
Move mesh components by relative or absolute position
Shading
Create materials (lambert, blinn, phong, standardSurface) and assign them to meshes or face components
Set material color properties
Skinning
Bind/unbind meshes to skeletons, list influences
Get/set per-vertex skin weights, copy weights between meshes
Animation
Set current time, get/set playback and animation time ranges
Set, query, and delete keyframes with tangent control
NURBS Curves
Get curve info (degree, spans, CV count, knots, length) and query CV positions
Viewport Capture
Capture viewport frames as inline images (JPEG or PNG) with customizable dimensions and quality
Script Execution
List and execute approved Python scripts from configured directories
Run raw Python or MEL code (opt-in only, requires
MAYA_MCP_ENABLE_RAW_EXECUTION=true)
Controls Autodesk Maya via Maya's commandPort, exposing tools for scene work, nodes, selection, modeling, shading, skinning, animation, curves, scripts, and viewport capture.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Maya MCPCreate a poly sphere at the origin and rename it to 'MySphere'"
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.
Maya MCP Server for Autodesk Maya

Maya MCP is an open-source, local Model Context Protocol server for controlling Autodesk Maya through Maya's commandPort.
Supported Maya versions: Autodesk Maya 2024 and later.
It gives MCP clients a typed tool surface for scene work, nodes, selection, modeling, shading, skinning, animation, curves, scripts, and viewport capture without importing Maya modules in the server process.
This project is unofficial and is not affiliated with or endorsed by Autodesk. Autodesk Maya is a trademark of Autodesk, Inc.
Why Use It
runs outside Maya, so the server stays isolated from Maya imports
talks to Maya over
localhostonlyexposes 71 typed tools instead of raw API calls
supports safer scene replacement flows for unsaved changes
leaves raw code execution disabled unless you opt in
Related MCP server: Maya MCP
Claude Desktop Quick Start
For Claude Desktop, use the packaged MCPB extension from the latest GitHub Release.
Download
maya-mcp-<version>.mcpbfrom the release Assets section.Install it in Claude Desktop by double-clicking the
.mcpbfile, dragging it into Claude Desktop, or using Settings -> Extensions -> Advanced settings -> Install Extension.Keep the Maya commandPort setting at
7001unless you use a different port.Open Maya and run the commandPort setup from the next section.
In Claude Desktop, verify with
health_check,scene_info, andnodes_list.
Claude Desktop uses underscore tool names such as scene_info. Other MCP
clients use dotted names such as scene.info.
Quick Start
1. Install
pip install maya-mcpOn Windows:
py -m pip install maya-mcpFrom source:
pip install -e ".[dev]"2. Open Maya commandPort
Download, then paste and run, the complete
scripts/enable_commandport.py
file in Maya's Python Script Editor. The helper keeps the established Python +
echoOutput path on Maya 2025 and later. On Maya 2024 only, it selects the
loopback-only response compatibility path required by that release.
3. Start the server
maya-mcpOther supported launch styles:
python -m maya_mcp.server
python src/maya_mcp/server.py
fastmcp runfastmcp run works from this repo because it includes fastmcp.json.
4. Add it to your client
Codex CLI / IDE extension
Codex uses ~/.codex/config.toml for MCP servers. The CLI and IDE extension share that config.
Installed package:
[mcp_servers.maya]
command = "maya-mcp"Source checkout or Windows-friendly setup:
[mcp_servers.maya]
command = "py"
args = ["-m", "maya_mcp.server"]
env = { PYTHONPATH = "src" }Use the PYTHONPATH line only when running from a source checkout.
Use python instead of py on platforms that do not provide the Windows launcher.
Claude Code
Claude Code project-scoped MCP servers live in .mcp.json.
The server key is user-defined; these examples use maya consistently.
Installed package:
{
"mcpServers": {
"maya": {
"command": "maya-mcp",
"args": []
}
}
}Source checkout or Windows-friendly setup:
{
"mcpServers": {
"maya": {
"command": "py",
"args": ["-m", "maya_mcp.server"],
"env": {
"PYTHONPATH": "src"
}
}
}
}For Codex CLI and Claude Code on Windows, py -m maya_mcp.server is usually more reliable than relying on the maya-mcp console script being on the correct PATH.
Claude Desktop Extension
Maya MCP ships as a Claude Desktop MCPB extension. The extension still runs the
same local stdio server and keeps Maya communication on localhost.
User installation, build, verification, and troubleshooting notes live in Claude Desktop Extension.
Published GitHub Releases attach the built .mcpb package as
maya-mcp-<version>.mcpb after the release workflow validates and smoke-tests
the bundle.
The packaging script supports a user-local MCPB CLI install:
npm install --prefix "$env:USERPROFILE\.tools\mcpb" @anthropic-ai/mcpb
.\packaging\claude-mcpb\build.ps1VS Code
VS Code uses .vscode/mcp.json with a servers object.
{
"servers": {
"maya": {
"type": "stdio",
"command": "maya-mcp"
}
}
}Other MCP clients
Some clients use a generic mcpServers object:
{
"mcpServers": {
"maya": {
"command": "maya-mcp",
"args": []
}
}
}5. Verify
Call these tools in order:
health.checkscene.infonodes.list
Tool Coverage
Family | Count |
| 1 |
| 2 |
| 9 |
| 7 |
| 2 |
| 6 |
| 5 |
| 3 |
| 1 |
| 15 |
| 3 |
| 6 |
| 6 |
| 2 |
| 3 |
script.run is disabled by default and requires MAYA_MCP_ENABLE_RAW_EXECUTION=true.
scene.new and scene.open still refuse by default when the current scene has unsaved changes. Clients that advertise MCP form elicitation can receive an in-band discard-changes confirmation instead of having to retry with force=True.
Main Docs
Published docs: https://gimbalgoats.github.io/GG_MayaMCP/
Development
This repo uses py for Python commands on Windows:
py -m ruff check .
py -m ruff format .
py -m mypy src/
py -m pytestIf tests import maya_mcp from site-packages instead of this repo:
$env:PYTHONPATH='src'
py -m pytestSecurity Notes
localhost only
no remote-host support
no Maya imports in the MCP server process
no arbitrary code execution by default
no secrets or raw tracebacks in client-facing errors
Privacy
Maya MCP runs locally. The project does not operate a hosted service, collect telemetry, or receive Maya scene data from local use. See Privacy Policy.
License
MIT. See LICENSE.
Available Tools
71 toolsanimation.delete_keyframesDelete KeyframesADestructive
Delete keyframes in a time range for attribute(s).
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes | Name of the node to delete keyframes from | |
| attributes | No | Attribute names (None = all animated attributes) | |
| time_range_end | No | End of time range (None = all time) | |
| time_range_start | No | Start of time range (None = all time) |
Output Schema
| Name | Required | Description |
|---|---|---|
| node | Yes | |
| errors | Yes | |
| attributes | Yes | |
| time_range | Yes | |
| deleted_count | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, and the description is consistent. However, it adds no new behavioral context beyond what is obvious (deletion). The description does not elaborate on irreversibility 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 of six words with no superfluous content. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema and complete parameter documentation, the description covers the essential purpose. However, it could explicitly state that omitting time_range_start and time_range_end deletes all keyframes for the node.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all parameters. The description summarizes the parameters but adds no new meaning beyond what is 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 clearly states the verb 'Delete', the resource 'keyframes', and the scope 'in a time range for attribute(s)'. It distinguishes itself from sibling tools like animation.get_keyframes and animation.set_keyframe by specifying deletion.
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 usage guidelines are provided. The description does not indicate when to use this tool versus alternatives, nor does it mention prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
animation.get_keyframesGet KeyframesARead-onlyIdempotent
Query keyframes for attribute(s) on a node within optional time range.
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes | Name of the node to query | |
| attributes | No | Attribute names to query (None = all animated attributes) | |
| time_range_end | No | End of time range to query (None = all time) | |
| time_range_start | No | Start of time range to query (None = all time) |
Output Schema
| Name | Required | Description |
|---|---|---|
| node | Yes | |
| errors | Yes | |
| keyframes | Yes | |
| truncated | No | |
| total_count | No | |
| _size_warning | No | |
| _original_size | No | |
| _truncated_size | No | |
| attribute_count | Yes | |
| total_keyframe_count | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true, so the agent knows it is safe and idempotent. The description ('Query keyframes') aligns with these annotations and adds no further behavioral context. With annotations providing strong coverage, the description is adequate and consistent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the primary action and scope. Every word is meaningful and no redundant information is present.
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 presence of an output schema (context signals: 'Has output schema: true'), the description does not need to document return values. The description covers the key aspects: node, attributes (implied), and optional time range. The complexity is low, and the description is complete for the tool's purpose.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (each parameter has a description). The description summarizes the parameters but does not add meaning beyond what the schema provides. Baseline of 3 is appropriate given high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool 'Query keyframes for attribute(s) on a node within optional time range.' It uses specific verb 'Query' and resource 'keyframes', distinguishing it from siblings like 'animation.set_keyframe' (creates) or 'animation.delete_keyframes' (deletes).
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 for retrieving keyframe data but provides no explicit guidance on when to use this tool versus alternatives. For example, no mention of prerequisites or when to prefer it over 'animation.get_time_range' or other read tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
animation.get_time_rangeGet Time RangeARead-onlyIdempotent
Get playback range, animation range, and current time.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| fps | Yes | |
| errors | Yes | |
| max_time | Yes | |
| min_time | Yes | |
| current_time | Yes | |
| animation_end | Yes | |
| animation_start | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this tool as readOnly, idempotent, and non-destructive. The description adds specificity by naming the exact data items returned, but does not disclose any additional behavioral traits (e.g., format, units, or response details). Given the high annotation coverage, this is adequate but not beyond expectations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that directly states the tool's function with no extraneous information. It is well-structured and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, parameterless getter with annotations and an output schema, the description provides sufficient context. It clearly states what the tool retrieves, and the remaining details are covered by annotations and 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?
The input schema is empty (0 parameters), so schema description coverage is 100%. The description does not need to add parameter semantics, thus meeting the baseline score of 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 clearly states that the tool retrieves 'playback range, animation range, and current time,' using a specific verb ('Get') and naming the resources. It effectively distinguishes itself from sibling tools like 'animation.set_time' and 'animation.set_time_range' which are setters.
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 as a getter but provides no explicit guidance on when to use this tool versus alternatives or any prerequisites. The context from sibling names suggests differentiation, but the description itself lacks direct usage instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
animation.set_keyframeSet KeyframeA
Set keyframe on attribute(s) at current or specified time.
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes | Name of the node to keyframe | |
| time | No | Time/frame to set keyframe at (None = current time) | |
| value | No | Value to set (None = current value) | |
| attributes | No | Attribute names to keyframe (None = all keyable) | |
| in_tangent_type | No | In-tangent type: auto, linear, flat, step, stepnext, spline, clamped, plateau, fast, slow | auto |
| out_tangent_type | No | Out-tangent type: auto, linear, flat, step, stepnext, spline, clamped, plateau, fast, slow | auto |
Output Schema
| Name | Required | Description |
|---|---|---|
| node | Yes | |
| time | Yes | |
| errors | Yes | |
| attributes | Yes | |
| keyframe_count | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate mutation (readOnlyHint=false). Description adds no extra behavioral details beyond the action, such as handling of existing keyframes or undo 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?
Single sentence, no wasted words, appropriate for the tool's simplicity.
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 full schema coverage and output schema, description is adequate but lacks usage guidance and behavioral context, making it slightly incomplete for a tool with 6 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 100%, so the schema already documents all parameters. The description adds no additional semantic meaning beyond what is 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?
Description clearly states the action (set keyframe), resource (attribute(s)), and context (current or specified time). It distinguishes from sibling tools like delete_keyframes and get_keyframes.
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?
Description implies usage for setting keyframes but provides no explicit guidance on when to use vs alternatives (e.g., delete_keyframes) or excluding conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
animation.set_timeSet Current TimeAIdempotent
Set the current time (go to a specific frame).
| Name | Required | Description | Default |
|---|---|---|---|
| time | Yes | The frame number to set as current time | |
| update | No | Whether to update the viewport (default True) |
Output Schema
| Name | Required | Description |
|---|---|---|
| time | Yes | |
| errors | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate idempotentHint=true and destructiveHint=false, so the agent knows this is a safe, non-destructive operation. The description adds no further behavioral context beyond what is implied by 'set time'. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no unnecessary words. It is perfectly concise and front-loaded with the core action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with 2 parameters, 100% schema coverage, and an output schema, the description is mostly complete. It could mention behavior when time is out of range, but with annotations and schema, the tool is adequately specified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with both parameters documented. The description does not add any meaning beyond the schema's definitions for 'time' and 'update'. A baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it sets the current time to a specific frame. The verb 'Set' and resource 'current time' are specific, and 'go to a specific frame' clarifies the action. It is well-distinguished from siblings like set_time_range.
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 when you want to navigate to a specific frame, but does not explicitly state when to use this tool versus alternatives like set_time_range or get_keyframes. No 'when-not-to-use' guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
animation.set_time_rangeSet Time RangeBIdempotent
Set the playback and animation range.
| Name | Required | Description | Default |
|---|---|---|---|
| max_time | Yes | Playback end time | |
| min_time | Yes | Playback start time | |
| animation_end | No | Animation range end (defaults to max_time) | |
| animation_start | No | Animation range start (defaults to min_time) |
Output Schema
| Name | Required | Description |
|---|---|---|
| errors | Yes | |
| max_time | Yes | |
| min_time | Yes | |
| animation_end | Yes | |
| animation_start | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate idempotentHint=true, destructiveHint=false, and readOnlyHint=false, so the description's claim of 'set' is consistent with modification. However, the description adds no further behavioral context (e.g., that it modifies the scene's timeline settings, or that setting the same values again has no effect). Given the annotations already cover the safety profile, a score of 3 is appropriate—the description is adequate but doesn't enrich transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that directly states the tool's action. It is front-loaded with the key verb and resource, with no wasted words. For a simple tool, this level of conciseness is ideal.
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 4 parameters (2 required) and an output schema. The description is minimal and does not explain parameter defaults (e.g., animation_start defaults to min_time) or the difference from sibling 'animation.set_time'. Considering the tool's moderate complexity, the description could be more complete by adding a brief note about parameter behavior or typical usage.
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 100% schema description coverage, the schema already documents all parameters. The description does not add any meaning beyond the schema (e.g., explaining that animation_end defaults to max_time, or that min_time and max_time are required). Baseline is 3, and the description meets it without going above.
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 'Set the playback and animation range', which clearly indicates the tool modifies both playback and animation time ranges. It aligns with the tool name and distinguishes from siblings like 'animation.get_time_range' (get vs set) and 'animation.set_time' (single time vs range). However, it could be more explicit that it sets both the playback range (min_time, max_time) and the optional animation range (animation_start, animation_end).
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 'animation.set_time' or 'animation.get_time_range'. There is no mention of prerequisites, typical use cases, or situations where this tool is not appropriate. The agent must infer usage solely from the description and sibling names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
attributes.getGet AttributesARead-onlyIdempotent
Get one or more attribute values from a Maya node. Supports batch queries to reduce tool call chaining.
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes | Node name to query | |
| attributes | Yes | Attribute names to get (e.g., ['translateX', 'visibility']) |
Output Schema
| Name | Required | Description |
|---|---|---|
| node | Yes | |
| count | Yes | |
| errors | Yes | |
| attributes | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only and idempotent behavior. The description adds useful context about batch query support, enhancing transparency beyond the structured metadata.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core purpose, and no superfluous words. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (2 params, no enums, output schema present) and comprehensive annotations, the description fully covers what an agent needs to know, including the batching advantage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear descriptions for both parameters. The tool description adds minimal extra value (e.g., the example in the parameter description is already present in the schema). Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('get'), the resource ('attribute values from a Maya node'), and highlights batch query support, distinguishing it from siblings like 'attributes.set'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly advises batch usage to reduce chaining, giving clear guidance on when to prefer this tool. It does not mention when not to use it or alternatives, but the guidance is helpful.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
attributes.setSet AttributesAIdempotent
Set one or more attribute values on a Maya node. Supports batch operations to reduce tool call chaining.
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes | Node name to modify | |
| attributes | Yes | Map of attribute name to value |
Output Schema
| Name | Required | Description |
|---|---|---|
| set | Yes | |
| node | Yes | |
| count | Yes | |
| errors | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide idempotency and non-destructive nature. Description adds batch operation context. No contradictions, but no extra error or side-effect details.
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?
Single sentence with two clauses, front-loaded purpose, no unnecessary words. Efficient.
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 low complexity, good annotations, and schema coverage, the description covers key aspects. Could mention valid value types but not critical.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear parameter descriptions. The tool description does not add additional meaning beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Set', the resource 'attribute values on a Maya node', and highlights batch operations, distinguishing it from sibling tools like attributes.get.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly notes batch operations reduce tool call chaining, implying use for multiple attributes. It lacks explicit when-not-to-use or alternatives, but context is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
connections.connectConnect AttributesAIdempotent
Connect two attributes in Maya. Use force=True to disconnect existing connections first.
| Name | Required | Description | Default |
|---|---|---|---|
| force | No | If True, disconnect existing connections to destination first | |
| source | Yes | Source plug in 'node.attribute' format | |
| destination | Yes | Destination plug in 'node.attribute' format |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | Yes | |
| source | Yes | |
| connected | Yes | |
| destination | Yes | |
| disconnected | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate idempotent and non-destructive behavior. The description adds the key behavioral detail that force=True can disconnect existing connections, which is beyond what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no wasted words. Essential information is front-loaded: the main purpose and a key usage note on force.
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 rich annotations (idempotentHint, destructiveHint) and 100% schema coverage, the description is sufficient. However, it could mention what happens when force=False and a connection already exists (likely an error) for completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description does not add new semantic information beyond what the schema already provides for each 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 explicitly states the action ('Connect two attributes in Maya') and the resource ('attributes'). It clearly distinguishes from sibling tools like 'connections.disconnect' and 'connections.get' by naming the specific operation.
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 clear guidance on when to use force=True (to handle existing connections). However, it does not explicitly state when not to use this tool or suggest alternatives like 'connections.disconnect' for breaking connections.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
connections.disconnectDisconnect AttributesAIdempotent
Disconnect attributes in Maya. Can disconnect a specific connection, all outgoing from a source, or all incoming to a destination.
| Name | Required | Description | Default |
|---|---|---|---|
| source | No | Source plug to disconnect from (None = use destination only) | |
| destination | No | Destination plug to disconnect from (None = use source only) |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | Yes | |
| error | Yes | |
| disconnected | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate idempotence and non-destructiveness, which align with the tool's purpose. The description adds the three-mode behavioral detail, but does not disclose potential side effects (e.g., attribute values resetting to default).
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, clear sentence that front-loads the core purpose and efficiently conveys the three usage scenarios with no unnecessary 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?
For a tool with three modes and an output schema, the description adequately covers the basic functionality. However, it could be more complete by mentioning that the source and destination are plug attributes, and noting that disconnected values revert to defaults.
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?
Input schema has 100% coverage with descriptions for both parameters. The description adds semantic value by explaining how the combination of source and destination determines the disconnection behavior (specific, all outgoing, all incoming).
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 (disconnect), the resource (attributes in Maya), and distinguishes three usage modes (specific connection, all outgoing, all incoming). It effectively differentiates from sibling tools like connections.connect and connections.list.
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 describing three modes, but does not explicitly state when to use this tool vs alternatives (e.g., connections.list, connections.get). No guidance on prerequisites or when not to use is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
connections.getGet Connection DetailsBRead-onlyIdempotent
Get detailed connection information for specific attributes on a node.
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes | Node name to query | |
| attributes | No | Attribute names to check for connections (None = all connectable attrs) |
Output Schema
| Name | Required | Description |
|---|---|---|
| node | Yes | |
| count | Yes | |
| errors | Yes | |
| attributes | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the agent knows the operation is safe. The description adds that it gets 'detailed' information but doesn't elaborate on what 'detailed' entails (e.g., connection types, direction, status). No contradictions.
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?
Single sentence, no wasted words. Could be slightly more structured (e.g., separated purpose and usage hints), but efficient for the information provided.
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 zero required parameters beyond node, good annotations, and existing output schema, the description is minimally sufficient. However, it does not explain what 'detailed connection information' includes (e.g., attributes, target nodes, connection types), leaving some ambiguity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%: both 'node' and 'attributes' parameters have descriptions. The tool description adds no extra meaning beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'get detailed connection information for specific attributes on a node', specifying the verb (get) and resource (connection details for attributes on a node). It distinguishes from sibling tools like connections.list and connections.connect by focusing on specific attribute-level details, though it could be more 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?
No guidance on when to use this tool versus alternatives such as connections.list or connections.history. The description does not mention prerequisites, exclusions, or context for invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
connections.historyList Node HistoryARead-onlyIdempotent
List construction/deformation history on a node. Traverses upstream (input) or downstream (output) dependency graph.
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes | Node name to query history for | |
| depth | No | Maximum depth to traverse (default 10, max 50) | |
| limit | No | Max history nodes to return (default 500) | |
| direction | No | Direction to traverse: input (upstream), output (downstream), or both | input |
Output Schema
| Name | Required | Description |
|---|---|---|
| node | Yes | |
| count | Yes | |
| errors | Yes | |
| history | Yes | |
| truncated | No | |
| total_count | No | |
| _size_warning | No | |
| _original_size | No | |
| _truncated_size | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, covering safety. Description adds traversal direction details but lacks explanation of behavior beyond what annotations and parameter descriptions provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with purpose, no wasted words. Clearly communicates the core action and directional options.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists, so return values are documented elsewhere. Description covers node, direction, depth, and limit, but lacks explanation of what 'construction/deformation history' specifically entails, leaving minor ambiguity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with parameter descriptions. Description adds value by clarifying that the history is about construction/deformation and traversal direction, enhancing understanding beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'List construction/deformation history on a node' with a specific verb and resource. It clearly distinguishes from sibling tools like connections.list and nodes.list by focusing on history rather than connections or nodes.
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 for querying node history with directional traversal but does not explicitly state when to use this tool over alternatives or provide exclusions. The direction parameter is noted but not elaborated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
connections.listList ConnectionsARead-onlyIdempotent
List connections on a Maya node with direction and type filters. Returns max 500 connections by default to limit response size.
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes | Node name to query connections for | |
| limit | No | Max connections to return (default 500, use 0 for unlimited) | |
| direction | No | Filter by direction: incoming, outgoing, or both | both |
| connections_type | No | Filter by connection type (e.g., 'animCurve', 'shader') |
Output Schema
| Name | Required | Description |
|---|---|---|
| node | Yes | |
| count | Yes | |
| errors | Yes | |
| truncated | No | |
| connections | Yes | |
| total_count | No | |
| _size_warning | No | |
| _original_size | No | |
| _truncated_size | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds value beyond annotations by specifying the default limit of 500 connections to limit response size, which is useful behavioral information.
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?
Single sentence, front-loaded with core purpose, no unnecessary 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?
Covers essential aspects: node parameter, filters, and limit. Output schema exists so return format is covered elsewhere.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with parameter descriptions. The description only generically mentions 'direction and type filters', adding no meaningful extra context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists connections on a Maya node with direction and type filters, distinguishing it from sibling tools like connections.connect, connections.disconnect, etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for listing connections but does not explicitly state when to use this tool over alternatives like connections.get or connections.history.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
curve.cvsGet Curve CVsARead-onlyIdempotent
Query CV positions from a NURBS curve with offset/limit pagination. Returns CV positions as [x, y, z] arrays in world space.
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes | Name of the curve node (transform or shape) | |
| limit | No | Maximum CVs to return (default 1000, use 0 for unlimited) | |
| offset | No | Starting CV index (0-based) |
Output Schema
| Name | Required | Description |
|---|---|---|
| cvs | No | |
| node | Yes | |
| count | No | |
| shape | No | |
| errors | Yes | |
| exists | Yes | |
| offset | No | |
| cv_count | No | |
| is_curve | Yes | |
| truncated | No | |
| total_count | No | |
| _size_warning | No | |
| _original_size | No | |
| _truncated_size | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, idempotentHint=true, and destructiveHint=false, establishing a safe, read-only operation. The description adds value by specifying that positions are returned as [x, y, z] arrays in world space. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the action and resource. Every word serves a purpose: 'Query', 'CV positions', 'NURBS curve', 'offset/limit pagination', 'Returns CV positions as [x, y, z] arrays in world space'. No wasted or redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema (implied) and comprehensive annotations, the description covers the core functionality, pagination, and output format. It does not mention error handling or prerequisites (e.g., curve existence), but for a read-only query tool, the information is sufficient for an AI agent to select and invoke 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?
The schema has 100% description coverage, meaning parameters (node, limit, offset) are well-documented. The description reinforces the pagination concept ('offset/limit pagination') and mentions 'world space' which is not in the schema, adding slight value. However, it adds minimal new semantic meaning beyond what the schema provides.
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 specifies the action ('Query'), resource ('CV positions from a NURBS curve'), and additional details ('with offset/limit pagination' and 'Returns CV positions as [x, y, z] arrays in world space'). It clearly distinguishes this tool from siblings like curve.info, which likely provides general curve information.
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 for paginated CV queries by mentioning offset/limit pagination. However, it does not explicitly state when to use this tool versus alternatives (e.g., curve.info for total CV count) or provide 'when not to use' guidance. The context is clear but lacks explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
curve.infoGet Curve InformationARead-onlyIdempotent
Get NURBS curve information: degree, spans, form, CV count, knots, length, bounding box.
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes | Name of the curve node (transform or shape) |
Output Schema
| Name | Required | Description |
|---|---|---|
| form | No | |
| node | Yes | |
| knots | No | |
| shape | No | |
| spans | No | |
| degree | No | |
| errors | Yes | |
| exists | Yes | |
| length | No | |
| cv_count | No | |
| is_curve | Yes | |
| bounding_box | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds value by listing exactly which information is returned (degree, spans, form, etc.), providing behavioral context beyond annotations.
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, clear sentence that front-loads the purpose and lists the key data fields. No extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists (though not shown), the description provides sufficient context for an info tool. It covers the main return fields and complements the parameter schema. Slight improvement could mention how the tool handles transform vs shape nodes, but not critical.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for the 'node' parameter, explaining it expects a curve node name (transform or shape). The tool description does not add further semantic meaning, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves NURBS curve information and lists specific attributes (degree, spans, form, CV count, knots, length, bounding box). It is distinct from sibling tools like curve.cvs which focuses only on CVs.
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 explicit guidance on when to use this tool versus alternatives such as curve.cvs or mesh.info. The description does not mention prerequisites, context, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
health.checkCheck Maya Connection HealthARead-onlyIdempotent
Check the health status of the Maya connection
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| host | Yes | |
| port | Yes | |
| status | Yes | |
| last_error | Yes | |
| last_contact | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true. Description adds 'health status' context but does not go beyond what annotations provide.
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?
Single sentence, no wasted words, front-loaded with the essential 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?
Tool is simple with no parameters and an output schema; description succinctly covers the purpose, sufficient for an agent to understand its function.
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?
No parameters present; baseline 4 since schema coverage is 100% and description does not need to add parameter 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?
Description clearly states the action 'Check' and the resource 'health status of the Maya connection', which is specific and distinguishable from sibling tools that are about animation, modeling, etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool vs. alternatives; it is implied that it's a preliminary check, but not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
maya.connectConnect To MayaBIdempotent
Establish a connection to Maya's commandPort
| Name | Required | Description | Default |
|---|---|---|---|
| host | No | Target host (localhost only) | localhost |
| port | No | Target port number | |
| source_type | No | Command interpreter type | python |
Output Schema
| Name | Required | Description |
|---|---|---|
| host | Yes | |
| port | Yes | |
| error | Yes | |
| connected | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide idempotentHint=true and destructiveHint=false. The description adds no extra behavioral context, but this is acceptable given annotation coverage. Lacks details like connection persistence or error 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?
Single sentence, no redundancy. Could be slightly more informative without losing 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?
Output schema exists but is not shown in the description. For a connection tool, the return value (success/failure, connection object) is critical and omitted.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for all three parameters. The tool description adds no additional parameter meaning, which is acceptable as schema handles 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?
The description clearly states the action ('establish') and resource ('connection to Maya's commandPort'). However, it does not explicitly distinguish this from the sibling 'maya.disconnect', but the purpose is specific enough.
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 alternatives (e.g., before other Maya operations). Does not mention prerequisites or context for connection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
maya.disconnectDisconnect From MayaBIdempotent
Close the connection to Maya
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| disconnected | Yes | |
| was_connected | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral context beyond what the annotations already indicate (idempotentHint=true, destructiveHint=false). It does not explain what happens if the connection is already closed or any 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 sentence with no wasted words, front-loaded with the key action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple disconnect action with an output schema and no parameters, the description is nearly complete. However, a brief note on idempotency or safety would enhance completeness.
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 zero parameters and full schema coverage, the description does not need to add parameter details. The baseline of 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?
The description 'Close the connection to Maya' clearly states the action, but it does not differentiate from the sibling tool 'connections.disconnect', which may cause confusion about which disconnect is intended.
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 is provided about when to use this tool versus alternatives like 'connections.disconnect'. There is no context about prerequisites or complementary actions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mesh.evaluateEvaluate Mesh TopologyARead-onlyIdempotent
Analyze mesh topology for issues: non-manifold edges, lamina faces, holes, and border edges.
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes | Name of the mesh node (transform or shape) | |
| limit | No | Max components per check (default 500) | |
| checks | No | Checks to perform (default: all) |
Output Schema
| Name | Required | Description |
|---|---|---|
| node | Yes | |
| holes | No | |
| shape | No | |
| errors | Yes | |
| exists | Yes | |
| is_mesh | Yes | |
| is_clean | Yes | |
| truncated | No | |
| hole_count | No | |
| total_count | No | |
| border_count | No | |
| border_edges | No | |
| lamina_count | No | |
| lamina_faces | No | |
| _size_warning | No | |
| _original_size | No | |
| _truncated_size | No | |
| non_manifold_count | No | |
| non_manifold_edges | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as read-only, idempotent, and non-destructive. The description adds value by specifying the exact checks performed (non-manifold, lamina, holes, border), which is consistent with annotations. No contradictions.
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?
Single sentence efficiently stating purpose and key issues. No filler, front-loaded with actionable information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (3 parameters, output schema present, comprehensive annotations), the description fully covers what the tool does and the issues it checks. No missing context for an agent to use 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 coverage is 100%, with clear descriptions for all parameters. The description does not add extra meaning beyond the schema, but the listed issue types align with the 'checks' parameter. Baseline is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Analyze') and resource ('mesh topology'), listing exact issue types (non-manifold edges, lamina faces, holes, border edges). It clearly distinguishes from siblings like 'mesh.info' (likely general info) and 'mesh.vertices' (vertex data).
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 alternatives like 'health.check' or other mesh analysis tools. The description does not mention when not to use it or provide context for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mesh.infoGet Mesh InformationARead-onlyIdempotent
Get mesh statistics: vertex/face/edge counts, bounding box, UV status
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes | Name of the mesh node (transform or shape) |
Output Schema
| Name | Required | Description |
|---|---|---|
| node | Yes | |
| shape | No | |
| errors | Yes | |
| exists | Yes | |
| has_uvs | No | |
| is_mesh | Yes | |
| uv_sets | No | |
| uv_count | No | |
| edge_count | No | |
| face_count | No | |
| bounding_box | No | |
| vertex_count | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description does not add behavioral context beyond what annotations provide, though it is consistent and does not contradict them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that efficiently conveys the tool's purpose and the specific data it returns, with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema and clear annotations, the description is largely complete. However, it omits potential prerequisites like ensuring the node has a mesh shape, leaving some ambiguity for the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for the single parameter 'node', so baseline is 3. The description adds no additional parameter semantics beyond what the schema already provides.
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 'Get mesh statistics: vertex/face/edge counts, bounding box, UV status', specifying the exact verb and resource, and distinguishing it from siblings like mesh.vertices and mesh.evaluate by listing the specific summary metrics returned.
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 for retrieving mesh statistics but provides no explicit guidance on when to use this tool versus alternatives (e.g., mesh.vertices for per-vertex data) or any exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mesh.verticesGet Mesh VerticesARead-onlyIdempotent
Query vertex positions from a mesh with offset/limit pagination. Returns vertex positions as [x, y, z] arrays.
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes | Name of the mesh node (transform or shape) | |
| limit | No | Maximum vertices to return (default 1000, use 0 for unlimited) | |
| offset | No | Starting vertex index (0-based) |
Output Schema
| Name | Required | Description |
|---|---|---|
| node | Yes | |
| count | No | |
| shape | No | |
| errors | Yes | |
| exists | Yes | |
| offset | No | |
| is_mesh | Yes | |
| vertices | No | |
| truncated | No | |
| total_count | No | |
| vertex_count | No | |
| _size_warning | No | |
| _original_size | No | |
| _truncated_size | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, and non-destructive behavior. The description adds that the tool uses offset/limit pagination and returns positions as [x, y, z] arrays. However, it does not disclose potential performance implications for large meshes, what happens if offset exceeds vertex count, or error conditions. The description adds some value but not comprehensive 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?
The description is exceptionally concise: two short sentences that communicate the core function and return type. There is no redundancy or unnecessary elaboration. Every word contributes to understanding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (3 parameters, all documented) and the presence of an output schema, the description adequately covers the essential context: what the tool does, how pagination works, and the return format. Minor gaps exist, such as not mentioning behavior for empty meshes or invalid node names, but these are likely covered by the output schema or error handling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for all three parameters (node, limit, offset). The description adds meaning beyond the schema by explaining the return format ('[x, y, z] arrays') and the pagination concept ('offset/limit pagination'). This extra context helps the agent understand the data shape and usage pattern.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Query vertex positions from a mesh with offset/limit pagination.' It specifies the resource (mesh vertices) and action (query), and mentions pagination details. The tool name and title also clearly indicate the function, and it distinguishes itself from sibling tools like mesh.info or curve.cvs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention scenarios where another tool might be better (e.g., if vertex normals or UV coordinates are needed). There are no usage restrictions or prerequisites stated, leaving the agent to infer context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
modeling.bevelBevel ComponentsB
Bevel edges or vertices with offset, segments, and fraction options.
| Name | Required | Description | Default |
|---|---|---|---|
| offset | No | Bevel offset distance (default 0.5) | |
| fraction | No | Bevel fraction (default 0.5) | |
| segments | No | Number of bevel segments (default 1) | |
| components | Yes | Edge or vertex components to bevel (e.g., ['pCube1.e[0:3]']) |
Output Schema
| Name | Required | Description |
|---|---|---|
| node | Yes | |
| errors | Yes | |
| new_face_count | Yes | |
| new_vertex_count | Yes | |
| components_beveled | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate the tool is not read-only and not necessarily destructive, but the description adds no additional behavioral context such as side effects, required permissions, or limits. The description does not contradict annotations, but adds no value beyond them.
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?
Single, efficient sentence that immediately conveys the tool's purpose with no extraneous information. Well-structured and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 4 parameters and an output schema, the description is minimally adequate but lacks details on return values or edge cases. It does not fully exploit the available context to be more complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description mentions the parameters by name but adds no new meaning beyond what the schema already provides (e.g., defaults, types).
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 'Bevel' applied to 'edges or vertices' with parameters 'offset, segments, and fraction options', which distinguishes it from sibling tools like modeling.boolean or modeling.bridge.
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 explicit guidance on when to use this tool versus alternatives, nor any mention of prerequisites or when not to use it. The description only implies the general context of beveling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
modeling.booleanRun Mesh BooleanA
Perform a boolean operation (union, difference, intersection) on two meshes.
| Name | Required | Description | Default |
|---|---|---|---|
| mesh_a | Yes | First mesh (base) | |
| mesh_b | Yes | Second mesh (operand) | |
| operation | No | Boolean operation type | union |
Output Schema
| Name | Required | Description |
|---|---|---|
| errors | Yes | |
| operation | Yes | |
| face_count | Yes | |
| result_mesh | Yes | |
| vertex_count | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=false and destructiveHint=false, but the description does not clarify whether the original meshes are modified or if a new mesh is created. Boolean operations can be destructive or non-destructive; this lack of detail limits agent understanding of 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?
Single sentence with 12 words, contains all essential information without redundancy. Efficiently communicates core functionality.
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 but is not provided; however, context signals confirm its presence. Description omits details about return type (e.g., new mesh) and whether original meshes are preserved. Adequate but not fully comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for all parameters ('First mesh (base)', 'Second mesh (operand)', 'Boolean operation type'). Description adds no additional semantic value beyond listing operations. Baseline 3 as schema covers the meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description explicitly states the verb 'perform', resource 'boolean operation', and lists the three operations (union, difference, intersection). Clearly distinguishes from sibling modeling tools like bevel, bridge, etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description implies use for boolean operations on meshes but does not provide guidance on when to use this tool versus alternatives (e.g., combine vs union, difference vs separate). No explicit when-to-use or when-not-to-use context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
modeling.bridgeBridge Edge LoopsB
Bridge between edge loops to create connecting faces.
| Name | Required | Description | Default |
|---|---|---|---|
| taper | No | Taper amount (default 1.0) | |
| twist | No | Twist amount (default 0) | |
| divisions | No | Number of divisions in the bridge (default 0) | |
| edge_loops | Yes | Edge components for the edge loops to bridge |
Output Schema
| Name | Required | Description |
|---|---|---|
| node | Yes | |
| errors | Yes | |
| new_face_count | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral traits beyond the annotations. With destructiveHint=false, the actual effect of creating new geometry is unclear. The description does not disclose creation of new polygonal faces or modification of existing topology.
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 that conveys the core action without unnecessary words. It is front-loaded with the verb and resource.
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 moderately complex tool with an output schema, the description is adequate but minimal. It lacks context about the operation's typical workflow, selection requirements, or side effects, yet the schema covers 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 coverage is 100%, so baseline is 3. The description does not elaborate on parameter meanings beyond what the schema already provides, but it doesn't need to.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'bridge' and the resource 'edge loops', with the outcome 'create connecting faces'. It distinctly separates this tool from sibling tools like modeling.insert_edge_loop or modeling.extrude_faces.
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 is provided on when to use this tool versus alternatives. There is no mention of prerequisites, selection requirements, or situations where other tools might be preferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
modeling.center_pivotCenter PivotBIdempotent
Center the pivot point on nodes.
| Name | Required | Description | Default |
|---|---|---|---|
| nodes | Yes | Node names to center pivots on |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | Yes | |
| errors | Yes | |
| centered | Yes | |
| pivot_positions | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate the tool is not read-only, is idempotent, and not destructive. The description adds no behavioral context beyond what annotations already provide, such as how 'center' is computed or any 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 sentence with no wasted words. However, it is so minimal that it sacrifices completeness for brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity and the presence of an output schema, the description is somewhat complete but lacks explanation of what 'center' entails. It does not address typical user questions like 'center relative to what?'
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the 'nodes' parameter, but the description adds no additional meaning. It does not clarify what 'center' means (e.g., geometric center, bounding box center). Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('center') and the resource ('pivot point on nodes'). However, it does not differentiate from the sibling tool 'modeling.set_pivot', which also manipulates pivots.
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 alternatives like 'modeling.set_pivot' or other transformation tools. The description is too brief to provide context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
modeling.combineCombine MeshesC
Combine multiple meshes into a single mesh.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Optional name for the combined mesh | |
| meshes | Yes | List of mesh names to combine (minimum 2) |
Output Schema
| Name | Required | Description |
|---|---|---|
| errors | Yes | |
| face_count | Yes | |
| result_mesh | Yes | |
| vertex_count | Yes | |
| source_meshes | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=false (modification) but destructiveHint=false, which is unclear since combining meshes typically alters or removes originals. Description does not clarify if original meshes are retained or destroyed.
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?
Single sentence, 6 words, front-loaded and efficient. However, it may be too sparse for the complexity implied by sibling tools.
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?
Despite having an output schema, the description lacks behavioral and usage context. For a tool with many siblings, more guidance is needed for proper 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?
Input schema provides full descriptions for both parameters (name, meshes). The description adds no extra meaning beyond the schema, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the action 'Combine multiple meshes into a single mesh.' It specifies the verb and resource, but does not differentiate from similar modeling tools like boolean or bridge.
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 alternatives such as modeling.separate or modeling.boolean. No context on prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
modeling.create_polygon_primitiveCreate Polygon PrimitiveA
Create a polygon primitive (cube, sphere, cylinder, cone, torus, plane) with configurable dimensions, subdivisions, and axis.
| Name | Required | Description | Default |
|---|---|---|---|
| axis | No | Up axis for the primitive | y |
| name | No | Optional name for the transform node | |
| depth | No | Depth (cube) | |
| width | No | Width (cube/plane) | |
| height | No | Height (cube/cylinder/cone/plane) | |
| radius | No | Radius (sphere/cylinder/cone/torus) | |
| primitive_type | Yes | Type of primitive to create | |
| subdivisions_axis | No | Axis subdivisions (sphere/cylinder/cone/torus) | |
| subdivisions_depth | No | Depth subdivisions | |
| subdivisions_width | No | Width subdivisions | |
| subdivisions_height | No | Height subdivisions |
Output Schema
| Name | Required | Description |
|---|---|---|
| shape | Yes | |
| errors | Yes | |
| transform | Yes | |
| face_count | Yes | |
| vertex_count | Yes | |
| primitive_type | Yes | |
| constructor_node | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate a write operation (readOnlyHint=false) and the description confirms creation, but no additional behavioral context is provided beyond what is obvious.
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, effectively conveying the tool's 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?
Given the complexity (11 parameters) and the existence of an output schema, the description provides sufficient context; the schema handles detailed parameter explanations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the description adds minimal extra meaning beyond summarizing parameters as 'configurable dimensions, subdivisions, and axis'.
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 (Create), resource (polygon primitive), and lists all supported types (cube, sphere, etc.), distinguishing it from sibling modeling tools that perform different operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for creating standard primitives, but does not explicitly state when to use this tool versus alternatives or provide exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
modeling.delete_facesDelete FacesADestructive
Delete polygon faces from a mesh.
| Name | Required | Description | Default |
|---|---|---|---|
| faces | Yes | Face components to delete (e.g., ['pCube1.f[0]', 'pCube1.f[3]']) |
Output Schema
| Name | Required | Description |
|---|---|---|
| mesh | Yes | |
| errors | Yes | |
| faces_deleted | Yes | |
| remaining_face_count | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true, so description adds no further behavioral context beyond stating 'Delete'.
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?
Single sentence with no extraneous words, perfectly sized for the simple 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?
Tool is simple with an output schema; description adequately informs the agent of the core action.
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 has 100% coverage for the single 'faces' parameter with an example; description adds no additional parameter meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the verb 'Delete' and resource 'polygon faces from a mesh', differentiating from sibling tools like extrude_faces or bevel.
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 vs alternatives, or any prerequisites or conditions for deletion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
modeling.delete_historyDelete Construction HistoryBDestructiveIdempotent
Delete construction history from nodes or the entire scene.
| Name | Required | Description | Default |
|---|---|---|---|
| nodes | No | Node names to delete history from | |
| all_nodes | No | If True, delete history from all nodes in the scene |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | Yes | |
| errors | Yes | |
| cleaned | Yes | |
| truncated | No | |
| total_count | No | |
| _size_warning | No | |
| _original_size | No | |
| _truncated_size | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and idempotentHint=true. The description adds no additional behavioral context beyond stating the action (delete). It does not mention reversibility, undo implications, or required permissions, which would be valuable for a destructive operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, concise and to the point. It efficiently conveys the core functionality without extra words, earning its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (two optional parameters, output schema exists), the description provides minimal but sufficient context. However, it lacks completeness regarding behavioral expectations and usage scenarios, making it barely adequate for a destructive operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for both parameters. The description mentions 'nodes or the entire scene' which aligns with the 'nodes' and 'all_nodes' parameters but does not add new semantic details. Baseline score of 3 is appropriate as schema does the work.
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 what the tool does: 'Delete construction history from nodes or the entire scene.' It specifies the verb (delete) and the resource (construction history), and distinguishes between scope options (nodes vs entire scene). This effectively differentiates it from sibling tools like 'modeling.delete_faces'.
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 'modeling.freeze_transforms' or 'modeling.center_pivot'. It lacks context on prerequisites, conditions for use, or cases where other tools might be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
modeling.extrude_facesExtrude FacesB
Extrude polygon faces with local translation, offset, and division options.
| Name | Required | Description | Default |
|---|---|---|---|
| faces | Yes | Face components to extrude (e.g., ['pCube1.f[0]', 'pCube1.f[2]']) | |
| offset | No | Offset amount for the extrusion | |
| divisions | No | Number of extrusion divisions | |
| local_translate_x | No | Local X translation | |
| local_translate_y | No | Local Y translation | |
| local_translate_z | No | Local Z translation (extrusion thickness) | |
| keep_faces_together | No | Keep faces together during extrusion |
Output Schema
| Name | Required | Description |
|---|---|---|
| node | Yes | |
| errors | Yes | |
| faces_extruded | Yes | |
| new_face_count | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide no hints (all false), and the description merely states the operation without disclosing side effects, such as whether the extrusion creates new geometry, whether it is destructive, or any permissions needed. The agent lacks understanding of the operation's impact.
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 fluff. Every word is informative, and it efficiently conveys the tool's action and key options.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has an output schema (covers return values) and schema coverage is 100%, so the description's brevity is acceptable. However, a brief example or clarification of 'local translation' axes would improve completeness for a modeling tool with multiple siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents each parameter. The description adds a summary phrase but no additional semantics beyond what the schema provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Extrude' and the resource 'polygon faces', and lists the specific options (local translation, offset, division). It effectively distinguishes from sibling modeling tools like bevel, bridge, or delete_faces.
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 is provided on when to use this tool versus alternatives, nor are there any prerequisites, exclusions, or context about typical use cases. The agent is left without decision support.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
modeling.freeze_transformsFreeze TransformsADestructiveIdempotent
Freeze (reset) transforms on nodes, applying current values as identity.
| Name | Required | Description | Default |
|---|---|---|---|
| nodes | Yes | Node names to freeze transforms on | |
| scale | No | Freeze scale (default True) | |
| rotate | No | Freeze rotation (default True) | |
| translate | No | Freeze translation (default True) |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | Yes | |
| errors | Yes | |
| frozen | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already note destructiveHint=true and idempotentHint=true; the description adds the key behavioral detail that it 'applies current values as identity', explaining how the transformation is effectively preserved while resetting 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?
Single, clear sentence with no redundant words. Front-loaded with action and resource. Could benefit from a brief usage hint, but it's concise and direct.
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?
Though the tool is simple (4 boolean params, 1 required), the description does not confirm it modifies node transform attributes, nor mention output schema content (e.g., returns success). With annotations and high schema coverage, it's minimally adequate but not thorough.
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?
Input schema covers all 4 parameters with individual descriptions (nodes, scale, rotate, translate) at 100% coverage. The tool description adds no additional meaning beyond the phrase 'freeze transforms', so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool resets transforms to identity, using specific verbs 'freeze' and 'reset', and distinguishes it from siblings like set_pivot which adjust pivot positions.
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 explicit guidance on when to use this tool versus alternatives like attributes.set or modeling.center_pivot. The description implies it's for resetting transforms after manipulation, but lacks when-not-to-use or prerequisite information.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
modeling.insert_edge_loopInsert Edge LoopB
Insert an edge loop at the specified edge using polySplitRing.
| Name | Required | Description | Default |
|---|---|---|---|
| edge | Yes | Single edge component (e.g., 'pCube1.e[4]') | |
| weight | No | Position weight along the edge (0-1, default 0.5) | |
| divisions | No | Number of edge loops to insert (default 1) |
Output Schema
| Name | Required | Description |
|---|---|---|
| edge | Yes | |
| node | Yes | |
| errors | Yes | |
| new_edge_count | Yes | |
| new_vertex_count | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=false, so the agent knows the tool modifies geometry but is reversible. The description adds 'using polySplitRing', which gives some method context but does not disclose additional behavioral traits like undo behavior or effect on adjacent geometry.
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 short sentence that conveys the core purpose. It is front-loaded and efficient, though it could be slightly more informative without becoming verbose.
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 (3 parameters, 1 required) and presence of annotations and output schema, the description is adequate for a straightforward modeling operation. However, it lacks context on typical use cases or how the tool interacts with 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?
Schema coverage is 100% with well-described parameters (edge, weight, divisions). The description adds no extra meaning beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (insert an edge loop) and specifies the method (polySplitRing). It is specific and directly explains the tool's function, though it does not differentiate from sibling tools like bevel or bridge.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide any guidance on when to use this tool versus alternatives, nor does it mention prerequisites or exclusions. An agent must infer usage context entirely from the tool name and schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
modeling.merge_verticesMerge VerticesA
Merge vertices on a mesh within a distance threshold.
| Name | Required | Description | Default |
|---|---|---|---|
| mesh | Yes | Name of the mesh | |
| vertices | No | Optional specific vertex components to merge (None = all vertices) | |
| threshold | No | Distance threshold for merging (default 0.001) |
Output Schema
| Name | Required | Description |
|---|---|---|
| mesh | Yes | |
| errors | Yes | |
| vertices_merged | Yes | |
| vertex_count_after | Yes | |
| vertex_count_before | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description implies a mutation (merge), consistent with readOnlyHint=false. It adds the distance threshold detail, but does not disclose other behaviors like effect on topology, selected vs. all vertices, or reversibility. Annotations already indicate non-destructive nature, so the description adds a modest amount of 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, well-structured sentence with no extraneous words. It is front-loaded with the core purpose, making it efficient for an agent to parse.
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 simple interface and presence of an output schema, the description is minimally adequate. However, it does not clarify the scope of merging (e.g., which vertex is kept, effect on mesh structure), which would be helpful for a modeling operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already describes all parameters. The description mentions 'distance threshold' which maps to the threshold parameter, but does not add meaning beyond the schema's description. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (merge) and the resource (vertices on a mesh), with a condition (distance threshold). It is distinct from sibling tools like modeling.bevel or modeling.bridge, which perform different operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, such as when cleaning up geometry or selecting specific vertices. No exclusions or alternative tools are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
modeling.move_componentsMove ComponentsA
Move mesh components (vertices, edges, faces) by relative translation or to an absolute position.
| Name | Required | Description | Default |
|---|---|---|---|
| absolute | No | Absolute [x, y, z] position (mutually exclusive with translate) | |
| translate | No | Relative [x, y, z] translation (mutually exclusive with absolute) | |
| components | Yes | Component strings to move (e.g., ['pCube1.vtx[0:3]']) | |
| world_space | No | Use world space coordinates (default True) |
Output Schema
| Name | Required | Description |
|---|---|---|
| errors | Yes | |
| absolute | No | |
| translate | No | |
| world_space | Yes | |
| components_moved | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description indicates a mutation operation ('Move'), but does not disclose additional behavioral traits such as whether the operation is reversible or what the output contains. Annotations are present but the description adds minimal value beyond stating the action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, concise, and front-loaded with the key purpose and operation. Every word is necessary and there is no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While the description covers the core operation, it omits context about the world_space parameter and does not explain what the tool returns. The presence of an output schema reduces the need for return value explanation, but the description still feels minimal for a tool with four 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 coverage is 100%, so the description's mention of 'relative translation or absolute position' adds some clarity but does not significantly enhance understanding beyond what the schema already provides for each 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 clearly states the action 'Move' and the resource 'mesh components (vertices, edges, faces)', and specifies the two modes 'relative translation' and 'absolute position', distinguishing it from sibling modeling tools like bevel, boolean, etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description lacks explicit guidance on when to use this tool versus alternatives or the conditions for choosing relative vs absolute mode. The schema covers mutual exclusivity but the description does not elaborate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
modeling.separateSeparate MeshB
Separate a combined mesh into individual meshes.
| Name | Required | Description | Default |
|---|---|---|---|
| mesh | Yes | Name of the mesh to separate |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | Yes | |
| errors | Yes | |
| truncated | No | |
| source_mesh | Yes | |
| total_count | No | |
| _size_warning | No | |
| result_meshes | Yes | |
| _original_size | No | |
| _truncated_size | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are all false, providing no hints about safety. The description does not disclose whether the operation is destructive, if it modifies the original mesh or creates new ones, or any other behavioral traits. For a geometry modification tool, this is insufficient.
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 fluff. It is concise, though perhaps too minimal for a modeling 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?
Despite a simple parameter set and output schema, the description lacks behavioral details such as whether separation is by shell or by component, and what happens to the original mesh. Sibling tools like modeling.combine suggest an inverse operation, but no comparisons are made.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a clear description of the 'mesh' parameter. The tool description adds no additional meaning beyond the schema, so baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Separate a combined mesh into individual meshes', using a specific verb and resource, and distinguishes it from sibling tools like modeling.combine.
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 is provided on when to use this tool versus alternatives, such as when the mesh is not a combined mesh or differences from other modeling tools. Prerequisites or exclusions are absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
modeling.set_pivotSet PivotAIdempotent
Set the pivot point of a node to an explicit position.
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes | Node name to set pivot on | |
| position | Yes | [x, y, z] position for the pivot | |
| world_space | No | Position is in world space (default True) |
Output Schema
| Name | Required | Description |
|---|---|---|
| node | Yes | |
| pivot | Yes | |
| errors | Yes | |
| world_space | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description 'Set' implies a mutating operation, which aligns with annotations (readOnlyHint=false). Annotations already declare idempotentHint=true and destructiveHint=false, so the description adds no new behavioral context beyond stating the intent.
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 that conveys the essential purpose without extraneous words. Every part earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of annotations and output schema, the description is adequate for this simple operation. However, a brief usage hint (e.g., noting idempotency or relation to center_pivot) would improve completeness slightly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the description does not add any meaning beyond what the schema already documents for `node`, `position`, and `world_space`. Baseline 3 is appropriate as the schema fully handles parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Set') and the resource ('pivot point of a node') with a specific verb and noun. It implicitly distinguishes from the sibling `modeling.center_pivot` by targeting an explicit position rather than centering.
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 like `modeling.center_pivot` or other pivot-related operations. It does not mention any prerequisites, side effects, or exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nodes.createCreate NodeC
Create a new node in Maya with optional name, parent, and initial attributes.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Desired node name (Maya may modify for uniqueness) | |
| parent | No | Parent node to parent under | |
| node_type | Yes | Type of node to create (e.g., 'transform', 'locator', 'joint') | |
| attributes | No | Initial attribute values to set after creation |
Output Schema
| Name | Required | Description |
|---|---|---|
| node | Yes | |
| parent | Yes | |
| node_type | Yes | |
| attributes_set | Yes | |
| attribute_errors | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are all false, so the description carries the burden. It only states the basic creation action without disclosing behavioral traits such as failure modes, scene modifications, or return values, which are not covered by annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no unnecessary words, efficiently conveying the tool's 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?
While there is an output schema not shown, the description lacks context on creation behavior (e.g., uniqueness handling, error conditions). It is minimal for a 4-parameter tool with required arguments.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description lists the optional parameters but adds no additional meaning beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool creates a new node in Maya, with optional parameters. It uses a specific verb and resource, but does not explicitly differentiate from sibling tools like nodes.duplicate, which also creates nodes.
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 is provided on when to use this tool versus alternatives. There is no mention of prerequisites or exclusions, leaving the agent to infer usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nodes.deleteDelete NodesADestructiveIdempotent
Delete one or more nodes from the Maya scene.
| Name | Required | Description | Default |
|---|---|---|---|
| nodes | Yes | Node names to delete | |
| hierarchy | No | Delete entire hierarchy below each node |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | Yes | |
| errors | Yes | |
| deleted | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructive behavior (destructiveHint=true). The description simply reiterates 'delete' without adding new behavioral context, such as undo implications or impact on dependencies.
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?
Single sentence, no superfluous words. Front-loaded with the core action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a delete operation, the description is adequate but minimal. Given the complexity of Maya scenes and the presence of many sibling tools, more context (e.g., that deletion is irreversible) would improve completeness.
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?
Input schema covers 100% of parameters. The description does not add any additional meaning beyond the schema's parameter descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Delete', the resource 'nodes', and the scope 'from the Maya scene'. It effectively distinguishes from sibling tools like nodes.duplicate or nodes.rename.
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 explicit when-to-use or alternatives provided. The description is straightforward but lacks guidance on when not to use this tool compared to other deletion tools (e.g., modeling.delete_faces).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nodes.duplicateDuplicate NodesC
Duplicate one or more nodes.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Name for the new node (only valid when duplicating single node) | |
| nodes | Yes | Nodes to duplicate | |
| parent_only | No | Duplicate only the specified node, not its children | |
| upstream_nodes | No | Duplicate upstream nodes | |
| input_connections | No | Duplicate input connections |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | Yes | |
| errors | Yes | |
| duplicated | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate non-destructive, non-read-only behavior, but the description adds no additional behavioral context. It does not mention side effects like creating new nodes in the scene or leaving originals unchanged. Parameters like 'parent_only' hint at behavior but description does not elaborate.
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, no wasted words. Front-loaded with the core action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having 5 parameters, a required field, and a true output schema, the description is overly terse. It does not explain the duplication process, effects of options like 'upstream_nodes', or what the tool returns. Incomplete for the complexity level.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with parameter descriptions, so baseline is 3. The description adds no extra parameter information, relying entirely on the schema. Agent must consult schema for parameter meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description 'Duplicate one or more nodes' clearly states verb (duplicate) and resource (nodes). It is understandable but does not explicitly distinguish from sibling tools like 'nodes.create' which also creates nodes, though the duplication aspect is inherent. Could mention 'copies existing nodes' for better 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?
No guidance on when to use this tool versus alternatives like 'nodes.create' for new nodes or 'nodes.rename' for renaming. The description lacks any context about prerequisites or scenarios where duplication is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nodes.infoGet Node InformationARead-onlyIdempotent
Get comprehensive information about a Maya node in a single call. Use info_category to choose: summary (default), transform, hierarchy, attributes, shape, or all. Reduces tool-call chaining.
| Name | Required | Description | Default |
|---|---|---|---|
| node | Yes | Node name to query | |
| info_category | No | Category of information to retrieve | summary |
Output Schema
| Name | Required | Description |
|---|---|---|
| node | No | |
| scale | No | |
| errors | No | |
| exists | No | |
| parent | No | |
| rotate | No | |
| scaleX | No | |
| scaleY | No | |
| scaleZ | No | |
| shapes | No | |
| rotateX | No | |
| rotateY | No | |
| rotateZ | No | |
| children | No | |
| full_path | No | |
| node_type | No | |
| translate | No | |
| truncated | No | |
| translateX | No | |
| translateY | No | |
| translateZ | No | |
| visibility | No | |
| shape_count | No | |
| total_count | No | |
| _size_warning | No | |
| info_category | No | |
| keyable_count | No | |
| _original_size | No | |
| children_count | No | |
| _truncated_size | No | |
| parent_full_path | No | |
| keyable_truncated | No | |
| keyable_attributes | No | |
| keyable_total_count | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, covering safety and idempotency. The description adds the benefit of reducing chaining, which is consistent. No behavioral traits are contradicted or omitted beyond what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core action and purpose. Every sentence adds meaningful information: what it does, how to use the parameter, and why it's beneficial. No extraneous words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity (2 parameters, output schema exists, annotations cover safety and idempotency), the description fully covers usage context. It explains the parameter choices and the value proposition. No 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?
The input schema covers both parameters (node, info_category) with 100% description coverage. The description adds value by listing the info_category enum values and explaining the default, as well as the purpose of consolidating information. Since schema is exhaustive, the description enhances understanding without being necessary.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly specifies the verb 'Get' and resource 'comprehensive information about a Maya node in a single call'. It distinguishes from sibling tools by emphasizing the comprehensive scope and reducing tool-call chaining, which sets it apart from more specific tools like attributes.get or mesh.info.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Reduces tool-call chaining', implying it should be used when multiple node aspects are needed at once. However, it does not explicitly state when not to use it or compare with alternatives like using individual category tools for smaller queries. It provides clear context but lacks exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nodes.listList NodesARead-onlyIdempotent
List nodes in the Maya scene, optionally filtered by type. Returns max 500 nodes by default to limit response size.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max nodes to return (default 500, use 0 for unlimited) | |
| pattern | No | Name pattern filter (supports wildcards) | * |
| node_type | No | Filter by node type (e.g., 'transform', 'mesh') | |
| long_names | No | Return full DAG paths |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | Yes | |
| nodes | Yes | |
| truncated | No | |
| total_count | No | |
| _size_warning | No | |
| _original_size | No | |
| _truncated_size | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare safe read-only behavior and idempotency. Description adds the 500-node limit detail, but little else beyond what annotations provide.
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?
Single sentence with no wasted words; action and key constraints front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given output schema exists and annotations cover safety, description is mostly complete. Could mention pagination or wildcard support (already in schema) but not critical.
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 has 100% coverage with descriptions for all 4 parameters. Description does not add new meaning beyond summarizing filter by type and limit, so baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states action (list nodes), resource (nodes in Maya scene), and optional filter by type. Distinguishes from sibling tools like nodes.info or nodes.create.
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?
Mentions optional filtering by type and default limit, but does not explicitly state when to use this tool versus alternatives like nodes.info or node-specific queries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nodes.parentParent NodesBIdempotent
Reparent one or more nodes in the Maya hierarchy.
| Name | Required | Description | Default |
|---|---|---|---|
| nodes | Yes | Nodes to reparent | |
| parent | No | New parent node. If None, unparent (parent to world). | |
| relative | No | Preserve existing local transformations |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | Yes | |
| errors | Yes | |
| parented | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds minimal behavioral context beyond the annotations. Annotations already indicate idempotent and non-destructive behavior, but the description does not explain effects like unparenting when parent is null, or how children are affected. It relies heavily on the parameter schema for this information.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no unnecessary words. It front-loads the action and resource, making it easy to understand quickly.
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?
While the schema and annotations cover many details, the description is too brief to fully contextualize the tool's behavior, such as unparenting or the preservation of local transformations. The presence of an output schema mitigates some completeness concerns, but the description could be more informative.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear parameter descriptions. The tool description does not add extra meaning to the parameters; it merely restates the overall purpose. According to the baseline, a score of 3 is appropriate when schema provides full coverage.
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 'reparent' and clearly identifies the resource as nodes in the Maya hierarchy. It distinguishes itself from sibling tools like nodes.create and nodes.delete by focusing on reparenting, which is unique among siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as nodes.create or nodes.rename. The description lacks context for when reparenting is appropriate or how it differs from other node operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nodes.renameRename NodesAIdempotent
Rename one or more nodes in the Maya scene.
| Name | Required | Description | Default |
|---|---|---|---|
| mapping | Yes | Map of current node name to new name |
Output Schema
| Name | Required | Description |
|---|---|---|
| errors | Yes | |
| renamed | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate mutation (readOnlyHint=false), non-destructive (destructiveHint=false), and idempotent (idempotentHint=true). The description adds no further behavioral context beyond the rename operation itself.
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, clear sentence that conveys the essential information without 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?
The description is complete for a simple rename operation, especially given that an output schema exists to detail return values. Some additional context about effects on references could be beneficial but is not 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?
Schema coverage is 100% with a clear description for the 'mapping' parameter. The description adds no additional meaning beyond what the schema provides.
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 ('Rename'), the resource ('nodes'), and scope ('one or more'), distinguishing it from sibling tools like 'nodes.create' and 'nodes.delete'.
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 use for renaming nodes, but provides no explicit guidance on when to use it versus alternatives, or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scene.exportExport Scene FileAIdempotent
Export scene content to a file. Export selected nodes or entire scene. Supports multiple formats (.ma, .mb, .obj, .fbx, .abc, .usd, .usda, .usdc).
| Name | Required | Description | Default |
|---|---|---|---|
| animation | No | If True, include animation data (FBX only). If False (default), export static. | |
| file_path | Yes | Path for the exported file (.ma, .mb, .obj, .fbx, .abc, .usd, .usda, .usdc) | |
| export_mode | No | What to export: 'selected' (default) or 'all' | selected |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | Yes | |
| success | Yes | |
| file_path | Yes | |
| nodes_exported | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide idempotentHint, not destructive, not read-only. Description adds supported formats and notes that animation parameter applies only to FBX. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences: first states purpose, second adds details on scope and formats. 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?
For a simple export tool with full schema and annotations, description covers core functionality. Could mention file overwrite behavior, but not essential.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%; description adds minimal extra meaning (e.g., 'export selected nodes or entire scene' aligns with export_mode). Nothing beyond schema details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it exports scene content to a file with various formats. It distinguishes from siblings like scene.save by focusing on exporting to different file types, but doesn't explicitly differentiate from scene.save or scene.save_as.
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 vs alternatives (e.g., scene.save, scene.import). It only describes what it does, not the context or when to choose it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scene.importImport Scene FileA
Import a file into the current Maya scene. Supports multiple formats (.ma, .mb, .obj, .fbx, .abc, .usd, .usda, .usdc, .usdz). Returns only top-level parent transforms to protect token budget.
| Name | Required | Description | Default |
|---|---|---|---|
| force | No | If True, replace existing namespace contents. If False (default), merge. | |
| file_path | Yes | Path to the file to import (.ma, .mb, .obj, .fbx, .abc, .usd, .usda, .usdc, .usdz) | |
| namespace | No | Namespace behavior: None = no namespace, '' = auto-generate, 'name' = use specified |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | Yes | |
| error | Yes | |
| nodes | Yes | |
| success | Yes | |
| file_path | Yes | |
| truncated | No | |
| total_count | No | |
| _size_warning | No | |
| _original_size | No | |
| _truncated_size | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are mostly neutral (destructiveHint=false, readOnlyHint=false), so the burden is on the description. It discloses that importing modifies the current scene and that force parameter controls namespace merging vs replacement. However, it does not mention other side effects like creating new nodes or affecting selection state. The description is moderately transparent but could be more thorough.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise—only two sentences. The first sentence conveys the primary action and supported formats, and the second sentence explains a key behavior (return filtering) that helps protect token budget. No unnecessary words or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that the tool has an output schema and full parameter coverage, the description sufficiently covers the import action, supported formats, and the forced merging behavior. It does not mention error conditions or prerequisites (e.g., file existence), but these are often implicit in Maya tools. Overall, it is complete enough for an AI agent to use 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 100%, so the parameters are well-documented in the schema. The description adds no new information about the parameters beyond what is already in the schema. Thus, a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action ('Import a file into the current Maya scene') and lists supported formats. It distinguishes itself from siblings like scene.open (which opens a new scene) and scene.export (which exports). The note about returning only top-level transforms adds specificity.
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 when to use the tool (to import a file into the current scene) but does not explicitly state when not to use it or provide alternatives among siblings. For example, it does not advise against using import when a file should be opened as a new scene instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scene.infoGet Scene InformationARead-onlyIdempotent
Get information about the current Maya scene
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| fps | Yes | |
| up_axis | Yes | |
| modified | Yes | |
| file_path | Yes | |
| frame_range | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, openWorldHint=false, idempotentHint=true, destructiveHint=false. The description adds no additional behavioral context beyond 'Get information,' which is adequate given the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no wasted words, front-loading the action and resource. It is appropriately concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (no parameters, rich annotations, and an output schema), the description is sufficient to convey its purpose. However, a hint about what 'information' includes (e.g., file path, scene settings) would improve completeness.
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 are no parameters, and schema description coverage is 100% (vacuously true). Per guidelines, 0 parameters yields a baseline of 4, and the description does not need to add parameter details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get information about the current Maya scene,' specifying a verb and resource. However, it does not differentiate from other info tools like nodes.info or mesh.info.
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 is provided on when to use this tool versus alternatives such as nodes.info or mesh.info. The description lacks context for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scene.newCreate New SceneADestructiveIdempotent
Create a new empty Maya scene. Checks for unsaved changes first and refuses by default if the scene was modified. Use force=True to discard unsaved changes. When a client supports form elicitation, the server may ask for confirmation instead of requiring an immediate retry.
| Name | Required | Description | Default |
|---|---|---|---|
| force | No | If True, discard unsaved changes. If False (default), refuse when scene has unsaved changes. |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | Yes | |
| success | Yes | |
| was_modified | Yes | |
| previous_file | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses behaviors beyond annotations: it checks for unsaved changes, refuses by default, discards with force=True, and may ask for confirmation. The annotations already indicate destructiveHint=true, and the description adds context about the safety check and optional force 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 concise with three sentences, front-loaded with the primary purpose. Every sentence adds value: purpose, behavior, and confirmation 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?
Given the simplicity of the tool (one optional parameter), plus annotations and output schema, the description is complete. It covers the tool's core action, safety behavior, and additional context for form elicitation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers 100% of parameters, with a description for 'force' already present. The tool description adds context by explaining the effect of force=True vs False, enhancing meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Create a new empty Maya scene,' providing a specific verb and resource. It distinguishes from sibling tools like scene.open, scene.save, etc., which have different actions.
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 that the tool checks for unsaved changes and refuses by default, and that using force=True discards changes. This guides the agent on when to use the force parameter. However, it does not explicitly mention when not to use this tool (e.g., if the user wants to keep unsaved changes), but the behavior is implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scene.openOpen SceneADestructiveIdempotent
Open a Maya scene file. Validates the file path and checks for unsaved changes before proceeding. Use force=True to discard unsaved changes. When a client supports form elicitation, the server may ask for confirmation instead of requiring an immediate retry. Supported formats: .ma (Maya ASCII), .mb (Maya Binary).
| Name | Required | Description | Default |
|---|---|---|---|
| force | No | If True, discard unsaved changes. If False (default), refuse when scene has unsaved changes. | |
| file_path | Yes | Path to the Maya scene file to open (.ma or .mb) |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | Yes | |
| success | Yes | |
| file_path | Yes | |
| was_modified | Yes | |
| previous_file | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Despite annotations indicating destructive hint, the description adds context by detailing the check for unsaved changes and the force parameter behavior, though it doesn't explicitly state that the current scene is replaced.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (4 sentences), front-loaded with the main action, and each sentence provides necessary detail without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description sufficiently covers the tool's behavior given the output schema exists, though it could mention that the current scene is replaced or provide error handling details.
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 100% schema coverage, the description still adds value by clarifying the force parameter's effect ('Use force=True to discard unsaved changes') and confirming that file_path is validated and formats supported.
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 it 'Open a Maya scene file' and mentions validation, unsaved changes check, and supported formats, distinguishing it from sibling tools like scene.new, scene.save, etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when to use force=True to discard unsaved changes and mentions form elicitation for confirmation, but lacks explicit guidance on alternatives like scene.import for external files.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scene.redoRedo Scene OperationA
Redo the last undone operation in Maya.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| redone | Yes | |
| success | Yes | |
| can_redo | Yes | |
| can_undo | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description does not disclose any behavioral traits beyond the basic operation. Annotations are all false, but the description adds no context about side effects, state changes, or error handling (e.g., when no operation to redo).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is front-loaded and concise, with no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool and presence of an output schema, the description is minimally adequate but lacks context about prerequisites or behavior when no undo history 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?
No parameters exist, so schema coverage is 100%. According to rubric, 0 parameters results in a baseline score of 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 clearly states the action (redo) and the resource (the last undone operation in Maya). It is specific and distinguishes from the sibling tool scene.undo.
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 explicit guidance on when to use or when not. It only implicitly suggests it should be used after an undo, but lacks alternatives or conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scene.saveSave SceneADestructiveIdempotent
Save the current scene. Saves to the current file path. Fails if the scene is untitled.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| error | Yes | |
| success | Yes | |
| file_path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds important behavioral context beyond annotations: it discloses the failure case when untitled and confirms it saves to the current file path. Annotations already indicate destructive and idempotent hints, so the description does not contradict and provides additional value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loading the core purpose and adding a key detail. Every word is necessary and there is no redundancy. It is appropriately sized.
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 output schema exists and the tool is simple, the description covers the essential behavior: saving to current path and failing if untitled. It does not explain success behavior, but that is standard. It is complete enough for this 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?
With zero parameters, the baseline is 4. The description does not need to add parameter information since the schema is empty and coverage is 100%. It correctly omits unnecessary details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Save' and the resource 'current scene', specifies the behavior 'Saves to the current file path', and distinguishes from siblings like scene.save_as by mentioning the file path condition. The failure condition 'fails if the scene is untitled' adds further clarity.
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 implicitly guides usage by indicating that the tool should be used when the scene has an existing file path, and that scene.save_as should be used for untitled scenes. However, it does not explicitly state alternatives or conditions for other scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scene.save_asSave Scene AsADestructiveIdempotent
Save the scene to a new file path. Validates the path and saves as Maya ASCII or Binary based on extension.
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | Yes | Absolute or relative path to save the scene to (.ma or .mb) |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | Yes | |
| success | Yes | |
| file_path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate destructive and idempotent behavior, reducing the description's burden. However, the description adds no details on overwriting behavior, directory creation, or user interaction, leaving some behavioral 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?
Two concise sentences efficiently convey purpose and behavior without extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one required parameter and no nested objects, the description is largely sufficient. It could mention overwriting behavior but is complete enough for its complexity level.
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 already covers 'file_path' at 100% coverage. The description adds value by explaining that saving format is determined by file extension and that path validation occurs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool's purpose: saving the scene to a new file path. It specifies the action ('Save'), the resource ('scene'), and the output ('new file path'), distinguishing it from siblings like 'scene.save'.
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 when to use this tool: when saving to a new location. It does not explicitly contrast with alternatives like 'scene.save' but the context of siblings makes this clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scene.undoUndo Scene OperationA
Undo the last operation in Maya. Critical for LLM error recovery.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| undone | Yes | |
| success | Yes | |
| can_redo | Yes | |
| can_undo | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=false and destructiveHint=false, so the description adds value by stating 'Undo the last operation' (a state-changing but reversible action) and highlighting its role in error recovery. This provides context beyond structured annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no wasted words. First sentence states action and resource, second provides critical context. Efficiently front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (no parameters, straightforward action) and the presence of an output schema, the description is sufficiently complete. It covers purpose, resource, and common usage scenario (error recovery) without missing essential information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and schema coverage is 100%, so the description does not need to elaborate on parameters. The baseline for no parameters 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?
Description clearly states the verb 'Undo', the resource 'last operation', and the environment 'in Maya'. It also adds purpose context 'Critical for LLM error recovery', distinguishing it from sibling tools like scene.redo.
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 'Critical for LLM error recovery' implies usage after errors, but there is no explicit guidance on when not to use it or comparison with alternatives like scene.redo. The description could better specify context for using this over other undo-like operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
script.executeExecute Approved ScriptADestructive
Execute a Python script file in Maya from an allowed MAYA_MCP_SCRIPT_DIRS directory. The script is read server-side and sent to Maya. Optional args dict is injected as args in the script namespace.
| Name | Required | Description | Default |
|---|---|---|---|
| args | No | Optional arguments dict injected as __args__ in the script namespace | |
| timeout | No | Optional timeout override in seconds (default from MAYA_MCP_SCRIPT_TIMEOUT) | |
| file_path | Yes | Absolute path to the .py script file |
Output Schema
| Name | Required | Description |
|---|---|---|
| errors | Yes | |
| output | Yes | |
| script | Yes | |
| success | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate destructiveHint=true, and description adds context about server-side reading and allowed directories. No contradiction, and description provides useful behavioral details beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the main action, no wasted words. Efficient and clear.
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 existence of output schema, return values need not be described. Description covers purpose, mechanism, and constraints (allowed directories). Minor gap: no mention of error handling or permissions beyond 'allowed MAYA_MCP_SCRIPT_DIRS', but sufficient for a simple execution tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. Description adds minor value by clarifying that script is read server-side and args are injected as __args__ namespace variable, but does not significantly enhance understanding beyond 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?
Description clearly states the verb 'execute' and the resource 'Python script file', and adds key details like server-side reading and args injection. It distinguishes from siblings (script.list, script.run) by specifying execution from allowed directories.
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 explicit guidance on when to use this tool versus alternatives like script.run or script.list. Does not provide when-not or context for choosing among sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
script.listList Approved ScriptsARead-onlyIdempotent
List available Python scripts from configured MAYA_MCP_SCRIPT_DIRS directories. Read-only, does not require Maya connection.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| count | Yes | |
| errors | Yes | |
| scripts | Yes | |
| truncated | No | |
| directories | Yes | |
| total_count | No | |
| _size_warning | No | |
| _original_size | No | |
| _truncated_size | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide safety hints; description adds valuable extra context that no Maya connection is required. No additional traits disclosed but enough given simplicity.
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?
Single sentence, front-loaded with action and resource, no unnecessary 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?
For a simple list tool with no parameters and an output schema, the description fully covers functionality, safety, and prerequisites.
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?
No parameters in schema, so description does not need to add meaning. Baseline 4 applies for 0-param tools.
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?
Clearly states the verb 'list' and specific resource 'available Python scripts' from configured directories. Distinct from sibling tools like script.execute and script.run.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly notes read-only and no Maya connection needed, which guides appropriate usage. Lacks explicit when-not-to-use or direct comparison to siblings, but context is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
script.runRun Raw Script CodeADestructive
Execute raw Python or MEL code in Maya. REQUIRES MAYA_MCP_ENABLE_RAW_EXECUTION=true environment variable. Disabled by default for security.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | Python or MEL code to execute | |
| timeout | No | Optional timeout override in seconds (default from MAYA_MCP_SCRIPT_TIMEOUT) | |
| language | No | Code language (default: python) | python |
Output Schema
| Name | Required | Description |
|---|---|---|
| errors | Yes | |
| output | Yes | |
| success | Yes | |
| language | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds the environment variable requirement beyond annotations' destructiveHint=true. Does not cover all behavioral aspects but provides key security 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?
Extremely concise: one sentence with critical security note. 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?
Adequate for a simple execution tool with output schema present, but lacks differentiation from similar sibling and could clarify output or error handling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with parameter descriptions. The tool description adds no extra detail beyond what's 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?
Clearly states executing raw Python/MEL code in Maya. Does not explicitly distinguish from sibling 'script.execute', but implies raw code execution.
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 security context (environment variable requirement) but no explicit comparison to alternatives or when to use this vs other scripting tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
selection.clearClear SelectionAIdempotent
Clear the Maya selection (deselect all)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| count | Yes | |
| selection | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide idempotentHint=true and destructiveHint=false, indicating it is a safe, idempotent operation. The description adds no additional behavioral traits beyond restating the purpose, which is acceptable but does not exceed the annotations.
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, short sentence that conveys exactly what the tool does with no extraneous words. It is perfectly concise and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no parameters and an output schema exists, the description is complete. It provides sufficient information for an AI agent to understand the tool's action without any 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?
There are zero parameters, and the schema coverage is 100%. The description does not need to elaborate on parameters, and it correctly omits any. Baseline score of 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?
The description 'Clear the Maya selection (deselect all)' uses a specific verb ('clear') and resource ('selection'), clearly stating the action. It implicitly distinguishes from sibling tools like 'selection.set' by specifying deselection of all.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly states when to use the tool: to deselect all items. Although it does not explicitly mention when not to use it or provide alternatives, the context is straightforward due to the tool's simplicity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
selection.convert_componentsConvert Component SelectionB
Convert the current selection to a different component type (vertex, edge, or face).
| Name | Required | Description | Default |
|---|---|---|---|
| nodes | No | Nodes to convert (None = use current selection) | |
| to_type | Yes | Target component type |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | Yes | |
| errors | Yes | |
| to_type | Yes | |
| selection | Yes | |
| truncated | No | |
| total_count | No | |
| _size_warning | No | |
| _original_size | No | |
| _truncated_size | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide minimal behavioral hints. The description states 'convert the current selection' but doesn't disclose whether the original selection is replaced, what happens to non-convertible components, or if the operation is reversible. Lacks detail beyond the basic function.
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?
Single sentence, 14 words. Front-loaded with the essential action and target. No redundant or unnecessary information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity and the presence of an output schema, the description covers the core concept. However, it omits important details about selection state changes and error conditions, which would be valuable for an interacting agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema adequately documents both parameters. The description adds no additional meaning beyond what the schema provides (e.g., does not explain that nodes override current selection). Baseline score is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (convert) and resource (current selection) with specific target types (vertex, edge, face). It distinguishes from related tools like selection.get_components, but doesn't clarify that the optional nodes parameter can override the current selection.
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 alternatives like selection.set_components or modeling.move_components. It doesn't mention prerequisites, exclusions, or preferred contexts.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
selection.getGet SelectionARead-onlyIdempotent
Get the current selection in Maya
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| count | Yes | |
| selection | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations (readOnlyHint, idempotentHint, destructiveHint) cover safety and idempotency. Description adds 'Get the current selection', which is consistent but does not provide extra behavioral context (e.g., returns empty if nothing selected, 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?
Single sentence, zero wasted words. Front-loaded with the action and object.
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?
Tool is simple (0 params) and has an output schema (not shown) likely detailing return format. Description is adequate for a getter, though could mention behavior for empty 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?
No parameters exist, and schema description coverage is 100% (void). Description adds no parameter details, which is acceptable since no parameters are needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it gets the current selection in Maya. Verb 'Get' and resource 'selection' are specific. No differentiation from siblings like get_components, but siblings are distinct enough that confusion is unlikely.
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 vs alternatives such as selection.get_components or selection.set. Agent must infer context from sibling names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
selection.get_componentsGet Component SelectionARead-onlyIdempotent
Get currently selected mesh components grouped by type (vertices, edges, faces).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| edges | Yes | |
| error | No | |
| faces | Yes | |
| vertices | Yes | |
| selection | Yes | |
| truncated | No | |
| edge_count | Yes | |
| face_count | Yes | |
| total_count | Yes | |
| vertex_count | Yes | |
| _size_warning | No | |
| _original_size | No | |
| has_components | Yes | |
| _truncated_size | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, idempotent, non-destructive behavior. The description adds value by specifying that the output is grouped by component type, which is not captured in annotations. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that directly states the action and result structure. No redundant words; front-loaded and efficient.
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 zero parameters, full annotation coverage, and an output schema (not shown but present), the description provides enough context to understand the tool's purpose and output format. It is complete for a read-only query 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?
There are no parameters, so schema coverage is effectively 100%. Baseline for 0 params is 4. The description adds nothing about parameters, but none are needed.
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 ('get') and resource ('currently selected mesh components') and states that results are grouped by type (vertices, edges, faces). This clearly distinguishes it from siblings like 'selection.get' (which returns objects) and 'selection.set_components' (which modifies selection).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide explicit guidance on when to use this tool versus alternatives. While the purpose is clear, there is no mention of when not to use it or reference to other selection tools, which would help an agent choose correctly among many sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
selection.setSet SelectionD
Set the Maya selection
| Name | Required | Description | Default |
|---|---|---|---|
| add | No | Add to existing selection | |
| nodes | Yes | Node names to select | |
| deselect | No | Remove from selection |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | Yes | |
| selection | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral traits beyond the annotations. Annotations mark readOnlyHint as false (modifying) and destructiveHint as false (non-destructive), which the description implicitly matches. However, it doesn't explain the modification behavior (additive vs replacement) that is controlled by parameters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The single sentence is concise but under-specified. It omits critical information about the tool's selection modes, making it insufficiently informative for an agent.
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?
Despite having an output schema and high parameter coverage, the description fails to explain the meaning of 'set' in the context of Maya selection (replace, add, deselect). For a simple yet multi-mode tool, this is incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for all three parameters, so the description adds no additional meaning. Benchmark is 3 when coverage is high.
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 'Set the Maya selection' states a verb and resource but is vague. It doesn't clarify whether it replaces, adds to, or removes from the selection, unlike the sibling 'selection.set_components' which focuses on components. The parameters 'add' and 'deselect' indicate modes, but the description omits 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 guidance is provided on when to use this tool versus siblings like 'selection.clear', 'selection.get', or 'selection.set_components'. There is no mention of context or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
selection.set_componentsSet Component SelectionC
Select mesh components (vertices, edges, or faces) using Maya notation (e.g., 'pCube1.vtx[0:10]', 'pSphere1.e[5]', 'pPlane1.f[0:99]').
| Name | Required | Description | Default |
|---|---|---|---|
| add | No | Add to existing selection | |
| deselect | No | Remove from selection | |
| components | Yes | Component specifications (e.g., ['pCube1.vtx[0:7]', 'pCube1.f[0]']) |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | Yes | |
| errors | Yes | |
| selection | Yes | |
| truncated | No | |
| total_count | No | |
| _size_warning | No | |
| _original_size | No | |
| _truncated_size | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations do not provide much (all false). The description says 'select' but does not disclose that by default the selection is replaced unless add/deselect are true. No mention of error handling, behavior with multiple objects, or valid notation limitations.
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?
Single sentence, front-loaded with action and notation examples. No unnecessary 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?
Despite having an output schema, the description is too brief. It does not explain behavior with add/deselect, return value, or error cases. Incomplete for a tool with multiple boolean 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 100%, so baseline is 3. Description adds examples of valid Maya notation but does not explain semantics of add/deselect beyond what schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool selects mesh components using Maya notation, with specific examples. It distinguishes from sibling tool selection.set (for objects) but does not explicitly contrast with selection.convert_components, leaving slight 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?
No guidance on when to use this tool vs alternatives like selection.convert_components or selection.set. No context on prerequisites or typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
shading.assign_materialAssign MaterialA
Assign a material to meshes or face components. Resolves the shading group from the material automatically.
| Name | Required | Description | Default |
|---|---|---|---|
| targets | Yes | Meshes or face components to assign the material to | |
| material | Yes | Name of the material (or shading group) to assign |
Output Schema
| Name | Required | Description |
|---|---|---|
| errors | Yes | |
| assigned | Yes | |
| material | Yes | |
| shading_group | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description mentions automatic resolution of the shading group, which is a behavioral detail, but it does not disclose potential side effects, error conditions, or permission requirements. Given the lack of annotation support (destructiveHint false, no readOnlyHint), more behavioral context is needed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with only two sentences, no redundant or filler content. It communicates the essential information 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?
Given the tool's simplicity (2 parameters, output schema exists), the description covers the core action and a key behavior. It could mention failure cases or the output format, but the output schema handles the latter, making it fairly 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?
The schema already provides descriptions for both parameters (100% coverage). The description adds meaning by explaining that the tool resolves the shading group from the material name, which goes beyond the schema's simple parameter descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('assign a material'), the resource ('meshes or face components'), and adds a key detail about automatic shading group resolution, which distinguishes it from sibling tools like shading.create_material and shading.set_material_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?
The description does not explicitly state when to use this tool or provide alternatives. It implies usage by describing the functionality, but lacks guidance on prerequisites or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
shading.create_materialCreate MaterialA
Create a material (lambert, blinn, phong, standardSurface) with an associated shading group and optional color.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Optional name for the material node | |
| color | No | Optional [r, g, b] color (0-1 range) | |
| material_type | No | Type of material shader to create | lambert |
Output Schema
| Name | Required | Description |
|---|---|---|
| errors | Yes | |
| material | Yes | |
| material_type | Yes | |
| shading_group | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate mutability and non-destructiveness. The description adds behavioral context by stating an 'associated shading group' is created, which is not covered by annotations. No contradictions. However, it does not detail side effects like connections or node creation beyond the material.
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?
Single sentence, front-loaded with purpose, no wasted words. Efficiently conveys the main function and key options.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given three parameters and an existing output schema, the description adequately covers the main purpose and the shading group creation. It does not explain the return value format, but the output schema handles that. Missing details like default material_type or color format are covered in schema. Slight gap: no mention of what happens if name is omitted (auto-naming).
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 has 100% description coverage. The description adds value by explaining the 'associated shading group' concept, which is not in the schema. It also reiterates the optional color parameter, but the schema already describes that. Overall, it enriches understanding beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Create', the resource 'material', and lists the valid types (lambert, blinn, phong, standardSurface). It also mentions the associated shading group and optional color, making the tool's purpose distinct from siblings like assign_material.
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 for creating materials but does not explicitly state when to use this tool over alternatives like assign_material or set_material_color. No exclusions or guidance on prerequisites (e.g., required scene state) are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
shading.set_material_colorSet Material ColorAIdempotent
Set a color attribute on a material (e.g., color, baseColor, transparency).
| Name | Required | Description | Default |
|---|---|---|---|
| color | Yes | [r, g, b] color values (0-1 range) | |
| material | Yes | Name of the material node | |
| attribute | No | Color attribute name (e.g., 'color', 'baseColor', 'transparency', 'incandescence') | color |
Output Schema
| Name | Required | Description |
|---|---|---|
| color | Yes | |
| errors | Yes | |
| material | Yes | |
| attribute | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide idempotentHint=true and destructiveHint=false, indicating safe, non-destructive behavior. The description adds no further behavioral context beyond listing example attributes. With annotations covering the safety profile, the description adds minimal extra transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is front-loaded with the core action and includes relevant examples. It is concise with no wasted words, efficiently conveying the tool's 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?
Given the tool's simplicity, the description covers the essential functionality. The presence of an output schema reduces the need to explain return values. However, it could be slightly improved by noting that the material must exist in the scene, but this is not a major gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so each parameter is documented. The description adds value by listing specific examples for the 'attribute' parameter (e.g., 'color', 'baseColor', 'transparency'), which goes beyond the schema's generic 'Color attribute name' description. This helps agents understand valid input options.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Set' and the resource 'color attribute on a material', with examples of attribute names. It distinguishes itself from sibling tools like shading.create_material (create new) and shading.assign_material (assign to objects) by focusing on modifying an existing material's color attribute.
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 for modifying material color attributes but does not explicitly state when to use it versus alternatives, nor does it mention prerequisites like the material needing to exist. No exclusions or when-not-to-use guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
skin.bindBind SkinADestructive
Bind a mesh to a skeleton with influence options. Creates a skinCluster with configurable bind method and max influences.
| Name | Required | Description | Default |
|---|---|---|---|
| mesh | Yes | Name of the mesh to bind | |
| joints | Yes | List of joint names to use as influences | |
| bind_method | No | Binding algorithm: closestDistance (default), heatMap, or geodesicVoxel | closestDistance |
| max_influences | No | Maximum influences per vertex (default 4) |
Output Schema
| Name | Required | Description |
|---|---|---|
| mesh | Yes | |
| errors | Yes | |
| influences | Yes | |
| skin_cluster | Yes | |
| influence_count | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true. The description adds that it creates a skinCluster with configurable parameters, but does not disclose potential side effects (e.g., mesh modification, performance implications).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with purpose, and no extraneous information. Every word serves a 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?
Given the output schema exists and schema covers all parameters, the description provides sufficient context. It could mention prerequisites like a valid rig, but overall it's complete enough for a simple binding tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the description's mention of 'configurable bind method and max influences' adds minimal value beyond the schema. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: bind a mesh to a skeleton with influence options. It specifies the result (creates a skinCluster) and distinguishes from siblings like skin.unbind.
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 when a mesh needs to be skinned, but lacks explicit when-not or alternative tools (e.g., skin.unbind for removing, skin.copy_weights for transferring). No prerequisites mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
skin.copy_weightsCopy Skin WeightsC
Copy skin weights from one mesh to another using surface and influence association methods.
| Name | Required | Description | Default |
|---|---|---|---|
| source_mesh | Yes | Source mesh (must have a skinCluster) | |
| target_mesh | Yes | Target mesh (must have a skinCluster) | |
| surface_association | No | Surface matching method (default: closestPoint) | closestPoint |
| influence_association | No | Influence matching method (default: closestJoint) | closestJoint |
Output Schema
| Name | Required | Description |
|---|---|---|
| errors | Yes | |
| success | Yes | |
| source_mesh | Yes | |
| target_mesh | Yes | |
| source_skin_cluster | Yes | |
| target_skin_cluster | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description does not disclose whether the operation overwrites existing target weights, whether it is reversible, or any side effects. Annotations indicate destructiveHint=false, but copying weights typically modifies the target's skinCluster, which may be considered destructive. The description provides no clarification.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that conveys the core action and method efficiently. No unnecessary words, but could benefit from a brief usage hint.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that an output schema exists (not shown), the description adequately covers the high-level operation. However, it lacks details about return values, error conditions, and prerequisites beyond 'must have a skinCluster' (which is already in the schema).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with detailed parameter descriptions. The description adds minimal semantic value by mentioning 'surface and influence association methods', which paraphrases the parameter names. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('copy skin weights'), the resource ('from one mesh to another'), and the method ('using surface and influence association methods'). It is specific and actionable, but does not differentiate from sibling tools like skin.weights.set.
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 is provided on when to use this tool versus alternatives such as skin.weights.set, skin.bind, or skin.influences. The description does not mention prerequisites, limitations, or typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
skin.influencesList Skin InfluencesARead-onlyIdempotent
List influences (joints) on a skin cluster with index mapping.
| Name | Required | Description | Default |
|---|---|---|---|
| skin_cluster | Yes | Name of the skinCluster node |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | Yes | |
| errors | Yes | |
| influences | Yes | |
| skin_cluster | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already indicate a safe, read-only, idempotent operation. The description adds the important behavioral detail of 'index mapping', which goes beyond the annotations without contradicting them.
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-structured sentence with no redundant words. It front-loads the key action and resources, making it efficient to parse.
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 presence of an output schema and the simplicity of the tool (one input parameter), the description provides sufficient context. The mention of 'index mapping' adds useful detail without overloading.
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 100% schema description coverage, the schema already defines the single parameter. The description adds no additional parameter-level guidance, only hints at output structure ('index mapping'). Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') and resource ('influences (joints) on a skin cluster') with added detail ('with index mapping'), clearly distinguishing it from sibling tools like skin.bind or skin.weights.get.
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 to retrieve the list of joint influences on a skin cluster. While it does not explicitly state when not to use or provide alternatives, the purpose is clear enough for an experienced user with sibling context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
skin.unbindUnbind SkinADestructive
Detach a skin cluster from a mesh, removing skin deformation.
| Name | Required | Description | Default |
|---|---|---|---|
| mesh | Yes | Name of the mesh to unbind |
Output Schema
| Name | Required | Description |
|---|---|---|
| mesh | Yes | |
| errors | Yes | |
| unbound | Yes | |
| skin_cluster | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark destructiveHint=true. The description adds behavioral context by specifying that the tool 'removes skin deformation', which goes beyond the annotation. However, it does not detail further behavioral traits like reversibility 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 sentence that is front-loaded with the action and resource, with no unnecessary words. It is appropriately concise for a simple 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?
Given the tool's simplicity (one parameter, clear effect), the description is complete. An output schema exists (not shown in the input), so return values are covered. No additional context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with the single 'mesh' parameter already described in the input schema as 'Name of the mesh to unbind'. The description does not add any additional meaning beyond what the schema provides, so baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('detach'), the resource ('skin cluster from a mesh'), and the effect ('removing skin deformation'). It uniquely distinguishes from sibling tools like skin.bind (which does the opposite) and other skin operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly guide when to use this tool versus alternatives (e.g., when not to use it, prerequisites like having an existing skin cluster, or when to use other skin tools). The purpose is implied but lacks explicit context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
skin.weights.getGet Skin WeightsARead-onlyIdempotent
Get per-vertex skin weights with offset/limit pagination. Default limit is 100 vertices (skin weight data is dense). Use offset to paginate through large meshes.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum vertices to return (default 100, use 0 for unlimited) | |
| offset | No | Starting vertex index (0-based) | |
| skin_cluster | Yes | Name of the skinCluster node |
Output Schema
| Name | Required | Description |
|---|---|---|
| mesh | Yes | |
| count | Yes | |
| errors | Yes | |
| offset | Yes | |
| vertices | Yes | |
| truncated | No | |
| influences | Yes | |
| total_count | No | |
| skin_cluster | Yes | |
| vertex_count | Yes | |
| _size_warning | No | |
| geometry_type | No | |
| _original_size | No | |
| _truncated_size | No | |
| influence_count | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly Hint, idempotentHint, and destructiveHint false. The description adds value by explaining the default limit rationale (dense data) and pagination usage, without contradicting any annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose. Every sentence provides necessary context (function, pagination, default reason). No unnecessary 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?
For a simple read-only tool with annotations and output schema present, the description covers the main behavioral aspects (dense data, pagination). It doesn't detail error handling or return format, but these are likely covered by output schema and annotations. Good enough for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the description doesn't need to add much. It adds context for the default limit and offset purpose, but the skin_cluster parameter lacks additional description beyond what's in the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states 'Get per-vertex skin weights with offset/limit pagination', specifying verb (get), resource (per-vertex skin weights), and distinguishing pagination feature. Context with sibling 'skin.weights.set' reinforces the read purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context: default limit 100 due to dense data, and recommends using offset for pagination on large meshes. Doesn't explicitly contrast with sibling tools, but the usage advice is practical and directly guides agent behavior.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
skin.weights.setSet Skin WeightsA
Set per-vertex skin weights with optional normalization. Accepts up to 1000 vertex entries per call.
| Name | Required | Description | Default |
|---|---|---|---|
| weights | Yes | List of {vertex_id: int, weights: {joint: weight}} entries | |
| normalize | No | Normalize weights after setting (default True) | |
| skin_cluster | Yes | Name of the skinCluster node |
Output Schema
| Name | Required | Description |
|---|---|---|
| errors | Yes | |
| set_count | Yes | |
| skin_cluster | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are minimal, so the description must carry behavioral disclosure. It adds the batch limit (1000 entries) and optional normalization, which are helpful. However, it does not describe side effects, required permissions, or error behavior, leaving gaps 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?
Two sentences: first sentence states the action and optional feature, second adds a key constraint. No unnecessary words. Well-structured and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the core purpose and a constraint, but misses context like prerequisite skin binding, or explanation of the output schema (which exists). For a tool with 3 parameters and a mutation action, additional context about the intended state changes would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds value by explaining the normalization option context and the batch size limit for the weights parameter, which is not fully captured in the schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Set' and the resource 'per-vertex skin weights', and also includes the scope of up to 1000 entries per call. It is distinct from sibling tools like 'skin.weights.get' which reads weights.
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 when to use (to set weights) but does not explicitly state when not to use or compare to alternatives. It mentions the batch limit, which provides some usage guidance, but lacks exclusions or context vs. other skin weight tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
viewport.captureCapture ViewportARead-onlyIdempotent
Capture a single viewport frame as inline image content using Maya playblast. Read-only: does not modify scene data.
| Name | Required | Description | Default |
|---|---|---|---|
| frame | No | Optional frame to capture (defaults to current time) | |
| panel | No | Optional preferred modelPanel name | |
| width | No | Capture width in pixels (64-4096) | |
| format | No | Image format: 'jpeg' (default) or 'png' | jpeg |
| height | No | Capture height in pixels (64-4096) | |
| quality | No | JPEG quality 1-100 (used when format='jpeg') | |
| offscreen | No | Use offscreen capture when available (default False) | |
| show_ornaments | No | Show viewport ornaments/gizmos (default True) |
Output Schema
| Name | Required | Description |
|---|---|---|
| frame | Yes | |
| panel | Yes | |
| width | Yes | |
| format | Yes | |
| height | Yes | |
| mime_type | Yes | |
| size_bytes | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and destructiveHint. The description adds context by mentioning the use of Maya playblast and reinforcing the read-only nature, providing additional value beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that effectively communicates the tool's purpose without any wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the existence of an output schema (not shown), the description provides sufficient context for a simple capture tool. It could mention return of inline image, but annotations and schema fill in 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 description coverage is 100%, so the baseline is 3. The description does not add parameter-level details, but the schema already covers each parameter's meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool captures a single viewport frame using Maya playblast, with a specific verb and resource. It is the only viewport tool among siblings, so it effectively distinguishes itself.
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 for capturing viewport frames but does not provide explicit when-to-use or alternatives. Since there are no sibling tools with similar function, this is acceptable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Tools are grouped by domain (animation, modeling, nodes, etc.) and most have clearly distinct purposes. Some slight overlap exists (e.g., attributes.get vs nodes.info), but descriptions clarify boundaries. Overall, agents can usually distinguish them.
All tools follow a consistent domain.action pattern with snake_case action names (e.g., delete_keyframes, get_time_range). No mixing of conventions; the pattern is uniform across all 71 tools.
With 71 tools, the surface is extremely large for a single server. While Maya is complex, this many tools can overwhelm agents and increase selection errors. Most MCP servers operate with 10-20 tools; 71 is far beyond that.
The tool set covers a broad range of Maya operations: modeling, animation, skinning, shading, scene management, selection, scripting, and viewport capture. Missing advanced features like rendering or dynamics, but core workflows are well-supported.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
A Model Context Protocol server for Wix AI tools
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to control Unreal E…
Model Context Protocol server for Studex tools, notifications, and profile integrations
Related MCP Servers
- FlicenseNot gradedqualityNot gradedmaintenanceA Model Context Protocol server that enables AI assistants to interact with active Autodesk Maya sessions using the maya.cmds API. It allows users to manage scene objects, control selections, and perform common 3D operations through natural language.
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants like Claude Desktop to control Autodesk Maya via natural language through the Model Context Protocol.MIT
- AlicenseNot gradedqualityBmaintenanceA typed Model Context Protocol server that exposes KiCad 10 EDA workflows to language-model clients through validated tool calls.MIT
- AlicenseAqualityDmaintenanceMCP server for interacting with Autodesk Maya sessions, enabling multi-session management, arbitrary Python execution, and streaming output capture.440MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/GimbalGoats/GG_MayaMCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server