使用说明
提取mcp
excalidraw-mcp 是一个用于编程Excalidraw创作的自托管MCP服务器。
目标不仅仅是改变场景JSON。服务器为代理提供了一个比Excalidraw更安全的抽象,这样他们就可以:
- 创建和优化场景,而无需手动管理脆弱的内部
- 为节点、流、泳道、框架、层和样式使用更高级的创作助手
- 出口前分析质量
- 在最终抛光之前进行确定性清理
- 通过本地Excalidraw捆绑包离线导出
- 可选择将场景导入经过身份验证的Excalidraw/Excalidraw+帐户
文档
- 架构:
docs/ARCHITECTURE.md - 工具参考:
docs/TOOL_REFERENCE.md - 能力矩阵:
docs/CAPABILITY_MATRIX.md - 代理手册:
docs/AGENT_PLAYBOOK.md - Claude客户端设置:
docs/CLAUDE_CLIENTS.md - 帐户链接:
docs/ACCOUNT_LINKING.md - 捆绑代理技能:
skills/excalidraw-agent/SKILL.md
服务器中有什么
- 场景生命周期、补丁、应用状态、文件、库项、Mermaid转换和导出
- 确定性布局助手:
elements_arrangelayout_flowlayout_swimlaneslayout_polish
- 高级创作助手:
diagram_composeelements_create_skeletonsnodes_createnodes_composeframes_createframes_assign_elementsstyles_apply_presetlayers_reorder
- 质量和维修助手:
scene_validatescene_normalizescene_analyzescene_quality_gate
- 资源包括:
excalidraw://scenesexcalidraw://scene/{sceneId}/summaryexcalidraw://scene/{sceneId}/analysisexcalidraw://scene/{sceneId}/jsonexcalidraw://docs(捆绑技能参考索引)excalidraw://docs/{topic}(例如。excalidraw-troubleshooting,excalidraw-install-and-integration)
- 规划、改进、转换和审查提示
代理工作流
推荐的代理循环:
scene_analyze- 确定性助手:
nodes_compose,layout_swimlanes,layout_flow,layout_polish,styles_apply_preset,frames_assign_elements scene_validatescene_quality_gateexport_svg/export_png/export_webp
使用 scene_normalize 首先,每当分析显示结构问题,如绑定损坏、容器反向链接丢失、文件丢失或几何无效时。
如果客户端支持MCP提示,请从 agent-workflow-guide 以获取首选工具选择策略的带内摘要。
样例:语义节点
{
"name": "nodes_compose",
"arguments": {
"sceneId": "system-map",
"preset": "process",
"nodes": [
{
"nodeId": "api",
"x": 120,
"y": 140,
"width": 240,
"minHeight": 132,
"title": "API Gateway",
"body": "Receives requests, validates auth, and routes traffic.",
"iconText": "API"
}
]
}
}
示例:泳道
{
"name": "layout_swimlanes",
"arguments": {
"sceneId": "system-map",
"laneArrangement": "columns",
"originX": 40,
"originY": 80,
"laneWidth": 320,
"laneHeight": 260,
"lanes": [
{ "laneId": "lane-intake", "label": "Intake", "elementIds": ["api"] },
{
"laneId": "lane-processing",
"label": "Processing",
"elementIds": ["worker"]
}
]
}
}
质量模型
scene_analyze 报告:
- 场景边界和图形摘要
- 重叠和密集集群
- 画布外元素
- 连接器交叉口
- 排版不一致
- 不可读文本
- 缺少标题和传说
- 容器/框架/文件完整性问题
recommendedActions这指向了确定性的下一代工具
layout_polish 故意保守。它解决了确定性布局问题,如重叠、间距、连接器标签重新居中,并支持文本重新平衡,而无需发明新的语义内容。
预设
内置预设:
processdecisionnotetitlelegendaccentswimlaneboundarysupporting_text
所有高级创作助手共享相同的间距和排版比例:
- 间距:
8 / 16 / 24 / 32 / 48 / 72 - 文本:
30 / 18 / 16 / 14 - 节点填充:
20 - 车架/车道衬垫:
24
运行时模型
- 用于确定性场景操作和规范化的JSON引擎
- 本地浏览器引擎(Playwright+Chromium)用于离线Excalidraw本地导出
- 本地Excalidraw运行时包已签入仓库,用于导出/修复奇偶校验
- 工作空间支持的存储
.excalidraw-mcp/
安装
npm install
如果需要,请安装Playwright浏览器:
npx playwright install chromium
跑
工作室
npm run dev
# or
npm run start:stdio
超文本传输协议
npm run dev:http
# or
npm run start:http
可选环境变量:
MCP_HTTP_HOST默认127.0.0.1MCP_HTTP_PORT默认8788MCP_HTTP_PATH默认/mcpMCP_WORKSPACE_ROOT默认当前工作目录
克劳德客户
Claude Code和Claude Desktop都应该指向内置的stdio服务器:
node /Users/workboi/projects/excalidraw-mcp/dist/src/index.js --transport stdio
使用 MCP_WORKSPACE_ROOT=/Users/workboi/projects/excalidraw-mcp。完整的设置和验证命令位于 docs/CLAUDE_CLIENTS.md.
验证
主本地门:
npm test
npm run typecheck
npm run lint
npm run build
额外的烟雾路径:
npm run smoke:dist
npm run smoke:account:plus
npm run smoke:account:excalidraw
笔记:
smoke:dist锻炼身体dist服务器通过stdio。smoke:account:*是选择加入手动检查,需要真正经过身份验证的浏览器会话。
视觉回归
该仓库包括结构夹具测试和已提交的规范化SVG goldens,用于:
- 简单流程
- 工艺板
- 泳道板
- 基于框架的体系结构
代理版本E2E覆盖范围还锻炼了MCP客户端的语义合成、手动修复、质量门和所有导出格式的工作流程。
仅故意刷新金币:
UPDATE_GOLDENS=1 npx vitest run test/integration/visual.goldens.test.ts
帐户链接快速入门
- 准备一个有头登录会话:
{
"name": "account_login_session",
"arguments": {
"destination": "plus",
"mode": "headed",
"session": "main-profile",
"timeoutSec": 300,
"closeOnComplete": false
}
}
- 导入场景:
{
"name": "account_import_scene",
"arguments": {
"sceneId": "my-scene",
"destination": "plus",
"mode": "headed",
"session": "main-profile",
"allowInteractiveLogin": false
}
}
- 检查最近的状态:
{
"name": "account_link_status",
"arguments": {
"session": "main-profile"
}
}
帐户结果现在包括显式 reasonCode 价值观如 READY, AUTH_NOT_READY, IMPORTED, IMPORT_STRATEGY_FAILED,以及 POST_IMPORT_VERIFICATION_FAILED.
演示
通过MCP服务器本身生成一个现实的销售流程板:
node scripts/demo-sales-process-board.mjs
文物被写在 tmp/generated/sales-process-overview/.
捆绑代理技能
这个仓库运送了一个Anthropic 代理技能 在
skills/excalidraw-agent/。它为代理客户提供了程序
在React/Next.js宿主应用程序中嵌入Excalidraw的指南,运行时故障排除
问题,并编排上述snake_case MCP工具。它的参考文件也是
由此MCP服务器作为 excalidraw://docs/{topic} 资源,因此仅MCP客户端可以
在没有文件系统访问权限的情况下读取它们。
通过符号链接目录安装到代理客户端:
ln -s "$PWD/skills/excalidraw-agent" ~/.claude/skills/excalidraw-agent # Claude Code
ln -s "$PWD/skills/excalidraw-agent" ~/.codex/skills/excalidraw-agent # Codex
ln -s "$PWD/skills/excalidraw-agent" ~/.cursor/skills/excalidraw-agent # Cursor
ln -s "$PWD/skills/excalidraw-agent" ~/.config/zed/skills/excalidraw-agent # Zed
验证技能元数据:
npx --yes skills-ref validate skills/excalidraw-agent
该技能不再发布自己的bash脚本——所有执行工作路线都通过MCP 此服务器中的工具。
对于代理作者
如果您要将此服务器连接到另一个代理堆栈,最佳的入职路径是:
- 读
docs/AGENT_PLAYBOOK.md - 检查
docs/TOOL_REFERENCE.md - 使用
agent-workflow-guide提示 - 更喜欢
nodes_compose,layout_swimlanes,layout_flow,layout_polish,以及styles_apply_preset未经处理的修补 - 安装捆绑的
skills/excalidraw-agent用于带内程序指导