Graphistry Mcp

Graphistry Mcp

🚀 Graphistry MCP集成

本项目借助Graphistry和MCP,为大语言模型提供GPU加速的图可视化和分析功能,解决了大语言模型在处理复杂网络数据可视化和分析方面的难题,为其提供了标准化、友好的接口,提升了分析效率和效果。

🚀 快速开始

本项目将Graphistry强大的GPU加速图可视化平台与模型控制协议(MCP)集成,为AI助手和大语言模型(LLMs)赋予了高级图分析能力。它使LLMs能够通过标准化、对LLMs友好的接口来可视化和分析复杂的网络数据。

✨ 主要特性

  • 通过Graphistry实现GPU加速的图可视化
  • 高级模式发现和关系分析
  • 网络分析(社区检测、中心性、路径查找、异常检测)
  • 支持多种数据格式(Pandas、NetworkX、边列表)
  • 对LLMs友好的API:使用单个 graph_data 字典来调用图工具

🚨 重要提示

⚠️ 重要提示

此MCP服务器需要一个免费的Graphistry账户才能使用可视化功能。

  1. hub.graphistry.com 上注册一个免费账户。
  2. 在启动服务器之前,将您的凭据设置为环境变量或存储在 .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许可证。

  • 0 关注
  • 0 收藏,8 浏览
  • system 提出于 2025-09-20 23:57

相似服务问题