项目简介
这是一个实现了 Model Context Protocol (MCP) 标准的服务器应用,旨在将用户(或AI)提供的 Mermaid 文本图表定义转换成 Excalidraw 格式的图表数据和 PNG 图片。它通过 MCP 协议向兼容的 LLM 客户端(如 Claude Desktop、Cursor 等)暴露一个工具(Tool),客户端可以调用这个工具来生成图表,并在附带的本地网页应用中进行预览。
主要功能点
- Mermaid 转 Excalidraw: 核心功能是将标准的 Mermaid 语法描述的图表(如流程图、时序图等)转换成 Excalidraw 兼容的元素数据。
- 生成PNG图片: 在转换的同时,服务器会生成图表的 PNG 格式图片预览。
- 提供在线预览: 启动一个本地的网页服务器,允许通过浏览器访问生成的 Excalidraw 图表,提供交互式查看体验。
- MCP工具接口: 将图表转换功能封装为标准的 MCP 工具,LLM 客户端可以通过 JSON-RPC 调用此工具。
- 返回丰富内容: 工具调用结果包含转换后的 Excalidraw 数据、生成的 PNG 图片(Base64编码)以及图表预览网页的本地URL。
安装步骤
- 确保环境: 需要安装 Node.js 和 npm(或 yarn/pnpm)。
- 克隆仓库: 从 GitHub 克隆 'al1y/excalidraw-mcp' 仓库到本地。
git clone https://github.com/al1y/excalidraw-mcp.git cd excalidraw-mcp - 安装依赖: 在仓库根目录运行以下命令安装项目依赖。
npm install - 构建应用: 构建 Excalidraw 网页应用,这是服务器运行所需的前端部分。
构建成功后,会在项目根目录生成一个 'dist' 文件夹。npm run build
服务器配置
MCP 服务器通常需要配置到 MCP 客户端(如 Claude Desktop, Cursor, etc.)中,以便客户端知道如何启动并连接到该服务器。配置信息通常是一个 JSON 对象,描述了服务器的名称、启动命令和参数。
您需要在您的 MCP 客户端配置中添加类似如下的条目(具体的配置方式请参考您使用的客户端文档):
// 示例 MCP 客户端配置片段 { "mcpServers": { "excalidraw": { // 自定义服务器名称,用于客户端识别 "command": "node", // 启动服务器的可执行文件 "args": [ // 传递给启动命令的参数 "<repo_root>/build/index.js" // 服务器入口文件路径,将 '<repo_root>' 替换为仓库在您本地的实际路径 ], // 其他可选配置,如 transport (默认为 stdio) } } }
配置中的关键点:
- 'command': 指定执行 'index.js' 文件的命令,这里是 'node'。
- 'args': 包含一个数组,第一个元素是服务器脚本的路径。请务必将 '<repo_root>' 替换为您本地仓库的绝对或相对路径(取决于客户端配置支持)。执行 'npm run build' 会生成 'build/index.js' 文件。
基本使用方法
- 启动服务器: 根据您在 MCP 客户端中的配置启动 MCP 服务器。通常,启动客户端并启用该 MCP 服务器后,客户端会自动执行配置的 'command' 和 'args' 来启动服务器进程。
- 调用工具: 在支持 MCP 工具调用的 LLM 客户端界面中,您可以指令 AI 调用名为 'draw-diagram' 的工具,并提供一个包含 Mermaid 图表语法的字符串作为 'diagram' 参数。
- 例如,您可以对 AI 说:“使用 'draw-diagram' 工具绘制以下流程图:\n”
mermaid\ngraph TD\n A[开始] --> B{判断};
- 例如,您可以对 AI 说:“使用 'draw-diagram' 工具绘制以下流程图:\n
- 接收结果: 服务器执行工具后,会返回一个包含图表图片和预览链接的结果。LLM 客户端会显示这些结果。您可以点击预览链接在浏览器中查看交互式的 Excalidraw 图表,或直接使用返回的图片。
注意事项
- 服务器需要访问互联网以下载 Puppeteer 浏览器。
- 服务器会启动一个本地 HTTP 服务器,请确保防火墙允许本地连接。
- 确保 'npm run build' 命令成功执行,否则服务器脚本 'build/index.js' 不会存在。
信息
分类
AI与计算