Skip to main content
Glama
zzmkxd

excalidraw-mcp-obsidian

by zzmkxd

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
NO_COLORNo建议 1。
NODE_DISABLE_COLORSNo建议 1,避免 ANSI 污染 MCP JSON。
EXCALIDRAW_EXPORT_DIRYes必填。导出路径必须落在此目录下(沙箱)。例:E:/Notes 或 /home/you/vault-parent

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
create_elementA

Create a new Excalidraw element. ⚠️ BEFORE using this tool, call read_diagram_guide(template="...") to get design rules (colors, shapes, line types, anti-patterns). For arrows, use startElementId/endElementId to bind to shapes (auto-routes to edges).

update_elementC

Update an existing Excalidraw element

delete_elementC

Delete an Excalidraw element

query_elementsC

Query Excalidraw elements with optional filters

get_resourceD

Get an Excalidraw resource

group_elementsC

Group multiple elements together

ungroup_elementsB

Ungroup a group of elements

align_elementsC

Align elements to a specific position

distribute_elementsD

Distribute elements evenly

lock_elementsB

Lock elements to prevent modification

unlock_elementsB

Unlock elements to allow modification

batch_create_elementsB

Create multiple Excalidraw elements at once. ⚠️ BEFORE using this tool, call read_diagram_guide(template="...") to get design rules (colors, shapes, line types, anti-patterns).

bind_arrowsA

Bind arrows to shapes using actual rendered dimensions for precise edge-to-edge connections. Call this AFTER batch_create_elements (shapes only) — the shapes must be created first so the server can read their actual rendered sizes before computing arrow edge points. Each arrow needs startElementId/endElementId referencing existing shape IDs.

get_elementA

Get a single Excalidraw element by ID

clear_canvasB

Clear all elements from the canvas

export_sceneC

Export the current canvas to .excalidraw JSON format.

import_sceneB

Import elements from a .excalidraw JSON file or raw JSON data

duplicate_elementsC

Duplicate elements with a configurable offset

snapshot_sceneA

Save a named snapshot of the current canvas state

restore_snapshotC

Restore the canvas from a previously saved named snapshot

describe_sceneB

Get an AI-readable description of the current canvas

set_canvas_fontA

Set the global font for ALL elements on the canvas. Updates every existing element immediately and persists as the default for new elements. Excalifont (5) = hand-drawn, Helvetica (2) = clean standard, Virgil (1) = classic sketch.

list_style_presetsA

List all available style presets. Style presets define color palettes, shape defaults, and layout rules for specific diagram types.

apply_style_presetA

Apply a style preset to the canvas. Sets defaults (font, colors, roundness) for future element creation. Optionally updates all existing elements to match the preset.

lookup_style_tokensA

Resolve style preset token roles to hex colors for batch_create_elements. Accepts JSON paths (nodes.accent) or template shorthand (node:accent, surface:mid, arrow:muted). Defaults to activePreset from apply_style_preset, else clean-tech.

read_diagram_guideA

Returns a comprehensive design guide for creating beautiful Excalidraw diagrams. Available templates: base (general rules), flowchart, architecture-diagram, er-diagram, sequence-diagram, mind-map, org-chart, data-flow-diagram. Call this BEFORE any create_element or batch_create_elements call.

export_to_excalidraw_urlA

Export the current canvas to a shareable excalidraw.com URL.

get_selectionA

Read the Obsidian selection bridge file written by the "AI Edit Selected" EA script (.ai-selection.json). Returns a summary of selected elements (ids, type, text, bounds) and optional instruction. Pass fullJson=true for the raw payload.

get_element_contextC

Get detailed context for a specific element by ID.

export_to_obsidianB

Export the current canvas to an Obsidian-compatible .excalidraw.md file.

import_from_obsidianC

Import a diagram from an Obsidian .excalidraw.md file onto the canvas.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/zzmkxd/excalidraw-mcp-obsidian'

If you have feedback or need assistance with the MCP directory API, please join our Discord server