@yama662607/obsidian-excalidraw-mcp
v0.2.8
Published
MCP server for safely editing .excalidraw.md files as visual knowledge objects in Obsidian
Readme
obsidian-excalidraw-mcp
MCP server for safely editing .excalidraw.md files as visual knowledge objects in Obsidian.
Features
- Secure, spec-compliant editing of Excalidraw markdown files
- Atomic file operations and path validation
- Batch link repair, element CRUD, and snapshot management
- Full test coverage and robust error handling
Contracts
inspect_drawing summary contract
summary.linkedElementsCountcounts unique active elements (isDeleted !== true) that have a link.- The link source can be either:
Element Linkssection (doc.elementLinks[elementId])- element-level link property (
drawing.elements[n].link), includingembeddableelements
- This definition keeps
mode=summaryandmode=elementsconsistent.
Error response contract
On failure, tools return isError: true and expose the same payload in both:
structuredContent(object)content[0].text(JSON string for compatibility)
Payload schema:
{
"isError": true,
"code": "E_NOT_FOUND_NOTE",
"message": "File not found: ...",
"correlationId": "uuid"
}The response shape is consistent across not found, parse failure, and path outside vault failures.
Compatibility impact
linkedElementsCountmay increase compared to older behavior when links existed only in element-levellinkproperties.- Error output is now machine-readable JSON payloads instead of plain string-only messages.
Installation
npm install obsidian-excalidraw-mcpUsage
npx obsidian-excalidraw-mcp --helpRequirements
- Node.js >= 20
License
MIT
Author
Copyright (c) 2026 daisukeyamashiki
