Skip to main content
Glama
README.md
# Mermaid Lint MCP

[δΈ­ζ–‡η‰ˆζœ¬](README_zh.md) | **English**

A powerful tool for validating Mermaid diagrams with both CLI and MCP server capabilities. Perfect for developers, technical writers, and AI assistants who work with Mermaid diagrams.

## πŸš€ Quick Start

### Install and Use Immediately

```bash
# Validate a Mermaid file
npx mermaid-lint-mcp lint diagram.mmd

# Validate Mermaid code directly
npx mermaid-lint-mcp lint --code "graph TD; A-->B"

# Start MCP server for AI assistants
npx mermaid-lint-mcp server

# Get help
npx mermaid-lint-mcp --help
```

No installation required! The tool will be downloaded automatically on first use.

## 🎯 Use Cases

### For Developers
- **Pre-commit validation**: Ensure all Mermaid diagrams in your codebase are valid
- **CI/CD integration**: Add diagram validation to your build pipeline
- **Documentation quality**: Catch syntax errors before publishing docs

### For Technical Writers
- **Content validation**: Verify diagrams render correctly before publication
- **Error debugging**: Get clear error messages for syntax issues

### For AI Assistants
- **Real-time validation**: Validate generated diagrams instantly
- **MCP integration**: Seamless integration with Claude Code, Cursor, Trae, and other AI tools
- **Automated workflows**: Enable AI to self-validate diagram outputs

## πŸ“‹ Features

- βœ… **Fast Validation**: Optimized for speed with browser reuse and local libraries
- βœ… **Multiple Formats**: Support for all Mermaid diagram types
- βœ… **Dual Interface**: Both CLI tool and MCP server in one package
- βœ… **Error Details**: Clear error messages with line numbers and suggestions
- βœ… **Timeout Control**: Configurable validation timeouts
- βœ… **Zero Config**: Works out of the box

## πŸ› οΈ Installation Options

### Option 1: Use with npx (Recommended)
No installation needed - just use `npx mermaid-lint-mcp` directly.

### Option 2: Global Installation
```bash
npm install -g mermaid-lint-mcp
# Then use: mermaid-lint-mcp
```

### Option 3: Local Project Installation
```bash
npm install mermaid-lint-mcp
# Then use: npx mermaid-lint-mcp
```

## πŸ“– Usage Guide

### CLI Commands

#### Validate Diagrams
```bash
# Validate a file
npx mermaid-lint-mcp lint diagram.mmd
npx mermaid-lint-mcp diagram.mmd  # 'lint' is default

# Validate code string
npx mermaid-lint-mcp lint --code "graph TD; A-->B"

# With custom timeout (5 seconds)
npx mermaid-lint-mcp lint --timeout 5000 diagram.mmd

# Validate with file option
npx mermaid-lint-mcp lint --file diagram.mmd
```

#### Start MCP Server
```bash
# Start server for AI assistant integration
npx mermaid-lint-mcp server
```

#### Get Help
```bash
npx mermaid-lint-mcp --help     # Show all commands
npx mermaid-lint-mcp --version  # Show version
```

### MCP Server Integration

#### For Claude Desktop
Add to your `claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "mermaid-lint": {
      "command": "npx",
      "args": ["mermaid-lint-mcp", "server"]
    }
  }
}
```

#### For Other MCP Clients, the setup is similar to above, please refer to the official documentation

## πŸ“Š Supported Diagram Types

| Type | Syntax | Example |
|------|--------|---------|
| Flowchart | `flowchart TD` | Decision trees, processes |
| Sequence | `sequenceDiagram` | API interactions, workflows |
| Class | `classDiagram` | Object relationships |
| State | `stateDiagram-v2` | State machines |
| ER | `erDiagram` | Database schemas |
| Gantt | `gantt` | Project timelines |
| Pie | `pie` | Data visualization |
| Journey | `journey` | User experiences |
| Git Graph | `gitgraph` | Version control flows |
| ... | `...` | ... |

## πŸ”§ Configuration

### Validation Options
```typescript
interface ValidationOptions {
  timeout?: number;  // Timeout in milliseconds (default: 5000)
}
```

### Environment Variables
```bash
# Set default timeout
export MERMAID_TIMEOUT=10000

# Enable debug logging
export DEBUG=mermaid-lint-mcp
```

## πŸ” Example Outputs

### Valid Diagram
```json
{
  "isValid": true,
  "error": null,
  "diagramType": "flowchart"
}
```

### Invalid Diagram
```json
{
  "isValid": false,
  "error": "Parse error on line 8: ...> C E --> F[End ---------------------^ Expecting 'SQE', 'DOUBLECIRCLEEND', 'PE', '-)', 'STADIUMEND', 'SUBROUTINEEND', 'PIPE', 'CYLINDEREND', 'DIAMOND_STOP', 'TAGEND', 'TRAPEND', 'INVTRAPEND', 'UNICODE_TEXT', 'TEXT', 'TAGSTART', got '1'",
  "diagramType": "flowchart"
}
```

### CLI Output
```bash
$ npx mermaid-lint-mcp lint --code "graph TD; A-->B"
πŸ” Validating Mermaid diagram...
βœ… Diagram is valid!
πŸ“Š Diagram type: flowchart
```

## 🚨 Common Issues & Solutions

### Issue: "Command not found"
**Solution**: Use `npx mermaid-lint-mcp` instead of `mermaid-lint-mcp`

### Issue: Validation timeout
**Solution**: Increase timeout with `--timeout 10000`

### Issue: Permission denied
**Solution**: Run with appropriate permissions or use `npx`

## πŸ“ License

MIT License - see [LICENSE](LICENSE) file for details.

## πŸ™‹β€β™‚οΈ Support

- πŸ“– [Documentation](https://github.com/yaodebian/mermaid-lint-mcp)
- πŸ› [Report Issues](https://github.com/yaodebian/mermaid-lint-mcp/issues)
- πŸ’¬ [Discussions](https://github.com/yaodebian/mermaid-lint-mcp/discussions)

## πŸ”— Related Tools

- [Mermaid](https://mermaid.js.org/) - Create diagrams with text
- [Mermaid Live Editor](https://mermaid.live/) - Online diagram editor
- [Model Context Protocol](https://modelcontextprotocol.io/) - AI integration standard

TDQS

B3.2/5.0

Scored across 1 tool

Disambiguation5/5

With only one tool, there is no ambiguity; the tool's purpose is clear and distinct by default.

Naming Consistency5/5

The single tool name follows a clear verb_noun pattern (validate_mermaid_diagram), which is consistent and readable.

Tool Count2/5

A single tool for a server named 'Mermaid Lint' feels insufficient; typical linting servers include multiple tools for validation, formatting, and configuration.

Completeness1/5

The surface is severely incomplete; only validation is provided, omitting common linting operations like reporting, fixing, or configuring rules.

Maintenance

ActivityInactive
ResponsivenessNo issues