Excalidraw MCP Server

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

Integrations

  • Supports containerized deployment of the MCP server for simplified integration and consistent environment.

  • Enables creation, modification, and manipulation of Excalidraw diagrams, including element control, grouping, alignment, and resource management.

  • Provides installation and dependency management through npm, allowing users to easily set up and run the MCP server.

Servidor MCP de Excalidraw: potente API de dibujo para la integración con LLM

Un servidor integral de Protocolo de Contexto de Modelo (MCP) que permite una interacción fluida con diagramas y dibujos de Excalidraw. Este servidor proporciona a los LLM (Grandes Modelos de Lenguaje) la capacidad de crear, modificar, consultar y manipular dibujos de Excalidraw mediante una API estructurada y fácil de usar para desarrolladores.

Características

  • Control completo de elementos de Excalidraw : cree, actualice, elimine y consulte cualquier elemento de Excalidraw
  • Manipulación avanzada de elementos : agrupar, alinear, distribuir, bloquear y desbloquear elementos
  • Gestión de recursos : acceda y modifique información de escenas, bibliotecas, temas y elementos.
  • Fácil integración : funciona con Claude Desktop y otras plataformas LLM
  • Compatibilidad con Docker : implementación sencilla con opciones de contenedorización

Referencia de herramientas API

Creación y modificación de elementos

  • crear_elemento
    • Crea un nuevo elemento Excalidraw (rectángulo, elipse, diamante, etc.)
    • Entradas requeridas: type , coordenadas x , y
    • Entradas opcionales: dimensiones, colores, propiedades de estilo
  • elemento_actualización
    • Actualizar un elemento Excalidraw existente por ID
    • Entrada obligatoria: id del elemento a actualizar
    • Entradas opcionales: cualquier propiedad del elemento a modificar
  • eliminar_elemento
    • Eliminar un elemento de Excalidraw
    • Entrada obligatoria: id del elemento a eliminar
  • elementos de consulta
    • Elementos de consulta con filtrado opcional
    • Entradas opcionales: type para filtrar por tipo de elemento, filter objeto con pares clave-valor

Gestión de recursos

  • obtener_recurso
    • Obtenga un recurso específico como información de la escena o todos los elementos
    • Entrada requerida: tipo resource (escena, biblioteca, tema, elementos)

Organización de elementos

  • elementos_del_grupo
    • Agrupar varios elementos juntos
    • Entrada obligatoria: elementIds matriz de ID de elementos a agrupar
  • desagrupar_elementos
    • Desagrupar un grupo de elementos
    • Entrada obligatoria: groupId del grupo a desagrupar
  • alinear_elementos
    • Alinear varios elementos según la alineación especificada
    • Entradas obligatorias: matriz elementIds y alignment (izquierda, centro, derecha, arriba, medio, abajo)
  • distribuir_elementos
    • Distribuir elementos uniformemente en el espacio
    • Entradas obligatorias: matriz elementIds y direction (horizontal o vertical)
  • elementos de bloqueo
    • Elementos de bloqueo para evitar modificaciones
    • Entrada obligatoria: elementIds matriz de elementos a bloquear
  • elementos de desbloqueo
    • Desbloquear elementos para permitir modificaciones
    • Entrada obligatoria: elementIds matriz de elementos a desbloquear

Integración con Claude Desktop

Para utilizar este servidor con la aplicación Claude Desktop, agregue la siguiente configuración a la sección "mcpServers" de su claude_desktop_config.json :

{ "mcpServers": { "excalidraw": { "command": "node", "args": ["src/index.js"], "env": { "LOG_LEVEL": "info", "DEBUG": "false" } } } }

Integración con Cursor

Para utilizar este servidor con Cursor, cree un archivo .cursor/mcp.json en su espacio de trabajo con la siguiente configuración:

{ "mcpServers": { "excalidraw": { "command": "node", "args": [ "/path/to/your/directory/mcp_excalidraw/src/index.js" ], "env": { "LOG_LEVEL": "info", "DEBUG": "false" } } } }

Asegúrese de:

  1. Reemplace /path/to/your/directory con la ruta absoluta real a su instalación de mcp_excalidraw
  2. Crea el directorio .cursor si no existe
  3. Asegúrese de que la ruta a index.js sea correcta y que el archivo exista

Integración de Docker

{ "mcpServers": { "excalidraw": { "command": "docker", "args": ["run", "-i", "--rm", "mcp/excalidraw"], "env": { "LOG_LEVEL": "info", "DEBUG": "false" } } } }

Guía de instalación

Instalación de NPM

# Install dependencies npm install # Start the server npm start

Instalación de Docker

# Build the Docker image docker build -t mcp/excalidraw . # Run the container docker run -i --rm mcp/excalidraw

Opciones de configuración

El servidor se puede configurar utilizando las siguientes variables de entorno:

  • LOG_LEVEL - Establece el nivel de registro (predeterminado: "info")
  • DEBUG - Habilitar el modo de depuración (predeterminado: "falso")
  • DEFAULT_THEME - Establece el tema predeterminado (predeterminado: "claro")

Ejemplos de uso

A continuación se muestran algunos ejemplos prácticos de cómo utilizar el servidor Excalidraw MCP:

Creación de un elemento rectangular

{ "type": "rectangle", "x": 100, "y": 100, "width": 200, "height": 100, "backgroundColor": "#ffffff", "strokeColor": "#000000", "strokeWidth": 2, "roughness": 1 }

Consulta de elementos específicos

{ "type": "rectangle", "filter": { "strokeColor": "#000000" } }

Agrupación de múltiples elementos

{ "elementIds": ["elem1", "elem2", "elem3"] }

Licencia

Este servidor Excalidraw MCP cuenta con la licencia MIT. Puede usar, modificar y distribuir el software libremente, sujeto a los términos y condiciones de la licencia MIT. Para más detalles, consulte el archivo de LICENCIA en el repositorio del proyecto.

ID: hhg9min24v