Skip to main content
Glama

Update a dashboard

update_dashboard
DestructiveIdempotent

Changes a dashboard's title or document. The document is a patch, not a replacement: upsert or remove cards by id and move cards to a new position, and everything you do not mention stays. A dashboard document is one wall of cards in order; each card shows one topic (or a page-level widget) with 1 to 4 widgets. size is auto (the default, chosen from the widgets), sm, md, wide or lg; style can override the card color and icon (a name from tiles.icons); the scene a topic plays in its tile is the visual of the topic, set with update_topic; theme.density compact sets the tiles closer together. Which widgets each type allows and what each card size draws are in get_capabilities (tiles.draws). A patch that is wrong is rejected whole, and the error names the path and the allowed values. Widgets are optional when you upsert a card that names a topic: it gets that topic's default widgets. Leave size at auto and style alone unless the person asks for something specific. Keep a dashboard to the few topics that belong together, at most 8 cards; put other themes on their own dashboard. On home the status card always stays first; topic cards come and go there as on any dashboard. When the person wants a topic off home, remove its card here; never archive the topic for that.

Input Schema

NameRequiredDescriptionDefault
titleNoNew title.
documentNoA patch to the document: upsert, remove and move cards by id. Ids come from get_dashboard; read it first and reuse them. A card whose id does not exist yet is added at the end; move takes a card id and its new index.
dashboardIdYesThe dashboard, from list_dashboards.

Output Schema

NameRequiredDescriptionDefault
dashboardYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.8/5.0
Behavior5/5

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

Annotations declare mutation/destructiveness/idempotency, and the description adds behavior they cannot express: atomic all-or-nothing rejection with path-and-allowed-values errors, patch-not-replacement semantics, default widget inheritance when a topic is named, and the 8-card ceiling. This is exactly the extra context annotations leave out.

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, then layered detail; each sentence mostly earns its place for a deeply nested patch schema. A few clauses (theme.density compact, the tile/scene aside) drift into adjacent topics and could be trimmed without loss.

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?

For a 3-parameter tool with a deeply nested document schema and an output schema, the description covers patch semantics, defaults, error behavior, size limits and cross-tool routing. Nothing needed to call it correctly is missing, and return values are rightly left to the output schema.

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: why size defaults to auto, that style overrides card color/icon, what theme.density compact does, and that widgets are optional when a topic is named. It stops short of explaining move-index or theme fields, so it exceeds baseline without being exhaustive.

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 ("Changes a dashboard's title or document") and immediately qualifies the scope with patch semantics ("upsert or remove cards by id ... everything you do not mention stays"). This lets an agent distinguish it from create_dashboard, archive_dashboard and get_dashboard without opening any 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?

Names alternatives explicitly and conditions for each: read get_dashboard first for ids, use get_capabilities for widget/size behavior, use update_topic for a topic's tile scene, and an explicit when-not ("never archive the topic for that" when removing a card from home). It also routes non-matching work elsewhere ("put other themes on their own dashboard").

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