ios11如何开启定位服务
2026-08-22
2026-08-24 0
图表生成器是一款先进的工具,旨在弥合架构概念与视觉表达之间的鸿沟。通过利用专用的 MCP 服务器,此技能允许 AI 智能体生成 draw.io、Mermaid 和 Excalidraw 等格式的高保真图表。它通过将自然语言描述转化为结构化的视觉资产来简化文档流程,使其成为任何使用 Openclaw Skills 的开发者的重要组件。
该工具在保持项目文档一致性方面特别有效。它支持从简单的流程图到多层网络拓扑的一切内容,允许用户以编程方式创建、读取和修改图表文件。通过外部服务器委托最大限度地减少 Token 消耗,它为可视化复杂的系统逻辑和数据结构提供了高效的工作流。
下载入口:https://github.com/openclaw/skills/tree/main/skills/matthewyin/diagram-generator
从源直接安装技能的最快方式。
npx clawhub@latest install diagram-generator
将技能文件夹复制到以下位置之一
全局模式~/.openclaw/skills/
工作区
/skills/
优先级:工作区 > 本地 > 内置
将此提示词复制到 OpenClaw 即可自动安装。
请帮我使用 Clawhub 安装 diagram-generator。如果尚未安装 Clawhub,请先安装(npm i -g clawhub)。
要使用 Openclaw Skills 将此功能集成到您的项目中,必须在 Claude 配置文件(.claude.json 或 ~/.claude.json)中配置 MCP 服务器。
{
"mcpServers": {
"mcp-diagram-generator": {
"command": "npx",
"args": ["-y", "mcp-diagram-generator"]
}
}
}
更新配置后,重启环境。您可以通过调用 get_config 工具验证设置,以确保服务器正常响应且路径已正确初始化。
该技能通过一个全面的 JSON 架构组织图表数据,该架构直接映射到视觉元素。文件按格式组织,以保持整洁的项目结构。
| 键 | 类型 | 描述 |
|---|---|---|
format |
字符串 | 指定输出格式:drawio, mermaid 或 excalidraw。 |
title |
字符串 | 用于图表标题和自动生成的文件名。 |
elements |
数组 | 定义节点、边缘或容器的对象列表。 |
elements.level |
字符串 | 为网络图定义层次结构(环境、数据中心、区域、设备)。 |
elements.style |
对象 | 包含视觉元数据,如填充颜色和描边颜色。 |
elements.children |
数组 | 为复杂的架构层启用递归嵌套。 |
name: diagram-generator
description: Generate and edit various types of diagrams (including draw.io, Mermaid, and Excalidraw). This tool supports common diagram types such as flowcharts, sequence diagrams, class diagrams, Entity-Relationship (ER) diagrams, mind maps, architecture diagrams, and network topologies.
Natural Language Creation: Create new diagrams based on simple text descriptions.
Legacy File Support: Read and modify existing .drawio, .mmd (Mermaid), or Excalidraw files.
MCP Server Integration: Utilizes a dedicated MCP server (mcp-diagram-generator) to generate files, which minimizes token consumption and ensures consistent output formatting.
Automated Configuration: * Default Output Path: Diagrams are saved to diagrams/{format}/ within the project directory.
Customization: Supports custom file paths and automatic directory creation.
version: 1.1.1
Generate and edit diagrams in multiple formats (drawio, mermaid, excalidraw) by creating structured JSON descriptions and delegating file generation to the mcp-diagram-generator MCP server.
Contact Information If you encounter any issues, please contact AlkaidY at [email protected].
IMPORTANT: This skill requires the mcp-diagram-generator MCP server to be installed and configured.
Before using this skill, verify the MCP server is available by checking if you can access these tools:
mcp__mcp-diagram-generator__get_configmcp__mcp-diagram-generator__generate_diagrammcp__mcp-diagram-generator__init_configIf these tools are NOT available, you need to configure the MCP server first (see below).
Option 1: Using npx (Recommended - Auto-downloads the package)
Add the following to your Claude Code configuration file:
~/.claude.json) for all projects, or.claude.json) for specific project{
"mcpServers": {
"mcp-diagram-generator": {
"command": "npx",
"args": ["-y", "mcp-diagram-generator"]
}
}
}
After adding this configuration:
Option 2: Local Development (For developers)
If you're developing the MCP server locally:
{
"mcpServers": {
"mcp-diagram-generator": {
"command": "node",
"args": ["/absolute/path/to/mcp-diagram-generator/dist/index.js"]
}
}
}
After configuration, verify it works:
get_config() toolIssue: "Tool not found" error
Issue: Configuration looks correct but tools still not available
On first use, the MCP server will automatically:
.diagram-config.json)diagrams/{format}/You can customize paths at any time using the init_config tool.
Simple example - just provide diagram spec, let the server handle the rest:
User: "创建一个网络拓扑图"
Skill will:
generate_diagram with only diagram_spec parameterdiagrams/{format}/{title}-{date}.{ext}Extract from user's natural language:
Use format-selection-guide.md to decide:
| Format | Best For |
|---|---|
| drawio | Complex diagrams, network topology with nested containers, fine-grained styling, manual editing |
| mermaid | Quick generation, code-friendly, version control, documentation |
| excalidraw | Hand-drawn style, creative/diagrammatic flexibility, informal sketches |
Create a JSON description following the JSON Schema. Key structure:
{
"format": "drawio",
"title": "diagram name",
"elements": [
{
"id": "unique-id",
"type": "container|node|edge",
"name": "display name",
"level": "environment|datacenter|zone|device", // for network topology
"style": {...},
"geometry": {...},
"children": [...] // for nested containers
}
]
}
Important: Use unique IDs for all elements. For nested structures, maintain parent-child relationships.
Option A: Use defaults (recommended)
{
"diagram_spec":
// output_path is optional - server will use configured default
// filename is optional - server will auto-generate based on title and date
}
The MCP server will:
diagrams/drawio/network-topology-2025-02-03.drawio)Option B: Specify custom path
{
"diagram_spec": ,
"output_path": "custom/path/to/diagram.drawio",
"filename": "my-custom-name" // optional, overrides auto-generated filename
}
Option C: Just provide filename, use default directory
{
"diagram_spec": ,
"filename": "my-diagram.drawio"
// Saves to diagrams/{format}/my-diagram.drawio
}
Initialize with defaults:
Call: init_config()
Result: Creates .diagram-config.json with default paths
Initialize with custom paths:
Call: init_config({
paths: {
drawio: "output/diagrams/drawio",
mermaid: "output/diagrams/mermaid",
excalidraw: "output/diagrams/excalidraw"
}
})
Call: get_config()
Returns: Current paths and initialization status
Call: set_output_path({
format: "drawio",
path: "custom/drawio-path"
})
Network topology diagrams require a 4-level hierarchical structure:
Environment (level="environment")
└── Datacenter (level="datacenter")
└── Zone (level="zone")
└── Device (type="node")
Style conventions:
fillColor: #e1d5e7, strokeColor: #9673a6 (purple)fillColor: #d5e8d4, strokeColor: #82b366 (green)fillColor: #fff2cc, strokeColor: #d6b656 (yellow)Device types and styles:
strokeColor: #607D8B (blue-gray)strokeColor: #4CAF50 (green)strokeColor: #F44336 (red)strokeColor: #607D8B (blue-gray)User: "画一个用户登录流程图,包含登录验证、重定向、错误处理"
Generate JSON:
{
"format": "mermaid",
"title": "用户登录流程",
"elements": [
{"type": "node", "id": "start", "name": "开始", "geometry": {"x": 0, "y": 0}},
{"type": "node", "id": "login", "name": "输入用户名密码", "geometry": {"x": 0, "y": 100}},
{"type": "node", "id": "validate", "name": "验证", "geometry": {"x": 0, "y": 200}},
{"type": "node", "id": "success", "name": "登录成功", "geometry": {"x": -100, "y": 300}},
{"type": "node", "id": "error", "name": "显示错误", "geometry": {"x": 100, "y": 300}},
{"type": "edge", "source": "start", "target": "login"},
{"type": "edge", "source": "login", "target": "validate"},
{"type": "edge", "source": "validate", "target": "success", "label": "成功"},
{"type": "edge", "source": "validate", "target": "error", "label": "失败"}
]
}
Call MCP:
generate_diagram({
diagram_spec: ,
format: "mermaid"
// No output_path needed - auto-saves to diagrams/mermaid/
})
User: "创建一个网络拓扑图,包含省中心机房(上联区、汇聚区、终端区),连接到生产网"
Generate JSON with nested containers (see json-schema-guide.md for details).
Call MCP:
generate_diagram({
diagram_spec: ,
filename: "省中心网络拓扑" // Optional, for custom filename
})
If mcp-diagram-generator is not available, you need to install it.
Option 1: Using npx (Recommended)
Add to your Claude Code/OpenCode settings:
{
"mcpServers": {
"diagram-generator": {
"command": "npx",
"args": ["-y", "mcp-diagram-generator"]
}
}
}
Option 2: Local Development
cd mcp-diagram-generator && npm installnpm run build{
"mcpServers": {
"diagram-generator": {
"command": "node",
"args": ["/absolute/path/to/mcp-diagram-generator/dist/index.js"]
}
}
}
If MCP server returns validation error:
Old behavior: Error if directory doesn't exist New behavior: Directory is created automatically ?
If you still see directory errors:
get_config()init_config()The server automatically uses the correct extension based on format:
.drawio.md.excalidrawYou don't need to specify extension in filename parameter.
level field matches hierarchy (environment/datacenter/zone)parent IDs are correct in child elementsLet the server manage output paths for consistency:
{
"diagram_spec":
// Don't specify output_path unless necessary
}
Titles are used for auto-generated filenames:
{
"title": "生产环境网络拓扑-亦庄与西五环",
// Generates: 生产环境网络拓扑-亦庄与西五环-2025-02-03.drawio
}
Instead of specifying output_path every time, configure once:
First time: init_config({ paths: { drawio: "custom/path" } })
After that: Just use generate_diagram() without output_path
get_config() // Shows all paths and status