excalidraw-mcp-obsidian
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| NO_COLOR | No | 建议 1。 | |
| NODE_DISABLE_COLORS | No | 建议 1,避免 ANSI 污染 MCP JSON。 | |
| EXCALIDRAW_EXPORT_DIR | Yes | 必填。导出路径必须落在此目录下(沙箱)。例:E:/Notes 或 /home/you/vault-parent |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| 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
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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