图形工具-交互式图形分析工具包
一个全面的基于Ruby的图形分析工具包,具有web可视化和MCP服务器,用于AI驱动的图形分析。
🚀 特性
核心图操作
- 邻接矩阵支持 -从CSV、JSON或TXT文件加载
- 图的算法 -DFS、BFS、带视觉反馈的邻居查找
- 多种导出格式 -CSV矩阵、JSON、交互式HTML
- 命令行接口 -用于批处理操作的全功能CLI
交互式可视化
- 增强型图形可视化工具 -D3.js具有实时交互的强制布局
- 算法可视化 -DFS/BFS漫游的视觉突出显示
- 交互式编辑 -通过拖放添加/删除节点和边
- 矩阵导出 -支持邻接矩阵下载的自定义文件名
- 图形统计 -实时节点计数、边缘计数和密度计算
人工智能集成
- MCP服务器 -HTTP REST API和Claude Desktop MCP服务器
- 自动可视化 -从结构化数据生成交互式图形
- 智能数据处理 -从各种数据格式中提取关系
- 中心性分析 -计算度、介数、贴近度、特征向量中心性
📦 安装
先决条件
- 红宝石2.7+ -核心图操作
- Node.js 16+ -MCP服务器功能
- 现代网络浏览器 -用于交互式可视化
设置
git clone https://github.com/dromologue/Graph-Tools.git
cd Graph-Tools
# For local CLI usage
gem install
# Install MCP server dependencies
cd mcp-graph-server
npm install
cd ..
# For web application
npm install🔧 用法
命令行接口
# Basic graph visualization
ruby graph_cli.rb matrix.csv
# With custom vertex labels
ruby graph_cli.rb -v "A,B,C,D" matrix.csv
# Run graph algorithms
ruby graph_cli.rb --dfs A --bfs B matrix.csv
# Export to web visualization
ruby graph_cli.rb -d matrix.csv
# Export to JSON
ruby graph_cli.rb -j output.json matrix.csv交互式可视化工具
本地使用:
- 打开
Files/enhanced-graph-visualizer.html在浏览器中 - 加载示例数据或创建自己的图形
- 通过视觉突出显示运行DFS/BFS操作
- 使用自定义文件名导出矩阵
Web应用程序:
- 跑
npm start并参观http://localhost:3000 - 通过拖放上传矩阵文件
- 尝试使用样本数据进行快速测试
- 获取实时分析结果
MCP服务器集成
HTTP REST API模式
cd mcp-graph-server
npm run api
# Server runs on http://localhost:3001克劳德桌面模式
- 配置Claude桌面 (
~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"graph-server": {
"command": "node",
"args": ["/path/to/Graph-Tools/mcp-graph-server/api-server.js"],
"env": {
"SERVER_MODE": "mcp"
}
}
}
}- 使用自然语言 在克劳德桌面:
Analyze these relationships and create a graph visualization:
[
{"id": "Alice", "friends": ["Bob", "Carol"]},
{"id": "Bob", "friends": ["Alice", "David"]},
{"id": "Carol", "friends": ["Alice"]},
{"id": "David", "friends": ["Bob"]}
]📁 项目结构
Graph-Tools/
├── graph.rb # Core Graph class
├── graph_cli.rb # Command line interface
├── server.js # Web application server
├── Files/ # Visualization files directory
│ └── enhanced-graph-visualizer.html # Interactive D3.js visualizer
├── public/ # Web application files
│ ├── index.html # Main web interface
│ └── mcp-documentation.html # API documentation
├── mcp-graph-server/ # MCP server
│ ├── api-server.js # Dual-mode MCP/HTTP server
│ ├── index.js # Original MCP server
│ ├── package.json # Node.js dependencies
│ ├── claude-config-example.json # Claude Desktop config example
│ └── data/ # Generated files (matrices, visualizations)
├── Gemfile # Ruby dependencies
├── package.json # Node.js web server dependencies
└── README.md # This fileAPI终点
MCP服务器提供MCP协议和HTTP REST API:
POST /api/analyze-relationships-从数据中提取关系POST /api/create-adjacency-matrix-从关系对构建矩阵POST /api/calculate-centrality-计算网络中心性度量POST /api/analyze-network-structure-综合网络分析GET /health-健康检查端点
看 /mcp-documentation.html 获取完整的API文档和示例。
快速开始
1.直观地创建图形
# Open the Enhanced Graph Visualizer
open "Files/enhanced-graph-visualizer.html"在增强的可视化工具中:
- 通过键入名称并单击“添加节点”来添加顶点
- 单击两个节点以选择它们,然后单击“添加边”
- 拖动节点以重新定位它们
- 运行DFS/BFS操作并查看视觉亮点
- 完成后导出为CSV矩阵
2.分析你的图表
# Basic analysis
ruby graph_cli.rb your_graph.csv
# With custom vertex names
ruby graph_cli.rb -v "Alice,Bob,Carol,David" your_graph.csv
# Specific operations
ruby graph_cli.rb -v "Alice,Bob,Carol,David" --dfs Alice your_graph.csv
ruby graph_cli.rb -v "Alice,Bob,Carol,David" --bfs Bob your_graph.csv
ruby graph_cli.rb -v "Alice,Bob,Carol,David" --neighbors Carol your_graph.csv3.导出以进行可视化
# Export for D3.js editor (interactive)
ruby graph_cli.rb -v "Alice,Bob,Carol,David" -d your_graph.csv
# Export JSON for programmatic use
ruby graph_cli.rb -v "Alice,Bob,Carol,David" -j output.json your_graph.csv命令参考
CLI选项
ruby graph_cli.rb [options] matrix_file
Options:
-v, --vertices LABELS # Comma-separated vertex labels
-f, --format FORMAT # Output format (text, matrix, json)
-j, --export-json FILE # Export to JSON file
-d, --d3 # Export for D3.js visualization
--dfs VERTEX # Perform DFS traversal
--bfs VERTEX # Perform BFS traversal
--neighbors VERTEX # Show neighbors
--path FROM,TO # Check edge existence支持的文件格式
- CSV文件:
0,1,0\n1,0,1\n0,1,0 - 文本:
0 1 0\n1 0 1\n0 1 0(空格分隔) - 对象符号:
{"matrix": [[0,1,0],[1,0,1],[0,1,0]]}
MCP服务器工具
MCP服务器为AI助手提供以下工具:
analyze_relationships-从结构化数据中提取关系并创建可视化create_adjacency_matrix-从关系对构建矩阵calculate_centrality-计算网络中心性度量(度、介数、接近度、特征向量)analyze_network_structure-结合关系提取和中心性的综合网络分析
演出
- 图形创建: 对于最多100个节点的图形,为亚秒级
- DFS/BFS: 线性时间复杂度O(V+E)
- 可视化: 在D3.js中流畅处理50+个节点
- 文件格式: 高效支持所有格式(CSV、JSON、TXT)
- HTTP API: 网络分析的快速响应时间
错误处理
这些工具为以下方面提供了全面的错误处理:
- 矩阵格式无效
- 操作中不存在顶点
- 输入文件格式错误
- 缺少的依赖
- API验证错误
贡献
代码库遵循干净的架构原则,关注点分离:
- Ruby中的核心图操作
- 使用现代JavaScript的Web界面
- 用于AI集成的MCP服务器
- 全面的API文件
