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 (rectángulo, elipse, diamante, texto, flecha, etc.), incluido soporte para:posición (
x
,y
)dimensiones (
width
,height
)estilo (
backgroundColor
,strokeColor
,strokeWidth
,roughness
,opacity
)texto (
text
,fontSize
,fontFamily
)geometría de línea (
points
)bloqueo (bandera
locked
)
Manipulación avanzada de elementos
Agrupar, desagrupar, alinear, distribuir, bloquear y desbloquear elementos.Gestión de escenas y estados de aplicaciones
Realizar un seguimiento y modificar el estado a nivel de escena:
theme
,viewBackgroundColor
,viewport
(desplazamiento y zoom),selectedElements
,groups
.Recupere la biblioteca de todos los elementos o propiedades de escena individuales.
Guardar escena
Exporta la escena actual (elementos + appState) a un archivo.excalidraw
en el disco.Gestión de recursos
Acceda y modifique la información de la escena, la biblioteca de elementos, el tema y los datos de elementos sin procesar.Fácil integración
Compatible con Claude Desktop, Cursor y cualquier otra plataforma LLM que admita MCP.Soporte de Docker
Implementación en contenedores simple para instalaciones sin dependencias.
Referencia de herramientas API
Creación y modificación de elementos
create_element
Crea un nuevo elemento Excalidraw.
Aporte
{ "type": "<element type>", "x": <number>, "y": <number>, "width": <number, optional>, "height": <number, optional>, "points": [{"x":<number>,"y":<number>}…], "backgroundColor": "<hex>", "strokeColor": "<hex>", "strokeWidth": <number>, "roughness": <number>, "opacity": <0–1>, "text": "<string>", "fontSize": <number>, "fontFamily": "<string>", "locked": <boolean> }Producción
{ "id": "<generated‑id>", "type": "<element type>", "created": true }
update_element
Actualizar las propiedades de un elemento existente.
Aporte
{ "id": "<element id>", }Producción
{ "id": "<element id>", "updated": true, "version": <new‑version‑number> }
delete_element
Eliminar un elemento de la escena.
Aporte
{ "id": "<element id>" }Producción
{ "id": "<element id>", "deleted": true }
query_elements
Lista de elementos que coinciden con filtros opcionales.
Aporte
{ "type": "<element type>", "filter": { "<prop>": <value> } }Producción
[ { /* element objects */ } … ]
Gestión de recursos
get_resource
Recuperar información de la escena o de la biblioteca.
Aporte
{ "resource": "scene"|"library"|"theme"|"elements" }Producción
escena →
{ theme, viewport: {x,y,zoom}, selectedElements: […] }
biblioteca / elementos →
{ elements: [ … ] }
tema →
{ theme: "light"|"dark" }
Organización de elementos
group_elements
/ ungroup_elements
Agrupar o desagrupar colecciones de elementos.
Aporte
{ "elementIds": ["id1","id2",…] } { "groupId": "<group id>" }Producción
{ "groupId": "<new‑id>", "elementIds": […], "ungrouped": true? }
align_elements
Alinear varios elementos al borde o centro especificado.
Aporte
{ "elementIds": […], "alignment": "left"|"center"|"right"|"top"|"middle"|"bottom" }Producción
{ aligned: true, elementIds: […], alignment: "<alignment>" }
distribute_elements
Distribuya los elementos de manera uniforme, ya sea horizontal o vertical.
Aporte
{ "elementIds": […], "direction": "horizontal"|"vertical" }Producción
{ distributed: true, elementIds: […], direction: "<direction>" }
lock_elements
/ unlock_elements
Impedir o permitir la edición de elementos.
Aporte
{ "elementIds": [… ] }Producción
{ locked: true|false, elementIds: […] }
Gestión de escenas
save_scene
Exportar la escena actual (elementos + appState) a un archivo .excalidraw
.
Aporte
{ "filename": "<optional, must end with .excalidraw>" }Producción
Scene saved successfully to <filename>
o mensaje de error.
Ejemplos de integración
Escritorio de Claude
Cursor
Crear .cursor/mcp.json
:
Estibador
O en la configuración de MCP:
Guía de instalación
Estibador
Opciones de configuración
Establezca a través de variables de entorno en .env
o su contenedor:
LOG_LEVEL
— nivel de registro (predeterminado:"info"
)DEBUG
— modo de depuración ("true"
/"false"
, predeterminado:"false"
)DEFAULT_THEME
— tema de interfaz de usuario predeterminado ("light"
/"dark"
, predeterminado:"light"
)
Ejemplos de uso
Crear y bloquear un rectángulo
Guardar escena en archivo
hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
Tools
Un servidor de protocolo de contexto de modelo que permite a los LLM crear, modificar y manipular diagramas de Excalidraw a través de una API estructurada, que admite la creación de elementos, el estilo, la organización y la gestión de escenas.
Related MCP Servers
- -securityAlicense-qualityA Model Context Protocol server implementation that enables LLMs to interact with NebulaGraph database for graph exploration, supporting schema understanding, queries, and graph algorithms.Last updated -20Apache 2.0
- AsecurityAlicenseAqualityA Model Context Protocol server that enables LLMs to create, modify, and manipulate Excalidraw diagrams through a structured API.Last updated -1136303MIT License
- AsecurityFlicenseAqualityA Model Context Protocol server that provides API functionality for creating, managing, and exporting Excalidraw drawings in various formats like SVG, PNG, and JSON.Last updated -83231
- -securityAlicense-qualityA Model Context Protocol server that enables LLMs to interact with GraphQL APIs by providing schema introspection and query execution capabilities.Last updated -4841MIT License