AI绘图新范式:让智能体拥有26种画图工具,实时协作绘制专业架构图
🌈 HeyAI人工智能 每天 1 分钟 · 掌握最实用的 AI 技巧与工具
1️⃣ 项目概览
Excalidraw MCP Server & Agent Skill 是一个为AI智能体提供完整画布控制能力的工具集。它解决了传统AI绘图工具”一次生成、无法修改”的痛点,让AI能够像人类设计师一样,通过26种精细化的工具对Excalidraw画布进行创建、查看、编辑和迭代优化。
核心价值:
-
程序化控制:AI可通过MCP协议精确控制每个图形元素 -
实时协作画布:支持多AI智能体在同一画布上协同绘图 -
闭环反馈:AI可”看到”自己绘制的画布(文字描述+截图),实现迭代优化 -
生产级工具:提供对齐、分布、分组、文件导入导出等专业设计功能
适用对象:
-
需要AI自动生成架构图、流程图的技术团队 -
希望将绘图能力集成到AI工作流的开发者 -
使用Claude、Cursor、Codex等MCP兼容客户端的用户
2️⃣ 核心能力与技术亮点
⚡ 核心技术点
-
MCP服务器:通过标准Model Context Protocol与AI客户端通信,支持Claude Desktop、Cursor、Codex CLI等主流工具 -
双进程架构:画布服务器(Web UI + REST API + WebSocket) + MCP服务器(stdio通信) -
实时同步:画布变更通过WebSocket实时推送到前端界面 -
智能体技能包:提供可移植的技能指令和辅助脚本,支持MCP和REST API双模式
🧠 与官方Excalidraw MCP的核心差异
| 特性 | 官方MCP | 本项目 |
|---|---|---|
| 控制粒度 | 提示词生成完整图 | 26种元素级控制工具 |
| 画布状态 | 无状态,每次独立 | 持久化实时画布 |
| 元素CRUD | 不支持 | 完整创建/读取/更新/删除 |
| AI视觉反馈 | 无 | describe_scene + get_canvas_screenshot |
| 迭代优化 | 需重新生成 | 绘制→查看→调整→再查看 |
| 布局工具 | 无 | 对齐、分布、分组/解组 |
| 文件操作 | 无 | 导入/导出.excalidraw JSON文件 |
| 多智能体协作 | 单用户 | 多智能体并发绘图 |
🔐 v2.0 重大更新
-
13个新工具:总数达26个,涵盖元素CRUD、布局、场景感知、文件I/O、状态管理、视口控制、设计指南等7大类别 -
设计指南: read_diagram_guide提供最佳实践调色板、尺寸规则、布局模式和反模式,显著提升AI绘图质量 -
可分享链接: export_to_excalidraw_url将场景加密上传至excalidraw.com,生成任何人可打开的链接 -
视口控制: set_viewport支持自动适应内容、滚动到特定元素或手动缩放/偏移 -
快照功能: snapshot_scene/restore_snapshot支持保存和恢复命名画布状态
3️⃣ 快速上手指南
本地部署(推荐开发环境)
前置要求:Node.js >= 18, npm
-
克隆并构建项目
git clone https://github.com/yctimlin/mcp_excalidraw.git
cd mcp_excalidraw
npm ci
npm run build
-
启动画布服务器(终端1)
HOST=0.0.0.0 PORT=3000 npm run canvas
打开浏览器访问 http://localhost:3000
-
启动MCP服务器(终端2)
EXPRESS_SERVER_URL=http://localhost:3000 node dist/index.js
Docker部署(推荐生产环境)
-
启动画布服务器容器
docker run -d -p 3000:3000 --name mcp-excalidraw-canvas ghcr.io/yctimlin/mcp_excalidraw-canvas:latest
-
配置MCP客户端连接(以Claude Desktop为例)
{
"mcpServers": {
"excalidraw": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"-e", "EXPRESS_SERVER_URL=http://host.docker.internal:3000",
"-e", "ENABLE_CANVAS_SYNC=true",
"ghcr.io/yctimlin/mcp_excalidraw:latest"
]
}
}
}
配置其他MCP客户端
项目支持所有主流MCP客户端,配置详情见项目文档:
-
Claude Desktop:编辑配置文件添加MCP服务器 -
Claude Code:使用 claude mcp add命令注册 -
Cursor:在项目根目录创建 .cursor/mcp.json -
Codex CLI:使用 codex mcp add命令注册 -
OpenCode:编辑 opencode.json配置文件 -
Antigravity (Google):编辑 mcp_config.json配置文件
4️⃣ 示例 / 使用场景
场景一:AI绘制系统架构图
工作流程:
-
AI通过 create_element创建多个矩形表示服务组件 -
使用 align_elements和distribute_elements自动对齐布局 -
通过 create_element添加箭头表示数据流 -
调用 describe_scene获取画布文字描述,检查布局合理性 -
使用 get_canvas_screenshot获取图像,确认视觉效果 -
根据反馈使用 update_element调整颜色、大小或位置 -
最终通过 export_to_excalidraw_url生成可分享链接
场景二:从Mermaid代码生成图表
# 通过MCP Inspector测试创建流程图
npx @modelcontextprotocol/inspector --cli \
-e EXPRESS_SERVER_URL=http://localhost:3000 \
-e ENABLE_CANVAS_SYNC=true -- \
node dist/index.js --method tools/call --tool-name create_from_mermaid \
--tool-arg 'mermaidCode=graph TD
A[开始] --> B{判断}
B -->|是| C[执行操作]
B -->|否| D[结束]'
场景三:团队协作绘图工作流
-
导出画布状态
EXPRESS_SERVER_URL=http://localhost:3000 node skills/excalidraw-skill/scripts/export-elements.cjs --out architecture.elements.json
-
提交到版本控制
git add architecture.elements.json
git commit -m "保存架构图状态"
-
其他成员恢复画布
EXPRESS_SERVER_URL=http://localhost:3000 node skills/excalidraw-skill/scripts/import-elements.cjs --in architecture.elements.json --mode sync
5️⃣ 项目地址与文档
https://github.com/yctimlin/mcp_excalidraw
🌈 关注公众号:HeyAI人工智能 每天更新 AI 实用干货
夜雨聆风