Skip to main content
Glama

Lay a tab out

arrange_canvas
Idempotent

Reorder and resize every block on a tab in one change by listing them in reading order with widths and placements, so pages read well after edits. One undo reverts it.

Instructions

Lay out a whole tab in one change: list every block on it (from the canvas listing) in the order it should be read, top to bottom, each with the width and place it should have. The list order becomes the order on the page; what an item leaves out stays as it is. Use it after adding something, to move and reshape what was already there so the page reads well: what matters most first, related things together, rows of twelve filled, headings in order. Blocks in the header and footer may be left out. One Undo takes the whole arrangement back. Refused, with nothing changed, when a block is missing or listed twice, or a heading would skip a level.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
blocksYesEvery block on the tab, in reading order.
canvasNoThe tab, as a canvas id; empty string is Home. Defaults to the tab the person is looking at.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.2/5.0
Behavior5/5

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

Goes well beyond the annotations: partial-update semantics ('what an item leaves out stays as it is'), header/footer may be omitted, a single Undo reverts the whole arrangement, and explicit atomic refusal conditions (missing block, duplicate block, skipped heading level) with 'nothing changed.' This is rich transaction and failure-mode disclosure that the readOnly/destructive/idempotent hints do not carry.

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 core action and the input contract before the usage advice and edge cases. Dense and mostly waste-free, though the ordering-goal clause runs long and could be tightened.

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 mutating, no-output-schema tool, the description covers trigger, partial-update behavior, undo, and refusal conditions, which is close to everything needed to call it correctly. It never states what a successful call returns or whether anything is echoed back, a minor remaining gap.

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 the baseline is 3, but the description adds real meaning: list order maps to page order, omitted fields preserve current values, and spans should fill rows of twelve (reinforcing the schema's span description). The canvas parameter is only indirectly implied by 'whole tab,' which keeps it from a 5.

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 with explicit scope: 'Lay out a whole tab in one change,' followed by exactly what must be supplied (every block, in reading order, with width and place). It is clear this is a batch whole-tab operation rather than a per-block edit, though it never names the sibling tools (update_component, add_component) it contrasts with.

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?

Gives a concrete trigger: 'Use it after adding something, to move and reshape what was already there so the page reads well,' plus ordering goals (most important first, related together, rows of twelve, headings in order). No explicit when-not-to-use or named alternative, so it stops 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.