Tools
Available MCP tool groups
The MCP server exposes both public-API-backed tools and MCP-only adapter tools.
Scenes
list_scenescreate_sceneget_sceneupdate_scenedelete_scenesearch_scene_contentget_scene_contentread_excalidraw_formatedit_scene_content
search_scene_content is the recommended read tool when an agent only needs to
locate shapes, labels, or text without loading the entire scene payload. It
returns full matching Excalidraw element nodes.
Its default contains mode is case-insensitive and ignores common separators
such as spaces, hyphens, underscores, dots, commas, colons, semicolons,
slashes, and backslashes. For example, Auth Flow, auth-flow, auth_flow,
and authflow will all match each other.
Use glob only when you intentionally want wildcard matching with * and ?.
Use get_scene_content only when you need the full scene payload instead of
just the matching nodes.
If the user asks for a presentation, slide deck, keynote, pitch deck, or
slides, use native frame elements and treat each frame as one slide.
For presentations:
- default slide size is
854x480 - place slides left-to-right with about
350spacing - assign all slide content a
frameId - use absolute canvas coordinates for framed content;
frameIdassigns membership only and does not offset childx/yvalues - keep content inside a slide safe area, usually at least
48-64px from the frame's top/left and48px from the right/bottom edges - check framed element bounds before writing:
x >= frame.x,y >= frame.y,x + width <= frame.x + frame.width, andy + height <= frame.y + frame.height - prefer standalone
textfor titles and body copy - use rectangles/cards for structured content
- use
\nfor intentional standalone text line breaks; do not use narrow manualwidth/heightvalues to force wrapping - make standalone text bounds generous because bounds control visible text; if double-click reveals more text than normal rendering, the bounds are too small
- prefer 3-6 slides unless the user asks for a specific count
- avoid freeform poster layouts when slides were requested
- avoid multiline text inside circles or decorative shapes
For example, if a frame starts at x: 100, a title with a 64px inset starts at
x: 164, not x: 64.
edit_scene_content is the higher-level MCP write tool for add, update, and
delete operations, including label expansion and bound-text handling.
Prefer label over standalone text when the text belongs to a shape.
Use standalone text only for titles, subtitles, paragraphs, and intentionally
separate annotations.
For buttons, badges, cards, and boxed callouts, prefer rectangle label text
instead of overlaying standalone text.
Use \n for intentional standalone text wrapping, and give text elements extra
width and height. Avoid exact or tight text bounds; clipping means the bounds
are too small, not that the text value is missing.
Prefer rectangles/cards for text-bearing content blocks. Use diamonds mainly for decision nodes in diagrams, not for dense or multiline content.
For add, send a JSON array string of new element skeletons and do not include
id. The server generates persisted IDs for newly added elements.
Use tempId only for same-request references between newly added elements,
such as frameId, containerId, startBinding.elementId, and
endBinding.elementId.
Use real persisted IDs for update, delete, or when referencing elements
that already exist in the scene.
Arrows that point at shapes must include startBinding and/or endBinding.
Arrow geometry alone is decorative and will not stay attached. For same-request
shape-to-shape arrows, add tempId to both target shapes and reference those
tempIds from startBinding.elementId and endBinding.elementId. Use fixed
points such as right [1, 0.5], left [0, 0.5], top [0.5, 0], and bottom
[0.5, 1].
Same-request tempId arrow bindings are supported; the MCP adapter keeps target
shape boundElements in sync, so agents do not need a separate call just to get
real IDs.
For label updates, always send label as an object such as
{ "text": "New Label" }, not as a plain string.
edit_scene_content applies operations in this order: delete, then
update, then add.
The low-level REST scene-content write endpoints still exist in the public API,
but they are intentionally not exposed as MCP tools. Use
edit_scene_content for MCP writes.
read_excalidraw_format returns the Excalidraw element-format reference used by
the ergonomic editing flow. It includes MCP payload rules plus agent-facing
diagram guidance for layouts, visual patterns, labels, slides, and technical
evidence artifacts.
For element and scene-content reference, see Scene Content Schema.
Collections
list_collectionscreate_collectionget_collectionupdate_collectiondelete_collectionlist_collection_scenescreate_collection_scene
Workspace
get_workspaceupdate_workspace
Users
list_workspace_usersget_workspace_userupdate_workspace_userremove_workspace_user
Invites
list_invitescreate_inviteget_inviteupdate_invitedelete_invite
Logs
list_logs
Your MCP client may show fewer tools than listed above if your API key does not include permissions for the underlying routes. MCP-only tools still follow the same route permission checks.
Last updated on