mermaid-mcp-server
Provides real-time syntax validation for Mermaid diagrams, supporting multiple diagram types such as flowcharts, sequence diagrams, class diagrams, state diagrams, entity relationship diagrams, Gantt charts, user journey, pie charts, git graphs, mind maps, timelines, C4 architecture, sankey diagrams, block diagrams, and architecture diagrams.
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
Mermaid MCP Server
A lightweight Model Context Protocol (MCP) server that provides real-time Mermaid diagram syntax validation with minimal memory footprint.
Features
✅ Real-time Syntax Validation: Instant validation while you edit diagrams
🚀 Ultra Lightweight: Minimal memory usage, optimized for performance
🎯 100% Compatibility: Supports all Mermaid diagram types
📊 Detailed Error Reporting: Line numbers, error classification, and suggestions
🔧 Batch Validation: Validate multiple diagrams at once
📈 Performance Monitoring: Track validation times and memory usage
Related MCP server: Mermaid-Grammer-Inspector
Supported Diagram Types
Flowcharts (
graph,flowchart)Sequence Diagrams (
sequenceDiagram)Class Diagrams (
classDiagram)State Diagrams (
stateDiagram)Entity Relationship Diagrams (
erDiagram)Gantt Charts (
gantt)User Journey (
journey)Pie Charts (
pie)Git Graphs (
gitgraph)Mind Maps (
mindmap)Timelines (
timeline)C4 Architecture (
c4)Sankey Diagrams (
sankey)Block Diagrams (
block)Architecture Diagrams (
architecture)
Installation
Clone this repository:
git clone <repository-url>
cd mermaid-mcp-serverInstall dependencies:
npm installAdd to your MCP client configuration:
Claude Desktop Configuration
Add to your claude_desktop_config.json:
{
"mcpServers": {
"mermaid": {
"command": "node",
"args": ["/path/to/mermaid-mcp-server/server.js"],
"env": {}
}
}
}Usage Examples
Basic Syntax Validation
// Validate a simple flowchart
const result = await validate_mermaid({
diagramCode: `graph TD
A[Start] --> B{Decision}
B -->|Yes| C[Process]
B -->|No| D[End]
C --> D`
});Real-time Validation Hook
// Real-time validation during editing
const realtimeResult = await mermaid_realtime_validate({
diagramCode: "sequenceDiagram\n A->>B: Hello",
changeType: "add",
lineNumber: 2
});Batch Validation
// Validate multiple diagrams at once
const batchResult = await validate_mermaid_batch({
diagrams: [
"graph TD\n A --> B",
"sequenceDiagram\n A->>B: Test",
"invalid diagram code"
]
});API Reference
Tools
validate_mermaid
Validates a single Mermaid diagram.
Parameters:
diagramCode(string, required): The Mermaid diagram code to validate
Returns:
{
"isValid": true,
"error": null,
"type": null,
"line": null,
"suggestion": null,
"processingTime": 12,
"diagramType": "graph",
"elementCount": 4
}mermaid_realtime_validate
Real-time validation for live editing scenarios.
Parameters:
diagramCode(string, required): Current diagram codechangeType(string, required): Type of change (add,remove,modify,full)lineNumber(number, optional): Line where change occurred
Returns: Enhanced validation result with change metadata.
validate_mermaid_batch
Validates multiple diagrams in a single call.
Parameters:
diagrams(array, required): Array of diagram codes
Returns:
{
"summary": {
"total": 3,
"valid": 2,
"invalid": 1,
"averageProcessingTime": 15.3
},
"results": [...]
}get_mermaid_info
Gets server information and supported diagram types.
Returns:
{
"server": {
"name": "mermaid-mcp-server",
"version": "1.0.0",
"uptime": 3600
},
"supportedTypes": [...],
"stats": {...},
"features": [...]
}Error Types
The server classifies errors into these categories:
syntax: General syntax errorsno_type: Missing diagram type declarationunknown_command: Unsupported commandsparse: Parsing errorsidentifier: Invalid identifiersrelation: Connection/arrow issuesgeneral: Other errors
Performance Optimization
Memory Management
Lazy initialization of Mermaid engine
Minimal dependencies
Efficient garbage collection
No DOM rendering (validation only)
Processing Speed
Direct Mermaid parsing without rendering
Optimized error extraction
Batch processing capabilities
Performance metrics tracking
Usage Tips
Use
mermaid_realtime_validatefor live editingUse
validate_mermaid_batchfor multiple diagramsCheck
processingTimeto monitor performanceMonitor memory usage with
get_mermaid_info
Development
Running in Development Mode
npm run devTesting
# Test with various diagram types
node test.jsEnvironment Variables
NODE_ENV: Set todevelopmentfor debug loggingGC_INTERVAL: Garbage collection interval (default: 60000ms)
Configuration
The server can be configured via environment variables:
# Enable debug logging
DEBUG=mermaid-mcp-server
# Set memory limit (MB)
MEMORY_LIMIT=128
# Enable performance monitoring
PERFORMANCE_MONITORING=trueTroubleshooting
Common Issues
Server won't start
Check Node.js version (>=18.0.0 required)
Verify all dependencies are installed
Check for port conflicts if applicable
Memory usage high
Restart server periodically
Use batch validation instead of many single calls
Monitor memory usage via
get_mermaid_info
Validation errors
Ensure proper diagram syntax
Check supported diagram types
Use real-time validation for immediate feedback
Debug Mode
Enable debug logging:
DEBUG=mermaid-mcp-server:* npm startLicense
MIT License
Contributing
Fork the repository
Create a feature branch
Make your changes
Add tests if applicable
Submit a pull request
Support
For issues and questions:
Create an issue on GitHub
Check the troubleshooting section
Review the API documentation
This server cannot be deployed
Maintenance
Related MCP Connectors
Render, verify, describe, and safely edit Mermaid diagrams through MCP.
Validate Mermaid syntax and get error details your coding agent can use to correct a diagram. Check the source again before adding it to your documentation. Validation works without saving a diagram. Render SVG, PNG, or PDF, save diagrams privately, and publish selected snapshots. Your existing agent writes and corrects the source; MermaidDesk checks and renders it. Validation checks syntax, not whether a diagram accurately describes a system. Connect through MCP with Streamable HTTP and a scoped bearer API key. Enable MERMAID_RENDER for validation and rendering. A REST API is also available. MCP setup: https://www.mermaiddesk.com/developers/mcp REST API guide: https://www.mermaiddesk.com/developers/api
Collaborative whiteboard MCP server — create objects, connectors, C4 diagrams, and manage boards
MCP Server for Slima - AI Writing IDE for Novel Authors with AI Beta Reader.
Related MCP Servers
- AlicenseAqualityAmaintenanceMCP Server to previewing mermaid diagrams. https://github.com/veelenga/claude-mermaid/2926 npm221MIT
- AlicenseAqualityFmaintenanceA Model Context Protocol (MCP) server for validating Mermaid diagram syntax and providing comprehensive grammar checking capabilities113 npm5MIT
- AlicenseNot gradedqualityDmaintenanceAn MCP server that validates Mermaid diagram syntax and identifies diagram types across all major formats. It provides detailed parse-error messages for invalid diagrams without requiring external rendering processes.6 npm3MIT
- AlicenseAqualityDmaintenanceAn MCP server that generates diagrams from Mermaid code in multiple formats (PNG, PDF, SVG).21MIT