本项目是基于 Model Context Protocol (MCP) 实现的后端服务器,利用 Graphistry 强大的 GPU 加速能力,为 LLM 客户端提供图数据的可视化和深度分析能力。它允许 LLM 调用工具来处理、可视化和分析复杂的网络数据。
主要功能点
- 图数据可视化: 支持多种格式 (Pandas DataFrame, NetworkX 图对象, 简单的边列表) 的图数据上传和可视化,生成可交互的图链接。
- 图信息查询: 获取已创建图的基本信息,如节点数、边数、密度、连接性等指标,以及可视化链接。
- 布局算法应用: 支持对图应用不同的布局算法 (力导向、径向、圆形、网格),以突出不同的结构特征。
- 模式检测: 执行图分析任务,包括社区检测 (识别群体)、中心性计算 (找出重要节点)、路径查找 (探索连接路径) 和异常检测 (识别异常节点)。
安装步骤
- 克隆仓库:
git clone https://github.com/bmorphism/graphistry-mcp.git cd graphistry-mcp - 安装 uv/uvx (推荐):
curl -LsSf https://astral.sh/uv/install.sh | sh # 确保 uv/uvx 在您的 PATH 中 - 设置虚拟环境并安装依赖:
或者使用自动化脚本:uv venv .venv source .venv/bin/activate uvx pip install -e ".[dev]"./setup-graphistry-mcp.sh - 注册 Graphistry 账户: 访问 hub.graphistry.com 注册免费账户。
- 配置 Graphistry 凭据:
在启动服务器前,将您的 Graphistry 用户名和密码设置为环境变量:
您也可以将这两行添加到项目根目录下的 '.env' 文件中。export GRAPHISTRY_USERNAME=您的用户名 export GRAPHISTRY_PASSWORD=您的密码
服务器配置 (供 MCP 客户端使用)
MCP 客户端需要知道如何启动这个 MCP 服务器。以下是配置信息示例 (JSON 格式),客户端通常在启动时读取此类配置来调用服务器:
{ "server_name": "Graphistry Graph Visualization", "command": "./run_graphistry_mcp.py", "args": [] // 参数说明: // "server_name": 服务器在其 MCP 声明中使用的唯一名称。 // "command": 启动服务器的可执行文件或脚本的路径。这里指向项目根目录下的启动脚本。 // 请确保该脚本有执行权限 (chmod +x run_graphistry_mcp.py)。 // 如果直接运行 Python 脚本,command 可以是 "python",args 中第一个元素是脚本路径。 // 例如: "command": "python", "args": ["run_graphistry_mcp.py"] // "args": 传递给 command 的命令行参数列表。 // - 对于标准 Stdio 模式 (默认),args 为空列表 []。 // - 对于 HTTP 模式,args 可以是 ["--http", "8080"] (使用 8080 端口)。 // 服务器支持端口冲突检测和自动切换,但最好在客户端配置中指定预期端口。 // 请根据您的实际安装位置和运行方式调整 command 和 args。 }
基本使用方法 (通过 MCP 客户端)
- 启动服务器:
根据您的安装和配置,使用上述配置中的 'command' 和 'args' 启动服务器进程。
例如,在项目目录下运行 (Stdio 模式):
或 (HTTP 模式):./start-graphistry-mcp.sh./start-graphistry-mcp.sh --http 8080 - 连接 MCP 客户端: 配置您的 MCP 客户端,使其能够找到并连接到此服务器进程 (通过 Stdio 或 HTTP 端口)。
- LLM 调用工具:
一旦客户端连接成功,LLM 即可通过客户端框架调用服务器提供的工具。通常流程如下:
- LLM 请求客户端列出可用工具 ('list_tools')。
- 客户端收到服务器返回的工具列表和描述 (包括 'visualize_graph', 'get_graph_info', 'apply_layout', 'detect_patterns')。
- LLM 根据用户需求,选择合适的工具 (例如 'visualize_graph'),构建参数 (如提供图数据),通过客户端调用该工具 ('call_tool')。
- 服务器接收请求,执行工具逻辑,处理数据,与 Graphistry API 交互,并将结果 (如可视化 URL, 分析结果) 返回给客户端。
- 客户端将结果呈现给 LLM 或用户。
详细的工具参数和返回格式请参考 'src/graphistry_fastmcp/server.py' 中的函数定义和类型注解,或者通过 'list_tools' 调用获取。
信息
分类
AI与计算