Mermaid语法验证服务器

一个轻量级的Mermaid图表语法验证服务器,提供实时语法检查、批量验证和性能监控功能。

  • by FreePeak
  • JavaScript
  • 本地部署
  • 3 星标
  • 更新于
在 GitHub 查看 FreePeak/mermaid-mcp-server

使用说明

美人鱼MCP服务器

一个轻量级的模型上下文协议(MCP)服务器,提供实时的Mermaid图表语法验证,且占用内存极小。

特点/功能

  • ✅ 实时语法验证在编辑图表时即时验证
  • 🚀 表情符号“🚀”通常被翻译为“火箭”或“飞速前进”,用以表示快速、迅速或激动人心的事情。在中文中,它常被用来形容技术进步、事业发展迅速,或者表达一种兴奋和期待的情绪。 超轻量级内存占用极低,性能优化
  • 🎯(目标) 100% 兼容性支持所有Mermaid图表类型
  • 📊(表格) 详细的错误报告行号、错误分类及建议
  • 🔧 修理工具或螺丝刀的符号 批量验证一次性验证多个图表
  • 📈(上扬的折线图,常用于表示增长或上升趋势) 性能监控跟踪验证时间和内存使用情况

支持的图表类型

  • 流程图(graph, flowchart)
  • 序列图(Sequence Diagrams)sequenceDiagram)
  • 类图(Class Diagrams)classDiagram)
  • 状态图(stateDiagram)
  • 实体关系图 (Entity Relationship Diagrams)erDiagram)
  • 甘特图gantt)
  • 用户旅程journey)
  • 饼状图pie)
  • Git 图表 (gitgraph)
  • 思维导图mindmap)
  • 时间线(timeline)
  • C4 建筑事务所(c4)
  • 桑基图(Sankey Diagrams)sankey)
  • 方框图(block)
  • 架构图(architecture)

安装

  1. 克隆此存储库:
git clone <repository-url>
cd mermaid-mcp-server
  1. 安装依赖项:
npm install
  1. 在您的MCP客户端配置中添加:

克劳德桌面配置

添加到您的 claude_desktop_config.json:

{
  "mcpServers": {
    "mermaid": {
      "command": "node",
      "args": ["/path/to/mermaid-mcp-server/server.js"],
      "env": {}
    }
  }
}

使用示例

基本语法验证

// 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 during editing
const realtimeResult = await mermaid_realtime_validate({
  diagramCode: "sequenceDiagram\n    A->>B: Hello",
  changeType: "add",
  lineNumber: 2
});

批次验证

// 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 参考文档

工具

validate_mermaid

验证单个Mermaid图表。

参数:

  • diagramCode (字符串,必填):要验证的Mermaid图表代码

返回值:

{
  "isValid": true,
  "error": null,
  "type": null,
  "line": null,
  "suggestion": null,
  "processingTime": 12,
  "diagramType": "graph",
  "elementCount": 4
}

mermaid_realtime_validate

实时验证直播编辑场景。

参数:

  • diagramCode (字符串,必填项):当前图表代码
  • changeType (字符串,必填):变更类型(add, remove, modify, full)
  • lineNumber (数字,可选):发生更改的行号

返回: 使用变更元数据增强验证结果。

validate_mermaid_batch

在单次调用中验证多个图表。

参数:

  • diagrams (数组,必需):图表代码的数组

返回:

{
  "summary": {
    "total": 3,
    "valid": 2,
    "invalid": 1,
    "averageProcessingTime": 15.3
  },
  "results": [...]
}

get_mermaid_info

获取服务器信息和支持的图表类型。

返回值:

{
  "server": {
    "name": "mermaid-mcp-server",
    "version": "1.0.0",
    "uptime": 3600
  },
  "supportedTypes": [...],
  "stats": {...},
  "features": [...]
}

错误类型

服务器将错误分为以下几类:

  • syntax一般的语法错误
  • no_type缺少图表类型声明
  • unknown_command不支持的命令
  • parse解析错误
  • identifier无效的标识符
  • relation连接/箭头问题
  • general其他错误

性能优化

内存管理

  • Mermaid 引擎的惰性初始化
  • 最小化依赖
  • 高效的垃圾回收
  • 不进行DOM渲染(仅验证)

处理速度

  • 直接解析美人鱼(数据/内容)而不进行渲染
  • 优化错误提取
  • 批处理能力
  • 性能指标追踪

使用技巧

  1. 使用 mermaid_realtime_validate 用于实时编辑
  2. 使用 validate_mermaid_batch 对于多个图表
  3. 检查 processingTime 监控性能
  4. 监控内存使用情况 get_mermaid_info

发展

在开发模式下运行

npm run dev

测试

# Test with various diagram types
node test.js

环境变量

  • NODE_ENV设置为 development 用于调试日志记录
  • GC_INTERVAL垃圾回收间隔(默认:60000毫秒)

配置

服务器可以通过环境变量进行配置:

# Enable debug logging
DEBUG=mermaid-mcp-server

# Set memory limit (MB)
MEMORY_LIMIT=128

# Enable performance monitoring
PERFORMANCE_MONITORING=true

故障排除

常见问题

  1. 服务器无法启动

    • 检查 Node.js 版本(需要 >=18.0.0)
    • 验证所有依赖项都已安装
    • 如适用,请检查端口冲突
  2. 内存使用率高

    • 定期重启服务器
    • 使用批量验证,而不是多次单个调用
    • 通过(某种方式)监控内存使用情况 get_mermaid_info
  3. 验证错误

    • 确保图表语法正确
    • 检查支持的图表类型
    • 使用实时验证以获得即时反馈

调试模式

启用调试日志记录:

DEBUG=mermaid-mcp-server:* npm start

许可证

麻省理工学院许可证(MIT License)

做出贡献

  1. 为仓库创建分支(或“克隆仓库”)
  2. 创建一个特性分支
  3. 做出你的更改
  4. 如适用,请添加测试
  5. 提交拉取请求

支持

对于问题和疑问:

  • 在GitHub上创建一个问题
  • 查看故障排除部分
  • 查看API文档