Skip to main content
Glama

arrange_objects

Align, distribute, stack, group, or lock whiteboard objects by ID. Use it to fix spacing, z-order, and grouping without manual dragging.

Instructions

Aligns, distributes, stacks, groups or locks objects. align_*: at least 2 unlocked objects, aligned on their common bounding box. distribute_*: at least 3 unlocked objects, equal gaps between the two outermost (an error otherwise; the engine alone would do nothing). Locked objects are skipped by align/distribute and reported in skipped_locked. bring_to_front/bring_forward/send_backward/send_to_back change the stacking order (z of describe_board detail "full"). group (2+ objects, returns group), ungroup, lock, unlock.

Input Schema

NameRequiredDescriptionDefault
idsYesIds of the objects to arrange (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).
actionYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.2.0

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does so substantively: locked objects are skipped by align/distribute and reported in `skipped_locked`, distribute with fewer than 3 errors instead of silently doing nothing, group requires 2+ and returns `group`, and the stacking actions mutate `z` visible via describe_board detail "full". It never states permissions, reversibility, or limits, which keeps it below a 5.

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?

Front-loaded with the operation list and compressed into a few dense sentences with no filler. The telegraphic fragments ('group (2+ objects, returns `group`), ungroup, lock, unlock.') are efficient but cost some readability.

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 16-action tool with no output schema and no annotations, the description covers preconditions, error conditions and two return fields (`skipped_locked`, `group`). It still omits the general response shape for align/stack actions and any mention of partial-success behavior, so it is strong but not complete.

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 coverage is 75%, so most parameters are already documented and the baseline sits at 3. The description's real contribution is explaining the meaning of the `action` enum values (align vs distribute vs stack vs group semantics), which goes beyond the bare enum names but is not organized parameter-by-parameter.

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?

Names a specific set of operations (align, distribute, stack, group, lock) on a specific resource and enumerates the action families, so an agent can distinguish this from move_objects, update_object or format_text without opening the schema.

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?

Explicit preconditions are given per action family: align_* needs at least 2 unlocked objects, distribute_* needs at least 3 with equal gaps between the outermost, otherwise an error. It does not, however, name a sibling as the alternative for plain repositioning (move_objects) or say when not to use this tool.

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