Skip to main content
Glama

update_dashboard_layout

Idempotent

Move and resize panels on a dashboard's 24-column grid. Pass {panelId, x, y, w, h} for each panel to change (panel ids come from get_dashboard); others keep their box. The server compacts the layout (panels float up, overlaps push down) and returns the final positions. Saved when this runs; explain it in reason. Load the manage-dashboards skill (load_skill("manage-dashboards")) first.

Input Schema

NameRequiredDescriptionDefault
layoutYesNew positions and sizes, by panelId (from get_dashboard). Panels left out keep their current box. The server compacts the result and returns the final layout.
reasonYesWhy you are making this change, in one sentence the user will read on the approval card.
projectIdYesThe project (application) id to scope this call to. Use list_projects to discover valid ids.
dashboardIdYesThe dashboard to lay out.
environmentYesThe environment name to scope this call to (e.g. 'production'). Use list_projects to discover the names available to this token.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.7/5.0
Behavior5/5

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

Annotations say only that this is a non-read, non-destructive, idempotent mutation. The description goes well beyond that: the server compacts the layout (panels float up, overlaps push down), the final positions are returned, the change is saved immediately, and the reason text appears on a user-facing approval card. These are exactly the behavioral facts an agent cannot infer from the annotation flags.

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?

Four tight sentences, front-loaded with the action, then the payload shape, then the server's compaction behavior, then the mandatory skill prerequisite. No filler and no restatement of the tool name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description still tells the agent that final positions come back. Between the returned-layout note, the compaction rules, the persistence note and the reason/approval-card context, nothing an agent needs to call this correctly is missing.

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 a 3 is the floor. The description still adds real meaning: it spells out the {panelId, x, y, w, h} shape, states that panels left out keep their current box (partial-update semantics that the schema's minItems:1 does not convey), and pins panelId's source to get_dashboard.

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?

Opens with a specific verb and resource plus the coordinate system: "Move and resize panels on a dashboard's 24-column grid." That cleanly separates it from update_dashboard (metadata), add_markdown_panel/add_query_to_dashboard (creation) and remove_panel (deletion) without requiring a schema read.

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 an explicit prerequisite ("Load the manage-dashboards skill (load_skill(\"manage-dashboards\")) first") and tells the agent where panel ids come from (get_dashboard). It does not name a tool to use instead when the intent is renaming or deleting a dashboard, so no explicit when-not guidance, but the context is clear enough to route correctly.

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