### Build Excalidraw MCP App from Source Source: https://github.com/excalidraw/excalidraw-mcp/blob/main/README.md Clone the repository, navigate to the app directory, and install dependencies followed by building the project. This is required for local development or custom installations. ```bash git clone https://github.com/excalidraw/excalidraw-mcp.git cd excalidraw-mcp-app pnpm install && pnpm run build ``` -------------------------------- ### Build Excalidraw MCP App Server Source: https://github.com/excalidraw/excalidraw-mcp/blob/main/CLAUDE.md Installs dependencies and builds the Excalidraw MCP App Server. This process involves TypeScript compilation and Vite for bundling. ```bash npm install npm run build ``` -------------------------------- ### Run Excalidraw MCP Server Source: https://github.com/excalidraw/excalidraw-mcp/blob/main/CLAUDE.md Commands to start the Excalidraw MCP server in various modes. Use 'serve' for HTTP, 'node dist/index.js --stdio' for Claude Desktop, and 'dev' for development. ```bash npm run serve # or: bun --watch main.ts # Starts on http://localhost:3001/mcp ``` ```bash # stdio — for Claude Desktop node dist/index.js --stdio ``` ```bash # Dev mode (watch + serve) — full MCP flow npm run dev ``` ```bash # Dev mode (standalone UI) — no MCP server needed npm run dev:ui # Opens http://localhost:5173/index-dev.html with mock app + sample diagram ``` -------------------------------- ### Send Log Message with SDK Logger Source: https://github.com/excalidraw/excalidraw-mcp/blob/main/CLAUDE.md Example of using the SDK logger to send informational messages from the widget. This routes logs to the host and the log file, avoiding direct console.log usage. ```typescript app.sendLog({ level: "info", logger: "Excalidraw", data: "my message" }); ``` -------------------------------- ### Configure Claude Desktop for Local MCP Server Source: https://github.com/excalidraw/excalidraw-mcp/blob/main/README.md Add the Excalidraw MCP server configuration to Claude Desktop's JSON settings to enable local integration. Ensure the path to the built JavaScript file is correct. ```json { "mcpServers": { "excalidraw": { "command": "node", "args": ["/path/to/excalidraw-mcp-app/dist/index.js", "--stdio"] } } } ``` -------------------------------- ### Release Checklist for Excalidraw MCP App Source: https://github.com/excalidraw/excalidraw-mcp/blob/main/README.md Steps for maintaining and releasing new versions of the Excalidraw MCP App. Includes version bumping, building, packing, creating GitHub releases, and deploying to Vercel. ```bash # 1. Bump version in manifest.json and package.json # 2. Build and pack pnpm run build && mcpb pack . # 3. Create GitHub release gh release create v0.3.0 excalidraw-mcp-app.mcpb --title "v0.3.0" --notes "What changed" # 4. Deploy to Vercel vercel --prod ``` -------------------------------- ### Claude Desktop MCP Configuration Source: https://github.com/excalidraw/excalidraw-mcp/blob/main/CLAUDE.md JSON configuration for Excalidraw to be used with Claude Desktop, specifying the command and arguments for the MCP server. ```json { "excalidraw": { "command": "node", "args": ["/dist/index.js", "--stdio"] } } ``` -------------------------------- ### Debugging Log File Commands Source: https://github.com/excalidraw/excalidraw-mcp/blob/main/CLAUDE.md Bash commands to filter and view logs in the Claude log file. Use 'grep' to search for specific loggers and 'tail' to see recent entries. Clear logs with '>' before reproducing issues. ```bash # Fullscreen transition logs (logger: "FS") grep "FS" ~/Library/Logs/Claude/claude.ai-web.log | tail -40 ``` ```bash # General widget logs (logger: "Excalidraw") grep "Excalidraw" ~/Library/Logs/Claude/claude.ai-web.log | tail -20 ``` ```bash # Clear logs before repro for clean output > ~/Library/Logs/Claude/claude.ai-web.log ``` === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.