# 图析-MCP
## 基本信息
- Slug: `graphistry-graphistry-mcp`
- Source: modelscope
- Publisher: @graphistry/graphistry-mcp
- Categories: data-platforms / image-and-video-processing / research-and-data
- Hosted: No
- License: MIT License
- Source URL: https://www.modelscope.cn/mcp/servers/@graphistry/graphistry-mcp
## 简介
用于大型语言模型的GPU加速图形可视化和分析服务器，集成了模型控制协议（MCP），使AI助手能够可视化和分析复杂的网络数据。
## MCP Server 详情

# 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](https://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 连接（根据需要设置 `command`、`args` 和 `env`）

**注意：**
- `.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](https://pypi.org/project/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

