{ "name": "@sanjibdevnath/mcp-excalidraw-local", "version": "1.6.2", "description": "Fully local MCP server for Excalidraw with SQLite persistence, multi-tenancy, auto-sync, real-time canvas, and 32 tools", "main": "dist/index.js", "type": "module", "bin": { "mcp-excalidraw-local": "dist/index.js" }, "scripts": { "start": "npm run build:server && node dist/index.js", "canvas": "npm run build:server && node dist/server.js", "build": "npm run build:frontend && npm run build:server", "build:frontend": "vite build", "build:server": "npx tsc", "build:types": "npx tsc --emitDeclarationOnly", "dev": "concurrently \"npm run dev:server\" \"vite\"", "dev:server": "npx tsc --watch", "production": "npm run build && npm run canvas", "prepublishOnly": "npm run build", "setup": "node dist/index.js setup", "update": "node dist/index.js update", "type-check": "npx tsc --noEmit", "test": "vitest run", "test:watch": "vitest", "test:unit": "vitest run tests/backend/db.test.ts tests/frontend/helpers.test.ts", "test:api": "vitest run tests/backend/api.test.ts", "test:ws": "vitest run tests/backend/ws.test.ts", "test:e2e": "npx playwright test", "test:coverage": "vitest run --coverage" }, "dependencies": { "@excalidraw/excalidraw": "^0.18.0", "@excalidraw/mermaid-to-excalidraw": "^1.1.3", "@modelcontextprotocol/sdk": "1.26.0", "better-sqlite3": "12.6.2", "cors": "2.8.5", "dotenv": "^16.3.1", "express": "4.22.1", "express-rate-limit": "8.3.1", "helmet": "8.1.0", "mermaid": "^11.12.1", "node-fetch": "^3.3.2", "react": "^18.3.1", "react-dom": "^18.3.1", "winston": "^3.11.0", "ws": "8.20.0", "zod": "3.25.5", "zod-to-json-schema": "^3.22.3" }, "devDependencies": { "@playwright/test": "^1.58.2", "@types/better-sqlite3": "^7.6.13", "@types/cors": "^2.8.17", "@types/express": "^4.17.21", "@types/node": "^20.19.7", "@types/react": "^18.3.3", "@types/react-dom": "^18.3.0", "@types/supertest": "^7.2.0", "@types/ws": "^8.5.10", "@vitejs/plugin-react": "^4.6.0", "@vitest/coverage-v8": "^4.1.0", "concurrently": "^9.2.0", "supertest": "^7.2.2", "typescript": "^5.8.3", "vite": "^6.3.5", "vitest": "^4.1.0" }, "keywords": [ "mcp", "mcp-server", "excalidraw", "model-context-protocol", "ai", "drawing", "diagrams", "canvas", "real-time", "websocket", "visualization", "sqlite", "multi-tenancy", "self-hosted", "local" ], "author": { "name": "sanjibdevnathlabs" }, "contributors": [ { "name": "yctimlin", "email": "c22647809@gmail.com", "url": "https://github.com/yctimlin" } ], "license": "MIT", "repository": { "type": "git", "url": "https://github.com/sanjibdevnathlabs/mcp-excalidraw-local.git" }, "homepage": "https://github.com/sanjibdevnathlabs/mcp-excalidraw-local#readme", "bugs": { "url": "https://github.com/sanjibdevnathlabs/mcp-excalidraw-local/issues" }, "pnpm": { "onlyBuiltDependencies": [ "better-sqlite3", "esbuild" ] }, "engines": { "node": ">=20.0.0" }, "publishConfig": { "access": "public", "registry": "https://registry.npmjs.org/" }, "files": [ "dist/**/*", "skills/**/*", "README.md", "LICENSE" ] }