一个全面的模型上下文协议(MCP)服务器,用于使用 OpenMM 进行分子动力学模拟以及使用 Abacus 进行密度泛函理论(DFT)计算。该服务器通过大型语言模型(LLM)集成提供了一个自然语言接口来处理复杂的分子模拟。
# 克隆仓库
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
添加到您的 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 纳秒"
LangevinMiddle - Langevin 中间积分器(推荐)Verlet - Verlet 积分器(NVE 系综)Brownian - 布朗动力学VariableLangevin - 变步长 LangevinVariableVerlet - 变步长 VerletNoseHoover - Nose-Hoover 热浴["amber14-all.xml", "amber14/tip3pfb.xml"]["amber19-all.xml", "amber19/tip3pfb.xml"]["charmm36_2024.xml", "charmm36/water.xml"]tip3p - TIP3P 水模型tip3pfb - TIP3P-FB 水模型(推荐)tip4pew - TIP4P-Ew 水模型spce - SPC/E 水模型CUDA - NVIDIA GPU(最快)OpenCL - 通用 GPUCPU - 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/ # 任务数据目录(自动创建)
“未找到 OpenMM”警告
conda install -c conda-forge openmm“命令未找到”错误
权限错误
# 测试服务器启动
python run_openmm_server.py
# 测试 MCP 功能
python test_mcp_server.py
如果您遇到任何问题:
python test_mcp_server.py本项目根据 GNU 通用公共许可证 v3.0 授权。
愉快地模拟!🎉