* feat: enhance Excalidraw MCP with advanced canvas toolkit features
- Rename skill to `excalidraw-skill` with expanded playbook and cheatsheet.
- Add new MCP tools for iterative refinement: `describe_scene` and `get_canvas_screenshot`.
- Implement layout tools (`align_elements`, `distribute_elements`) and `duplicate_elements`.
- Add file I/O support for `.excalidraw` JSON and image export (PNG/SVG).
- Introduce named snapshots for canvas state management.
- Add server-side element CRUD and WebSocket handlers for real-time sync.
- Normalize `points` format for arrows and lines.
* docs: update README with v2.0 features and official MCP comparison
* feat: implement arrow binding and edge-to-edge routing
* fix: enhance security with path sanitization and improve export error handling
* feat: add viewport control, design guide, and excalidraw.com URL export
* feat: enhance excalidraw.com export with proper scene formatting and labels
* feat(skill): add excalidraw-mcp skill with export/import helpers
* fix(skill): correct url trailing-slash normalization in scripts
* feat(skill): add create/update/delete helpers and document CRUD test
* docs: restructure README and document skill usage
* docs: make README skill guidance tool-agnostic and SEO-friendly
* docs: add Claude Code skill installation instructions
* feat: Introduce skill creation tools and an agent-browser skill with templates and reference documentation.
* fix(frontend): keep server element ids for WS updates
Ensure WS delete/update events match scene element IDs by disabling ID regeneration when converting server payloads.
* feat: Add Zod library and OpenCode AI SDK dependencies, and introduce new Excalidraw skill scripts for element deletion and health checks.
* chore: Install project dependencies including Zod and OpenCode AI SDK, and add an Excalidraw reference cheatsheet.
---------
Co-authored-by: YC Lin <yclin@YCdeMacBook-Air.local>
- Replace all `any` types with proper Excalidraw types
- Add proper type imports from @excalidraw/excalidraw
- Improve MermaidConversionResult interface with ExcalidrawElement[] and BinaryFiles
- Add mermaidDiagram and config fields to WebSocketMessage interface
- Remove unused ElementBinding interface
- Remove all `as any` type casts throughout App.tsx
- Fix Vite security vulnerability (1 of 6 moderate vulns)
Changes:
- frontend/src/App.tsx: Restored proper TypeScript types, removed 12+ `as any` casts
- frontend/src/utils/mermaidConverter.ts: Added proper return types
- package-lock.json: Updated vite to fix security issue
Remaining security issues:
- 5 moderate vulnerabilities from @excalidraw/mermaid-to-excalidraw dependencies
- These are upstream issues in dompurify, nanoid, and mermaid packages
- No fixes available without major version upgrades
- Risk is acceptable for this use case (diagram rendering)
- Updated package.json to point to compiled TypeScript files in the dist directory.
- Improved TypeScript configuration with stricter type checks and removed JavaScript support.
- Migrated frontend entry point to TypeScript and added a new App component with enhanced functionality.
- Implemented a new server structure with TypeScript, including WebSocket support and improved element management.
- Updated README to reflect changes in architecture and usage instructions.
- Added comprehensive type definitions for Excalidraw elements and server responses.
- Update package.json to include separate build scripts for frontend and types, and add a build server script.
- Introduce tsconfig.json for TypeScript configuration, enabling declaration files and source maps.
- Add TypeScript and Node types as development dependencies.
- Include TypeScript declaration files in the package distribution.
- Introduce LICENSE file with MIT License details.
- Change project name to 'mcp-excalidraw-server' and update description in package.json for clarity on features.
- Revise README.md to include new installation options and usage instructions for the npm package.
- Add shebang to index.js for direct CLI execution.