用途
claude-mermaid 是一个 MCP(Model Context Protocol)服务器,用于在 Claude Code 中渲染 Mermaid 图表,并带有实时重载功能与内置的专家指导技能。它会在浏览器中自动渲染图表,并随着你的修改实时更新,适合迭代式图表开发与文档工作流。
主要能力
- 实时重载:编辑图表时,浏览器中的图表自动刷新。
- 多种保存格式:可导出为 SVG、PNG 或 PDF。
- 主题:可选择 default、forest、dark 或 neutral 主题。
- 可自定义:可控制尺寸、缩放和背景颜色。
- 交互式预览:可拖拽平移图表、使用浏览器缩放、一键重置位置。
- 浏览器导出:可直接从预览界面下载 SVG 或 PNG。
- 多预览:使用 preview_id 同时处理多个图表。
- 持久化工作文件:实时预览存储在
~/.config/claude-mermaid/live下。 - 内置技能:包含一个 Claude 技能,提供创建图表的最佳实践和专家指导。
安装方式
插件安装(推荐)
在 Claude Code 中添加 marketplace 并安装插件,然后重启 Claude Code 以激活插件。
验证安装:
插件安装:MCP 服务器会自动配置,只需验证 MCP 服务器列表中出现 mermaid 即可。
npm 安装:需手动配置 MCP 服务器,验证后应显示 mermaid: claude-mermaid - ✓ Connected。
其他 MCP 客户端配置
虽然该服务器针对 Claude Code 优化,但也可用于任何 MCP 兼容客户端,例如 Codex、Cursor、Cline(VSCode 扩展)、Windsurf、Gemini CLI 等。对于任何 MCP 兼容客户端,使用标准配置,命令 claude-mermaid 应在安装后位于 PATH 中。
注意:某些客户端可能需要可执行文件的完整路径。可通过 which claude-mermaid(Unix/macOS)或 where claude-mermaid(Windows)查找路径,并在配置中使用绝对路径。
使用方式
直接要求 Claude Code 自然地创建 Mermaid 图表。当作为插件安装时,内置的 mermaid-diagrams 技能会提供专家指导、最佳实践和自动工作流管理。
工具与参数:
MCP 服务器暴露两个工具:
-
mermaid_preview:渲染并打开实时预览diagram(字符串,必填):Mermaid 图表代码preview_id(字符串,必填):本次预览会话的标识符,用于同时处理多个图表(如 architecture、flow)format(字符串,默认 svg):可选 svg、png、pdf。实时预览仅支持 svg。theme(字符串,默认 default):可选 default、forest、dark、neutral。background(字符串,默认 white):背景色,例如 transparent、white、#F0F0F0。width(数字,默认 800):图表宽度(像素)。height(数字,默认 600):图表高度(像素)。scale(数字,默认 2):缩放因子,用于更高品质输出。
-
mermaid_save:将当前实时图表保存到指定路径save_path(字符串,必填):目标路径(如 ./docs/diagram.svg)。preview_id(字符串,必填):必须与 mermaid_preview 中使用的 preview_id 匹配。format(字符串,默认 svg):可选 svg、png、pdf。如果该格式的实时工作文件尚不存在,会在保存前按需渲染。
实时重载工作原理:
- 首次渲染:在浏览器中打开
http://localhost:3737/{preview_id} - 做出修改:通过 Claude Code 编辑图表
- 自动刷新:浏览器通过 WebSocket 检测变更并重新加载
- 状态指示:绿点 = 已连接,红点 = 正在重连
实时服务器使用端口 3737-3747,会自动寻找可用端口。
实时预览控制:
- 平移:点击并拖拽图表移动
- 缩放:使用浏览器缩放(Ctrl/Cmd + +/- 或触控板捏合缩放)
- 重置位置:点击状态栏中的 ⊙ 按钮重新居中图表
- 导出:点击 ⬇ 按钮下载 SVG 或 PNG
实时预览仅支持 svg 格式;PNG/PDF 渲染时无实时重载。
对于序列图,Mermaid 不支持在 sequenceDiagram 内部使用样式指令。
独立服务器:
可以使用 --serve 标志在不使用 AI 代理的情况下启动预览服务器,这会在浏览器中打开图表库,包含所有先前渲染的图表,适用于在 Claude Code 会话之外浏览和导出图表。
适用场景
- 迭代式图表开发
- 文档工作流
- 需要同时维护多个图表的场景
- 需要导出多种格式(SVG、PNG、PDF)的图表
限制
- 实时预览仅支持 svg 格式。
- 序列图不支持在 sequenceDiagram 内部使用样式指令。
- 某些客户端可能需要可执行文件的完整路径。
故障排除
- 错误:Cannot find package 'puppeteer':这是罕见的环境特定问题。可尝试全局安装
npm install -g claude-mermaid,或重新安装插件(/plugin uninstall claude-mermaid,然后/plugin install claude-mermaid@claude-mermaid)。 - 服务器未连接:
- 权限被拒绝错误:
- 端口已被占用:服务器使用端口 3737-3747,会自动寻找可用端口。可用
lsof -i :3737-3747检查占用。 - 图表未渲染或实时重载不工作:服务器日志位于
~/.config/claude-mermaid/logs/,其中mcp.log记录工具请求和图表渲染,web.log记录 HTTP/WebSocket 连接和实时重载。可在 MCP 配置中启用调试日志。可用日志级别:DEBUG、INFO(默认)、WARN、ERROR、OFF。
其他信息
- 欢迎贡献,可提交 Pull Request。
- 许可证:MIT,详见 LICENSE 文件。
- 相关项目:preview-skills——用于在浏览器中可视化文件(markdown、csv、json、mermaid 等)的预览技能。
- 托管部署可在 Fronteir AI 上获得。