返回市场
开放分子动力学MCP服务器

开放分子动力学MCP服务器

作者:PhelanShao32 星标更新:2025-05-31

项目介绍

OpenMM MCP 服务器

English | 中文


🧬 OpenMM & Abacus MCP 服务器

一个全面的模型上下文协议(MCP)服务器,用于使用 OpenMM 进行分子动力学模拟以及使用 Abacus 进行密度泛函理论(DFT)计算。该服务器通过大型语言模型(LLM)集成提供了一个自然语言接口来处理复杂的分子模拟。

✨ 特性

  • 完整的 OpenMM 集成:支持所有 OpenMM 功能,包括高级积分器、压力耦合器和约束条件。
  • DFT 计算:集成 Abacus DFT 引擎进行量子力学计算。
  • 预配置模板:准备好的设置用于蛋白质模拟、膜系统等。
  • 高级采样:元动力学、自由能计算和增强采样方法。
  • GPU 加速:支持 CUDA 和 OpenCL 平台以实现高性能计算。
  • 任务管理:异步任务执行,具有持久性和监控功能。
  • 自然语言接口:使用简单的英语命令与复杂的模拟交互。

🚀 快速开始

安装
# 克隆仓库
git clone <repository_url>
cd openmm-mcp-server

# 安装依赖
pip install -r requirements.txt

# 可选:安装 OpenMM 以进行实际模拟
conda install -c conda-forge openmm

# 测试安装
python test_mcp_server.py
Roo Code 集成

添加到您的 Code/Cline/Claude MCP 设置中:

{
  "mcpServers": {
    "openmm-server": {
      "command": "python",
      "args": ["run_openmm_server.py"],
      "cwd": "path-to\\openmm-mcp-server",
      "alwaysAllow": [
        "create_md_simulation",
        "create_advanced_md_simulation",
        "setup_protein_simulation",
        "setup_membrane_simulation",
        "create_dft_calculation",
        "control_simulation",
        "get_task_status",
        "list_all_tasks",
        "analyze_results"
      ]
    }
  }
}

重要:用您的实际项目路径替换路径!

🛠️ 可用工具

基础工具
  • create_md_simulation - 创建简单的 MD 模拟
  • create_dft_calculation - 创建 DFT 计算
  • control_simulation - 控制模拟执行(启动/停止/暂停)
  • get_task_status - 检查任务状态
  • list_all_tasks - 列出所有任务
  • analyze_results - 分析模拟结果
高级工具
  • create_advanced_md_simulation - 支持完整的 OpenMM 功能(50+ 参数)
  • setup_protein_simulation - 预配置的蛋白质模拟模板
  • setup_membrane_simulation - 膜蛋白模拟设置

💬 使用示例

简单水分子模拟
"运行一个在 300K 下进行 10000 步的水分子分子动力学模拟"
高级蛋白质模拟
"设置一个在生理温度 310K 下进行 100 纳秒的蛋白质生产模拟,使用 Amber19 力场和 TIP3P-FB 水模型,0.15M 盐浓度,并启用 GPU 加速"
膜蛋白模拟
"创建一个带有表面张力控制的 POPC 膜蛋白模拟,持续 50 纳秒"

📊 OpenMM 参数参考

积分器
  • LangevinMiddle - Langevin 中间积分器(推荐)
  • Verlet - Verlet 积分器(NVE 系综)
  • Brownian - 布朗动力学
  • VariableLangevin - 变步长 Langevin
  • VariableVerlet - 变步长 Verlet
  • NoseHoover - Nose-Hoover 热浴
力场
  • Amber14: ["amber14-all.xml", "amber14/tip3pfb.xml"]
  • Amber19: ["amber19-all.xml", "amber19/tip3pfb.xml"]
  • CHARMM36: ["charmm36_2024.xml", "charmm36/water.xml"]
水模型
  • tip3p - TIP3P 水模型
  • tip3pfb - TIP3P-FB 水模型(推荐)
  • tip4pew - TIP4P-Ew 水模型
  • spce - SPC/E 水模型
平台
  • CUDA - NVIDIA GPU(最快)
  • OpenCL - 通用 GPU
  • CPU - CPU 计算
  • Reference - 参考实现
非键合方法
  • PME - 粒子网格 Ewald(推荐用于周期性系统)
  • NoCutoff - 无截断(小系统)
  • CutoffNonPeriodic - 非周期性截断
  • CutoffPeriodic - 周期性截断
  • Ewald - 传统 Ewald 求和
约束
  • None - 无约束
  • HBonds - 氢键约束(推荐)
  • AllBonds - 所有键约束
  • HAngles - 氢角约束
压力耦合器
  • MonteCarloBarostat - 各向同性压力控制
  • MonteCarloAnisotropicBarostat - 各向异性压力控制
  • MonteCarloMembraneBarostat - 膜系统压力控制
精度
  • mixed - 混合精度(推荐)
  • single - 单精度
  • double - 双精度

🔧 配置

环境变量:

export TASK_DATA_DIR="./simulation_data"
export MAX_CONCURRENT_TASKS=4
export DEFAULT_OPENMM_PLATFORM="CUDA"
export LOG_LEVEL="INFO"
export LOG_FILE="./mcp_server.log"

📁 项目结构

openmm-mcp-server/
├── run_openmm_server.py      # 启动脚本
├── test_mcp_server.py        # 测试脚本
├── requirements.txt          # 依赖项
├── README.md                 # 英文文档
├── README_CN.md              # 中文文档
├── src/
│   ├── server_new.py         # 主服务器
│   ├── advanced_md_tools.py  # 高级 MD 工具
│   ├── task_manager.py       # 任务管理
│   ├── openmm_engine.py      # OpenMM 引擎
│   ├── abacus_engine.py      # Abacus DFT 引擎
│   ├── config.py             # 配置管理
│   ├── tools/                # MCP 工具实现
│   ├── resources/            # MCP 资源实现
│   └── utils/                # 工具函数
├── tests/                    # 测试文件
├── examples/                 # 示例代码
├── docs/                     # 文档
└── task_data/                # 任务数据目录(自动创建)

📚 额外文档

🔍 故障排除

常见问题
  1. “未找到 OpenMM”警告

    • 这是正常的,服务器将以模拟模式运行
    • 对于实际模拟,请安装 OpenMM:conda install -c conda-forge openmm
  2. “命令未找到”错误

    • 检查 Python 是否在 PATH 中
    • 核实项目路径是否正确
    • 尝试使用绝对路径
  3. 权限错误

    • 确保项目目录具有读写权限
    • 检查 task_data 目录是否可写
验证配置
# 测试服务器启动
python run_openmm_server.py

# 测试 MCP 功能
python test_mcp_server.py

🤝 贡献

  1. 分叉仓库
  2. 创建功能分支
  3. 进行更改
  4. 添加测试
  5. 提交拉取请求

🆘 支持

如果您遇到任何问题:

  1. 运行测试脚本:python test_mcp_server.py
  2. 查阅文档
  3. 检查日志文件(如果已配置)
  4. 在 GitHub 上提交问题

📄 许可

本项目根据 GNU 通用公共许可证 v3.0 授权。


愉快地模拟!🎉