Skip to main content
Glama

editDashboard

Edits a dashboard's layout, custom widgets, and language texts after the page is created; call without arguments to inspect the current layout, widgets, and missing translations.

Instructions

Changes the layout, the custom widgets or the languages of the dashboard page (a page from the template; call writeDashboard first). Without arguments it only reads: the reply has the layout, the custom widgets, the missing texts of each language, the catalogue of built-in widgets and widgetApi, the guide to writing a custom widget. layout replaces the whole layout (the text of the page's 'Copy layout'); place adds widgets at the end of a board; widgets adds or replaces custom widgets by id and saves them in the widget library (/widgets.json), which every page from the template gets; removeWidgets removes them from this page and its boards, forgetWidgets also from the library. widgetTexts adds texts to custom widgets by id, language and key, e.g. {"longest-ride": {"de": {"title": "Längste Fahrt"}}}. languages adds page texts by key, e.g. {"de": {"title": "Training + Erholung"}}: keys and {placeholders} as in englishTexts: true; a text with "|" has a singular and a plural form. Missing texts show in English. removeLanguages removes languages that languages added.

Input Schema

NameRequiredDescriptionDefault
pathNoThe .html file; relative paths are inside the data dir
placeNo
layoutNoA whole layout: { base, boards: { all: [{ id, widget, type?, span, hidden? }] }, seen?: { all: [widget names] } }. `seen` is the record of the preset widgets that each board has met: give it back as you got it.
widgetsNo
languagesNoTexts by language code and key
widgetTextsNoTexts of custom widgets by widget id, language code and key
englishTextsNoAlso return the English texts to translate
forgetWidgetsNoIds of custom widgets to remove from the library and from this page
removeWidgetsNoIds of custom widgets to remove from this page
removeLanguagesNoCodes of added languages, e.g. de

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.10.0

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations, the description carries the burden and does well: it discloses that layout replaces the whole layout, that widgets saves into the shared library affecting every template page, and that forgetWidgets removes from the library while removeWidgets only affects this page. It doesn't cover auth/permission needs or reversibility, but the destructive-vs-scoped distinctions are clearly surfaced.

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 verb and resource, then the read-mode caveat, then per-parameter detail — a sensible ordering for a 10-param tool. It is dense and adjective-free, though the single dense paragraph with inline examples makes it slightly heavy to scan; a list per parameter would read faster. Every sentence still carries operational meaning.

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 complex 10-param, 0-required, nested-object tool with no output schema and no annotations, the description is remarkably complete: it documents the read-mode return payload (layout, widgets, missing texts, catalogue, widgetApi), the write semantics of each parameter, and the persistence side effects. Nothing an agent needs to call it 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 80% so baseline is 3, but the description adds real meaning: it explains place as 'adds widgets at the end of a board', the scroll/layout replace semantics, the widget library persistence, the '|' singular/plural text convention, and missing-texts-fall-back-to-English. Concrete JSON examples for widgetTexts and languages further clarify the nested shape beyond the schema.

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 + resource ('Changes the layout, the custom widgets or the languages of the dashboard page') and immediately clarifies it operates on a template page requiring writeDashboard first. The dual read/write nature is spelled out ('Without arguments it only reads'), so an agent can tell exactly what this does versus writeDashboard.

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 the key precondition ('call writeDashboard first') and an explicit no-argument read mode with a description of what it returns. It further explains per-parameter intent (layout replaces, place appends, widgets add-or-replace, removeWidgets vs forgetWidgets scope). It stops short of enumerating when NOT to use it or pointing to siblings like showDashboard for other tasks.

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