Skip to main content
Glama

move_objects

Moves one or more board objects by a relative offset or to an absolute position; bound connectors follow, and locked objects are included. Works on .inkboard files or the live board.

Instructions

Moves objects together. Either relative (dx, dy) or absolute (x, y: new top-left corner of the bounding box of all the objects, as update_object's x/y for one). Connectors bound to moved objects follow. Locked objects move too.

Input Schema

NameRequiredDescriptionDefault
xNoNew left edge of the group of objects.
yNoNew top edge of the group of objects.
dxNoHorizontal offset (right is positive).
dyNoVertical offset (down is positive).
idsYesIds of the objects to move (1 to 2000; ids come from describe_board, find_objects or the add_* tools). Groups are not expanded: list every member.
pageNoPage: number (from 1) or name. Defaults to the first.
pathNoPath of the board file (.inkboard; .inkboard.json and .tableau.json also accepted). Optional when the application is open: the tool then acts live on the displayed board (undoable with Ctrl+Z).

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.2.0

TDQS

A3.9/5.0
Behavior4/5

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

With no annotations, the description carries the behavioral burden and does so meaningfully: connectors bound to moved objects follow, locked objects are moved anyway, and x/y refer to the new top-left of the group's bounding box. These are non-obvious side effects an agent would otherwise have to guess. It omits return info and whether moves are undoable when acting on a file, though the schema's path parameter covers the live-undo case.

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?

Three tight sentences with no filler: the mode choice is front-loaded, the bounding-box definition follows, and the two side effects are compact clauses. Every sentence changes how an agent would call the tool.

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 7-parameter mutation tool with no annotations and no output schema, the definition covers the risky parts: coordinate reference frame, group bounding-box behavior, connector/lock side effects. Remaining gap is only the return value and error behavior, which is minor given the fully documented parameters.

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 coverage is 100%, so baseline is 3, but the description adds real meaning: it explains that x/y are the new top-left corner of the bounding box of all objects (not per-object), cross-references update_object's x/y semantics, and frames dx/dy and x/y as mutually exclusive alternatives. That resolves coordinate ambiguity the schema alone leaves implicit.

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 ('Moves objects together') with the scope of a group move, and the parenthetical ties x/y semantics to update_object's singular form, which implicitly separates it from that sibling. It doesn't explicitly contrast with arrange_objects or duplicate_objects, so differentiation is partial.

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?

'Either relative (dx, dy) or absolute (x, y)' gives clear selection guidance between the two coordinate modes, but there is no explicit statement of when to choose this tool over update_object (single object) or arrange_objects. Usage is implied by 'objects together' rather than stated.

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