mermaid-mcp
The mermaid-mcp server renders Mermaid diagram syntax into images (PNG, SVG), PDF documents, and editable draw.io XML files (flowcharts only).
Render to PNG: Convert diagrams to PNG with configurable canvas width, theme, and background color.
Render to SVG: Export diagrams as scalable vector graphics.
Render to PDF: Generate PDF documents with an option to auto-fit the diagram to the page.
Export to draw.io XML: Transform Mermaid flowcharts into editable
.drawiofiles where each shape remains individually editable (flowcharts only).Customize appearance: Apply themes (
default,dark,neutral,forest) and set background colors (any CSS color ortransparent).Output options: Return results as base64-encoded data (default) for inline display, or save directly to a specified file path on disk.
Renders Mermaid diagram definitions to PNG, SVG, PDF, or editable draw.io XML with configurable themes, background, width, and optional file output.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mermaid-mcpDraw me a flowchart of the OAuth login flow"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
mermaid-mcp
An MCP server that renders Mermaid diagrams to PNG, SVG, or PDF — or converts them to editable draw.io files. Give your LLM the ability to turn diagram syntax into actual images and documents.
Quick start
Claude Code
claude mcp add mermaid -- npx -y mermaid-render-mcpClaude Desktop
Add to claude_desktop_config.json:
{
"mcpServers": {
"mermaid": {
"command": "npx",
"args": ["-y", "mermaid-render-mcp"]
}
}
}Note: the first run downloads headless Chromium (~150 MB), so the initial startup takes a few minutes. If you only need flowcharts and can work with editable files, the
drawiofast path skips Chromium entirely.
Docker
No Node.js or Chromium download needed — the image ships with everything (including CJK fonts for Japanese/Chinese/Korean labels):
claude mcp add mermaid -- docker run -i --rm tcinebula/mermaid-render-mcpTo use output_path, mount a host directory and write into it:
{
"mcpServers": {
"mermaid": {
"command": "docker",
"args": ["run", "-i", "--rm", "-v", "C:\\diagrams:/out", "tcinebula/mermaid-render-mcp"]
}
}
}Then pass output_path: "/out/figure.pdf" and the file appears in C:\diagrams.
Remote / self-hosted (HTTP)
The same server speaks Streamable HTTP when PORT is set (or MCP_TRANSPORT=http), so it can be deployed to any container host — Railway, Fly.io, etc. — straight from the Dockerfile:
Endpoint:
POST /mcp(health check at/healthz)Set
AUTH_TOKENto requireAuthorization: Bearer <token>output_pathis disabled in HTTP mode; base64/XML responses only
From source
git clone https://github.com/tci-nebula/mermaid-mcp.git
cd mermaid-mcp
npm install
claude mcp add mermaid -- node /path/to/mermaid-mcp/server.jsRelated MCP server: Mermaid-MCP
Tool: render_diagram
Parameter | Type | Default | Description |
| string | (required) | Mermaid diagram definition |
|
|
| Output format ( |
|
|
| Visual theme |
| string |
| CSS colour or |
| number |
| Canvas width in px (PNG only) |
| boolean |
| Scale the PDF page to fit the diagram (PDF only) |
| string | — | Write the result to this file path instead of returning base64 |
Returns the rendered image as base64-encoded data so MCP clients can display it inline — or, with output_path, writes the file to disk (handy for PDFs destined for printing or formal document submission).
Example
Ask your LLM:
"Draw me a flowchart of the OAuth login flow"
It generates the Mermaid syntax, calls render_diagram, and you get back a PNG.
The drawio fast path (no Chromium)
format: "drawio" is the one output that never touches a browser. It's pure JavaScript — parse, lay out with dagre, emit XML — so there's no Chromium download, no ~150 MB install, and no multi-minute first run. Conversion is effectively instant.
Reach for it when:
you want the diagram editable rather than flat — every shape stays a real draw.io object
you're on a constrained box (CI, a slim container, a locked-down laptop) where downloading Chromium isn't practical
you just want the diagram now and don't need a raster image
{
"syntax": "flowchart TD\n A[Start] --> B{OK?}\n B -->|yes| C[Ship]\n B -->|no| A",
"format": "drawio",
"output_path": "flow.drawio"
}Open the result in draw.io (or the VS Code extension) and export to PNG/SVG/PDF from there if you do need an image — that's a complete Chromium-free round trip.
Limits
Flowcharts only.
flowchartandgraphdiagrams convert; sequence, class, state, ER, and gantt throw an error. Use PNG/SVG/PDF for those.theme,background, andwidthare ignored. Styling is draw.io's job once the file is open.Node sizes are estimated from label length, not measured font metrics. draw.io re-measures text when it opens the file so boxes settle correctly — but treat the raw XML geometry as approximate.
Supported syntax: directions TD / TB / BT / LR / RL; shapes [rect], (rounded), {rhombus}, ((circle)), ([stadium]), [[subroutine]], [(cylinder)], {{hexagon}}; edges -->, ---, -.->, ==>, <-->, each optionally carrying a |label|.
How it works
PNG, SVG, and PDF rendering shells out to @mermaid-js/mermaid-cli (bundled as a dependency), which uses a headless Chromium to render diagrams. First npm install downloads Chromium (~150 MB), so it takes a few minutes.
draw.io export is pure JavaScript — a flowchart parser plus dagre layout (the same engine Mermaid uses) emit native mxGraphModel XML, so every shape stays individually editable in draw.io.
Requirements
Node.js 18+
Roadmap
PDF export (formal/legal document workflows)
draw.io XML export (editable diagrams — flowcharts)
npm package (
mermaid-render-mcp)Remote-hosted server option (Streamable HTTP transport)
License
Maintenance
Tools
Related MCP Servers
- AlicenseBqualityCmaintenanceA Model Context Protocol (MCP) server that converts Mermaid diagrams to PNG images.1360233MIT
- AlicenseNot gradedqualityDmaintenanceAn MCP server that converts text inputs into visualized flowcharts, enabling AI clients to generate high-quality Mermaid diagrams directly from natural language descriptions or structured text.11MIT
- AlicenseAqualityDmaintenanceAn MCP server that generates diagrams from Mermaid code in multiple formats (PNG, PDF, SVG).21MIT
- FlicenseNot gradedqualityDmaintenanceMCP server that generates Mermaid diagrams with live browser preview, supports real-time rendering and SVG/PNG export.12
Related MCP Connectors
MCP server for Flux AI image generation
MCP server for generating rough-draft project plans from natural-language prompts.
MCP server for AI dialogue using various LLM models via AceDataCloud
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/tci-nebula/mermaid-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server