Change part of a dashboard
dashboard_patchChange part of a dashboard you own, or one shared with you to edit, without resending the whole spec: replace, add or remove a panel; set or remove a query; set the title, subtitle, notes, theme or filters. Operations apply in order to the LIVE version's spec (or to the current draft's when draft: true and a draft exists), and the result goes through the same checks a publish does — validation, every query run, the content scan — so a patch is refused on exactly what a publish would be refused on, with the same findings. A successful patch is a new version; nothing is edited in place and the previous version stays in the history. Operations: { "op": "replace_panel", "id", "panel" } (the whole new panel; keeps the id if the panel omits it) · { "op": "add_panel", "canvas", "panel", "after"? } (after a panel id on that canvas, else at the end) · { "op": "remove_panel", "id" } · { "op": "set_query", "name", "query" } · { "op": "remove_query", "name" } · { "op": "set", "path", "value" } with path one of "/title", "/subtitle", "/notes", "/theme", "/filters" (value null clears). Read the current spec with dashboard_get first so ids and query names are right. As an EDITOR you can keep the owner's queries exactly as they are and change everything around them; a query you add or change must read data you can use yourself, because the dashboard reads everything as its owner. dashboard is a name, or a /d/owner/slug path.
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": {
"dashboard": "<dashboard>",
"operations": "<operations>"
},
"name": "dashboard_patch"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| draft | No | Write the result as a draft rather than making it live; builds on the current draft if there is one | |
| handoff | No | The handoff id from dashboard_handoff, when this call finishes one; the page the reader is watching opens what you made | |
| message | No | What changed, for the version list | |
| dashboard | Yes | Name of the dashboard, from dashboard_list | |
| operations | Yes | Applied in order; the first that cannot apply stops the patch and nothing is written |