Skip to content
Scalekit Docs
Talk to an EngineerDashboard

Excalidraw MCP connector

Bearer TokenDesignCollaborationProductivity

Excalidraw+ is a collaborative whiteboard and diagramming platform. The Excalidraw MCP server lets AI agents manage scenes, collections, workspaces...

Excalidraw MCP connector

  1. Terminal window
    npm install @scalekit-sdk/node

    Full SDK reference: Node.js | Python

  2. Add your Scalekit credentials to your .env file. Find values in app.scalekit.com > Developers > API Credentials.

    .env
    SCALEKIT_ENVIRONMENT_URL=<your-environment-url>
    SCALEKIT_CLIENT_ID=<your-client-id>
    SCALEKIT_CLIENT_SECRET=<your-client-secret>
  3. quickstart.ts
    import { ScalekitClient } from '@scalekit-sdk/node'
    import 'dotenv/config'
    const scalekit = new ScalekitClient(
    process.env.SCALEKIT_ENV_URL,
    process.env.SCALEKIT_CLIENT_ID,
    process.env.SCALEKIT_CLIENT_SECRET,
    )
    const actions = scalekit.actions
    const connector = 'excalidrawmcp'
    const identifier = 'user_123'
    // Make your first call
    const result = await actions.executeTool({
    connector,
    identifier,
    toolName: 'excalidrawmcp_get_workspace',
    toolInput: {},
    })
    console.log(result)

Connect this agent connector to let your agent:

  • Update workspace user, workspace, scene — Modify workspace-level properties for a specific user such as their name, picture, or role
  • Screenshot take — Render a scene, or a specific frame, as a PNG image so you can visually inspect the current Excalidraw content
  • Search scene content — Search a scene’s shapes and text without loading the full scene content
  • User remove workspace — Remove a user from the workspace
  • Read excalidraw format — Returns the Excalidraw element format reference with agent-facing rules for constructing valid diagram payloads
  • List workspace users, scenes, logs — Retrieve a paginated list of all members in the current workspace

Use the exact tool names from the Tool list below when you call execute_tool. If you’re not sure which name to use, list the tools available for the current user first.

excalidrawmcp_create_collection#Create a new collection in the workspace to organize scenes.1 param

Create a new collection in the workspace to organize scenes.

NameTypeRequiredDescription
namestringrequiredName of the new collection.
excalidrawmcp_create_collection_scene#Create a new scene within a specific collection.3 params

Create a new scene within a specific collection.

NameTypeRequiredDescription
collectionIdstringrequiredThe unique identifier of the collection in which to create the scene.
namestringrequiredName of the new scene.
pinnedbooleanrequiredWhether to pin the scene to the top of the scene list.
excalidrawmcp_create_email_invite#Create a workspace invite for a specific email address.2 params

Create a workspace invite for a specific email address.

NameTypeRequiredDescription
emailstringrequiredEmail address to invite to the workspace.
rolestringrequiredRole to assign to the invited user.
excalidrawmcp_create_scene#Create a new scene in the workspace within a specified collection.3 params

Create a new scene in the workspace within a specified collection.

NameTypeRequiredDescription
collectionIdstringrequiredID of the collection to place the new scene in.
namestringrequiredName for the new scene.
pinnedbooleanrequiredWhether to pin the scene to the top of the scene list.
excalidrawmcp_delete_collection#Soft-delete a collection by moving it to trash. Scenes within the collection are not deleted.1 param

Soft-delete a collection by moving it to trash. Scenes within the collection are not deleted.

NameTypeRequiredDescription
collectionIdstringrequiredThe unique identifier of the collection to delete.
excalidrawmcp_delete_invite#Cancel and delete a pending workspace invitation.1 param

Cancel and delete a pending workspace invitation.

NameTypeRequiredDescription
inviteIdstringrequiredThe unique identifier of the workspace invitation to cancel and delete.
excalidrawmcp_edit_scene_content#Add, update, and delete scene elements using valid Excalidraw element format. Before first use, call read_excalidraw_format. Do not include ids in add. Use tempId for same-request references. Bind arrows explicitly with startBinding/endBinding.4 params

Add, update, and delete scene elements using valid Excalidraw element format. Before first use, call read_excalidraw_format. Do not include ids in add. Use tempId for same-request references. Bind arrows explicitly with startBinding/endBinding.

NameTypeRequiredDescription
sceneIdstringrequiredID of the scene to edit.
addstringoptionalJSON array string of new Excalidraw element skeletons to add. Do not include 'id'. Use tempId for same-request references.
deletearrayoptionalArray of element IDs to remove from the scene.
updatestringoptionalJSON array string of element patches; each patch must include 'id' and the properties to change.
excalidrawmcp_get_collection#Retrieve detailed information about a specific collection by its ID.1 param

Retrieve detailed information about a specific collection by its ID.

NameTypeRequiredDescription
collectionIdstringrequiredThe unique identifier of the collection to retrieve.
excalidrawmcp_get_invite#Retrieve details for a specific workspace invitation by its ID.1 param

Retrieve details for a specific workspace invitation by its ID.

NameTypeRequiredDescription
inviteIdstringrequiredThe unique identifier of the workspace invitation to retrieve.
excalidrawmcp_get_scene#Retrieve metadata for a specific scene by its ID.1 param

Retrieve metadata for a specific scene by its ID.

NameTypeRequiredDescription
sceneIdstringrequiredThe unique identifier of the scene to retrieve.
excalidrawmcp_get_scene_content#Retrieve the complete content of a scene including all drawing elements and files. Use search_scene_content first if you only need to locate specific elements.1 param

Retrieve the complete content of a scene including all drawing elements and files. Use search_scene_content first if you only need to locate specific elements.

NameTypeRequiredDescription
sceneIdstringrequiredThe unique identifier of the scene whose full content to retrieve.
excalidrawmcp_get_workspace#Retrieve workspace configuration and metadata for the current workspace.0 params

Retrieve workspace configuration and metadata for the current workspace.

excalidrawmcp_get_workspace_user#Retrieve details for a specific workspace member by their user ID.1 param

Retrieve details for a specific workspace member by their user ID.

NameTypeRequiredDescription
userIdstringrequiredThe unique identifier of the workspace user to retrieve.
excalidrawmcp_list_collection_scenes#Retrieve a paginated list of all scenes that belong to a specific collection.3 params

Retrieve a paginated list of all scenes that belong to a specific collection.

NameTypeRequiredDescription
collectionIdstringrequiredThe unique identifier of the collection whose scenes to list.
limitintegeroptionalMaximum number of scenes to return per page (1-100).
offsetintegeroptionalNumber of items to skip before starting to collect results.
excalidrawmcp_list_collections#Retrieve a paginated list of all collections in the workspace.2 params

Retrieve a paginated list of all collections in the workspace.

NameTypeRequiredDescription
limitintegeroptionalMaximum number of collections to return per page (1-100).
offsetintegeroptionalNumber of items to skip before starting to collect results.
excalidrawmcp_list_invites#Retrieve a paginated list of pending workspace invitations.2 params

Retrieve a paginated list of pending workspace invitations.

NameTypeRequiredDescription
limitintegeroptionalMaximum number of invitations to return per page (1-100).
offsetintegeroptionalNumber of items to skip before starting to collect results.
excalidrawmcp_list_logs#Retrieve a paginated list of workspace activity and audit logs with filtering by user, action, operation, and date range.9 params

Retrieve a paginated list of workspace activity and audit logs with filtering by user, action, operation, and date range.

NameTypeRequiredDescription
actionstringoptionalFilter logs by a specific action type.
cursorstringoptionalSequence number for cursor-based pagination.
dateFromstringoptionalISO 8601 date filter start (inclusive).
dateTostringoptionalISO 8601 date filter end (inclusive).
limitintegeroptionalMaximum number of log entries to return per page (1-100).
offsetintegeroptionalNumber of items to skip before starting to collect results.
operationstringoptionalFilter logs by operation type (create, read, update, or delete).
pagestringoptionalPage number for offset-based pagination.
userstringoptionalFilter logs by a specific user ID.
excalidrawmcp_list_scenes#Retrieve a paginated list of all scenes in the workspace with their metadata.3 params

Retrieve a paginated list of all scenes in the workspace with their metadata.

NameTypeRequiredDescription
collectionIdstringoptionalFilter scenes by a specific collection ID.
limitintegeroptionalMaximum number of scenes to return per page (1-100).
offsetintegeroptionalNumber of items to skip before starting to collect results.
excalidrawmcp_list_workspace_users#Retrieve a paginated list of all members in the current workspace.2 params

Retrieve a paginated list of all members in the current workspace.

NameTypeRequiredDescription
limitintegeroptionalMaximum number of workspace users to return per page (1-100).
offsetintegeroptionalNumber of items to skip before starting to collect results.
excalidrawmcp_read_excalidraw_format#Returns the Excalidraw element format reference with agent-facing rules for constructing valid diagram payloads. Call this before edit_scene_content if unfamiliar with the format.0 params

Returns the Excalidraw element format reference with agent-facing rules for constructing valid diagram payloads. Call this before edit_scene_content if unfamiliar with the format.

excalidrawmcp_remove_workspace_user#Remove a user from the workspace. This does not delete their Excalidraw+ account.1 param

Remove a user from the workspace. This does not delete their Excalidraw+ account.

NameTypeRequiredDescription
userIdstringrequiredThe unique identifier of the workspace user to remove.
excalidrawmcp_search_scene_content#Search a scene's shapes and text without loading the full scene content. Returns matching Excalidraw element nodes filtered by type, frame, and text query.7 params

Search a scene's shapes and text without loading the full scene content. Returns matching Excalidraw element nodes filtered by type, frame, and text query.

NameTypeRequiredDescription
sceneIdstringrequiredID of the scene to search within.
frameIdstringoptionalLimit search to elements inside this frame.
includeDeletedbooleanoptionalWhether to include soft-deleted elements in results.
limitintegeroptionalMaximum number of matching elements to return (1-100, default 25).
matchModestringoptionalHow the query string is matched against element text.
querystringoptionalText query to match against shape labels and text content.
typesarrayoptionalElement types to filter by.
excalidrawmcp_take_screenshot#Render a scene, or a specific frame, as a PNG image so you can visually inspect the current Excalidraw content. Use this after editing scene content to verify layout and visual correctness.4 params

Render a scene, or a specific frame, as a PNG image so you can visually inspect the current Excalidraw content. Use this after editing scene content to verify layout and visual correctness.

NameTypeRequiredDescription
sceneIdstringrequiredID of the scene to render.
frameIdstringoptionalOptional frame ID to render. If omitted, the full scene is rendered.
maxWidthintegeroptionalMaximum output PNG width in pixels. Screenshots are capped at 1920x1080.
paddingintegeroptionalPadding around the rendered scene or frame in scene pixels. Default: 20.
excalidrawmcp_update_collection#Update the name of an existing collection.2 params

Update the name of an existing collection.

NameTypeRequiredDescription
collectionIdstringrequiredThe unique identifier of the collection to update.
namestringrequiredNew name for the collection.
excalidrawmcp_update_invite#Modify the settings of an existing workspace invitation such as the email, role, or max uses.4 params

Modify the settings of an existing workspace invitation such as the email, role, or max uses.

NameTypeRequiredDescription
inviteIdstringrequiredThe unique identifier of the workspace invitation to update.
emailstringoptionalUpdated email address for the invitation.
maxUsesintegeroptionalMaximum number of times this invite link can be used.
rolestringoptionalThe workspace role to assign to the invitee upon acceptance.
excalidrawmcp_update_scene#Update metadata fields of an existing scene such as its name, pinned status, or collection.4 params

Update metadata fields of an existing scene such as its name, pinned status, or collection.

NameTypeRequiredDescription
sceneIdstringrequiredThe unique identifier of the scene to update.
collectionIdstringoptionalNew collection ID to move the scene to.
namestringoptionalNew name for the scene.
pinnedbooleanoptionalWhether the scene should be pinned to the top of the scene list.
excalidrawmcp_update_workspace#Modify workspace-level settings such as name and picture.2 params

Modify workspace-level settings such as name and picture.

NameTypeRequiredDescription
namestringoptionalNew name for the workspace.
picturestringoptionalURI for the workspace picture, or null to remove the current picture.
excalidrawmcp_update_workspace_user#Modify workspace-level properties for a specific user such as their name, picture, or role.4 params

Modify workspace-level properties for a specific user such as their name, picture, or role.

NameTypeRequiredDescription
userIdstringrequiredThe unique identifier of the workspace user to update.
namestringoptionalUpdated display name for the user.
picturestringoptionalURI for the user's picture, or null to remove the current picture.
rolestringoptionalThe workspace role to assign to the user.