Mermaid-MCP
by chasey-ai
README.md
# Mermaid-MCP
一个基于Model Context Protocol (MCP)的Mermaid流程图生成服务器,支持将文本输入转换为精美的可视化流程图。
## 项目简介
Mermaid-MCP是一个强大的MCP服务器,允许各种AI客户端(如Claude、Cursor等支持MCP的工具)连接并生成精美的流程图。用户只需提供文本描述(如流程图需求说明、Mermaid代码、结构化文本或思维导图文本),服务器将直接处理这些输入并返回高质量的流程图PNG图像。
### 核心功能
- 🔄 接收并理解用户的文本输入(需求描述、Mermaid代码或结构化文本)
- 🎨 直接生成精美的HTML可视化图表,无需中间Mermaid转换步骤
- 📊 支持多种图表类型和描述方式
- 🖼️ 将生成的HTML图表导出为高质量PNG图像
- 🔌 基于MCP协议,可与任何MCP客户端无缝集成
- 🤖 利用LLM直接理解用户需求并生成图表
- 🎭 支持多种CSS模板,允许用户自定义图表样式
## 工作原理
```mermaid
graph LR
A[用户输入] -->|发送到MCP客户端| B[MCP客户端]
B -->|连接到| C[Mermaid-MCP服务器]
C -->|直接处理| D[LLM理解需求]
D -->|生成| E[HTML+CSS代码]
E -->|渲染| F[可视化图表]
F -->|导出| G[PNG图像]
G -->|返回给| B
B -->|显示结果| H[用户]
```
1. **用户输入处理**:服务器接收用户提供的文本(需求描述、已有Mermaid代码或结构化文本)
2. **LLM直接理解**:LLM直接理解用户需求,无需中间转换步骤
3. **HTML生成**:LLM直接生成包含图表的HTML和CSS代码
4. **图像导出**:将HTML图表导出为高质量PNG图像
5. **结果返回**:通过MCP协议将生成的图像返回给客户端
## 安装与设置
### 前提条件
- Python 3.8+
- pip
- 支持MCP的客户端(如Claude Desktop、Cursor等)
### 安装步骤
```bash
# 克隆仓库
git clone https://github.com/yourusername/mermaid-mcp.git
cd mermaid-mcp
# 创建虚拟环境(可选但推荐)
python -m venv venv
source venv/bin/activate # Linux/macOS
# 或
venv\Scripts\activate # Windows
# 安装依赖
pip install -r requirements.txt
# 启动服务器
python src/server.py
```
## 使用方法
### 连接MCP客户端
在支持MCP的客户端(如Claude Desktop)中,添加本地MCP服务器:
1. 打开客户端设置
2. 找到"MCP服务器"或"模型上下文协议"部分
3. 添加新服务器,指向`http://localhost:5000`(或您设置的端口)
4. 连接服务器
### 生成流程图
连接成功后,您可以通过以下方式使用此服务:
1. **直接描述需求**:
```
请生成一个展示用户注册流程的流程图,包括注册、验证邮箱、完善信息和激活账户步骤。
```
2. **提供Mermaid代码**:
```
生成此流程图的PNG:
graph TD
A[开始] --> B[步骤1]
B --> C[步骤2]
C --> D[结束]
```
3. **提供结构化文本**:
```
处理以下结构化文本并创建流程图:
1. 用户提交申请
2. 系统审核
2.1 自动检查
2.2 人工审核
3. 发送结果通知
```
### CSS模板选择
用户可以通过添加模板参数来选择或自定义图表样式:
```
使用"暗黑"模板生成一个系统架构图,包括前端、后端和数据库三个主要组件。
```
或者:
```
使用以下CSS样式生成流程图(用户可以提供自定义CSS):
.node {
border-radius: 15px;
background: linear-gradient(145deg, #3498db, #2980b9);
color: white;
font-weight: bold;
}
.edge {
stroke: #e74c3c;
stroke-width: 2px;
}
```
## 支持的图表类型
Mermaid-MCP支持多种图表类型的描述方式:
- 流程图 (Flowcharts)
- 时序图 (Sequence Diagrams)
- 类图 (Class Diagrams)
- 状态图 (State Diagrams)
- 实体关系图 (Entity Relationship Diagrams)
- 甘特图 (Gantt Charts)
- 饼图 (Pie Charts)
- 用户旅程图 (User Journey)
## 自定义选项
服务器支持多种自定义选项:
- **CSS模板**:选择预设模板(默认、暗色、简约、商务等)
- **自定义CSS**:提供您自己的CSS样式覆盖默认样式
- **图表尺寸**:调整生成图表的宽度和高度
- **颜色方案**:选择预定义的颜色组合
- **导出设置**:调整PNG分辨率和质量
## 技术架构
Mermaid-MCP基于以下技术构建:
- **Python**:服务器开发语言
- **Model Context Protocol (MCP)**:用于与AI客户端通信的开放协议
- **Flask/FastAPI**:Web服务器框架
- **LLM**:直接理解用户需求并生成HTML/CSS代码
- **Selenium/Playwright**:用于HTML到PNG的转换
- **Jinja2**:模板引擎,用于HTML生成
## 项目结构
```
mermaid-mcp/
├── src/
│ ├── server.py # MCP服务器主程序
│ ├── llm_handler.py # LLM请求处理
│ ├── renderer.py # HTML渲染器和PNG导出
│ ├── templates/ # CSS模板目录
│ │ ├── default.css
│ │ ├── dark.css
│ │ └── ...
│ └── utils/ # 工具函数
├── requirements.txt # 项目依赖
└── README.md # 项目文档
```
## 贡献指南
我们欢迎社区贡献!如需参与:
1. Fork本仓库
2. 创建您的特性分支 (`git checkout -b feature/amazing-feature`)
3. 提交更改 (`git commit -m 'Add some amazing feature'`)
4. 推送到分支 (`git push origin feature/amazing-feature`)
5. 提交Pull Request
## 许可证
本项目采用MIT许可证 - 详见 [LICENSE](LICENSE) 文件
## 联系方式
如有问题或建议,请通过以下方式联系我们:
- 提交GitHub Issue
- 发送电子邮件至:your.email@example.com
---
**Mermaid-MCP** - 让流程图创建变得简单而优雅
This server cannot be deployed
Maintenance
ActivityInactive
ResponsivenessNo issues