图析-MCP

用于大型语言模型的GPU加速图形可视化和分析服务器,集成了模型控制协议(MCP),使AI助手能够可视化和分析复杂的网络数据。

data-platformsimage-and-video-processingresearch-and-data

622 查看 · 2026-07-07 更新

简介

用于大型语言模型的GPU加速图形可视化和分析服务器,集成了模型控制协议(MCP),使AI助手能够可视化和分析复杂的网络数据。

简介

用于大型语言模型的GPU加速图形可视化和分析服务器,集成了模型控制协议(MCP),使AI助手能够可视化和分析复杂的网络数据。

Graphistry MCP 集成

使用 Graphistry 和 MCP 为大型语言模型提供 GPU 加速的图可视化和分析。

概述

该项目将 Graphistry 强大的 GPU 加速图可视化平台与模型控制协议 (MCP) 集成,为 AI 助手和 LLM 提供高级图分析功能。它允许 LLM 通过标准化的、对 LLM 友好的接口来可视化和分析复杂的网络数据。

主要特性:

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

🚨 重要提示:需要注册 Graphistry

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

  1. hub.graphistry.com 注册一个免费账户

  2. 在启动服务器之前,将您的凭据设置为环境变量或在 .env 文件中: bash export GRAPHISTRY_USERNAME=your_username export GRAPHISTRY_PASSWORD=your_password

    或者创建一个 .env 文件,内容如下:

    GRAPHISTRY_USERNAME=your_username

    GRAPHISTRY_PASSWORD=your_password

    请参阅 .env.example 获取模板。

MCP 配置 (.mcp.json)

要使用 Cursor 或其他兼容 MCP 的工具,请在项目根目录中准备一个 .mcp.json 文件。已提供 .mcp.json.example 作为模板。

设置:

bash cp .mcp.json.example .mcp.json

编辑 .mcp.json 以:

  • 设置适合您环境的正确路径(例如,项目根目录、Python 可执行文件、服务器脚本)
  • 设置您的 Graphistry 凭据(或使用环境变量/.env)
  • 选择 HTTP 或 stdio 模式:
    • graphistry-http:通过 HTTP 连接(设置 url 以匹配您的服务器端口)
    • graphistry:通过 stdio 连接(根据需要设置 commandargsenv

注意:

  • .mcp.json.example 包含 HTTP 和 stdio 配置。通过设置 disabled 字段启用/禁用所需配置。
  • 有关环境变量设置,请参阅 .env.example

安装

推荐安装方法(Python venv + pip)

bash

克隆仓库

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 凭据(见上文)

或者使用设置脚本:

bash ./setup-graphistry-mcp.sh

使用

启动服务器

bash

如果尚未激活,请激活您的虚拟环境

source .venv/bin/activate

启动服务器(stdio 模式)

python run_graphistry_mcp.py

或者使用启动脚本以 HTTP 或 stdio 模式启动(推荐,安全地加载 .env)

./start-graphistry-mcp.sh --http 8080

安全性和凭据处理

  • 服务器从环境变量或 .env 中加载凭据,使用 python-dotenv,因此您可以安全地在本地开发中使用 .env 文件。
  • start-graphistry-mcp.sh 脚本会加载 .env 并且是启动服务器最健壮和安全的方式。

添加到 Cursor(或其他 LLM 工具)

  • 将 MCP 服务器添加到您的 .cursor/mcp.json 或等效配置中: 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" } }

  • 确保使用了虚拟环境(要么使用 venv 的 Python 的完整路径,要么在启动前激活它)。

  • 如果看到关于 API 版本或缺少凭据的错误,请检查您的环境变量和注册信息。### 示例:可视化图(LLM友好的API)

主要工具 visualize_graph 现在接受一个单独的 graph_data 字典。示例:

python { "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节点10边完全图", "description": "一个包含5个节点(K5)的完全图,其中每个节点都与其他所有节点相连。" } }

超图示例:

python { "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": "测试超图", "description": "一个简单的测试超图。" } }

可用的MCP工具

以下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: 设置高级可视化设置(点大小、边影响等)。

贡献

欢迎提交PR和问题!随着我们对由LLM驱动的图分析和工具集成了解的深入,该项目正在迅速发展。

许可证

MIT

来源