Skip to main content
Glama

ms_add_variable_node

Adds a Get, Set, or GetDelayed variable node to a MetaSound graph, enabling reading current, writing, or reading previous frame values for a named variable.

Instructions

Add a Get, Set, or GetDelayed variable node to the current graph.

Args: node_id: Unique ID for this node instance variable_name: Name of the graph variable to access mode: Access mode — "get" (read current), "set" (write), or "get_delayed" (read previous frame)

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
modeNoget
node_idYes
variable_nameYes

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.0.2

TDQS

A3.5/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full behavioral burden. It usefully discloses that 'set' is a write and 'get_delayed' reads the previous frame, which is genuine semantic info, but it stays silent on failure modes (missing variable, no active graph) and on whether the operation mutates the graph immediately or is deferred until build.

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?

One lead sentence plus a compact Args block; nothing is padded and the purpose is front-loaded. The Args list mildly duplicates the schema but adds the mode enum semantics, so it 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?

An output schema exists, so return values needn't be explained. What remains missing is the interaction boundary with the very similar sibling tools and the preconditions for adding a node, which matters for a graph-mutation tool with no annotations to fall back on.

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?

Schema description coverage is 0%, so the description must compensate and largely does: it defines node_id, variable_name, and enumerates the three legal mode values ('get', 'set', 'get_delayed') with their meanings, which the schema itself does not (no enum present). It stops short of full coverage because it doesn't state the uniqueness scope of node_id or what happens if the variable_name doesn't exist.

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?

States a specific verb and resource ('Add a Get, Set, or GetDelayed variable node') plus the scope ('to the current graph'), which is far more precise than the bare name. However, it never distinguishes itself from the near-identical siblings ms_add_node and ms_add_variable, so the agent cannot route between them from the text alone.

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

Usage Guidelines3/5

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

Usage is only implied: the description tells the agent this adds to 'the current graph' and that three access modes exist, which hints at the read-vs-write use case. It gives no when-to-use condition, no prerequisites (does a graph have to be open?), and no guidance for choosing this over ms_add_variable or ms_add_node.

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