返回市场
图形分析mcp服务器

图形分析mcp服务器

作者:graphistry10 星标更新:2025-10-10

项目介绍

Graphistry MCP 集成

使用 Graphistry 和 MCP 实现大型语言模型的 GPU 加速图形可视化和分析。

概述

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

关键特性:

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

🚨 重要提示:需要注册 Graphistry

此 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 获取模板。

MCP 配置(.mcp.json)

要使用此项目与 Cursor 或其他兼容 MCP 的工具,您需要在项目根目录下有一个 .mcp.json 文件。提供了一个模板 .mcp.json.example

设置:

cp .mcp.json.example .mcp.json

编辑 .mcp.json 以:

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

注意:

  • .mcp.json.example 包含了 HTTP 和 stdio 配置。根据需要启用或禁用 disabled 字段。
  • 参见 .env.example 获取环境变量设置。

安装

快速开始(推荐)

# 使用 npx 安装(无需安装)
npx -y @silkspace/graphistry-mcp

# 或全局安装
npm install -g @silkspace/graphistry-mcp
graphistry-mcp

MCP 客户端配置:

添加到您的 MCP 客户端设置(.mcp.json, MCP 客户端配置等):

{
  "graphistry": {
    "command": "npx",
    "args": ["-y", "@silkspace/graphistry-mcp"],
    "env": {
      "GRAPHISTRY_USERNAME": "your_username",
      "GRAPHISTRY_PASSWORD": "your_password"
    }
  }
}

npm 包会自动:

  • 创建一个 Python 虚拟环境
  • 安装所有 Python 依赖项(如果可用则使用 uv,否则使用 pip
  • 设置 MCP 服务器

替代方案:手动安装(Python venv + 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

# 启动服务器(stdio 模式)
python run_graphistry_mcp.py

# 或使用启动脚本以 HTTP 或 stdio 模式启动(推荐,安全加载 .env)
./start-graphistry-mcp.sh --http 8080

安全性和凭据处理

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

添加到 MCP 客户端

使用 npm(推荐):

将 MCP 服务器添加到您的 MCP 客户端配置:

{
  "graphistry": {
    "command": "npx",
    "args": ["-y", "@silkspace/graphistry-mcp"],
    "env": {
      "GRAPHISTRY_USERNAME": "your_username",
      "GRAPHISTRY_PASSWORD": "your_password"
    }
  }
}

使用手动安装:

{
  "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"
    }
  }
}

注意事项:

  • 确保使用虚拟环境(要么使用虚拟环境的完整路径,要么在启动前激活它)。
  • 如果遇到关于 API 版本或缺少凭据的错误,请检查您的环境变量和注册信息。

示例:可视化图形(大型语言模型友好 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节点,10边完全图",
    "description": "一个由5个节点组成的完全图(K5),其中每个节点都与其他节点相连。"
  }
}

示例(超图):

{
  "graph_data": {
    "graph_type": "hypergraph",
    "edges": [
      {"source": "A", "target": "B", "group": "G1", "weight": 0.7},
      {"source": "A", "target": "C", "group": "G1", "weight": .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 和问题!随着我们对大型语言模型驱动的图形分析和工具集成了解的深入,这个项目正在迅速发展。

许可证

MIT