使用说明
Mermaid MCP服务器
A. 模型上下文协议(MCP) 提供验证和呈现工具的服务器 美人鱼 图表。
该服务器允许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如果从源代码构建服务器,则使用实际路径。 - macOS:
-
重新启动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
贡献
欢迎投稿!请打开问题或提交拉取请求。
