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

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