MCP序列图服务器
使用Mermaid语法生成序列图图像的模型上下文协议(MCP)服务器。
特性
- 从Mermaid语法生成序列图
- 将自然语言描述转换为序列图
- 支持多种输出格式(SVG、PNG)
- 可定制的主题和尺寸
- 语法验证
- 具有自定义命名的文件输出
安装
- 克隆或创建项目目录:
mkdir mcp-sequence-diagram-server
cd mcp-sequence-diagram-server- 安装依赖项:
npm install- 使脚本可执行:
chmod +x index.js用法
作为MCP服务器
添加到MCP客户端配置中:
{
"mcpServers": {
"sequence-diagram": {
"command": "node",
"args": ["index.js"],
"cwd": "/path/to/your/mcp-sequence-diagram-server"
}
}
}可用工具
1. generate_sequence_diagram
根据Mermaid语法生成序列图。
参数:
diagram(必填):美人鱼序列图语法format(可选):输出格式(“svg”或“png”,默认值:“svg”)filename(可选):输出的自定义文件名width(可选):图像宽度(像素)(默认值:800)height(可选):图像高度(像素)(默认值:600)theme(可选):美人鱼主题(“缺陷”、“黑暗”、“森林”、“中性”)
例子:
{
"diagram": "sequenceDiagram\n Alice->>Bob: Hello Bob, how are you?\n Bob-->>Alice: Great!",
"format": "svg",
"filename": "greeting_sequence"
}2. create_diagram_from_description
根据自然语言描述创建序列图。
参数:
description(必填):自然语言描述participants(可选):参与者姓名数组format(可选):输出格式(“svg”或“png”)filename(可选):自定义文件名
例子:
{
"description": "User logs in. Server validates credentials. Server returns authentication token.",
"participants": ["User", "Server"],
"format": "png"
}3. validate_mermaid_syntax
验证Mermaid序列图语法。
参数:
diagram(必填):验证Mermaid语法
Mermaid序列图语法
基本语法
sequenceDiagram
participant A as Alice
participant B as Bob
A->>B: Hello Bob, how are you?
B-->>A: Great!
A-)B: See you later!消息类型
A->>B: message-实心箭头(同步)A-->>B: message-虚线箭头(异步响应)A-)B: message-打开箭头(异步)A-xB: message-十字箭头(丢失消息)
高级功能
sequenceDiagram
participant C as Client
participant S as Server
participant D as Database
C->>S: Login Request
alt successful case
S->>D: Query User
D-->>S: User Data
S-->>C: Login Success
else failure case
S-->>C: Login Failed
end
Note over C,S: Session established
loop every minute
C->>S: Heartbeat
S-->>C: ACK
end例子
示例1:API身份验证流程
{
"diagram": `sequenceDiagram
participant Client
participant API
participant Auth
participant Database
Client->>API: POST /login
API->>Auth: Validate credentials
Auth->>Database: Query user
Database-->>Auth: User data
Auth-->>API: Token
API-->>Client: 200 OK + JWT`,
"format": "svg",
"filename": "auth_flow"
}示例2:自然语言
{
"description": "Customer places order. System checks inventory. Payment is processed. Order confirmation is sent.",
"participants": ["Customer", "System", "Payment", "Inventory"],
"format": "png"
}发展
以开发模式运行
npm run dev测试服务器
您可以使用任何MCP客户端或直接运行它来测试服务器:
node index.js故障排除
常见问题
- 木偶安装:如果Puppeteer安装失败,请尝试:
npm install puppeteer --unsafe-perm=true --allow-root- Linux依赖关系:在Linux上,您可能需要其他软件包:
sudo apt-get install -y libgbm-dev gconf-service libasound2 libatk1.0-0 libc6 libcairo2 libcups2 libdbus-1-3 libexpat1 libfontconfig1 libgcc1 libgconf-2-4 libgdk-pixbuf2.0-0 libglib2.0-0 libgtk-3-0 libnspr4 libpango-1.0-0 libpangocairo-1.0-0 libstdc++6 libx11-6 libx11-xcb1 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxext6 libxfixes3 libxi6 libxrandr2 libxrender1 libxss1 libxtst6 ca-certificates fonts-liberation libappindicator1 libnss3 lsb-release xdg-utils wget- 内存问题:对于大型图表,您可能需要增加Node.js内存:
node --max-old-space-size=4096 index.js许可证
MIT许可证
