mermaid-mcp-server
Mermaid MCP-Server
Ein Model Context Protocol (MCP)-Server, der Mermaid-Diagramme in PNG-Bilder konvertiert. Dieser Server ermöglicht es KI-Assistenten und anderen Anwendungen, visuelle Diagramme aus Textbeschreibungen mithilfe der Mermaid-Markdown-Syntax zu generieren.
Merkmale
Konvertiert den Mermaid-Diagrammcode in PNG-Bilder
Unterstützt mehrere Diagrammthemen (Standard, Wald, Dunkel, Neutral)
Anpassbare Hintergrundfarben
Verwendet Puppeteer für hochwertiges Headless-Browser-Rendering
Implementiert das MCP-Protokoll für die nahtlose Integration mit KI-Assistenten
Flexible Ausgabeoptionen: Bilder direkt zurückgeben oder auf der Festplatte speichern
Fehlerbehandlung mit detaillierten Fehlermeldungen
Related MCP server: Mermaid MCP Server
Wie es funktioniert
Der Server verwendet Puppeteer, um einen Headless-Browser zu starten, das Mermaid-Diagramm in SVG zu rendern und einen Screenshot des gerenderten Diagramms zu erstellen. Der Prozess umfasst:
Starten einer Headless-Browserinstanz
Erstellen einer HTML-Vorlage mit dem Mermaid-Code
Laden der Mermaid.js-Bibliothek
Rendern des Diagramms in SVG
Erstellen eines Screenshots des gerenderten SVG als PNG
Entweder das Bild direkt zurückgeben oder auf der Festplatte speichern
Bauen
npx tscVerwendung
Verwendung mit Claude Desktop
"mcpServers": {
"mermaid": {
"command": "npx",
"args": [
"-y @peng-shawn/mermaid-mcp-server"
]
}
}Verwendung mit Cursor und Cline
env CONTENT_IMAGE_SUPPORTED=false npx -y @peng-shawn/mermaid-mcp-serverSie finden eine Liste mit Meerjungfrauendiagrammen unter ./diagrams . Sie werden mit dem Cursor-Agenten mit der Eingabeaufforderung erstellt: „Meerjungfrauendiagramme erstellen und in einem separaten Diagrammordner speichern, in dem erklärt wird, wie renderMermaidPng funktioniert.“
Mit Inspektor ausführen
Führen Sie den Server zum Testen und Debuggen mit Inspector aus:
npx @modelcontextprotocol/inspector node dist/index.jsDer Server wird gestartet und wartet auf stdio auf MCP-Protokollnachrichten.
Erfahren Sie hier mehr über Inspector.
Installation über Smithery
So installieren Sie Mermaid Diagram Generator für Claude Desktop automatisch über Smithery :
npx -y @smithery/cli install @peng-shawn/mermaid-mcp-server --client claudeDocker- und Smithery-Umgebungen
Beim Ausführen in Docker-Containern (einschließlich über Smithery) müssen Sie möglicherweise Chrome-Abhängigkeiten verarbeiten:
Der Server versucht nun standardmäßig, den mitgelieferten Browser von Puppeteer zu verwenden
Wenn browserbezogene Fehler auftreten, haben Sie zwei Möglichkeiten:
Option 1: Während der Erstellung des Docker-Images:
Setzen Sie
PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=truebei der Installation von PuppeteerInstallieren Sie Chrome/Chromium in Ihrem Docker-Container
Legen Sie
PUPPETEER_EXECUTABLE_PATHzur Laufzeit fest, um auf die Chrome-Installation zu verweisen
Option 2: Verwenden Sie das mitgelieferte Chrome von Puppeteer:
Stellen Sie sicher, dass Ihr Docker-Container über die erforderlichen Abhängigkeiten für Chrome verfügt.
PUPPETEER_SKIP_CHROMIUM_DOWNLOADmuss nicht festgelegt werdenDer Code verwendet automatisch den mitgelieferten Browser
Für Smithery-Benutzer sollte die neueste Version ohne zusätzliche Konfiguration funktionieren.
API
Der Server stellt ein einzelnes Tool bereit:
generate: Konvertiert den Mermaid-Diagrammcode in ein PNG-BildParameter:
code: Der zu rendernde Code des Meerjungfrau-Diagrammstheme: (optional) Thema für das Diagramm. Optionen: "Standard", "Wald", "Dunkel", "Neutral"backgroundColor: (optional) Hintergrundfarbe für das Diagramm, zB 'weiß', 'transparent', '#F0F0F0'name: Name der generierten Datei (erforderlich, wenn CONTENT_IMAGE_SUPPORTED=false)folder: Absoluter Pfad zum Speichern des Bildes (erforderlich, wenn CONTENT_IMAGE_SUPPORTED=false)
Das Verhalten des generate hängt von der Umgebungsvariable CONTENT_IMAGE_SUPPORTED ab:
Wenn
CONTENT_IMAGE_SUPPORTED=true(Standard): Das Tool gibt das Bild direkt in der Antwort zurückWenn
CONTENT_IMAGE_SUPPORTED=false: Das Tool speichert das Bild im angegebenen Ordner und gibt den Dateipfad zurück
Umgebungsvariablen
CONTENT_IMAGE_SUPPORTED: Steuert, ob Bilder direkt in der Antwort zurückgegeben oder auf der Festplatte gespeichert werdentrue(Standard): Bilder werden direkt in der Antwort zurückgegebenfalse: Bilder werden auf der Festplatte gespeichert und erfordern die Parameternameundfolder.
Beispiele
Grundlegende Verwendung
// 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]"
}Mit Design und Hintergrundfarbe
// 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"
}Auf Festplatte speichern (wenn CONTENT_IMAGE_SUPPORTED=false)
// 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"
}Häufig gestellte Fragen
Unterstützt Claude Desktop Mermaid nicht bereits über Canvas?
Ja, aber die Optionen theme und backgroundColor werden nicht unterstützt. Außerdem erleichtert ein dedizierter Server die Erstellung von Meerjungfrauendiagrammen mit verschiedenen MCP-Clients.
Warum muss ich bei Verwendung mit Cursor CONTENT_IMAGE_SUPPORTED=false angeben?
Cursor unterstützt noch keine Inline-Bilder in Antworten.
Veröffentlichen
Dieses Projekt verwendet GitHub Actions, um den Veröffentlichungsprozess in npm zu automatisieren.
Methode 1: Verwenden des Release-Skripts (empfohlen)
Stellen Sie sicher, dass alle Ihre Änderungen übernommen und übertragen werden
Führen Sie das Release-Skript entweder mit einer bestimmten Versionsnummer oder einem semantischen Versionsinkrement aus:
# Using a specific version number npm run release 0.1.4 # Using semantic version increments npm run release patch # Increments the patch version (e.g., 0.1.3 → 0.1.4) npm run release minor # Increments the minor version (e.g., 0.1.3 → 0.2.0) npm run release major # Increments the major version (e.g., 0.1.3 → 1.0.0)Das Skript wird:
Validieren Sie das Versionsformat oder das semantische Inkrement
Überprüfen Sie, ob Sie sich im Hauptzweig befinden
Erkennen und warnen Sie vor Versionskonflikten zwischen Dateien
Aktualisieren Sie alle Versionsreferenzen konsistent (package.json, package-lock.json und index.ts).
Erstellen Sie ein einzelnes Commit mit allen Versionsänderungen
Erstellen und pushen Sie einen Git-Tag
Der GitHub-Workflow wird dann automatisch erstellt und auf npm veröffentlicht
Methode 2: Manueller Prozess
Aktualisieren Sie Ihren Code und übernehmen Sie die Änderungen
Erstellen und pushen Sie ein neues Tag mit der Versionsnummer:
git tag v0.1.4 # Use the appropriate version number git push origin v0.1.4Der GitHub-Workflow führt automatisch Folgendes aus:
Erstellen des Projekts
Veröffentlichen Sie in npm mit der Version aus dem Tag
Hinweis: Sie müssen das NPM_TOKEN Geheimnis in den Einstellungen Ihres GitHub-Repositorys einrichten. Gehen Sie dazu wie folgt vor:
Generieren Sie ein NPM-Zugriffstoken mit Veröffentlichungsberechtigungen
Gehen Sie zu Ihrem GitHub-Repository → Einstellungen → Geheimnisse und Variablen → Aktionen
Erstellen Sie ein neues Repository-Geheimnis mit dem Namen
NPM_TOKENund Ihrem NPM-Token als Wert.
Abzeichen
Lizenz
MIT
Available Tools
1 toolgenerateC
Generate PNG image or SVG from mermaid markdown
| Name | Required | Description | Default |
|---|---|---|---|
| backgroundColor | No | Background color for the diagram, e.g. 'white', 'transparent', '#F0F0F0' (optional) | |
| code | Yes | The mermaid markdown to generate an image from | |
| folder | No | Absolute path to save the image to (optional) | |
| name | No | Name of the diagram (optional) | |
| outputFormat | No | Output format for the diagram (optional, defaults to 'png') | |
| theme | No | Theme for the diagram (optional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions the tool generates images from mermaid markdown but doesn't cover important behavioral aspects like file system interactions (saving to a folder), performance characteristics, error handling, or any side effects. For a tool that writes files, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise—a single sentence that directly states the tool's function without any fluff. It's front-loaded and efficiently communicates the core purpose, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (6 parameters, file output, no output schema) and lack of annotations, the description is insufficient. It doesn't explain what the tool returns, how errors are handled, or the implications of optional parameters like 'folder'. For a generative tool with file system operations, more context is needed for safe and effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, meaning all parameters are well-documented in the schema itself. The description doesn't add any meaningful parameter semantics beyond what's already in the schema (e.g., it doesn't explain parameter interactions or provide examples). This meets the baseline for high schema coverage but doesn't enhance understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Generate PNG image or SVG from mermaid markdown'. It specifies the verb ('Generate'), resource ('PNG image or SVG'), and source material ('mermaid markdown'), making the function unambiguous. However, since there are no sibling tools mentioned, it doesn't need to distinguish from alternatives, so it doesn't reach the highest score of 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, prerequisites, or context. It simply states what the tool does without indicating scenarios where it's appropriate or any limitations. This lack of usage context leaves the agent without operational guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
v1.0.0- First observed
generate
TDQS
Scored across 1 tool
With only one tool, there is no possibility of ambiguity or overlap between tools. The tool's purpose is clearly defined and distinct by default.
A single tool inherently has perfect naming consistency, as there are no other tools to compare against. The name 'generate' is simple and follows a verb-based pattern.
One tool is too few for a server's purpose, as it severely limits functionality and suggests the server is under-scoped. A typical MCP server should offer multiple operations to handle a domain comprehensively.
The tool surface is severely incomplete for a mermaid diagramming domain. It only provides generation, missing essential operations like validation, editing, listing diagram types, or managing diagram states, which are necessary for agent workflows.
Maintenance
Related MCP Connectors
Render, verify, describe, and safely edit Mermaid diagrams through MCP.
Collaborative whiteboard MCP server — create objects, connectors, C4 diagrams, and manage boards
Create and manage Mermaid.js flowcharts and diagrams with AI agents via MCP.
MCP server for generating rough-draft project plans from natural-language prompts.
Related MCP Servers
- AlicenseBqualityCmaintenanceA Model Context Protocol server that validates and renders Mermaid diagrams.1186 npm57MIT
- AlicenseNot gradedqualityNot gradedmaintenanceA server that implements the Model Context Protocol (MCP), providing an interface for LLM applications to generate mermaid.js visualizations and diagrams.MIT
- AlicenseAqualityBmaintenanceA Model Context Protocol server that converts Mermaid diagram code into various image formats (PNG, JPG, SVG, PDF) with theme customization options for AI clients.39MIT
- AlicenseAqualityDmaintenanceAn MCP server that generates diagrams from Mermaid code in multiple formats (PNG, PDF, SVG).21MIT