Skip to main content
Glama

Spread items out

distribute_items

Spreads three or more selected items evenly along the X or Y axis, keeping the first and last fixed, in one undoable action.

Instructions

Spreads three or more items so the gaps between their boxes are equal; the first and last stay. One undo step.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "items": "<items>",
      "axis": "<axis>"
    },
    "name": "distribute_items"
  }
}

Input Schema

NameRequiredDescriptionDefault
axisYes
itemsYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.3.0

TDQS

B3.2/5.0
Behavior3/5

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

No annotations exist, so the description carries the full behavioral burden. It does add real value by disclosing that endpoints are preserved and that the operation is a single undo step, but it says nothing about required selection/context, error behavior when fewer than three items are passed (the schema allows minItems 1), or what is returned.

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?

A single front-loaded sentence with no filler, and the endpoint invariant is stated up front where it matters. It is tight, though there was room for a short clause about the axis without bloat.

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 layout-mutating tool with no annotations and no output schema, the description covers the core algorithm and undo cost but leaves out direction (axis), the mismatch with minItems 1, and any failure or return behavior. Adequate to call it, not complete enough to call it confidently.

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?

Top-level schema coverage is 0%: neither 'axis' nor 'items' is described. The description never mentions the axis parameter or that distribution happens along x or y, which is the single most important semantic choice the caller must make. It also does not explain that items can be points, zones, or zone corners, leaving that entirely to the nested schema text.

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 gives a specific verb plus resource ('Spreads ... items') and pins down the exact algorithm and invariant: equal gaps between boxes, with the first and last staying put. That is enough to distinguish it from align_items or move_items without opening their schemas, though no sibling is named explicitly.

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: 'three or more items' hints at when the tool applies, and the equal-gap wording suggests it is the right choice for even spacing rather than alignment. There is no explicit when-not guidance and no named alternative such as align_items for the 'align instead of distribute' case.

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