Skip to main content
Glama

excalidraw-ai — MCP 서버 (Excalidraw용 AI 인터페이스)

AI가 라이브 Excalidraw 방을 읽고, 관찰하고, 편집할 수 있는 깔끔하고 비-투박한 인터페이스입니다. 브라우저 자동화(파이버 읽기 + 드래그 앤 드롭 + 원격 브라우저 드롭) 대신, 협업 릴레이를 통해 소켓 봇으로 방에 접속하여 AES-GCM 암호화된 씬 프로토콜을 직접 사용합니다 — 결정적이고, 헤드리스이며, 확장 가능합니다.

POC 상태: 핵심 브리지 + MCP stdio 표면이 자체 호스팅 excalidraw-room 릴레이에 대해 종단 간 작동합니다 (셀프테스트 + MCP 스모크 통과).

우리가 제어하는 릴레이를 사용하는 이유

봇은 릴레이와 통신합니다. Excalidraw의 호스팅 릴레이(oss-collab.excalidraw.com)는 비브라우저 봇을 오리진 가드합니다(403/400). 따라서 자체 방을 위해 excalidraw/excalidraw-room(MIT, 프로덕션과 동일한 코드)을 실행하고 VITE_APP_WS_SERVER_URL을 통해 Excalidraw UI를 가리킵니다.

Related MCP server: Excalidraw MCP Server

아키텍처

Excalidraw UI (fork) ──socket.io──▶ relay (excalidraw-room) ◀──socket-bot── excalidraw-ai (MCP)
   (humans)                           self-hosted                 (the AI's interface)

도구

도구

기능 설명

create_room

우리 릴레이를 위한 새 방 ID/키

join_room

방에 접속, 씬 읽기, 수신 대기 시작

leave_room

연결 해제

get_scene

보드 요소 + 텍스트

get_changes

마지막 호출 이후 추가/업데이트/제거 델타 ("방 듣기")

add_elements

요소 추가 (라이브 브로드캐스트)

update_elements

기존 요소 이동/제목 변경/색상 변경 (버전 증가)

delete_elements

삭제 표시

실행

npm install
# relay (one terminal):
cd /tmp/excalidraw-room && PORT=3002 node dist/index.js
# self-test the bridge core:
npm run selftest
# MCP smoke (stdio handshake + join + get_scene):
npm run mcp-smoke
# start the MCP server (stdio) — wire into Hermes/Copilot/Claude:
node src/server.js

Hermes에 연결 (~/.hermes/config.yaml)

mcp_servers:
  excalidraw_ai:
    command: "node"
    args: ["/root/workspace/mcclawd-org/excalidraw-ai/src/server.js"]

Hermes 재시작 → 도구가 mcp_excalidraw_ai_*로 나타납니다.

레이아웃

  • src/crypto.js — AES-GCM E2E 헬퍼 (Node Web Crypto)

  • src/elements.js — 요소 빌더 + 씬 병합/차이 (id+버전 의미론)

  • src/room.js — RoomClient: 소켓 접속, 읽기, 쓰기, 변경 피드

  • src/server.js — MCP 서버 (stdio), 도구 등록

  • scripts/selftest.mjs, scripts/mcp-smoke.mjs — 검증

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI agents to programmatically control a live Excalidraw canvas through element-level CRUD operations and real-time synchronization. It allows agents to iteratively build, inspect, and refine diagrams while providing visual feedback via screenshots and scene descriptions.
    3,166 npm
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI agents to programmatically control a live Excalidraw canvas with element-level CRUD operations and real-time synchronization. It supports iterative diagramming through scene descriptions, screenshots, and advanced layout tools for collaborative AI-human workflows.
    3,166 npm
    2
    MIT
  • F
    license
    Not graded
    quality
    B
    maintenance
    Standalone backend for a self-hosted Excalidraw fork with per-board access control, providing an MCP remote endpoint that lets AI agents draw on real collaboration boards as specific users.
    -