README
🚀 Graphistry MCP集成
本项目借助Graphistry和MCP,为大语言模型提供GPU加速的图可视化和分析功能,解决了大语言模型在处理复杂网络数据可视化和分析方面的难题,为其提供了标准化、友好的接口,提升了分析效率和效果。
🚀 快速开始
本项目将Graphistry强大的GPU加速图可视化平台与模型控制协议(MCP)集成,为AI助手和大语言模型(LLMs)赋予了高级图分析能力。它使LLMs能够通过标准化、对LLMs友好的接口来可视化和分析复杂的网络数据。
✨ 主要特性
- 通过Graphistry实现GPU加速的图可视化
- 高级模式发现和关系分析
- 网络分析(社区检测、中心性、路径查找、异常检测)
- 支持多种数据格式(Pandas、NetworkX、边列表)
- 对LLMs友好的API:使用单个
graph_data字典来调用图工具
🚨 重要提示
⚠️ 重要提示
此MCP服务器需要一个免费的Graphistry账户才能使用可视化功能。
- 在 hub.graphistry.com 上注册一个免费账户。
- 在启动服务器之前,将您的凭据设置为环境变量或存储在
.env文件中:请参考export GRAPHISTRY_USERNAME=your_username export GRAPHISTRY_PASSWORD=your_password # 或者创建一个.env文件,内容如下: # GRAPHISTRY_USERNAME=your_username # GRAPHISTRY_PASSWORD=your_password.env.example获取模板。
📦 安装指南
推荐安装方式(Python虚拟环境 + pip)
# 克隆仓库
git clone https://github.com/graphistry/graphistry-mcp.git
cd graphistry-mcp
# 设置虚拟环境并安装依赖
python3 -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"
# 设置您的Graphistry凭据(见上文)
或者使用安装脚本:
./setup-graphistry-mcp.sh
💻 使用示例
启动服务器
# 如果虚拟环境尚未激活,请激活它
source .venv/bin/activate
# 启动服务器(标准输入输出模式)
python run_graphistry_mcp.py
# 或者使用启动脚本,支持HTTP或标准输入输出模式(推荐,安全加载.env文件)
./start-graphistry-mcp.sh --http 8080
安全与凭据处理
⚠️ 重要提示
服务器使用 python-dotenv 从环境变量或
.env文件中加载凭据,因此您可以安全地在本地开发中使用.env文件。
💡 使用建议
start-graphistry-mcp.sh脚本会加载.env文件,这是启动服务器最可靠和安全的方式。
添加到Cursor(或其他支持MCP的工具)
将MCP服务器添加到您的 .cursor/mcp.json 或等效配置文件中:
{
"graphistry": {
"command": "/path/to/your/.venv/bin/python",
"args": ["/path/to/your/run_graphistry_mcp.py"],
"env": {
"GRAPHISTRY_USERNAME": "your_username",
"GRAPHISTRY_PASSWORD": "your_password"
},
"type": "stdio"
}
}
确保使用虚拟环境(可以通过使用虚拟环境中Python的完整路径,或在启动前激活它)。如果您遇到API版本错误或缺少凭据的问题,请仔细检查您的环境变量和注册信息。
示例:可视化图(对LLMs友好的API)
主要工具 visualize_graph 现在接受单个 graph_data 字典。示例如下:
基础用法
{
"graph_data": {
"graph_type": "graph",
"edges": [
{"source": "A", "target": "B"},
{"source": "A", "target": "C"},
{"source": "A", "target": "D"},
{"source": "A", "target": "E"},
{"source": "B", "target": "C"},
{"source": "B", "target": "D"},
{"source": "B", "target": "E"},
{"source": "C", "target": "D"},
{"source": "C", "target": "E"},
{"source": "D", "target": "E"}
],
"nodes": [
{"id": "A"}, {"id": "B"}, {"id": "C"}, {"id": "D"}, {"id": "E"}
],
"title": "5-node, 10-edge Complete Graph",
"description": "A complete graph of 5 nodes (K5) where every node is connected to every other node."
}
}
高级用法
{
"graph_data": {
"graph_type": "hypergraph",
"edges": [
{"source": "A", "target": "B", "group": "G1", "weight": 0.7},
{"source": "A", "target": "C", "group": "G1", "weight": 0.6},
{"source": "B", "target": "C", "group": "G2", "weight": 0.8},
{"source": "A", "target": "D", "group": "G2", "weight": 0.5}
],
"columns": ["source", "target", "group"],
"title": "Test Hypergraph",
"description": "A simple test hypergraph."
}
}
📚 详细文档
以下是可用的MCP工具,用于图可视化、分析和操作:
- visualize_graph:使用Graphistry的GPU加速渲染器可视化图或超图。
- get_graph_ids:列出当前会话中所有存储的图ID。
- get_graph_info:获取存储图的元数据(节点/边数量、标题、描述)。
- apply_layout:对图应用标准布局(力导向、径向、圆形、网格)。
- detect_patterns:运行网络分析(中心性、社区检测、路径查找、异常检测)。
- encode_point_color:按列设置节点颜色编码(分类或连续)。
- encode_point_size:按列设置节点大小编码(分类或连续)。
- encode_point_icon:按列设置节点图标编码(分类,带有图标映射或分箱)。
- encode_point_badge:按列设置节点徽章编码(分类,带有图标映射或分箱)。
- apply_ring_categorical_layout:按分类列(如组/类型)将节点排列成环。
- apply_group_in_a_box_layout:将节点排列成组内盒布局(需要igraph)。
- apply_modularity_weighted_layout:按模块化加权布局排列节点(需要igraph)。
- apply_ring_continuous_layout:按连续列(如分数)将节点排列成环。
- apply_time_ring_layout:按日期时间列(如创建时间)将节点排列成环。
- apply_tree_layout:将节点排列成树(分层分级)布局。
- set_graph_settings:设置高级可视化设置(节点大小、边影响等)。
🤝 贡献说明
欢迎提交Pull Request和提出问题!随着我们对由LLM驱动的图分析和工具集成的了解不断深入,本项目正在快速发展。
📄 许可证
本项目采用MIT许可证。
Scan to contact