Propose a drawing edit
edit_drawingPropose edits to an existing drawing with a preview; changes apply only after the member clicks Apply in Excaliself, then return applied, discarded, pending, or stale.
Instructions
Proposes a change to an existing drawing. Nothing changes until the member clicks Apply on the drawing in Excaliself, where they see a preview; this tool then reports "applied", "discarded", or "stale". It waits up to 25 seconds for that, then returns "pending": tell the member to open the link, and call get_drawing_edit later.
Read the drawing with read_drawing first, and refer to its elements by the [id …] it shows.
add: new elements, in create_drawing's format. Arrows may join existing shapes by element id ("from", "to"). Give new shapes x/y next to the shapes they relate to (read_drawing gives positions); without x/y they are laid out beside the drawing.
change: by element id. Shapes take label, x/y (move), width/height, colors, and strokeStyle; text takes text, x/y, and strokeColor; arrows take label, strokeColor, and strokeStyle. Arrows bound to a moved shape follow it. To attach an arrow to other shapes, remove it and add a new one.
remove: element ids. A shape's label goes with it; arrows bound to it stay, unattached.
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": {
"id": "<id>",
"summary": "<summary>"
},
"name": "edit_drawing"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | A drawing id from list_drawings or search_drawings. | |
| add | No | ||
| change | No | ||
| remove | No | Element ids from read_drawing. | |
| summary | Yes | One line the member reads before Apply, e.g. "Add a CDN in front of the API". |