Excalidraw MCP 服务器与 CLI

为 AI 编码代理提供实时 Excalidraw 画布工作台,支持创建、编辑、导出图表。

Star 数
★ 2.5k
最近更新
9 天前
License
MIT
主语言
TypeScript

30 秒速览

运行形态
命令行工具MCP 服务器Agent 插件 / 技能
可在哪里用
通用 · 跨平台ChatGPT · Codex · Claude Code · Claude.ai
费用
免费,无需付费服务
上手难度
低 · 几分钟可跑通
开始前需要
Node.js >= 18Docker(可选)Shell / 命令行网络访问本地文件系统
典型场景
软件架构师使用 Claude Code 从文本描述生成架构图,并自动布局。
不适合
  • 需要无浏览器无头渲染截图的 CI 环境
  • 要求画布状态持久化、重启不丢数据的团队
  • 需要内置鉴权、可安全暴露到公网的部署

这个 Agent 能做什么,适合哪些场景?

mcp-excalidraw-server 是一个本地画布服务器,为 AI 代理提供可编程的 Excalidraw 画布。它提供三种驱动方式:CLI(推荐用于编码代理)、MCP 服务器(26 个工具)和 REST API。核心绘图完全在本地运行,无需 API 密钥,仅需要 Node.js ≥ 18。代理可以创建元素、查询元素、获取截图、迭代调整布局,并将图表导出为 .excalidraw 文件,作为仓库中的代码工件。画布服务器支持实时同步和服务器端快照。它区别于官方 Excalidraw MCP:专注于编码代理的持久画布工作台,而非一次性聊天组件。

该工具在本地启动一个 Excalidraw 画布服务器(默认端口 3000),提供 REST API 和 WebSocket 实时同步。代理可以使用 CLI 命令(如 add、query、describe、screenshot、export、import、mermaid、snapshot、arrange)或 MCP 工具(如 create_element、query_elements、get_canvas_screenshot、export_scene)操作画布。它可以创建具有文本和箭头的矩形等元素,查询元素,通过截图查看画布,对齐、分布、分组或锁定元素,导出为 .excalidraw 或 .excalidraw.md 文件(Obsidian 兼容),从 Mermaid 创建图表,并保存命名快照。服务器将元素保存在内存中,因此重启后需导出或使用快照持久化。它还支持通过 share 命令上传加密场景到 excalidraw.com。

  1. 软件架构师使用 Claude Code 从文本描述生成架构图,并自动布局。
  2. 开发者在代码更改后更新文档中的架构图,通过重新导入和编辑 .excalidraw 文件。
  3. 使用 Obsidian 的用户将图表导出为 .excalidraw.md 文件,直接映射到笔记中。
  4. CI 管道在无人值守环境中通过 CLI 生成图表,作为构建工件。
  5. 使用 Cursor 或 Codex CLI 的代理在编码会话中创建流程图,并直接迭代修改。

如何安装或部署这个 Agent?

前提:Node.js ≥ 18。无需克隆或配置 MCP 服务器,直接使用 npx。对于 MCP 客户端,请按 README 中的说明添加配置。对于编码代理,推荐运行:npx -y mcp-excalidraw-server install-skill --dir <skills-root>。

如何使用这个 Agent?

1) 启动画布:npx -y mcp-excalidraw-server start,然后在浏览器打开 http://127.0.0.1:3000 以启用截图和 Mermaid 功能。2) 添加元素:echo '[{"id":"api","type":"rectangle",...}]' | npx -y mcp-excalidraw-server add。3) 查看画布:npx -y mcp-excalidraw-server describe 和 screenshot。4) 导出:npx -y mcp-excalidraw-server export --out docs/architecture.excalidraw。使用 CLI 时,命令会自动启动服务器。

这个 Agent 有哪些优点和局限?

优点
  • 提供元素级 CRUD 和布局工具(对齐、分布、分组、锁定),远超官方 MCP 的能力。
  • 支持截图和结构化文本描述,让代理能自查并修复布局问题。
  • 本地运行,无需 API 密钥,核心功能完全免费,MIT 许可。
  • 提供 CLI、MCP 和 REST 三种接口,适用于多种代理和框架。
局限
  • 画布状态存储在内存中,服务器重启后丢失,需要显式导出或快照。
  • 截图、图像导出和 Mermaid 转换需要浏览器打开画布页面,非无头模式。
  • 使用 Docker 时需要进行网络配置(如 host.docker.internal),且 Docker 镜像可能无法自动启动画布。

这个 Agent 与同类方案有什么区别?

与官方 Excalidraw MCP 相比,本项目提供持久画布和细粒度控制(如元素 CRUD、布局工具、截图反馈),而官方 MCP 是一次性聊天组件,仅支持两个工具。

与相关度最高的同类 agent 并排比较关键指标。

Agent 源码审查 形态 / 费用 Star 最近更新 主语言 完整支持的平台
Excalidraw MCP 服务器与 CLI 当前 59 · 缺口较多 命令行工具免费 ★ 2.5k 9 天前 TypeScript ChatGPT · Codex · Claude Code · Claude.ai
OSS Autopilot 83 · 表现良好 Agent 插件 / 技能免费 ★ 21 1 天前 TypeScript Claude Code · Claude.ai
Context 74 · 存在缺口 MCP 服务器免费 ★ 424 1 天前 TypeScript Codex · Claude Code · Claude.ai
REA:让 Agent 逆向一切 72 · 存在缺口 命令行工具免费 ★ 327k 今天 TypeScript Codex · Claude Code · Claude.ai

FollowAgents 如何评估这个 Agent?

FollowAgents 源码审查 · FARS-2.1
缺口较多
59/ 100 五分制 3.0 / 5
本评测基于 2026年8月9日 的源码;此后该项目发布了 3 个正式版本,尚未复审。分数与结论只代表评测时的版本。 最近版本 ↓
信任安全 14/29
可靠稳定 9/14
适用触发 12/18
规范维护 11/18
有效结果 9/13
证据核验 4/8
查看各维度的扣分理由
信任安全14 / 29 · 2.4/5

证据显示:默认绑定127.0.0.1,有EXCALIDRAW_NO_AUTOSTART等环境变量控制自动启动,导出目录可配置,快照和回滚功能存在。扣分:clear命令需要--yes确认,但其他破坏性操作(如delete、update)没有明确确认机制;数据流透明度部分,README说明了数据流向,但未详细说明所有网络请求;敏感数据处理方面,share功能声称加密上传,但未提供实现细节;依赖安全方面,未提供依赖审计或漏洞扫描证据;外部影响方面,有网络服务启动和文件写入,但默认本地绑定,有安全提示;回滚方面,有快照功能,但未说明回滚的完整流程;来源归属方面,作者信息在package.json中,但发布者未验证。

可靠稳定9 / 14 · 3.2/5

证据显示:README、CLI参考、MCP工具列表等内部一致,版本号一致;依赖在package.json中列出,有CI和Docker构建,但未提供依赖可用性测试;失败消息方面,CLI有退出码和stderr诊断,但未提供具体错误消息示例。扣分:依赖可用性未充分验证,失败消息未提供具体示例。

适用触发12 / 18 · 3.3/5

证据显示:明确面向编码代理(Claude Code、Codex等),提供多种使用场景(CLI、MCP、REST);能力边界清晰,区分了本地绘制和可选分享;触发精度方面,CLI命令和MCP工具定义明确;环境适配方面,支持Node>=20、Docker、多种客户端配置。扣分:未提供详细的错误处理或边界情况说明。

规范维护11 / 18 · 3.1/5

证据显示:README结构清晰,有目录;安装说明详细,包括npx、Docker、源码;命名稳定,CLI和MCP工具命名一致;提供了示例和FAQ;已知限制在README中有提及;MIT许可证明确;版本和变更日志在README中;维护责任方面,有作者信息但未明确维护承诺。扣分:维护责任未明确,发布者未验证。

有效结果9 / 13 · 3.5/5

证据显示:输出可用性高,支持多种导出格式和截图;边际价值明显,提供官方MCP没有的功能;成本效益方面,本地运行无需API密钥,但需要Node和浏览器。扣分:未提供性能或资源消耗数据。

证据核验4 / 8 · 2.5/5

证据显示:README中的声明与代码和配置一致,如Node版本、MCP协议版本;有CI和测试脚本,但未提供测试结果;事实和推断分离方面,README区分了功能描述和设计意图。扣分:跨来源验证不足,未提供独立测试或第三方验证。

风险与缓解建议
  • 发布者身份未验证,安装前应检查来源。
  • share功能声称加密上传,但未提供实现细节,使用前应谨慎。
  • 依赖安全未提供审计证据,建议运行npm audit。
  • 破坏性操作(如delete、update)缺乏用户确认机制,可能误操作。
  • 内存存储,重启丢失数据,需定期导出或快照。
证据充分度:低 评估于 2026年8月9日 审查版本 6ddbe98093eb 评估后仓库已有新提交,评分可能未覆盖最新改动
查看完整评分方法 →

最近版本

来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。

  1. v2.1.2
    发布说明摘录
    Fixes - Snapshot restore and import are atomic: a rejected restore or replace-import no longer wipes the canvas. Native frames now restore, import, export and can be created through the CLI and MCP. (#101, thanks @sanjayy0612; #120) - One label per shape: updating or renaming a labelled shape while a canvas tab is open no longer stacks duplicate labels. (#121, thanks @sdrshn-nmbr) - Dropped images survive reload: the tab uploads image files on sync (only new ones), so they persist and appear in exports and headless screenshots. (#122, thanks @appdesigngeeks) …
    在 GitHub 查看 ↗
  2. v2.1.1
    发布说明摘录
    Fixes - Exports always load: valid order keys, so saved scenes with more than about 45 labelled shapes no longer fail with invalid order key. Free text exports left/top aligned, like the canvas. (#115, thanks @fernandovmacedo) - No more drift on sync: center- and right-aligned text, labels on arrows, and arrows no longer move or shrink each time an open canvas tab syncs. Text x/y is always the top-left corner. (#116, thanks @hidinginabunker) …
    在 GitHub 查看 ↗
  3. v2.1.0 v2.1.0 — Headless Rendering
    发布说明摘录
    What's Changed * Dev by @yctimlin in https://github.com/yctimlin/mcp_excalidraw/pull/11 * Support windows by @PhantomPayne in https://github.com/yctimlin/mcp_excalidraw/pull/13 * Fix MCP delete/update methods and add frontend sync functionality by @Songmengdi in https://github.com/yctimlin/mcp_excalidraw/pull/19 * Dev by @yctimlin in https://github.com/yctimlin/mcp_excalidraw/pull/21 * docs: set figure aligned by @ctchen222 in https://github.com/yctimlin/mcp_excalidraw/pull/25 * Fixes group_elements operation by @gianluca-venturini in https://github.com/yctimlin/mcp_excalidraw/pull/27 …
    在 GitHub 查看 ↗

常见问题

需要 API 密钥或云服务吗?
不需要。核心绘图完全在本地运行,唯一的出站调用是可选 share 命令,用于上传加密场景到 excalidraw.com。
图表持久化吗?
画布存储在内存中,重启会清空。您可以导出 .excalidraw 文件到仓库,或使用 snapshot 保存命名的服务器端快照。
为什么需要浏览器?
截图、图像导出、视口控制和 Mermaid 转换需要在浏览器中渲染画布。创建和查询元素等基本操作无需浏览器。如果缺少浏览器,CLI 会返回退出代码 4 并提示。
哪些 AI 工具支持?
支持 Claude Code、Claude Desktop、Cursor、Codex CLI、OpenCode 和 Google Antigravity,也适用于任何可运行 CLI 的代理或 MCP 客户端。
在 GitHub 查看 ↗ 安装 ↓

对比同类 Agent

用同一套 FARS 评审,横向比较这个 Agent 所属的短名单。

相关 Agents