Skip to main content
Glama

Excalidraw MCP 服务器:用于 LLM 集成的强大绘图 API

全面的模型上下文协议 (MCP) 服务器,可实现与 Excalidraw 图表和绘图的无缝交互。该服务器通过结构化、开发人员友好的 API,为 LLM(大型语言模型)提供创建、修改、查询和操作 Excalidraw 绘图的功能。

特征

  • 完整的 Excalidraw 元素控制
    创建、更新、删除和查询任何 Excalidraw 元素(矩形、椭圆、菱形、文本、箭头等),包括支持:

    • 位置( xy

    • 尺寸( widthheight

    • 样式( backgroundColorstrokeColorstrokeWidthroughnessopacity

    • 文本( textfontSizefontFamily

    • 线几何( points

    • 锁定( locked标志)

  • 高级元素操作
    对元素进行分组、取消分组、对齐、分布、锁定和解锁。

  • 场景和应用状态管理

    • 跟踪和修改场景级状态: themeviewBackgroundColorviewport (滚动和缩放)、 selectedElementsgroups

    • 检索所有元素或单个场景属性的库。

  • 保存场景
    将当前场景(元素 + appState)导出到磁盘上的.excalidraw文件。

  • 资源管理
    访问和修改场景信息、元素库、主题和原始元素数据。

  • 轻松集成
    与 Claude Desktop、Cursor 以及任何其他支持 MCP 的 LLM 平台兼容。

  • Docker 支持
    简单的容器化部署,实现零依赖安装。


Related MCP server: Excalidraw MCP Server

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>或出现错误消息。


集成示例

克劳德桌面

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

光标

创建.cursor/mcp.json

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

Docker

docker run -i --rm mcp/excalidraw

或者在 MCP 配置中:

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

安装指南

# Install dependencies npm install # Run development server npm start

Docker

docker build -t mcp/excalidraw . docker run -i --rm mcp/excalidraw

配置选项

通过.env或容器中的环境变量设置:

  • LOG_LEVEL — 日志级别(默认值: "info"

  • DEBUG — 调试模式( "true" / "false" ,默认值: "false"

  • DEFAULT_THEME — 默认 UI 主题 ( "light" / "dark" ,默认值: "light" )


使用示例

创建并锁定矩形

{"type":"rectangle","x":50,"y":50,"width":100,"height":80,"backgroundColor":"#f3f3f3","strokeColor":"#333","locked":true} { "id":"abc123","type":"rectangle","created":true } {"elementIds":["abc123"]}

将场景保存到文件

{"filename":"my_drawing.excalidraw"} "Scene saved successfully to my_drawing.excalidraw"

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Abdullah007bajwa/mcp_excalidraw'

If you have feedback or need assistance with the MCP directory API, please join our Discord server