mcpField
M
mermaid-render-mcp

mermaid-render-mcp

本地服务
github.com/tci-nebula媒体与设计010 周前更新

关于 mermaid-render-mcp

mermaid-render-mcp 是将 Mermaid 语法转换为图像、PDF 或可编辑 draw.io 文件的 MCP 服务,面向需要图表输出的 LLM 客户端,并提供无需 Chromium 的流程图导出方式。

主要功能

  1. 01渲染 PNG、SVG 和 PDF
  2. 02导出可编辑的 draw.io 流程图
  3. 03设置主题与背景
  4. 04返回 Base64 或写入文件

适用场景

  1. 01将生成的 Mermaid 语法制成图像
  2. 02生成用于打印或提交的 PDF
  3. 03在 draw.io 中编辑流程图
  4. 04在受限环境中导出图表

MCP 相关

它向 MCP 客户端提供 `render_diagram` 工具,接收 Mermaid 语法并返回渲染内容或写入文件。支持本地 stdio 和 Streamable HTTP 传输。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"tci-nebula-mermaid-render": {
"command": "npx",
"args": [
"-y",
"mermaid-render-mcp"
]
}
}
}
启动命令npx -y mermaid-render-mcp

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmmermaid-render-mcp1.3.0

工具

1

收录的工具列表 · 更新于 2 周前

参数类型必填说明
themeenum否图表的视觉主题。default | dark | neutral | forest
widthnumber否画布宽度(像素,仅限 PNG)。
formatenum否输出格式。默认为 png。drawio 会生成可编辑的 draw.io XML 文件(仅限流程图)。png | svg | pdf | drawio
pdfFitboolean否将 PDF 页面缩放至适合图表的大小(仅限 PDF)。
syntaxstring是Mermaid 图表定义(例如 flowchart、sequenceDiagram 等)
backgroundstring否背景颜色(CSS 颜色字符串或 "transparent")。
output_pathstring否用于写入结果的绝对文件路径。提供此路径后,文件将写入磁盘,且不会返回 base64 数据;适用于准备打印或正式提交的文档。

详细介绍

mermaid-mcp

test npm

一个 MCP 服务,可将 Mermaid 图表渲染为 PNG、SVG 或 PDF,也可以将其转换为可编辑的 draw.io 文件。让你的大模型能够将图表语法转换为实际的图像和文档。

快速开始

Claude Code
claude mcp add mermaid -- npx -y mermaid-render-mcp
Claude Desktop

添加到 claude_desktop_config.json:

{
  "mcpServers": {
    "mermaid": {
      "command": "npx",
      "args": ["-y", "mermaid-render-mcp"]
    }
  }
}

**注意:**首次运行时会下载无头 Chromium(约 150 MB),因此初次启动需要几分钟。如果你只需要流程图,并且可以使用可编辑文件,那么 drawio 快速路径完全不需要 Chromium。

Docker

无需下载 Node.js 或 Chromium——镜像已包含所有内容(包括用于日文、中文和韩文标签的 CJK 字体):

claude mcp add mermaid -- docker run -i --rm tcinebula/mermaid-render-mcp

要使用 output_path,请挂载一个主机目录并将文件写入其中:

{
  "mcpServers": {
    "mermaid": {
      "command": "docker",
      "args": ["run", "-i", "--rm", "-v", "C:\\diagrams:/out", "tcinebula/mermaid-render-mcp"]
    }
  }
}

然后传入 output_path: "/out/figure.pdf",文件就会出现在 C:\diagrams 中。

远程 / 可自托管(HTTP)

设置 PORT(或 MCP_TRANSPORT=http)后,同一服务会使用 Streamable HTTP,因此可直接通过 Dockerfile 部署到任意容器主机,例如 Railway、Fly.io:

  • 端点:POST /mcp(健康检查位于 /healthz)
  • 设置 AUTH_TOKEN,以要求提供 Authorization: Bearer <token>
  • HTTP 模式下禁用 output_path;仅返回 base64/XML
从源码运行
git clone https://github.com/tci-nebula/mermaid-mcp.git
cd mermaid-mcp
npm install
claude mcp add mermaid -- node /path/to/mermaid-mcp/server.js

工具:render_diagram

参数类型默认值描述
syntaxstring(必填)Mermaid 图表定义
formatpng | svg | pdf | drawiopng输出格式(drawio = 可编辑的 draw.io XML,仅支持流程图)
themedefault | dark | neutral | forestdefault视觉主题
backgroundstringwhiteCSS 颜色或 transparent
widthnumber1200画布宽度(单位:px,仅适用于 PNG)
pdfFitbooleantrue缩放 PDF 页面以适应图表(仅适用于 PDF)
output_pathstring—将结果写入此文件路径,而不是返回 base64

返回 base64 编码的渲染图像,以便 MCP 客户端内嵌显示;也可以使用 output_path 将文件写入磁盘(适用于要打印或正式提交的 PDF)。

示例

向你的大模型提问:

“为我绘制一个 OAuth 登录流程图”

它会生成 Mermaid 语法、调用 render_diagram,然后返回一个 PNG。

drawio 快速路径(无需 Chromium)

format: "drawio" 是唯一完全不使用浏览器的输出格式。它完全由 JavaScript 实现——解析、使用 dagre 布局、生成 XML——因此无需下载 Chromium,无需安装约 150 MB 的内容,也不会有耗时数分钟的首次运行。转换几乎即时完成。

适用于以下情况:

  • 你希望图表可编辑,而不是扁平图像——每个形状都保留为真正的 draw.io 对象
  • 你使用资源受限的环境(CI、精简容器、受限制的笔记本电脑),不方便下载 Chromium
  • 你只想立即获得图表,不需要栅格图像
{
  "syntax": "flowchart TD\n  A[Start] --> B{OK?}\n  B -->|yes| C[Ship]\n  B -->|no| A",
  "format": "drawio",
  "output_path": "flow.drawio"
}

在 draw.io(或 VS Code 扩展)中打开结果;如果需要图像,可在那里导出为 PNG/SVG/PDF——整个流程完全无需 Chromium。

限制
  • 仅支持流程图。 flowchart 和 graph 图表可以转换;时序图、类图、状态图、ER 图和甘特图会报错。此类图表请使用 PNG/SVG/PDF。
  • theme、background 和 width 会被忽略。 文件打开后,样式由 draw.io 负责。
  • 节点尺寸为估算值,依据标签长度而非实际字体度量。draw.io 打开文件时会重新测量文本,使框的尺寸达到合适状态,但请将原始 XML 几何数据视为近似值。

支持的语法:方向 TD / TB / BT / LR / RL;形状 [rect]、(rounded)、{rhombus}、((circle))、([stadium])、[[subroutine]]、[(cylinder)]、{{hexagon}};边 -->、---、-.->、==>、<-->,每种边都可以带有 |label|。

工作原理

PNG、SVG 和 PDF 渲染会通过 shell 调用 @mermaid-js/mermaid-cli(作为依赖项打包),并使用无头 Chromium 渲染图表。首次运行 npm install 会下载 Chromium(约 150 MB),因此需要几分钟。

draw.io 导出完全由 JavaScript 实现:流程图解析器和 dagre 布局引擎(与 Mermaid 使用的引擎相同)会生成原生 mxGraphModel XML,因此每个形状在 draw.io 中都可以单独编辑。

要求

路线图

  • PDF 导出(正式文档/法律文书工作流)
  • draw.io XML 导出(可编辑图表——流程图)
  • npm 包(mermaid-render-mcp)
  • 远程托管服务选项(Streamable HTTP 传输)

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。