Excalidraw MCP server

Endpoint: https://mcp.excalidraw.com · Authentication: No auth

Generates and displays interactive hand-drawn Excalidraw diagrams in the chat. It needs no account or API key.

How do I authenticate?

Add the endpoint directly in your client. The catalog records no authentication requirement; no OAuth sign-in or API key is configured in this setup. The live server may change.

Authentication and connection guide

Connection specification

Remote endpoint
https://mcp.excalidraw.com
Live-validated endpoint
https://mcp.excalidraw.com/
Browser access
Not yet measured
Declared MCP transport
Streamable HTTP
Live-validated MCP transport
Streamable HTTP — Observed by the latest catalog validation
Declared authentication
No authentication
Detected authentication
No authentication detected or retained from publisher evidence
Protocol lifecycle
Stateful MCP · 2025-11-25
Category
Design

Product documentation · Source repository · Official listing documentation

More Design MCP servers · Browse all MCP servers · Test this endpoint in the MCP Playground

Authorization setup

No app registration needed

This catalog entry does not require authorization or provider app registration.

Connect it

Live-validated endpoint: https://mcp.excalidraw.com/ · Streamable HTTP. No authentication is required by the catalog listing.

Agent prompt for Claude Code or Codex
Add the Excalidraw MCP server to my MCP client configuration and verify that it works.

What it is: Generates and displays interactive hand-drawn Excalidraw diagrams in the chat. It needs no account or API key.
Server URL: https://mcp.excalidraw.com/
Transport: Streamable HTTP (remote MCP server, no local install).
Authentication: none. The server accepts connections without credentials.
Tools (5, as last observed by mcptest): create_view, export_to_excalidraw, read_checkpoint, read_me, save_checkpoint.
Reference: https://mcptest.io/servers/excalidraw/

Steps:
1. Work out which MCP client I use (Claude Code, Codex, Cursor, VS Code or another) and add the server under the name "excalidraw" in that client's MCP configuration, user scope unless I ask otherwise.
   Claude Code: claude mcp add --transport http --scope user 'excalidraw' 'https://mcp.excalidraw.com/'
   Codex: codex mcp add 'excalidraw' --url 'https://mcp.excalidraw.com/'
   Other clients: use the setup for that client on the reference page.
2. Never write a credential value into a file that could be committed; reference an environment variable or the client's secret store, and ask me for any value you need.
3. Verify: connect to the server and call tools/list. Confirm the tools above are listed, and report any sign-in step I still have to complete.
MCP client

Claude Code setup

Run in a terminal. This user-scoped entry is available across projects.

claude mcp add --transport http --scope user 'excalidraw' 'https://mcp.excalidraw.com/'

Codex CLI setup

Run in a terminal; Codex stores the entry in ~/.codex/config.toml.

codex mcp add 'excalidraw' --url 'https://mcp.excalidraw.com/'

Cursor setup

Add to .cursor/mcp.json for this project, or ~/.cursor/mcp.json for all projects.

{
  "mcpServers": {
    "excalidraw": {
      "url": "https://mcp.excalidraw.com/"
    }
  }
}

VS Code setup

Add to .vscode/mcp.json, or run “MCP: Open User Configuration” for a private user-level entry.

{
  "servers": {
    "excalidraw": {
      "type": "http",
      "url": "https://mcp.excalidraw.com/"
    }
  }
}

Claude setup

Add the endpoint above in Claude:

  • Customize > Connectors > Add custom connector
  • Team/Enterprise: Organization settings > Connectors > Add > Custom > Web

Claude Desktop setup

Add the endpoint above in Claude Desktop:

  • Remote: Customize > Connectors (same as claude.ai)
  • Local: Settings > Developer > Edit Config, or Settings > Extensions for .mcpb files
  • ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows), local servers only

ChatGPT setup

Add the endpoint above in ChatGPT:

  • ChatGPT web: Plugins > Add custom MCP server, then configure authentication and accept the risk warning

Windsurf setup

Add the endpoint above in Windsurf:

  • ~/.config/devin/mcp_config.json (%APPDATA%\devin\mcp_config.json on Windows), serverUrl or url
  • Cascade panel > ... > MCPs > Open MCP config file

Gemini CLI setup

Add the endpoint above in Gemini CLI:

  • gemini mcp add --transport http <name> <url>
  • ~/.gemini/settings.json (user) or .gemini/settings.json (project), mcpServers

MCP SDK setup

Add the endpoint above in MCP SDK:

  • Programmatic: new Client(...).connect(new StreamableHTTPClientTransport(url))

Client compatibility

ClientStatusWhy
Claude CodeSupportedClaude Code supports Streamable HTTP servers and servers without authentication.
CodexPartialCodex's documentation does not state support for servers without authentication.
CursorSupportedCursor supports Streamable HTTP servers and servers without authentication.
VS CodeSupportedVS Code supports Streamable HTTP servers and servers without authentication.
ClaudeSupportedClaude supports Streamable HTTP servers and servers without authentication.
Claude DesktopSupportedClaude Desktop supports Streamable HTTP servers and servers without authentication.
ChatGPTPartialStateful routing needs operational care: ChatGPT can preserve MCP sessions, but the deployment must route a session consistently and retain its state.
WindsurfPartialWindsurf's documentation does not state support for servers without authentication.
Gemini CLISupportedGemini CLI supports Streamable HTTP servers and servers without authentication.
MCP SDKSupportedMCP SDK supports Streamable HTTP servers and servers without authentication.

Computed from this server's validated transport, protocol and authentication against documented client support. Checks the catalog has not observed are not counted.

Similar servers

  • Figma — Remote MCP server for Figma files, designs, Dev Mode context, and design-to-code workflows. OAuth 2.1
  • Canva — Canva's hosted MCP server brings designs, presentations, brand assets, and creative workflows into compatible assistants. OAuth 2.1
  • Miro — Miro's hosted MCP server connects assistants to boards, diagrams, content, and visual collaboration workflows. OAuth 2.1
  • Wix — Builds and manages Wix sites and calls Wix APIs for stores, bookings, CMS collections, and other business solutions, with Wix documentation search. Requires Wix OAuth. OAuth 2.1
  • Cloudinary Asset Management — Uploads, searches, transforms, and organizes images and videos in a Cloudinary product environment. Requires Cloudinary OAuth. OAuth 2.1
  • Webflow — Reads and updates Webflow sites, pages, CMS collections, and Designer canvas elements. Requires Webflow OAuth, which installs the MCP Bridge App. OAuth 2.1

Guides for this server

Watch this server for breaking changes

Share and embed

Maintain Excalidraw? Embed this badge in your README. It follows the latest catalog validation result and links to this server profile.

mcptest.io: ready

Latest validation evidence

Validation status
Online when last tested
Validation checked at
Oct 26, 2026 at 11:07 AM
Validation detail
Negotiated stateful MCP 2025-11-25 at https://mcp.excalidraw.com/; detected transport streamable-http; authentication none

Tool inventory

What the catalog validator observed on at https://mcp.excalidraw.com/ without credentials. The live server may have changed since; connect in the Playground for the current list.

Tools provided by Excalidraw 5

Some details were sanitized for public display.

  • create_viewNo outputSchema

    Renders a hand-drawn diagram using Excalidraw elements. Elements stream in one by one with draw-on animations. Call read_me first to learn the element format.

    Input elements: string
    • elements: stringrequired

      JSON array string of Excalidraw elements. Must be valid JSON — no comments, no trailing commas. Keep compact. Call read_me first for format reference.

  • export_to_excalidrawNo outputSchema

    Upload diagram to excalidraw.com and return shareable URL.

    Input json: string
    • json: stringrequired

      Serialized Excalidraw JSON

  • read_checkpointNo outputSchema

    Read checkpoint state for restore.

    Input id: string
    • id: stringrequired
  • read_meNo outputSchema

    Returns the Excalidraw element format reference with color palettes, examples, and tips. Call this BEFORE using create_view for the first time.

    Input No parameters

  • save_checkpointNo outputSchema

    Update checkpoint with user-edited state.

    Input data: string, id: string
    • data: stringrequired
    • id: stringrequired