使用说明
项目简介
MCP-GMX-VMD 服务是一个基于 Model Context Protocol (MCP) 构建的应用后端,旨在简化和集成分子动力学模拟与可视化工作流程。它利用 GROMACS 进行分子动力学模拟,并结合 VMD 进行可视化分析,通过微服务架构提供灵活和易用的分子模拟工具。用户可以通过 MCP 客户端与该服务进行交互,执行模拟设置、运行、分析和可视化等任务。
主要功能点
- 分子动力学模拟: 支持 GROMACS 分子动力学模拟的设置和运行。
- 轨迹分析: 提供轨迹分析功能,例如 RMSD (均方根偏差)、RMSF (均方根涨落) 等。
- 3D 可视化: 集成 VMD 可视化工具,用于分子结构和模拟轨迹的三维可视化。
- 自定义工作流程: 支持在用户指定目录下创建和管理模拟工作流程。
- 模块化架构: 基于 MCP (微服务通信协议) 构建,易于与其他工具灵活集成。
- 工作流程管理: 提供创建、列出、获取、更新、删除、导出和导入工作流程的功能。
- 参数管理: 支持模拟参数的验证和优化。
- VMD 模板: 内置多种 VMD 可视化模板,方便用户快速应用。
- GROMACS 命令执行: 允许用户直接执行 GROMACS 命令。
- 结构文件搜索: 提供结构文件搜索功能,方便用户查找分子结构文件。
- 参数修改: 支持通过自然语言指令修改模拟参数。
安装步骤
-
克隆仓库:
git clone https://github.com/egtai/gmx-vmd-mcp.git cd gmx-vmd-mcp -
创建并激活虚拟环境:
python -m venv venv source venv/bin/activate # Linux/macOS venv\Scripts\activate # Windows -
安装依赖:
pip install -r requirements.txt -
安装 MCP-GMX-VMD 服务:
pip install -e .
服务器配置
MCP 客户端需要配置以下信息以连接到 MCP-GMX-VMD 服务器:
{ "serverName": "GROMACS-VMD Service", "command": "python", "args": [ "mcp_server.py" ], "transport": "stdio" }
配置参数说明:
- 'serverName': MCP 服务器的名称,必须设置为 '"GROMACS-VMD Service"' 以匹配服务器声明的名称。
- 'command': 启动 MCP 服务器的命令,这里使用 'python' 解释器。
- 'args': 启动命令的参数,指定执行 'mcp_server.py' 脚本。
- 'transport': 指定 MCP 通信方式为标准输入输出流 ('stdio')。
注意: 确保您的系统已安装 Python 3.9+、GROMACS 和 VMD,并已将 GROMACS 和 VMD 的可执行文件路径添加到系统环境变量 'PATH' 中。您可能还需要根据您的 VMD 安装路径配置 'config.json' 文件。
基本使用方法
-
启动 MCP-GMX-VMD 服务器: 在终端中,进入 'gmx-vmd-mcp' 仓库目录,并运行命令:
python mcp_server.py服务器将开始监听请求。
-
使用 MCP 客户端连接并发送请求: 您可以使用任何兼容 MCP 协议的客户端(例如,基于 LLM 的智能体客户端)与 MCP-GMX-VMD 服务进行交互。客户端需要配置上述 服务器配置 信息以建立连接。
-
通过客户端调用服务功能: 客户端可以通过 JSON-RPC 请求调用 MCP-GMX-VMD 服务提供的资源和工具,例如:
- 创建工作流程
- 准备分子动力学模拟
- 执行 GROMACS 命令
- 分析模拟轨迹
- 应用 VMD 模板进行可视化
具体的使用示例可以参考 'README.md' 文件中的 "Usage Examples" 部分,例如使用 'requests' 库发送 HTTP 请求与服务交互。实际使用时,您需要将 HTTP 请求替换为 MCP 客户端的调用方式。
示例 (创建工作流程):
# 客户端代码示例 (假设使用 Python MCP 客户端库) from mcp_client import MCPClient # 配置信息 (与上面 server configuration 相同) config = { "serverName": "GROMACS-VMD Service", "command": "python", "args": [ "mcp_server.py" ], "transport": "stdio" } client = MCPClient(config) client.connect() # 调用 "创建工作流程" 工具 response = client.call_tool("创建工作流程", name="my_new_workflow", description="测试工作流程") print(response) client.close()
请参考仓库文档和代码了解更多详细的使用方法和 API 调用。
信息
分类
AI与计算