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 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| 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