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.excalidrawen 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
Related MCP Servers
- -security-license-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
- Asecurity-licenseAqualityA Model Context Protocol server that enables LLMs to create, modify, and manipulate Excalidraw diagrams through a structured API.Last updated -1128420MIT License
- Asecurity-licenseAqualityA 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 -82932
- -security-license-qualityA Model Context Protocol server that enables LLMs to interact with GraphQL APIs by providing schema introspection and query execution capabilities.Last updated -5021MIT License