Mermaid SVG MCP Server
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>blockClean API: Simple, focused tool interface
Puppeteer-Based: Uses headless browser for reliable rendering
Installation
From npm (Recommended)
npm install -g mermaid-svg-mcpFrom source
git clone <repository-url>
cd mermaid-svg-mcp
npm install
npm run buildUsage
As MCP Server
Add to your MCP client configuration (typically in mcp.json or Claude Desktop config):
Using npx (recommended - no global install needed):
{
"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 syntaxtheme(optional): Theme name - one of: default, base, forest, dark, neutralbackgroundColor(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 appearancesvgDefs(optional): Raw SVG markup injected into the<defs>block — use for gradients, patterns, filters, markers, etc. Reference them incustomCSSviaurl(#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 |
| Flowchart node backgrounds |
| Circular nodes |
| Diamond/decision nodes |
| Node label text |
| Text on edges/arrows |
| Edge/arrow lines |
| Subgraph backgrounds |
| Sequence diagram messages |
| Gantt chart task labels |
| 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 versionComparison 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
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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