Skip to main content
Glama
MikeLi-28

Substance-3D-Designer-MCP

by MikeLi-28

Substance-3D-Designer-MCP

中文 | English

An independent, security-focused Model Context Protocol server for Adobe Substance 3D Designer. Version 1.1.0 adds generic authoring tools while keeping the MCP runtime outside Designer so each Python environment remains isolated.

Compatibility status: Substance 3D Designer 16.0.3 is the supported baseline. The 1.0.0 capability set is real-machine verified on that version. Authoring extensions introduced in 1.1.0 are not yet real-machine verified.

Compatibility

Substance Designer version

Status

16.0.3

Supported baseline; 1.1.0 authoring extensions are not yet real-machine verified

Other released 16.x versions

Unverified; capabilities are detected at runtime

Newer major versions

Experimental and unverified

A version is marked as fully tested only after the plugin and MCP tools have been exercised in a real Substance Designer installation. Capability detection does not replace real-version testing.

Related MCP server: dcc-mcp-substance3d-designer

What it does

  • Reads application, package, graph, selection, node, property, and capability state.

  • Searches resources in packages already loaded by Designer.

  • Creates verified atomic nodes and instances of resources returned by the search tool.

  • Moves and deletes explicit nodes, connects explicit runtime properties, and writes supported simple parameters.

  • Saves one already-saved package in place after explicit confirmation.

  • Creates new packages and compositing graphs without relying on the current selection.

  • Reads runtime node definitions and versioned graph snapshots with explicit connections.

  • Creates Output nodes with real Designer usage metadata instead of response-only labels.

  • Dry-runs and applies bounded additive graph patches with runtime validation and rollback.

  • Imports local bitmap resources, performs confirmed Save As, and publishes saved packages to SBSAR through the documented in-process API.

It does not generate material recipes, scrape Qt UI, expose Python or shell execution, access the internet, upload telemetry, or provide remote control.

Architecture

MCP host
   | stdio
External Python 3.10+ MCP server
   | authenticated length-prefixed JSON on 127.0.0.1
Designer Python plugin
   | allow-listed command registry and Qt main-thread dispatcher
Focused services and compatibility probes
   | verified Adobe Python API calls
Substance 3D Designer (real-machine verified: 16.0.3)

The external process never imports Adobe's sd module. The bridge contains transport only. Designer API calls live in plugin services or the compatibility adapter. See architecture.md and security-model.md.

Installation

External MCP server

Windows PowerShell:

py -3.12 -m venv .venv
.\.venv\Scripts\python.exe -m pip install -e .

Cross-platform:

python3 -m venv .venv
.venv/bin/python -m pip install -e .

The installed command is substance-designer-mcp and uses stdio by default.

Designer plugin

Build the distributable ZIP:

.\.venv\Scripts\python.exe scripts\build_plugin.py

Install into an explicit user plugin directory:

.\.venv\Scripts\python.exe scripts\install_plugin.py --target "C:\path\to\Designer\user-plugins"

The installer refuses Adobe's application installation tree and backs up an existing plugin. Manual Plugin Manager loading and uninstall details are in installation.md.

MCP host configuration

{
  "mcpServers": {
    "substance-designer": {
      "command": "substance-designer-mcp",
      "args": []
    }
  }
}

The MCP host starts the installed substance-designer-mcp stdio command. The Designer plugin must also be installed locally before the server can connect to Designer.

Tools

Tool

Access

Risk boundary

sd_ping

Read

Reports offline state without crashing

sd_get_application_info

Read

Runtime-probed information only

sd_get_capabilities

Read

Separates availability from verification

sd_list_packages

Read

Open packages only

sd_get_active_graph

Read

Current graph only

sd_list_graph_nodes

Read

Bounded pagination

sd_get_selection

Read

Bounded current selection

sd_get_node

Read

Structured current-session reference

sd_list_node_properties

Read

Runtime IDs and types

sd_search_library

Read

Loaded resources, no UI scraping

sd_create_node

Write

Verified runtime definition only

sd_create_instance_node

Write

Search-result resource reference only

sd_move_nodes

Write

Explicit nodes and finite coordinates

sd_delete_nodes

Destructive

Requires confirm: true; empty list rejected

sd_connect_nodes

Write

Explicit runtime properties; no port guessing

sd_disconnect_nodes

Write

Explicit existing connection

sd_set_node_parameter

Write

Runtime type checked; simple types only

sd_save_package

Destructive

Requires confirm: true; no Save As

sd_create_package

Write

Creates one unsaved user package

sd_create_graph

Write

Explicit package and portable unique identifier

sd_list_node_definitions

Read

Runtime catalog; bounded and searchable

sd_get_graph_snapshot

Read

Versioned bounded nodes, properties, connections, and presets

sd_open_graph

Write

Opens one explicit graph in the editor

sd_create_graph_output

Write

Explicit identifier, label, group, and official usages

sd_validate_graph_patch

Read

Dry-run only; definitions, ports, types, targets, and cycles

sd_apply_graph_patch

Write

Additive patch only; rollback of all created nodes on failure

sd_import_bitmap

Write

Existing local bitmap and explicit embed method only

sd_save_package_as

Destructive

Absolute .sbs, existing parent, overwrite opt-in, confirmation

sd_export_package_sbsar

Destructive

Saved package, explicit settings, overwrite opt-in, confirmation

Configuration

Environment variable

Default

SUBSTANCE_DESIGNER_MCP_SESSION_PATH

~/.substance-designer-mcp/session.json

SUBSTANCE_DESIGNER_MCP_PLUGIN_LOG_PATH

~/.substance-designer-mcp/logs/plugin.log

SUBSTANCE_DESIGNER_MCP_CONNECT_TIMEOUT

5 seconds

SUBSTANCE_DESIGNER_MCP_READ_TIMEOUT

5 seconds

SUBSTANCE_DESIGNER_MCP_WRITE_TIMEOUT

30 seconds

SUBSTANCE_DESIGNER_MCP_LOG_LEVEL

INFO

Set the session and plugin-log path variables before Designer imports the plugin. This lets an isolated test session avoid replacing the normal per-user state files.

Logs use stderr or rotating files. Stdio stdout is reserved for MCP protocol messages.

Development

.\.venv\Scripts\python.exe -m pip install -e ".[dev]"
.\.venv\Scripts\python.exe -m pytest
.\.venv\Scripts\ruff.exe check .
.\.venv\Scripts\ruff.exe format --check .
.\.venv\Scripts\mypy.exe src
.\.venv\Scripts\python.exe -m build
.\.venv\Scripts\python.exe scripts\build_plugin.py

API claims must come from Designer's bundled Python API documentation. Contribution and release rules are in CONTRIBUTING.md and development.md.

License and trademarks

MIT. Adobe and Substance 3D Designer are trademarks of Adobe. This project is independent and is not endorsed by Adobe.

Available Tools

29 tools
sd_apply_graph_patchA

Apply a preflighted additive graph patch with rollback on failure.

ParametersJSON Schema
NameRequiredDescriptionDefault
graphYes
patchYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations only state that the operation is not read-only, not idempotent, and not destructive. The description adds value by specifying the patch is 'additive' (non-destructive) and that it rolls back on failure, providing important safety context beyond what annotations indicate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence contains no filler. The verb 'Apply' immediately conveys the action, and all terms ('preflighted', 'additive', 'rollback on failure') contribute meaningful context.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The presence of an output schema means return values don't need to be described, and annotations cover safety flags. However, for a complex mutation tool, the description does not mention preconditions beyond 'preflighted', relationships to validation tools, or specific failure handling semantics beyond rollback. It is adequate but minimal.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description provides no parameter information. It fails to explain the structure of 'graph' or 'patch', leaving the agent to rely solely on the detailed schema. With zero coverage, the description had a responsibility to compensate, which it does not.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Apply') and the resource ('preflighted additive graph patch'), and it distinguishes the tool from the sibling sd_validate_graph_patch by focusing on the application step. The phrase 'with rollback on failure' adds specificity about the behavior.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The word 'preflighted' implies the patch should already be validated, but the description does not explicitly mention using sd_validate_graph_patch first or when to choose this over alternatives. Usage is only implied, not spelled out.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sd_connect_nodesC

Connect explicit runtime properties after direction, type, and duplicate checks.

ParametersJSON Schema
NameRequiredDescriptionDefault
graphYes
source_nodeYes
target_nodeYes
source_propertyYes
target_propertyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate mutation (readOnlyHint=false) and non-destructiveness (destructiveHint=false). The description adds that the operation is gated by direction, type, and duplicate checks, which is useful behavioral context beyond the annotations. However, it does not explain what happens if checks fail, whether the connection is reversible, or any side effects. The added value is moderate but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with no filler, front-loading the action. It is efficient and easy to parse. However, it sacrifices necessary detail for brevity, so it is not a perfect 5; it earns a 4 for being concise without being verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 5 required parameters, a nested graph reference, and an output schema, the description is severely under-specified. It does not explain the graph structure, the meaning of the properties, or the expected outcome. While it mentions validation checks, it leaves too much to inference for the agent to use the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description provides no parameter-level explanations. It does not elaborate on 'graph', 'source_node', 'target_node', 'source_property', or 'target_property'. The phrase 'explicit runtime properties' loosely relates to source/target properties, but an agent cannot determine expected values or how the graph reference is constructed. This is a critical gap for a 5-parameter tool.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the core action ('Connect') and the resource ('explicit runtime properties'), and mentions that it occurs after validation checks, which hints at a more specific scope than just any connection. However, it is somewhat vague about what 'runtime properties' means and does not explicitly name the node-based context (source/target). It partially distinguishes from siblings like sd_disconnect_nodes and sd_create_node but could be more precise.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'after direction, type, and duplicate checks' implies a usage context: this tool should be invoked after performing (or in the context of) these validations. However, it does not explicitly state when to use this tool versus alternatives, nor does it mention exclusions or prerequisites beyond those checks. The guidance is implied rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sd_create_graphA

Create one empty compositing graph in an explicit open package.

ParametersJSON Schema
NameRequiredDescriptionDefault
packageYes
graph_typeNo
identifierYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations are all false, adding little context. The description discloses the core behavior (creates an empty graph) and the requirement that the package be open, but it does not describe side effects, error conditions, or what happens if a graph with the same identifier already exists. It adds minimal transparency beyond 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence with no filler. Every word contributes to the meaning, clearly stating the action and scope.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The output schema covers return values, and the description provides the core purpose. However, it lacks parameter-level guidance, does not discuss edge cases, and does not explicitly address usage conditions, making it adequate but not fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description provides almost no parameter-level detail. The phrase 'explicit open package' hints at the package parameter, but it does not explain identifier or graph_type, leaving significant ambiguity for a three-parameter tool.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Create'), the resource ('empty compositing graph'), and the context ('in an explicit open package'). It distinguishes the tool from siblings like sd_open_graph and sd_create_graph_output by specifying it creates a new graph.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for creating a new empty graph but does not explicitly state when to use this tool versus alternatives, nor does it mention exclusions or prerequisites beyond the package being open. There is no explicit reference to sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sd_create_graph_outputC

Create an Output node with explicit official usage metadata.

ParametersJSON Schema
NameRequiredDescriptionDefault
graphYes
groupNo
labelYes
usagesYes
positionYes
identifierYes
descriptionNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations are all negative hints, so the description carries the burden of behavioral disclosure. It adds only the vague phrase 'explicit official usage metadata' and does not explain side effects, permissions, or impact on an existing graph. No contradiction with annotations, but significantly under-discloses for a mutating create operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no filler or redundancy. It is concise and immediately states the action, though the brevity contributes to missing details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has complex nested types (GraphRef, UsageSpec) and 7 parameters, but the description only states the basic creation action. It does not explain what an Output node represents, how `usages` should be structured, or how `position`/`group` behave, making it incomplete for reliable agent invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%; the description does not explain any of the 7 parameters, including required `graph`, `identifier`, `label`, `usages`, and `position`. The phrase 'usage metadata' vaguely hints at the `usages` parameter but adds no concrete semantic value beyond the schema definitions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the specific verb 'Create' and identifies the resource as 'an Output node', making the core purpose clear. It does not explicitly contrast with sibling tools like sd_create_node or sd_create_instance_node, so it stops short of full sibling differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no guidance on when to use this tool versus alternatives such as sd_create_node or sd_set_node_parameter. It lacks prerequisites, exclusions, or any recommended context beyond the bare capability.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sd_create_instance_nodeA

Create one instance from a resource returned by sd_search_library.

ParametersJSON Schema
NameRequiredDescriptionDefault
graphYes
positionYes
resourceYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description aligns with annotations: 'Create' implies a write operation (readOnlyHint=false) and is consistent with non-idempotent and non-destructive status. It adds the behavioral context that the operation depends on a previously searched resource. However, it does not disclose other important behaviors like whether an active graph is required or how failures are handled, leaving moderate gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, focused sentence that front-loads the action and source. Every word earns its place, with no redundancy or extraneous detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

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 sparse for a complex creation tool with 3 required nested parameters. It omits prerequisites like needing an active graph, the significance of the position, and resource validation. For a tool with 0% schema coverage and multiple nested objects, more context is needed for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description must compensate for the 3 required parameters, but it only references 'resource' from the search result. It does not explain the 'graph' parameter (target graph reference) or 'position' (coordinates), nor the structure of GraphRef or LibraryResourceRef. The description adds minimal meaning beyond what the schema field names imply.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Create one instance') and the specific source ('a resource returned by sd_search_library'). This distinguishes it from sibling tools like sd_create_node or sd_create_graph, which create different entities. The phrasing is precise and non-tautological.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly ties usage to a precondition: use a resource from sd_search_library. This provides clear context on when to use the tool and implies a workflow (search first, then create). However, it does not explicitly mention alternatives or exclusions, so it falls slightly short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sd_create_nodeB

Create one verified atomic node at an explicit position without auto-connecting it.

ParametersJSON Schema
NameRequiredDescriptionDefault
graphYes
positionYes
definition_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With all annotations false, the description carries the burden of behavioral disclosure. It adds useful context: 'one verified atomic node' implies validation, and 'without auto-connecting it' explicitly states a key behavior. However, it does not disclose potential side effects (e.g., overwriting an existing node at that position), any permissions/requirements, or the nature of verification. The description adds some value beyond annotations but leaves significant 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that is front-loaded with the main action ('Create one verified atomic node') followed by key constraints. Every word earns its place, with no redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (3 parameters, graph reference, position type) and the presence of an output schema, the description is somewhat under-specified. It lacks usage guidance, clear parameter explanations, and caveats about verification. For a create operation in a rich domain with many sibling tools, a one-sentence description is minimally viable but not fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It loosely hints at 'position' (explicit position) and 'definition' (atomic node), but does not clarify the format of position (array of two numbers), the meaning of definition_id (which definition, how referenced), or what 'graph' refers to. The description adds minimal semantic value over the raw schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('create') with a clear resource ('verified atomic node') and explicit scope ('at an explicit position without auto-connecting it'). It distinguishes itself from sibling tools like sd_create_instance_node (which creates instance nodes) and sd_connect_nodes (which handles connections) by highlighting the atomic nature and no auto-connection.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 vs alternatives. It does not mention that sd_create_instance_node should be used for instance nodes, nor does it explain prerequisites like the graph needing to exist or whether 'verified' implies a validation step. The only implied usage is for creating atomic nodes, but no explicit context or exclusions are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sd_create_packageA

Create one unsaved Designer user package through the official package API.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations provide no hints (all false), so the description must carry the behavioral burden. It adds 'unsaved' to indicate no persistence to disk, but does not disclose side effects, return value, or any required preconditions like an active graph. Some behavioral context is provided, but it is not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

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 object. 'through the official package API' is slightly redundant but not verbose. Every part contributes to understanding, with no unnecessary fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (0 parameters, output schema present), the description covers the core purpose. However, it does not mention what happens after creation or how this relates to saving workflows, which would be useful but is not strictly required given the output schema and minimal complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the input schema fully covers any parameter documentation. According to the rubric, a 0-parameter baseline is 4; the description does not need to add parameter meaning and does not.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Create'), the resource ('Designer user package'), and a key qualifier ('unsaved') that distinguishes it from save-related sibling tools like sd_save_package and sd_save_package_as. It is specific and unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The word 'unsaved' implies this tool is used to create a new, non-persisted package before saving, but there is no explicit guidance on when to use it versus alternatives, nor any exclusions. The usage context is only implied, not clearly articulated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sd_delete_nodesA
Destructive

Delete explicit nodes from one graph only when confirm is true.

ParametersJSON Schema
NameRequiredDescriptionDefault
graphYes
confirmYes
node_identifiersYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate destructiveHint=true and readOnlyHint=false. The description adds behavioral context: deletion is gated by confirm, and it operates on a single graph. This goes beyond the annotation but does not detail side effects like cascading deletion of edges.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence, front-loaded with the action and key constraint. No redundant or filler content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive mutation tool, the description is minimal. It does not cover what happens if confirm=false, how errors are reported, or the impact on related nodes/edges. However, the output schema and annotations provide some structural and safety context, so it is borderline adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It links 'confirm true' to the confirm parameter and 'explicit nodes' to node_identifiers, but doesn't explain the format of identifiers or the GraphRef structure. Some semantic value is added, but gaps remain.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool deletes explicit nodes from one graph, with a specific condition (confirm=true). This distinguishes it from siblings like create or move tools, and the phrase 'explicit nodes' clarifies that only listed nodes are affected.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The condition 'only when confirm is true' gives clear context for when the deletion actually occurs, implying the tool is safe to call with confirm=false for validation. However, it does not mention alternatives or explicitly state 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.

sd_disconnect_nodesC

Disconnect one explicit existing property connection.

ParametersJSON Schema
NameRequiredDescriptionDefault
graphYes
source_nodeYes
target_nodeYes
source_propertyYes
target_propertyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations provide limited safety info (all false). The description adds context that the tool handles only 'one explicit existing' connection, which is useful behavioral information. It does not disclose side effects such as whether the operation is reversible or what happens if the connection does not exist.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely under-specified for a tool with 5 required parameters. It is concise but not appropriately sized; it omits necessary context and reads more like a title than a useful description.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 5 parameters, 0% schema coverage, and no guidance on side effects or return values (despite an output schema), the description is incomplete. It does not explain what 'explicit' means, prerequisites, or the operation's outcome, leaving significant gaps for an agent to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description does not explain the parameters. While parameter names like source_node, source_property, target_node, target_property are fairly self-explanatory, the description adds no additional meaning about how they relate or any requirements, so it fails to compensate for the lack of schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific action ('Disconnect') on a specific resource ('one explicit existing property connection'). It distinguishes from siblings like sd_connect_nodes and sd_delete_nodes by focusing specifically on disconnecting an existing connection.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'explicit existing property connection' implies the tool is intended for disconnecting connections that already exist and are explicit, providing an implied usage context. However, it does not explicitly mention when to use it over alternatives or any exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sd_export_package_sbsarB
Destructive

Export one saved package to .sbsar with explicit publication settings.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmYes
packageYes
file_pathYes
overwriteYes
icon_enabledYes
compression_modeYes
expose_pixel_sizeYes
expose_output_sizeYes
expose_random_seedYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare destructiveHint=true, so the write nature is already known. The description adds the prerequisite that the package must already be saved ('one saved package') and that publication settings are explicit, which is useful context. However, it does not reveal overwrite behavior, side effects, or failure modes beyond what the parameters suggest.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no filler. It concisely conveys the core action and key differentiator. However, its extreme brevity leaves out necessary nuance that would make it more helpful, slightly reducing the score from perfect.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having an output schema and complex input requirements, the description does not explain parameter semantics, usage context, or side effects. For a tool with 9 required parameters and a destructive hint, this level of detail is inadequate for an agent to select and invoke it correctly without additional documentation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage and 9 required parameters, the description should compensate by explaining parameter roles. It only mentions 'explicit publication settings' in a general sense, providing no specific meaning for compression_mode, expose_output_size, or other fields. The agent would have to infer parameter semantics entirely from names and enums.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool exports a saved package to .sbsar with explicit publication settings. This distinguishes it from siblings like sd_save_package, which saves in the native format, and sd_save_package_as, which likely saves without the .sbsar export focus.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for exporting to .sbsar with publication settings, but it does not explicitly contrast with alternatives or state when not to use it. No clear prerequisites or exclusions are provided, so guidance is inferred rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sd_get_active_graphA
Read-onlyIdempotent

Read the current editable graph, package, node count, and selection count.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare this as read-only, idempotent, and non-destructive. The description adds the qualifier 'editable' and specifies the items counted, which provides some context beyond annotations. However, it does not disclose potential edge cases (e.g., behavior when no graph is active) or return format details, but the output schema covers return details.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no unnecessary words. It captures the essential purpose efficiently, earning a perfect score for conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

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 presence of an output schema, the description is sufficiently complete. It clearly states what is read, and the output schema handles return value details, so no additional explanation is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the description is not required to explain parameter meanings. The baseline for no-parameter tools is 4, and the description accurately reflects the tool's no-input nature.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: 'Read the current editable graph, package, node count, and selection count.' The verb 'Read' and specific resources (editable graph, package, node count, selection count) distinguish it from sibling tools like sd_get_graph_snapshot or sd_get_selection, which have different scopes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 prerequisites, exclusions, or alternative tools. Given the many sibling tools, explicit usage context would be valuable but is absent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sd_get_application_infoA
Read-onlyIdempotent

Read Designer version, Python, platform, open packages, graph, and capabilities.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations (readOnlyHint, idempotentHint, destructiveHint) already declare this as a safe, read-only operation. The description adds value by specifying precisely what data is read (version, Python, platform, etc.), which goes beyond the annotations and gives the agent a clearer behavioral picture.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that lists all key data categories without filler or redundancy. It is appropriately sized for a parameterless read tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given zero parameters and the presence of an output schema, the description only needs to convey what the tool returns. It does so by listing the data categories, making it complete for this simple read operation. No additional context is necessary.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has no parameters, so there is nothing to document. The input schema is empty (100% coverage), and the description naturally cannot add parameter details. A score of 4 aligns with the baseline for zero-parameter tools.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the specific verb 'Read' and enumerates a clear list of resources (version, Python, platform, open packages, graph, capabilities), making the tool's purpose unambiguous. This distinguishes it from sibling tools like sd_get_capabilities or sd_get_active_graph, which target narrower subsets.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is for reading overall application info, giving clear context for when to use it. However, it provides no explicit guidance on when not to use it or which alternatives (e.g., sd_get_capabilities) might be more appropriate for specific needs.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sd_get_capabilitiesA
Read-onlyIdempotent

Read the runtime-probed capability matrix and verification status.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, covering the safety profile. The description adds 'runtime-probed' and 'verification status,' hinting at dynamic data, but does not disclose additional traits like performance, error behavior, or data freshness. With annotations present, this is adequate but minimal.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, well-structured sentence that front-loads the action ('Read') and clearly identifies the resource. No wasted words or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given zero parameters, strong annotations, and an output schema, the description provides enough context for a simple read-only operation. The output schema handles return-value details, so the description's brevity is appropriate and complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the schema is trivially complete. Baseline 4 applies because there is nothing for the description to clarify about parameter usage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the specific verb 'Read' and names the resource as the 'runtime-probed capability matrix and verification status.' This clearly distinguishes it from sibling tools like get_application_info or get_active_graph, which target different resources. The purpose is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description offers no guidance on when to use this tool versus alternatives. It does not mention a typical use case, prerequisites, or which sibling tools to prefer for other needs. Given the large list of getter siblings, this is a clear gap.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sd_get_graph_snapshotA
Read-onlyIdempotent

Read a bounded versioned graph snapshot including explicit connections.

ParametersJSON Schema
NameRequiredDescriptionDefault
graphYes
limitNo
include_valuesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

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 some context ('bounded', 'versioned', 'explicit connections') but does not disclose additional behavioral details such as default limits or the meaning of 'explicit connections' beyond what the annotations imply.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence, front-loaded with the action verb, and contains no redundant or filler content. Every word contributes meaning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of strong annotations and an output schema, the description does not need to explain return values. However, terms like 'versioned' and 'explicit connections' are domain-specific and not elaborated, which could leave an agent uncertain about the tool's exact scope. The description is adequate but not highly complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description does not explain any of the three parameters (graph, limit, include_values). The word 'bounded' hints at the limit parameter, but the nested GraphRef and include_values remain undocumented in the description, leaving the schema to carry full semantic weight.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific verb ('Read') and resource ('a bounded versioned graph snapshot') and adds a distinguishing detail ('including explicit connections'), which differentiates this from sibling tools like sd_get_active_graph or sd_list_graph_nodes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies a use case (read a versioned snapshot with connections) but does not explicitly state when to prefer this tool over alternatives or when not to use it. No exclusions or alternative tool mentions are present.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sd_get_nodeA
Read-onlyIdempotent

Read one node by a structured current-session node reference.

ParametersJSON Schema
NameRequiredDescriptionDefault
nodeYes
detailNofull

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds useful context about the reference being 'current-session', which clarifies that the node must reside in the active session, complementing the annotations without redundancy. No contradiction 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, tightly worded sentence with no filler. It front-loads the key action ('Read one node') and scoping information. It could arguably be expanded, but for the purpose of concise clarity it is efficient and well-structured, earning a 4.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having an output schema and strong annotations, the description is too thin given the tool's complexity and the large sibling set. It does not explain prerequisites (e.g., needing an active session), how a node reference is obtained, or how this tool relates to the many other node-related tools. The description alone would not sufficiently guide an AI to correctly select and invoke the tool in varied contexts.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description does not enumerate or explain any parameters besides referencing 'structured current-session node reference', which vaguely hints at the 'node' parameter but says nothing about 'detail' or the specific fields within NodeRef (e.g., package_url, graph_identifier). The schema property names are self-explanatory but the description does not compensate for the 0% coverage, leaving parameter meaning underspecified.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (Read) and the resource (one node), with an explicit scope qualifier ('by a structured current-session node reference'). It distinguishes from sibling tools like sd_list_graph_nodes (listing multiple nodes) and sd_get_active_graph (reading the active graph), making it unambiguous that this fetches a single node.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage: when you need to read exactly one node and have a structured reference within the current session. However, it does not explicitly name alternative tools or state when not to use it, leaving some ambiguity versus siblings like sd_get_graph_snapshot (which might also retrieve node data in a different form).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sd_get_selectionB
Read-onlyIdempotent

Read the current graph node selection with a bounded result size.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
detailNosummary

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds 'bounded result size' beyond the annotations, hinting at the limit parameter. However, it does not elaborate on limit behavior, detail semantics, or response format. Annotations already cover read-only and idempotent aspects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence with no filler. Every word contributes meaning, and the main idea is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read tool with annotations and an output schema, the description is adequate but has a gap: the 'detail' parameter is not explained. It also doesn't clarify what 'selection' encompasses, but sibling context helps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It only mentions 'bounded result size' which relates to the limit parameter, but completely ignores the 'detail' parameter and its summary/full enum, leaving it unexplained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: reading the current graph node selection. It uses a specific verb ('Read') and resource ('current graph node selection'), and the 'selection' scope differentiates it from siblings like sd_get_node or sd_list_graph_nodes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 are no explicit 'use this when' or 'instead of' statements, nor any mention of prerequisites or contexts.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sd_import_bitmapB

Import one existing local bitmap resource and optionally instantiate it.

ParametersJSON Schema
NameRequiredDescriptionDefault
graphNo
packageYes
positionNo
file_pathYes
identifierYes
embed_methodYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds the optional instantiation behavior beyond the annotations, but it does not disclose side effects such as modifying the specified package, creating nodes, or implications of embed methods. Annotations are not contradicted, but the description carries minimal 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single focused sentence with no filler. It is front-loaded and every word adds value, making it highly concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 6 parameters, nested object schemas, and no parameter descriptions, this description is insufficient. It does not explain the meaning of package/graph references or embed_method options, leaving the agent without enough context to invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description does not explain any of the 6 parameters. It only implies the file_path and identifier via 'local bitmap resource', but leaves embed_method, graph, package, and position semantics undefined.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb 'Import' and clearly identifies the resource as 'one existing local bitmap resource' with optional 'instantiate' action. This distinguishes it from sibling tools, none of which mention import or bitmap resources.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 prerequisites, exclusions, or when another sibling tool would be more appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sd_list_graph_nodesB
Read-onlyIdempotent

List a bounded page of nodes from a structured graph reference.

ParametersJSON Schema
NameRequiredDescriptionDefault
graphYes
limitNo
detailNosummary
offsetNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is clear. The description adds 'bounded page', which communicates pagination behavior beyond the annotations. However, it does not describe other behavioral traits such as default ordering or whether the graph must be open.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence that immediately conveys the core action and resource. Every word contributes value; no filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having an output schema, the tool requires a GraphRef with package_url and graph_identifier, and has parameters like detail and offset. The description does not explain how to construct the graph reference or what detail levels mean. For a tool with a nested input object and zero schema descriptions, this is too minimal.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It mentions 'bounded page' which hints at limit/offset, but does not explain the meaning of 'detail', the structure of 'graph', or how limit/offset interact. Parameters like detail (summary/full) are left entirely unexplained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the specific verb 'List' with a clear resource 'nodes' and scope 'from a structured graph reference' with 'bounded page' indicating pagination. This distinguishes it from siblings like sd_get_node (single node) and sd_list_node_properties (properties of a node).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 suitable scenarios, exclusions, or refer to sibling tools like sd_get_graph_snapshot or sd_list_node_properties. The 'bounded page' hint is the only implicit usage signal.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sd_list_node_definitionsA
Read-onlyIdempotent

Search a bounded page of atomic definitions available in one graph.

ParametersJSON Schema
NameRequiredDescriptionDefault
graphYes
limitNo
queryNo
offsetNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior4/5

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 context about pagination ('bounded page') and graph scoping ('in one graph'), which is useful operational behavior beyond the annotations. It doesn't disclose return format, but an output schema exists. No contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, 10 words, zero redundancy. It front-loads the action and scope, making it easy to process. No filler content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has 4 parameters including a nested GraphRef, but the one-sentence description leaves terms like 'atomic definitions' unexplained and offers no guidance on query syntax or result structure. However, the output schema covers return values, and the description gives the essential purpose, making it minimally viable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It implicitly references the graph parameter ('in one graph'), search functionality ('Search'), and pagination ('bounded page'), but doesn't explicitly explain limit/offset/query semantics or the GraphRef structure. It provides partial meaning but not thorough parameter-level guidance.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the verb 'Search' with the object 'a bounded page of atomic definitions' and scope 'in one graph', clearly indicating it lists/search definitions within a graph. It distinguishes from library-wide search tools but doesn't explicitly differentiate from sd_list_graph_nodes, which lists graph nodes, leaving 'atomic definitions' somewhat ambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No usage guidance is provided. The description doesn't state when to prefer this over sd_list_graph_nodes or sd_search_library, nor mention any alternatives or exclusions. It's left to the agent to infer context from the name and basic description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sd_list_node_propertiesB
Read-onlyIdempotent

List runtime input and output properties, types, values, and connection state.

ParametersJSON Schema
NameRequiredDescriptionDefault
nodeYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is known. The description adds context by specifying it lists 'runtime' properties and 'connection state,' which goes beyond the schema. However, it does not disclose return format, pagination, or other behavioral details, so it is modestly useful.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that is precise and free of filler. Every word contributes to the meaning, making it highly efficient and easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

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 annotations that cover safety, the description is minimally sufficient for a simple read-only listing tool. However, it lacks usage context and differentiation from siblings, and the parameter semantics are not addressed. It is adequate but not comprehensive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description does not mention the 'node' parameter at all, and schema description coverage is 0%. The schema itself provides a detailed NodeRef structure, but the description adds no guidance on how to identify the target node or what 'node' refers to in this context. The agent must rely solely on the schema, which is a gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with a specific verb ('List') and resource ('runtime input and output properties, types, values, and connection state'). It is distinct from generic node retrieval tools, though it does not explicitly call out sibling tools. The qualifiers make the scope clear, but the lack of differentiation from sd_get_node prevents a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 sd_get_node or sd_list_graph_nodes. It states what it does but not the intended scenarios or any exclusions. This leaves the agent to infer usage context, which is insufficient for optimal tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sd_list_packagesA
Read-onlyIdempotent

List packages currently open in Designer as structured references.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds context by noting 'currently open' (state dependency) and 'structured references' (return format), but does not go beyond that. No contradiction 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that conveys the essential purpose and output format without any filler. Every word is meaningful, and 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.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no parameters, strong annotations, and an output schema, the description is appropriately sized. It clearly states what the tool lists and the output form. The term 'structured references' is slightly vague, but the output schema likely clarifies it. For a simple list tool, this is sufficiently complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so there is nothing for the description to explain. The baseline for no-parameter tools is 4, and the description does not need to compensate for any schema coverage gaps.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the specific verb 'List' with the clear resource 'packages currently open in Designer' and specifies the output form as 'structured references'. This clearly distinguishes it from sibling tools like sd_search_library (search) and sd_get_application_info (app info).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage context—when you need to enumerate open packages—but does not explicitly state when to use it versus alternatives such as sd_search_library or sd_get_application_info. Given multiple sibling tools, explicit exclusion guidance would improve this.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sd_move_nodesB
Idempotent

Move one to one hundred explicitly identified nodes to finite coordinates.

ParametersJSON Schema
NameRequiredDescriptionDefault
graphYes
movesYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds the constraint of one to one hundred nodes and the requirement for explicit identification, which are useful behavioral details. However, annotations already indicate it is a write operation (readOnlyHint=false) and idempotent, so the description does not need to repeat those. It does not disclose error behavior or prerequisites beyond node existence.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, front-loaded with the primary action, and contains no extraneous words. It efficiently captures the core behavior and key constraints.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present and annotations clarifying mutability and idempotency, the description provides a baseline of understanding: what the tool does, a count limit, and the requirement for explicit node references. However, it lacks any explanation of the graph parameter or how to structure the move specifications, making it incomplete for a tool with nested parameters and no parameter descriptions in the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description gives minimal parameter insight: 'one to one hundred' hints at the size of the moves array, and 'explicitly identified nodes' maps to node_identifier. However, with 0% schema coverage, the description fails to explain the graph parameter or the structure of each move (node_identifier + position). The schema carries the burden, but the description does not compensate adequately.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with a specific verb ('Move') and resource ('nodes'), and provides a concrete scope ('one to one hundred'), distinguishing it from sibling tools like sd_create_node or sd_delete_nodes. The mention of 'explicitly identified nodes' reinforces that this is about repositioning existing nodes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus alternatives. It does not mention that this is the tool for repositioning nodes, nor does it exclude cases like using sd_apply_graph_patch for bulk position changes. The description only states what it does, not the context in which it should be chosen.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sd_open_graphC

Open one explicit graph resource in Designer's editor.

ParametersJSON Schema
NameRequiredDescriptionDefault
graphYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description does not disclose any side effects, such as changing the current view, closing unsaved work, or requiring specific permissions. Annotations are present but all hints are false, so they provide no positive safety profile. The description adds no behavioral context beyond the basic action.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence with no redundant words, making it easy to read. However, it is arguably too terse, providing only the bare minimum of information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that this tool likely mutates the editor state by opening a graph, the description lacks important context about what counts as a 'graph resource', whether the operation is reversible, or what the output schema indicates. The presence of an output schema reduces the need to describe return values, but the description still misses critical behavioral context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and the description does not mention the 'graph' parameter or its sub-fields (package_url, graph_identifier, graph_type). The schema provides some structure but the description adds no meaning to help an agent construct valid arguments.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the action (open) and the resource (a graph resource) in a specific context (Designer's editor). It is distinguished from siblings by using the verb 'open' which is unique among the listed tools, though it doesn't explicitly contrast with alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 such as sd_get_active_graph or sd_get_graph_snapshot. The description implies a single use case but offers no exclusions or context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sd_pingA
Read-onlyIdempotent

Report MCP, bridge, plugin, Designer version, session, and compatibility status.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint false, so the safety profile is covered. The description adds context by naming the specific status categories reported, but does not disclose additional behaviors such as error conditions, whether it requires an active bridge connection, or how compatibility is determined.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, grammatically complete sentence that leads with the action verb 'Report'. Every term is meaningful, and there is no redundancy or unnecessary detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter status tool with an output schema, the description provides sufficient scope of what is reported. It could explicitly state that it is a health check or suggest when to call it, but the name and content are adequate for most purposes.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has no parameters, so the description does not need to explain inputs. The schema already fully covers this (no properties), and the baseline for zero-parameter tools is 4, which is appropriate here.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the specific verb 'Report' and lists concrete items (MCP, bridge, plugin, Designer version, session, compatibility status), making the tool's purpose clear. It distinguishes itself from sibling tools like sd_get_application_info by covering a broader scope of statuses.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no guidance on when to invoke this tool versus alternatives. It does not mention typical use cases, prerequisites, or exclusions, so agents may not know if this should be called at startup, before other operations, or when debugging connectivity issues.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sd_save_packageA
Destructive

Save one already-saved open package in place; never performs Save As.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmYes
packageYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate destructiveHint=true and readOnlyHint=false. The description adds valuable context that the save overwrites in place and is restricted to already-saved packages, clarifying the exact mutating behavior beyond the raw hints. No additional side effects are mentioned, but the in-place nuance is useful.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that front-loads the core action ('Save one already-saved open package in place') and adds a critical exclusion in a second clause. Zero waste, every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has an output schema and simple parameters, so the description need not explain return values. However, it omits the purpose of the required confirm parameter, which is crucial for a destructive operation. The description tells what the tool does but not what the confirm boolean is for, leaving a gap for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, meaning the description must compensate for parameter meaning, but it does not. The schema defines package and confirm, but the description gives no hint about what confirm means (likely a safety acknowledgment) or how package should reference an already-saved open package. This is a major gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool saves an already-saved open package in place, using a specific verb and resource. The explicit 'never performs Save As' directly distinguishes it from the sibling sd_save_package_as tool, making the purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context: use for existing open packages that already have a save location. 'Never performs Save As' is an explicit when-not condition, implying alternatives exist for save-as scenarios. It could have named the alternative tool explicitly, but the guidance is sufficient.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sd_save_package_asA
Destructive

Save an open package to an absolute .sbs path after explicit confirmation.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmYes
packageYes
file_pathYes
overwriteYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate destructiveHint=true and readOnlyHint=false. The description adds value by noting 'after explicit confirmation', which signals a safety mechanism. This goes beyond the structured annotations and helps the agent understand an important behavior (confirmation required).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, front-loaded with the verb 'Save', and contains no redundant wording. Every phrase adds useful context: 'open package', 'absolute .sbs path', 'after explicit confirmation'.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a save operation with an output schema and annotations covering destructiveness, the description provides adequate context. It covers the core action, target, and confirmation behavior. The only missing piece is the handling of the overwrite flag, but the schema and annotations partially cover that.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It does clarify the 'package' (open package), 'file_path' (absolute .sbs path), and 'confirm' (explicit confirmation) parameters. However, it does not explain the 'overwrite' parameter or the structure of PackageRef, leaving some param semantics to the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Save'), the resource ('an open package'), the target ('to an absolute .sbs path'), and a key condition ('after explicit confirmation'). This distinguishes it from the sibling tool 'sd_save_package' by emphasizing the 'as' (new path) behavior.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied: use this when you need to save an open package to a specified .sbs path. However, it does not explicitly contrast with the sibling 'sd_save_package' or mention when one should be chosen over the other. No exclusions or alternative tools are named.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sd_search_libraryA
Read-onlyIdempotent

Search resources in currently loaded packages without UI scraping or guessed URLs.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
queryNo
categoryNo
identifierNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide the safety profile (read-only, idempotent, non-destructive). The description adds behavioral context that the search is reliable and does not rely on UI state or guessed URLs, which is valuable for an agent deciding how to interact with the environment.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that immediately states the verb and object. It contains no filler or redundant information, making it extremely concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite an output schema being present, the description omits input parameter semantics entirely. With four optional parameters and no schema descriptions, the agent cannot reliably compose advanced queries. The description is too skeletal for a search tool with filtering capabilities.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and the description provides no explanation of the four parameters (limit, query, category, identifier). The agent must rely on parameter names alone, which is insufficient for understanding filtered searches. This is a significant gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's action ('Search resources') and scope ('in currently loaded packages'), using a specific verb and resource. It also distinguishes itself from alternative methods like 'UI scraping or guessed URLs,' which helps separate it from the broader set of sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context: use this tool to search resources in currently loaded packages. It also explicitly rules out UI scraping and guessed URLs as alternatives, providing directional usage guidance, though it does not name specific sibling tools or list 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.

sd_set_node_parameterC
Idempotent

Set a supported simple parameter after reading and validating its runtime SD type.

ParametersJSON Schema
NameRequiredDescriptionDefault
nodeYes
valueYes
property_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds a behavioral detail beyond the annotations: that the tool reads and validates the runtime SD type before setting. However, it doesn't disclose what happens if validation fails, whether the change is persisted, or any side effects beyond the set operation. Annotations already indicate idempotent and non-destructive, so the description's contribution is modest but non-contradictory.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with a clear verb phrase and is front-loaded with the action. It avoids filler and is appropriately sized for a simple tool, but it sacrifices some clarity for brevity. Overall, it is concise and structured well, though it lacks details that would make it more useful.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (a nested NodeRef with 7 fields) and the lack of annotations describing side effects, this one-sentence description is incomplete. It doesn't explain the 'supported simple parameter' constraint, how the value should be structured, or how the node is identified beyond the schema. The output schema exists, but the description still leaves critical usage aspects ambiguous.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description does not explain any of the parameters (node, property_id, value). It merely says 'Set a supported simple parameter' without describing what the value should be, how to reference the node, or what property_id expects. The presence of a complex NodeRef object with many fields is also left unexplained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action 'Set a supported simple parameter' and implies the resource is a node parameter. However, 'simple parameter' is not clearly defined, and it doesn't differentiate from other node-related tools, but the verb+resource pairing is specific enough. It distinguishes itself from sibling tools by focusing on setting, which no other tool does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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, nor does it mention prerequisites or exclusions. The phrase 'after reading and validating its runtime SD type' hints at a precondition, but it doesn't explain who should do the reading or what tool to use. No alternative tools are referenced, leaving the agent without context for appropriate use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sd_validate_graph_patchA
Read-onlyIdempotent

Dry-run a versioned additive graph patch without changing Designer.

ParametersJSON Schema
NameRequiredDescriptionDefault
graphYes
patchYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds context by specifying the patch is 'additive' and 'versioned', which are behavioral constraints not fully captured by annotations alone.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that front-loads the most important information: dry-run, additive patch, and no side effects. Every word contributes meaning, with no redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description gives a high-level purpose but omits details about the patch structure constraints (e.g., version '1.0', node count limits) that are present in the schema. However, the output schema and annotations partially compensate, and the tool's core validation behavior is clear. More guidance on validation results or typical use cases would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and the description provides no parameter-level explanation. While parameter names ('graph' and 'patch') are self-descriptive and the schema is rich, the description does not compensate for the lack of schema descriptions or clarify how to construct the patch object.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Dry-run') with a clear resource ('a versioned additive graph patch') and outcome ('without changing Designer'). This clearly distinguishes it from sibling tools like sd_apply_graph_patch, which presumably applies changes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'without changing Designer' clearly implies this tool is for validation/preview before applying a patch, giving the agent context for when to use it. It does not explicitly name the alternative sd_apply_graph_patch, but the dry-run/no-change framing is a clear usage signal.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

B3.3/5.0
Disambiguation4/5

Most tools have clearly distinct resource-action pairs (e.g., create_node vs create_instance_node vs create_graph). However, sd_ping, sd_get_application_info, and sd_get_capabilities all report version/status/capability information, creating some overlap that could confuse an agent.

Naming Consistency5/5

All tool names follow a consistent 'sd_verb_noun' snake_case pattern (e.g., sd_list_packages, sd_create_node, sd_delete_nodes). The only minor deviation is sd_get_active_graph using an adjective, but it still fits the pattern.

Tool Count2/5

With 29 tools, this exceeds the 25+ threshold for 'too many' per the calibration. While the domain is broad, there is noticeable redundancy in info-gathering tools (ping, get_application_info, get_capabilities) and some niche tools (validate/apply_graph_patch) that could be consolidated or omitted.

Completeness4/5

The tool set covers the core lifecycle for packages, graphs, and nodes: create, read, update, delete, connect/disconnect, save, and export. Missing operations like package deletion, undo, or copy/paste are minor gaps that don't block primary workflows.

Maintenance

ActivitySlowing
ResponsivenessSyncing

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

Related MCP Servers

  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables AI clients to control Cocos Creator editor projects, scenes, nodes, components, assets, Prefabs, building, and diagnostics via the MCP protocol.
  • A
    license
    Not graded
    quality
    A
    maintenance
    Adapter that runs an MCP server inside Substance 3D Designer, enabling tools to inspect and interact with the active designer session and its packages through natural language.
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    A security-focused MCP server for Adobe Substance 3D Designer that reads application state, creates and manipulates nodes, and saves packages, with the runtime isolated outside Designer.
    29
    1
    MIT
  • -
    license
    Not graded
    quality
    Not graded
    maintenance
    A safety-first local bridge that gives MCP clients structured Skyrim modding tools without granting arbitrary binary writes or unrestricted shell access.

Latest Blog Posts

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/MikeLi-28/Substance-3D-Designer-MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server