Skip to main content
Glama

xtiles_set_page_layout

DestructiveIdempotent

Reposition tiles on an xTiles page (view). Provide viewId and a list of tiles with their new grid positions (x, y, w, h). Only the listed tiles move; the rest keep their current position. Coordinates use the xTiles grid — (x, y) is the top-left corner and (w, h) the size, in grid cells. Out-of-bounds or overlapping positions are rejected, and so is resizing a tile below the minimum tile size (moving an existing smaller tile without resizing it is allowed). A text page’s layout is fixed — the call is refused there. Returns the resulting full layout. Tip: call xtiles_get_page_layout first to get tile IDs and current positions. The answer is the full layout — check it silently before replying: every column from x 0 to x 48 is covered from y 0 down to one shared bottom line, nothing overlaps, and each tile is sized for what it holds (a table at least 32 wide). Nothing of the check goes into the reply. Rules: xtiles://guide/markdown/design, Step 3.

Input Schema

NameRequiredDescriptionDefault
tilesYesTiles to reposition. Each tile_id must be unique; tiles you omit keep their current position. Positions are validated by the server — out-of-bounds or overlapping tiles, and a tile resized below the minimum tile size, are rejected.
viewIdYesView ID of an xTiles page. You can also extract it from a page URL — it is the last path segment, whatever the domain, e.g. `https://xtiles.app/6740858058af8a09bf6096e6` → viewId is `6740858058af8a09bf6096e6`. Discover IDs programmatically via `xtiles_list_projects` or `xtiles_get_project_content`.

Output Schema

NameRequiredDescriptionDefault
gridYes
tilesYes
view_idYes
editableNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • changedInput schema / properties / tiles / description
      Previous value: -"Tiles to reposition. Each tile_id must be unique; tiles you omit keep their current position. Positions are validated by the server — out-of-bounds or overlapping tiles are rejected."New value: +"Tiles to reposition. Each tile_id must be unique; tiles you omit keep their current position. Positions are validated by the server — out-of-bounds or overlapping tiles, and a tile resized below the minimum tile size, are rejected."
    • addedOutput schema / properties / editable
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "boolean"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
  2. First observed

TDQS

A4.4/5.0
Behavior5/5

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

Goes well beyond the annotations (destructiveHint=true, idempotentHint=true) by disclosing partial-update semantics ('Only the listed tiles move; the rest keep their current position'), server-side validation rules, the minimum-size exception, the text-page refusal, and that the full resulting layout is returned. These are exactly the mutation-behavior details an agent needs before committing a destructive layout change.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core content is front-loaded and useful, but a large block is agent-directed meta-instruction ('check it silently before replying… Nothing of the check goes into the reply') plus a bare policy citation ('Rules: `xtiles://guide/markdown/design`, Step 3') that adds length without adding tool-selection value. Roughly a third of the text does not earn its place in a tool definition.

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?

An output schema exists, so the brief 'returns the resulting full layout' suffices, and the annotations carry the safety profile. Complete enough to call correctly; the only drag is the buried verification guidance, which is better expressed as validation rules than as an instruction to the model.

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 100% and the nested item fields already document x/y/w/h meaning and the out-of-bounds/overlap/uniqueness constraints. The description's coordinate explanation ('(x, y) is the top-left corner and (w, h) the size, in grid cells') largely restates the schema, so the baseline 3 applies rather than a bonus.

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?

States a specific verb and resource — 'Reposition tiles on an xTiles page (view)' — and immediately disambiguates from the read-side sibling by naming `xtiles_get_page_layout` as the prerequisite. An agent can distinguish it from `patch_view_content` or `update_page` without opening either schema.

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

Usage Guidelines5/5

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

Gives an explicit prerequisite workflow ('call `xtiles_get_page_layout` first to get tile IDs and current positions'), an explicit exclusion (text pages refuse the call), and the failure conditions that will reject the call. The only missing element is a named alternative for restructuring content, but the when/when-not is otherwise complete.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources