关于 The
mermaider 是用于检查 Mermaid 图表语法的 MCP 服务,适合使用 AI 助手生成图表的用户。它通过 Mermaid 浏览器 API 验证语法,并在多次调用间复用无头浏览器页面。
主要功能
- 01验证 Mermaid 图表语法
- 02多次调用间复用浏览器页面
- 03使用已安装的 Chrome 系或 Firefox 浏览器
适用场景
- 01检查 AI 生成的 Mermaid 图表
- 02在使用图表前发现语法错误
MCP 相关
向 MCP 客户端提供 `validate_syntax` 工具,用于检查 Mermaid 图表语法。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
mermaider MCP 服务:快速、可靠的 Mermaid 图表语法检查器
目录
概述
mermaider 是一个 MCP 服务,提供 validate_syntax 工具,用于检查所有类型的 Mermaid 图表是否存在语法错误。
为此,它直接使用 puppeteer-core package 和 mermaid-js/mermaid API,高效地调用已安装的 Chrome 内核或 Firefox 浏览器。
高效意味着:
- 只要此 MCP 服务进程处于活动状态,浏览器(打开一个新页面)就会以无头模式(默认)启动并保持运行,从而实现低延迟的工具调用。
- 每次调用
validate_syntax工具时,都会复用浏览器和页面。
为什么要使用浏览器?
遗憾的是,mermaid-js/mermaid 的功能依赖完整的浏览器上下文(DOM),即使只是解析图表也是如此。像 happy-dom 或 jsdom 这样的 package 并不完全够用。
mermaider 使用相对轻量的 puppeteer-core package(而非完整的 puppeteer)来访问已安装的浏览器。
大模型的语法问题
现代大模型通常完全能够生成 Mermaid 图表,但往往缺乏可靠检查所生成语法的能力。这正是 mermaider MCP 发挥作用的地方。
mermaider 有何不同?
还有其他 MCP 服务 可以(在一定程度上)验证 Mermaid 语法,不过它们通常会在每次(由大模型)调用相应工具时启动 mmdc 命令行工具进程。
这会带来几个问题:
-
速度:每次调用工具都启动
mmdc进程(随后它还会启动浏览器),既慢又耗费资源。 -
非确定性:
mmdc的真正用途是生成图像,而非验证语法。因此,对于语法错误的图表,它偶尔会以 0 代码退出并生成图像(如下图所示),而不是以非零代码退出并向STDERR输出错误消息。在这种情况下,使用mmdc的 MCP 服务无从得知发生了错误,因此你最终会得到一堆这样的图像,而不是图表。
-
副作用:
mmdc可能会在你不知情的情况下安装 Chrome 浏览器,因为这是 puppeteer 的默认行为,引用如下:安装 Puppeteer 时,它会自动下载一个较新的 Chrome for Testing 版本(macOS 约 170MB、Linux 约 282MB、Windows 约 280MB),以及一个 chrome-headless-shell 二进制文件(从 Puppeteer v21.6.0 开始),并保证其可与 Puppeteer 配合使用。默认情况下,浏览器会下载到 $HOME/.cache/puppeteer 文件夹(从 Puppeteer v19.0.0 开始)。请参阅配置,了解可用于控制下载行为的配置选项和环境变量。
安装
通常,MCP 客户端应使用以下命令:
npx -y @vtomilin/mermaider <config>
其中,<config> 可以是内联 JSON 字符串,也可以是配置文件路径,例如:
npx -y @vtomilin/mermaider '{"executablePath": "/Applications/FirefoxDeveloperEdition.app/Contents/MacOS/firefox", "browser": "firefox"}'
或者:
npx -y @vtomilin/mermaider /home/user/etc/Firefox.json
其中,/home/user/etc/Firefox.json 是一个 JSON 文件,包含配置,例如 Firefox 浏览器的配置:
{
"executablePath": "/Applications/FirefoxDeveloperEdition.app/Contents/MacOS/firefox",
"browser": "firefox"
}
另一个配置文件示例,使用 Brave(基于 Chrome)浏览器:
{
"executablePath": "/Applications/Brave Browser.app/Contents/MacOS/Brave Browser"
}
Puppeteer 的浏览器 Launchoptions 中定义的所有可用配置选项。
VSCode
按下 Cmd-Shift-P(或 Ctrl-Shift-P),然后选择 MCP: Add Server...。选择 Command (stdio) Run a local command that implements the MCP protocol。输入 npx -y @vtomilin/mermaider /home/user/etc/Firefox.json(或其他配置方式)。输入服务名称(mermaider)。然后就可以开始使用了。
Cursor/Windsuf/...
{
"mcpServers": {
"mermaider": {
"command": "npx",
"args": ["-y", "@vtomilin/mermaider", "/home/user/etc/Firefox.json"]
}
}
}
Bun
尽管此项目使用 Bun 构建,但目前无法直接通过 bunx 运行 mermaider 包。你需要先使用 bun add -g @vtomilin/mermaider 全局安装该包。之后可以直接使用 mermaider-bun 可执行文件运行服务:
{
"mcpServers": {
"mermaider": {
"command": "mermaider-bun",
"args": ["/home/user/etc/Firefox.json"]
}
}
}
建议
- 查看 Puppeteer 支持的浏览器列表,了解支持的浏览器。
- 为
mermaiderMCP 使用备用浏览器。请勿使用你的主浏览器。
使用示例
使用 VSCode 中的 Github Copilot 的示例会话:
-
生成图表并使用
mermaider检查其语法:
-
生成有意损坏的图表并使用
mermaider检查其语法:
参考
其他与 Mermaid 相关的 MCP 服务
- mcp-mermaid-validator:一个用于验证和渲染 Mermaid 图表的模型上下文协议服务。
- mermaid-mcp-server:一个提供工具以验证和渲染 Mermaid 图表的模型上下文协议(MCP)服务。
许可证
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。