Skip to content
Scalekit Docs
Talk to an Engineer Dashboard

Connect AI agents to the Excalidraw MCP server

Vendor MCP
Open markdown

The Excalidraw MCP connector routes your AI agent's tool calls to Excalidraw's own MCP server through Scalekit. Each user connects their own Excalidraw access token once, and Scalekit sends it with every call, so your agent never handles credentials. It comes with 29 tools.

Tools
29
What they doRead · write · destructive
15 · 11 · 315 read11 write3 destructive
Users sign in with

Setup

  1. Install the SDK

    Terminal window
    npm install @scalekit-sdk/node dotenv
  2. Set your credentials

    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. Create the Excalidraw MCP connection

    In AgentKit > Connections, create an Excalidraw MCP connection. The name you give it is the connection_name your code passes. See Configure connections.

  4. Authorize a user and make your first call

    quickstart.mts
    import { ScalekitClient } from '@scalekit-sdk/node'
    import 'dotenv/config'
    import { createInterface } from 'node:readline/promises'
    const scalekit = new ScalekitClient(
    process.env.SCALEKIT_ENVIRONMENT_URL,
    process.env.SCALEKIT_CLIENT_ID,
    process.env.SCALEKIT_CLIENT_SECRET,
    )
    const actions = scalekit.actions
    const connector = 'excalidrawmcp'
    const identifier = 'user_123'
    // Generate an authorization link for the user
    const { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })
    console.log('Authorize Excalidraw MCP:', link)
    const rl = createInterface({ input: process.stdin, output: process.stdout })
    await rl.question('Press Enter after authorizing...')
    rl.close()
    // Make your first call
    const result = await actions.executeTool({
    connector,
    identifier,
    toolName: 'excalidrawmcp_get_workspace',
    toolInput: {},
    })
    console.log(result)
    Terminal window
    npx tsx quickstart.mts

    Each user opens the link once and enters their Excalidraw MCP server credentials there. See Authorize a user for the full flow and statuses.

Tools

Pass the exact name to execute_tool
Try in PlaygroundRequest a tool
  • excalidrawmcp_get_collectionRetrieve detailed information about a specific collection by its ID.Read-only

    Get Collection

    Retrieve detailed information about a specific collection by its ID.

    Inputs

    collectionIdstringrequired
    The unique identifier of the collection to retrieve.
  • excalidrawmcp_get_inviteRetrieve details for a specific workspace invitation by its ID.Read-only

    Get Invite

    Retrieve details for a specific workspace invitation by its ID.

    Inputs

    inviteIdstringrequired
    The unique identifier of the workspace invitation to retrieve.
  • excalidrawmcp_get_sceneRetrieve metadata for a specific scene by its ID.Read-only

    Get Scene

    Retrieve metadata for a specific scene by its ID.

    Inputs

    sceneIdstringrequired
    The unique identifier of the scene to retrieve.
  • excalidrawmcp_get_scene_contentRetrieve the complete content of a scene including all drawing elements and files.Read-only

    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.

    Inputs

    sceneIdstringrequired
    The unique identifier of the scene whose full content to retrieve.
  • excalidrawmcp_get_workspaceRetrieve workspace configuration and metadata for the current workspace.Read-only

    Get Workspace

    Retrieve workspace configuration and metadata for the current workspace.

    Inputs

    This tool takes no inputs.

  • excalidrawmcp_get_workspace_userRetrieve details for a specific workspace member by their user ID.Read-only

    Get Workspace User

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

    Inputs

    userIdstringrequired
    The unique identifier of the workspace user to retrieve.
  • excalidrawmcp_list_collection_scenesRetrieve a paginated list of all scenes that belong to a specific collection.Read-only

    List Collection Scenes

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

    Inputs

    collectionIdstringrequired
    The unique identifier of the collection whose scenes to list.
    limitinteger
    Maximum number of scenes to return per page (1-100).
    offsetinteger
    Number of items to skip before starting to collect results.
  • excalidrawmcp_list_collectionsRetrieve a paginated list of all collections in the workspace.Read-only

    List Collections

    Retrieve a paginated list of all collections in the workspace.

    Inputs

    limitinteger
    Maximum number of collections to return per page (1-100).
    offsetinteger
    Number of items to skip before starting to collect results.