Mermaid MCP服务器
](https://badge.fury.io/js/mermaid-mcp-server)
该服务器允许AI助手(如Roo)与Mermaid图交互,检查其语法,将其呈现为SVG格式,并访问文档链接。
特性
- 验证Mermaid语法: 检查提供的Mermaid代码的语法是否正确。
- 渲染为SVG: 将有效的Mermaid代码转换为SVG图像格式。
- 获取文档链接: 提供美人鱼官方文档的链接。
先决条件
- Node.js(建议使用v18或更高版本)
- npm或纱线
- 兼容的MCP客户端(例如Roo-Cline VSCode扩展)
此服务器使用 @mermaid-js/mermaid-cli 在内部,它依赖于Puppeteer来渲染图表。如果找不到兼容版本的Chromium,Puppeteer将下载它。确保在第一次运行或更新依赖关系时具有网络连接。
安装
您可以在项目中全局或本地安装此服务器。然而,对于像Roo-Cline这样的MCP客户端,它通常是通过客户端的设置文件配置的,而不是直接安装到您的开发项目中。
与Roo Cline一起使用(推荐):
- 全局安装软件包(如果本地安装,请记下路径):
npm install -g mermaid-mcp-server*(或者,如果您克隆此存储库并构建它,请记下指向的绝对路径 build/index.js 文件。)*
- 配置Roo-Cline:
打开Roo Cline的MCP设置文件。位置取决于您的操作系统和VSCode设置:
- macOS: ~/Library/Application Support/Code/User/globalStorage/rooveterinaryinc.roo-cline/settings/mcp_settings.json - 窗户: %APPDATA%\Code\User\globalStorage\rooveterinaryinc.roo-cline\settings\mcp_settings.json - Linux: ~/.config/Code/User/globalStorage/rooveterinaryinc.roo-cline/settings/mcp_settings.json
将以下配置添加到 mcpServers 对象:
{
"mcpServers": {
// ... other servers
"mermaid-mcp-server": {
// If installed globally:
"command": "mermaid-mcp-server",
// If built from source, use the absolute path:
// "command": "node",
// "args": ["/absolute/path/to/mermaid-mcp-server/build/index.js"],
"disabled": false,
"alwaysAllow": [] // Add tool names here if you want to skip confirmation
}
// ... other servers
}
}*替换 /absolute/path/to/mermaid-mcp-server/build/index.js 如果从源代码构建服务器,则使用实际路径。*
- 重新启动VSCode 或者重新加载窗口以确保Roo-Cline获取新的服务器配置。
可用工具
配置后,AI助手将可以使用以下工具:
validate_mermaid:
- 说明: 无需渲染即可验证Mermaid语法。 - 输入: { "mermaid_code": "string" } - 输出: 带有错误详细信息的表示成功或失败的文本。
render_mermaid_svg:
- 说明: 将Mermaid代码渲染为SVG格式。 - 输入: { "mermaid_code": "string" } - 输出: SVG内容为文本(mimeType: 'image/svg+xml')或错误消息。
get_mermaid_docs_link:
- 说明: 获取美人鱼官方文档的链接。 - 输入: {} (无需输入) - 输出: 包含URL的文本。
发展
- 克隆存储库:
git clone https://github.com/TanisukeGoro/mermaid-mcp-server.git
cd mermaid-mcp-server- 安装依赖项:
npm install- 构建服务器:
npm run build*(使用 npm run watch 用于开发过程中的自动重建。)*
- 使用MCP检查员进行测试:
npm run inspector贡献
欢迎投稿!请打开问题或提交拉取请求。
