A Model Context Protocol (MCP) server that converts Mermaid diagrams to PNG images
A Model Context Protocol (MCP) server that converts Mermaid diagrams to PNG images. This server allows AI assistants and other applications to generate visual diagrams from textual descriptions using the Mermaid markdown syntax.
The server uses Puppeteer to launch a headless browser, render the Mermaid diagram to SVG, and capture a screenshot of the rendered diagram. The process involves:
npx tsc
To install Mermaid Diagram Generator for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @peng-shawn/mermaid-mcp-server --client claude
"mcpServers": {
"mermaid": {
"command": "npx",
"args": [
npx @peng-shawn/mermaid-mcp-server@0.1.2
]
}
}
env CONTENT_IMAGE_SUPPORTED=false npx @peng-shawn/[email protected]
You can find a list of mermaid diagrams under ./diagrams
, they are created using Cursor agent with prompt: “generate mermaid diagrams and save them in a separate diagrams folder explaining how renderMermaidPng work”
Run the server with inspector for testing and debugging:
npx @modelcontextprotocol/inspector node dist/index.js
The server will start and listen on stdio for MCP protocol messages.
Learn more about inspector here.
The server exposes a single tool:
generate
: Converts Mermaid diagram code to a PNG image
code
: The Mermaid diagram code to rendertheme
: (optional) Theme for the diagram. Options: “default”, “forest”, “dark”, “neutral”backgroundColor
: (optional) Background color for the diagram, e.g. ‘white’, ‘transparent’, ‘#F0F0F0’name
: Name for the generated file (required when CONTENT_IMAGE_SUPPORTED=false)folder
: Absolute path to save the image to (required when CONTENT_IMAGE_SUPPORTED=false)The behavior of the generate
tool depends on the CONTENT_IMAGE_SUPPORTED
environment variable:
CONTENT_IMAGE_SUPPORTED=true
(default): The tool returns the image directly in the responseCONTENT_IMAGE_SUPPORTED=false
: The tool saves the image to the specified folder and returns the file pathCONTENT_IMAGE_SUPPORTED
: Controls whether images are returned directly in the response or saved to disk
true
(default): Images are returned directly in the responsefalse
: Images are saved to disk, requiring name
and folder
parameters// Generate a flowchart with default settings
{
"code": "flowchart TD\n A[Start] --> B{Is it?}\n B -->|Yes| C[OK]\n B -->|No| D[End]"
}
// Generate a sequence diagram with forest theme and light gray background
{
"code": "sequenceDiagram\n Alice->>John: Hello John, how are you?\n John-->>Alice: Great!",
"theme": "forest",
"backgroundColor": "#F0F0F0"
}
// Generate a class diagram and save it to disk
{
"code": "classDiagram\n Class01 <|-- AveryLongClass\n Class03 *-- Class04\n Class05 o-- Class06",
"theme": "dark",
"name": "class_diagram",
"folder": "/path/to/diagrams"
}
Yes, but it doesn’t support the theme
and backgroundColor
options. Plus, having a dedicated server makes it easier to create mermaid diagrams with different MCP clients.
Cursor doesn’t support inline images in responses yet.
MIT
The registry mcp server updates your resume while you code
Model Context Protocol Server for Accessing twitter
Connects MCP to major 3D printer APIs (Orca, Bambu, OctoPrint, Klipper, Duet, Repetier, Prusa, Creality). Control prints, monitor status, and perform advanced STL operations like scaling, rotation, sectional editing, and base extension. Includes slicing and visualization.