Skip to main content
Glama

Mermaid SVG MCP Server

A simplified Model Context Protocol (MCP) server that generates SVG files from Mermaid diagram syntax. This is a streamlined version focused solely on SVG generation, without the complexity of multiple export formats.

Features

  • Single Focus: Only generates SVG output - no base64, PNG, or file outputs

  • Theme Support: Supports 5 built-in Mermaid themes (default, base, forest, dark, neutral)

  • Background Colors: Customizable background colors for diagrams

  • Custom Filenames: Optional filename parameter for controlling output file names

  • Custom CSS Styling: Inject custom CSS to style nodes, edges, labels, and more

  • SVG Defs Injection: Add custom gradients, patterns, filters, and markers via the <defs> block

  • Clean API: Simple, focused tool interface

  • Puppeteer-Based: Uses headless browser for reliable rendering

Installation

npm install -g mermaid-svg-mcp

From source

git clone <repository-url>
cd mermaid-svg-mcp
npm install
npm run build

Usage

As MCP Server

Add to your MCP client configuration (typically in mcp.json or Claude Desktop config):

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

Using global install:

{
  "mcpServers": {
    "mermaid-svg": {
      "command": "mermaid-svg-mcp"
    }
  }
}

Using local development version:

{
  "mcpServers": {
    "mermaid-svg": {
      "command": "node",
      "args": ["/path/to/mermaid-svg-mcp/dist/index.js"]
    }
  }
}

Tool Interface

The server provides a single tool: generate_mermaid_svg

Parameters:

  • mermaid (required): The Mermaid diagram syntax

  • theme (optional): Theme name - one of: default, base, forest, dark, neutral

  • backgroundColor (optional): CSS color value for background (default: "white")

  • filename (optional): Custom filename for the SVG file (without extension)

  • customCSS (optional): Custom CSS styles injected into the SVG's <style> block for fine-grained control over diagram appearance

  • svgDefs (optional): Raw SVG markup injected into the <defs> block — use for gradients, patterns, filters, markers, etc. Reference them in customCSS via url(#id)

Example:

{
  "mermaid": "graph TD\\n    A[Start] --> B{Decision}\\n    B -->|Yes| C[Success]\\n    B -->|No| D[Try Again]\\n    D --> A",
  "theme": "dark",
  "backgroundColor": "#f0f0f0",
  "filename": "my-flowchart"
}

Example with Custom CSS:

{
  "mermaid": "graph TD\\n    A[Start] --> B[End]",
  "customCSS": ".node rect { fill: #ff6347; stroke: #333; } .edgeLabel { font-size: 14px; font-weight: bold; }"
}

Example with Gradient Borders (svgDefs + customCSS):

{
  "mermaid": "graph TD\\n    A[Start] --> B{Decision}\\n    B -->|Yes| C[Success]\\n    B -->|No| D[Retry]",
  "svgDefs": "<linearGradient id=\"borderGrad\" x1=\"0%\" y1=\"0%\" x2=\"100%\" y2=\"100%\"><stop offset=\"0%\" stop-color=\"#ff6347\"/><stop offset=\"100%\" stop-color=\"#4CAF50\"/></linearGradient>",
  "customCSS": ".node rect, .node polygon { stroke: url(#borderGrad); stroke-width: 3px; }"
}

Returns:

  • Saves SVG file to disk with specified or auto-generated filename

  • Returns confirmation message with file path

Common CSS Selectors

When using customCSS, these selectors target common Mermaid diagram elements:

Selector

Target

.node rect

Flowchart node backgrounds

.node circle

Circular nodes

.node polygon

Diamond/decision nodes

.label

Node label text

.edgeLabel

Text on edges/arrows

.edgePath path

Edge/arrow lines

.cluster rect

Subgraph backgrounds

.messageText

Sequence diagram messages

.taskText

Gantt chart task labels

.entityBox

ER diagram entity boxes

Supported Diagram Types

All standard Mermaid diagram types are supported:

  • Flowcharts

  • Sequence diagrams

  • Class diagrams

  • State diagrams

  • ER diagrams

  • User journey

  • Gantt charts

  • Pie charts

  • And more...

Development

npm run dev    # Run in development mode
npm run build  # Build for production
npm start      # Run built version

Comparison with Original MCP

This simplified version removes:

  • Multiple output formats (base64, file, URL generation)

  • File system operations

  • Complex configuration options

  • PNG rendering options

And focuses on:

  • Clean SVG-only output

  • Simple parameter interface

  • Reliable rendering

  • Minimal dependencies

License

MIT

Install Server
A
security – no known vulnerabilities
F
license - not found
A
quality - confirmed to work

Resources

Looking for Admin?

Admins can modify the Dockerfile, update the server description, and track usage metrics. If you are the server author, to access the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/jagadeesh52423/mermaid-svg-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server