Excalidraw MCP 服务器:用于 LLM 集成的强大绘图 API
全面的模型上下文协议 (MCP) 服务器,可实现与 Excalidraw 图表和绘图的无缝交互。该服务器通过结构化、开发人员友好的 API,为 LLM(大型语言模型)提供创建、修改、查询和操作 Excalidraw 绘图的功能。
特征
完整的 Excalidraw 元素控制
创建、更新、删除和查询任何 Excalidraw 元素(矩形、椭圆、菱形、文本、箭头等),包括支持:位置(
x
,y
)尺寸(
width
,height
)样式(
backgroundColor
、strokeColor
、strokeWidth
、roughness
、opacity
)文本(
text
,fontSize
,fontFamily
)线几何(
points
)锁定(
locked
标志)
高级元素操作
对元素进行分组、取消分组、对齐、分布、锁定和解锁。场景和应用状态管理
跟踪和修改场景级状态:
theme
、viewBackgroundColor
、viewport
(滚动和缩放)、selectedElements
、groups
。检索所有元素或单个场景属性的库。
保存场景
将当前场景(元素 + appState)导出到磁盘上的.excalidraw
文件。资源管理
访问和修改场景信息、元素库、主题和原始元素数据。轻松集成
与 Claude Desktop、Cursor 以及任何其他支持 MCP 的 LLM 平台兼容。Docker 支持
简单的容器化部署,实现零依赖安装。
API 工具参考
元素创建和修改
create_element
创建一个新的 Excalidraw 元素。
输入
{ "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> }输出
{ "id": "<generated‑id>", "type": "<element type>", "created": true }
update_element
更新现有元素的属性。
输入
{ "id": "<element id>", }输出
{ "id": "<element id>", "updated": true, "version": <new‑version‑number> }
delete_element
从场景中移除一个元素。
输入
{ "id": "<element id>" }输出
{ "id": "<element id>", "deleted": true }
query_elements
列出与可选过滤器匹配的元素。
输入
{ "type": "<element type>", "filter": { "<prop>": <value> } }输出
[ { /* element objects */ } … ]
资源管理
get_resource
检索场景或库信息。
输入
{ "resource": "scene"|"library"|"theme"|"elements" }输出
场景→
{ theme, viewport: {x,y,zoom}, selectedElements: […] }
库/元素→
{ elements: [ … ] }
主题→
{ theme: "light"|"dark" }
元素组织
group_elements
/ ungroup_elements
对元素集合进行分组或取消分组。
输入
{ "elementIds": ["id1","id2",…] } { "groupId": "<group id>" }输出
{ "groupId": "<new‑id>", "elementIds": […], "ungrouped": true? }
align_elements
将多个元素对齐到指定的边缘或中心。
输入
{ "elementIds": […], "alignment": "left"|"center"|"right"|"top"|"middle"|"bottom" }输出
{ aligned: true, elementIds: […], alignment: "<alignment>" }
distribute_elements
水平或垂直均匀分布元素。
输入
{ "elementIds": […], "direction": "horizontal"|"vertical" }输出
{ distributed: true, elementIds: […], direction: "<direction>" }
lock_elements
/ unlock_elements
防止或允许编辑元素。
输入
{ "elementIds": [… ] }输出
{ locked: true|false, elementIds: […] }
场景管理
save_scene
将当前场景(元素 + appState)导出到.excalidraw
文件。
输入
{ "filename": "<optional, must end with .excalidraw>" }输出
Scene saved successfully to <filename>
或出现错误消息。
集成示例
克劳德桌面
光标
创建.cursor/mcp.json
:
Docker
或者在 MCP 配置中:
安装指南
Docker
配置选项
通过.env
或容器中的环境变量设置:
LOG_LEVEL
— 日志级别(默认值:"info"
)DEBUG
— 调试模式("true"
/"false"
,默认值:"false"
)DEFAULT_THEME
— 默认 UI 主题 ("light"
/"dark"
,默认值:"light"
)
使用示例
创建并锁定矩形
将场景保存到文件
hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
Tools
模型上下文协议服务器使 LLM 能够通过结构化 API 创建、修改和操作 Excalidraw 图表,支持元素创建、样式、组织和场景管理。
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