Mermaid Diagram Generator MCP 服务器

项目简介

本项目实现了一个 MCP (Model Context Protocol) 服务器,专注于将 Mermaid 图表定义渲染成各种图片格式。它通过工具的方式暴露了 Mermaid 图表生成能力,允许 MCP 客户端调用并获取渲染后的图表。

主要功能点

  • 'render_mermaid' 工具: 将 Mermaid 图表定义渲染为 PNG, SVG 或 PDF 格式的图片。支持直接使用 Mermaid 语法或 Markdown 格式的 Mermaid 代码块。
  • 'dryrun_mermaid' 工具: 验证 Mermaid 图表定义的有效性,但不实际生成图片,用于快速检查语法错误。
  • 标准输入/输出通信: 使用 StdioServerTransport,通过标准输入和标准输出与 MCP 客户端进行 JSON-RPC 通信。

安装步骤

  1. 克隆仓库:
    git clone https://github.com/reblabers/mermaid-mcp.git
    cd mermaid-mcp
  2. 安装依赖:
    npm install
  3. 构建项目:
    npm run build

服务器配置

MCP 客户端需要配置以下信息以连接到此服务器:

{
  "serverName": "mermaid",
  "command": "node",
  "args": ["dist/index.js"]
}
  • 'serverName': 服务器名称,此处为 "mermaid"。
  • 'command': 启动服务器的命令,此处为 'node' (假设你的环境中已安装 Node.js)。
  • 'args': 传递给启动命令的参数,此处为服务器入口文件 'dist/index.js' 的路径。

基本使用方法

  1. 启动服务器: 在项目根目录下运行 'node dist/index.js' (或者由 MCP 客户端根据配置自动启动)。
  2. 客户端调用 'render_mermaid' 工具: MCP 客户端可以使用 'render_mermaid' 工具,并提供 Mermaid 图表定义、输出格式等参数来生成图表。例如,使用 JSON-RPC 请求调用 'render_mermaid' 工具,并传入 diagram (Mermaid 图表定义字符串), format (输出格式,如 "svg", "png", "pdf"), isMarkdown (是否为 Markdown 格式) 等参数。
  3. 客户端调用 'dryrun_mermaid' 工具: MCP 客户端可以使用 'dryrun_mermaid' 工具验证 Mermaid 图表定义的有效性。

示例 (客户端 JSON-RPC 请求):

{
  "jsonrpc": "2.0",
  "method": "call",
  "params": {
    "tool_name": "render_mermaid",
    "arguments": {
      "diagram": "graph LR\nA[Client] --> B[Load Balancer]\nB --> C[Server1]\nB --> D[Server2]",
      "format": "svg"
    }
  },
  "id": 1
}

服务器将返回包含渲染后的 SVG 图表的 JSON-RPC 响应。

{
  "jsonrpc": "2.0",
  "result": {
    "content": [
      {
        "type": "text",
        "text": "<svg ...></svg>"
      }
    ]
  },
  "id": 1
}

信息

分类

开发者工具