Mermaid MCP Server
Ein auf dem Model Context Protocol (MCP) basierender Mermaid-Diagramm-Konvertierungsserver, der KI-Clients leistungsstarke Funktionen zur Diagrammerstellung bietet.
Projekteinführung
Mermaid MCP Server ist ein professioneller, auf dem Model Context Protocol (MCP) basierender Mermaid-Diagramm-Konvertierungsserver, der KI-Clients leistungsstarke Funktionen zur Diagrammerstellung bietet. Das Projekt kann Mermaid-Diagrammcode in verschiedene Bildformate (PNG, JPG, SVG, PDF) konvertieren, sodass Benutzer problemlos hochwertige Diagramme in verschiedenen KI-Clients erstellen können, die das MCP-Protokoll unterstützen.
Kernfunktionen
Ausgabe in mehreren Formaten: Unterstützt verschiedene Bildformate wie PNG, JPG, SVG und PDF
Designanpassung: Integrierte Unterstützung für vier elegante Designs: default, dark, neutral und forest
Benutzerdefinierte Optionen: Unterstützt die Anpassung von Parametern wie Hintergrundfarbe und Bildgröße
Syntaxvalidierung: Bietet eine Echtzeit-Validierungsfunktion für Mermaid-Syntax
Beispielressourcen: Enthält eine Vielzahl von Beispielcodes für Diagrammtypen
Fehlerbehandlung: Umfassender Fehlerbehandlungsmechanismus und benutzerfreundliche Fehlermeldungen
STDIO/SSE-Dualmodus: Unterstützt sowohl STDIO- als auch SSE-Kommunikationsmodi
uv-Paketverwaltung: Verwendet den extrem schnellen uv-Paketmanager
Related MCP server: mcp-mermaid-validator
Funktionsliste
Funktionsname | Funktionsbeschreibung | Tech-Stack | Status |
Diagrammkonvertierung | Mermaid-Code zu Bild | mermaid.ink API | ✅ Stabil |
Ausgabe in mehreren Formaten | PNG/JPG/SVG/PDF | requests + base64 | ✅ Stabil |
Designanpassung | 4 integrierte Designs | mermaid.ink | ✅ Stabil |
Syntaxvalidierung | Echtzeit-Syntaxprüfung | mermaid-cli | ✅ Stabil |
Beispielressourcen | Umfangreiche Diagrammbeispiele | Statische Ressourcen | ✅ Stabil |
Fehlerbehandlung | Umfassende Fehlermeldungen | Python-Fehlerbehandlung | ✅ Stabil |
MCP-Protokoll | Model Context Protocol | mcp[cli] | ✅ Stabil |
SSE-Modus | Server-Sent Events | FastAPI + Uvicorn | ✅ Stabil |
Technische Architektur
Technologie | Version | Zweck |
Python | 3.12+ | Hauptentwicklungssprache |
MCP | 1.9+ | Model Context Protocol |
FastAPI | 0.104+ | Web-Framework (SSE-Modus) |
Uvicorn | 0.24+ | ASGI-Server |
requests | 2.31+ | HTTP-Client |
uv | latest | Python-Paketmanager |
Kommunikationsarchitektur
┌─────────────────────────────────────────────────────────────────────────────────┐
│ 通信架构图 │
├─────────────────────────────────────────────────────────────────────────────────┤
│ │
│ ┌──────────────────┐ ┌─────────────────────────┐ ┌─────────────┐ │
│ │ AI 客户端 │ ◄────► │ Mermaid MCP Server │ ◄────► │ Mermaid API │ │
│ │ (Cursor/Claude) │ │ STDIO/SSE │ │ mermaid.ink│ │
│ └──────────────────┘ └─────────────────────────┘ └─────────────┘ │
│ │ │ │ │
│ ▼ ▼ ▼ │
│ AI 对话界面 MCP 协议通信 图表渲染转换 │
│ 生成图表请求 双向数据传输 返回图像数据 │
│ │
└─────────────────────────────────────────────────────────────────────────────────┘Installationsanleitung
Systemanforderungen
Python 3.12+
uv-Paketmanager (empfohlen)
Abhängigkeiten installieren
Methode 1: Installation mit uv (empfohlen)
# 克隆仓库
git clone https://github.com/wwwzhouhui/mermaid_mcp_server.git
cd mermaid_mcp_server
# 安装依赖
uv syncMethode 2: Installation mit pip
pip install -r requirements.txtGebrauchsanweisung
Client-Konfiguration
Cursor-Konfiguration
Fügen Sie die folgende Konfiguration in der Datei ~/.cursor/mcp.json hinzu:
STDIO-Modus (empfohlen):
{
"mcpServers": {
"mermaid-mcp-server-png-pdf-jpg-svg": {
"command": "uvx",
"args": [
"mermaid-mcp-server-png-pdf-jpg-svg"
]
}
}
}SSE-Modus:
{
"mcpServers": {
"mermaid-mcp-server-png-pdf-jpg-svg": {
"url": "http://127.0.0.1:8003/sse"
}
}
}Cherry Studio-Konfiguration
Öffnen Sie Cherry Studio
Gehen Sie zu Einstellungen → MCP Servers → Server hinzufügen
Konfigurationsparameter:
Name:
mermaid-mcp-server-png-pdf-jpg-svgBeschreibung:
Mermaid-DiagrammerstellungsdienstTyp:
STDIOBefehl:
uvxParameter:
mermaid-mcp-server-png-pdf-jpg-svg
Klicken Sie auf Speichern und Aktivieren
👁 Cherry Studio Konfigurationsbeispiel
Claude Desktop-Konfiguration
Fügen Sie dies in der Datei claude_desktop_config.json hinzu:
{
"mcpServers": {
"mermaid-mcp-server-png-pdf-jpg-svg": {
"command": "uvx",
"args": [
"mermaid-mcp-server-png-pdf-jpg-svg"
]
}
}
}Continue.dev-Konfiguration
Fügen Sie dies in der Datei config.json hinzu:
{
"mcpServers": {
"mermaid-mcp-server-png-pdf-jpg-svg": {
"command": "uvx",
"args": [
"mermaid-mcp-server-png-pdf-jpg-svg"
]
}
}
}Dienst starten
STDIO-Modus (empfohlen für Desktop-Clients)
uv run python main.pySSE-Modus (für Netzwerkverbindungen)
uv run python main.py --sseKonfigurationshinweise
Umgebungsvariablen-Konfiguration
Variablenname | Beschreibung | Standardwert |
| Serveradresse |
|
| Server-Port |
|
| Protokollebene |
|
| Mermaid API-Adresse |
|
| Anfrage-Timeout (Sekunden) |
|
| Debug-Modus |
|
| Entwicklungsmodus |
|
Verfügbare Tools
1. convert_mermaid_to_image
Konvertiert Mermaid-Diagrammcode in Bilddateien verschiedener Formate
Parameter:
mermaid_code(string): Mermaid-Diagrammcodeoutput_format(string, optional): Ausgabeformat, unterstützt png, jpg, svg, pdf, Standard ist "png"theme(string, optional): Designstil, unterstützt default, dark, neutral, forest, Standard ist "default"background_color(string, optional): Hintergrundfarbe, Hexadezimalcodewidth(number, optional): Bildbreite (Pixel)height(number, optional): Bildhöhe (Pixel)
Unterstützte Ausgabeformate: PNG, JPG, SVG, PDF
2. validate_mermaid_syntax
Überprüft die syntaktische Korrektheit des Mermaid-Diagrammcodes
Parameter:
mermaid_code(string): Der zu validierende Mermaid-Diagrammcode
Rückgabeergebnisse:
valid(boolean): Ob die Validierung erfolgreich warerror_message(string): Fehlermeldung (falls die Validierung fehlschlägt)
3. get_supported_options
Ruft die vom Konverter unterstützten Optionen ab
Rückgabeergebnisse:
themes(array): Liste der unterstützten Designsformats(array): Liste der unterstützten Formate
Unterstützte Diagrammtypen
Flussdiagramm (Flowchart): Zur Darstellung von Abläufen und Algorithmen
Sequenzdiagramm (Sequence Diagram): Zur Darstellung von Interaktionen zwischen Objekten
Gantt-Diagramm (Gantt Chart): Für das Projektfortschrittsmanagement
Kreisdiagramm (Pie Chart): Zur Darstellung von Datenanteilen
Git-Diagramm (Git Graph): Zur Darstellung der Git-Commit-Historie
Mindmap: Zur Darstellung von Wissensstrukturen
Klassendiagramm (Class Diagram): Zur Darstellung von Klassenstrukturen
Anwendungsbeispiele
Beispiel für ein Flussdiagramm
请使用 convert_mermaid_to_image 工具生成一个流程图:
flowchart TD
A[开始] --> B{判断条件}
B -->|是 | C[执行动作 1]
B -->|否 | D[执行动作 2]
C --> E[结束]
D --> EBeispiel für ein Sequenzdiagramm
请使用 convert_mermaid_to_image 工具生成一个时序图,使用深色主题:
sequenceDiagram
participant 用户
participant 系统
participant 数据库
用户->>系统:登录请求
系统->>数据库:验证用户
数据库-->>系统:返回结果
系统-->>用户:登录成功Beispiel für Syntaxvalidierung
首先使用 validate_mermaid_syntax 验证语法,然后使用 convert_mermaid_to_image 生成图表Ressourcenbeispiele
Diagrammbeispiele abrufen
Diagrammbeispiele verschiedener Typen können über die folgenden Ressourcen-URIs abgerufen werden:
mermaid://examples/flowchart- Beispiel für ein Flussdiagrammmermaid://examples/sequence- Beispiel für ein Sequenzdiagrammmermaid://examples/gantt- Beispiel für ein Gantt-Diagrammmermaid://examples/pie- Beispiel für ein Kreisdiagrammmermaid://examples/gitgraph- Beispiel für ein Git-Diagrammmermaid://examples/mindmap- Beispiel für eine Mindmapmermaid://examples/class- Beispiel für ein Klassendiagramm
Projektstruktur
mermaid_mcp_server/
├── mermaid_mcp_server/ # 核心模块
│ ├── __init__.py
│ └── main.py # 主程序入口
├── requirements.txt # 依赖列表(pip)
├── pyproject.toml # 项目配置(uv)
├── .env.example # 环境变量示例
├── README.md # 项目文档
└── .vscode/ # VSCode 配置
└── settings.jsonEntwicklungsleitfaden
Lokale Entwicklung
# 克隆仓库
git clone https://github.com/wwwzhouhui/mermaid_mcp_server.git
cd mermaid_mcp_server
# 安装依赖
uv sync
# 配置环境变量
cp .env.example .env
# 启动服务(STDIO 模式)
uv run python main.py
# 启动服务(SSE 模式)
uv run python main.py --sseDebug-Modus
Aktivieren der detaillierten Protokollausgabe:
export LOG_LEVEL=DEBUG
uv run python main.pyHäufig gestellte Fragen (FAQ)
A:
Überprüfen Sie die Netzwerkverbindung und die Firewall-Einstellungen
Stellen Sie sicher, dass die mermaid.ink API erreichbar ist
Überprüfen Sie die Proxy-Einstellungen
A:
Verwenden Sie das Tool validate_mermaid_syntax, um die Syntax zu überprüfen
Konsultieren Sie die offizielle Mermaid-Dokumentation
Verwenden Sie den Code aus den Beispielressourcen
A:
Vereinfachen Sie den Diagramminhalt
Teilen Sie es in mehrere kleine Diagramme auf
Passen Sie die Bildgrößenparameter an
A:
Installieren Sie den uv-Paketmanager:
curl -LsSf https://astral.sh/uv/install.sh | shOder verwenden Sie die globale Paketinstallation mit pip
Überprüfen Sie die PATH-Umgebungsvariable
A:
Stellen Sie sicher, dass der Dienst im SSE-Modus gestartet wurde
Überprüfen Sie, ob Port 8003 belegt ist
Stellen Sie sicher, dass die URL-Konfiguration korrekt ist
A:
Erhöhen Sie die Bildgrößenparameter
Wählen Sie ein geeignetes Design
Optimieren Sie die Struktur des Mermaid-Codes
A:
Überprüfen Sie die Geschwindigkeit der Netzwerkverbindung
Erhöhen Sie die Umgebungsvariable REQUEST_TIMEOUT
Vereinfachen Sie die Komplexität des Diagramms
A:
Stellen Sie sicher, dass der Name des Designs korrekt geschrieben ist
Überprüfen Sie, ob das Design unterstützt wird
Versuchen Sie es mit einem anderen Designnamen
A:
Verwenden Sie den Parameter background_color
Das Format ist ein hexadezimaler Farbcode (z. B. #FFFFFF)
Wird nur von einigen Ausgabeformaten unterstützt
Technische Austauschgruppe
Treten Sie gerne unserer technischen Austauschgruppe bei, um Ihre Erfahrungen und Feedback-Vorschläge zu teilen:
👁 WeChat-Bild_20260501235133_120_6
Kontakt zum Autor
WeChat: laohaibao2025
E-Mail: 75271002@qq.com
Spenden
Wenn dieses Projekt für Sie hilfreich ist, laden Sie mich gerne auf einen Kaffee ein ☕
WeChat Pay
Star History
Wenn Ihnen das Projekt gefällt, geben Sie uns gerne einen Star ⭐
Lizenz
MIT-Lizenz
Änderungsprotokoll
v0.1.0 (Aktuelle Version)
✅ Erstveröffentlichung
✅ Unterstützung für die Ausgabe in mehreren Formaten (PNG, JPG, SVG, PDF)
✅ Integration von vier Designstilen (default, dark, neutral, forest)
✅ Bereitstellung von Syntaxvalidierung und Beispielressourcen
✅ Unterstützung für STDIO- und SSE-Dualmodus-Kommunikation
v0.0.3 (2025-07-21)
✅ Erstveröffentlichung
✅ Unterstützung für die Konvertierung von Diagrammen in mehreren Formaten
✅ Syntaxvalidierungsfunktion
✅ Beispielressourcenfunktion
Beitragende
Wir freuen uns über Issues und Pull Requests, um dieses Projekt zu verbessern!
Forken Sie dieses Repository
Erstellen Sie einen Feature-Branch:
git checkout -b feature/amazing-featureCommitten Sie Ihre Änderungen:
git commit -m 'Add amazing feature'Pushen Sie den Branch:
git push origin feature/amazing-featureErstellen Sie einen Pull Request
Hinweise
Die Diagrammerstellung kann einige Sekunden dauern, bitte haben Sie etwas Geduld
Stellen Sie sicher, dass die Netzwerkverbindung normal ist, da der Dienst von der Online-API mermaid.ink abhängt
Die generierten Bilddaten werden im base64-Format zurückgegeben
Komplexe Diagramme können eine längere Erstellungszeit erfordern
Viel Spaß beim Erstellen schöner Diagramme mit Mermaid! 🎨✨
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
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/wwwzhouhui/mermaid_mcp_server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server
