MCP LAMMPS服务器
模型上下文协议(MCP)服务器,使人工智能助手能够与LAMMPS(大规模原子/分子大规模并行模拟器)交互,进行分子动力学模拟。
状态
这仍处于实验状态。该软件包是与AI编码器合作开发的。
更新日期:2025年12月6日
注:所有测试均使用Sonnet 4.5进行
添加对gaff有机液体模拟的支持
简单测试提示:
有机液体模拟
Create a complete organic liquid simulation with these parameters:
- Name: "ethanol_liquid_md"
- Molecules: [{"smiles": "CCO", "count": 500, "name": "ethanol"}]
- Target density: 0.789 g/cm³
- Force field: GAFF
- Temperature: 298.15 K
- Pressure: 1.0 atm
- Timestep: 0.5 fs
- Equilibration: 10000 steps
- Production: 100000 steps多组件仿真
Set up a ternary mixture simulation called "organic_solvent_mix":
- Ethanol (CCO): 30% mole fraction
- Acetone (CC(=O)C): 40% mole fraction
- Toluene (Cc1ccccc1): 30% mole fraction
- Temperature: 300 K
- Pressure: 1 atm
- Equilibration: 20000 steps
- Production: 200000 steps概述
此MCP是我们使用LLM进行自主计算材料设计工作流程的一部分。该MCP服务器提供了一个标准化的接口,用于通过自然语言命令控制LAMMPS分子动力学模拟。它使AI助手能够:
- 设置和配置分子动力学模拟
- 运行平衡和生产模拟
- 实时监控仿真进度
- 分析仿真结果
- 管理模拟工作流程
特性
核心能力
- 仿真管理:创建、配置和运行LAMMPS仿真
- 分子结构加工:将SMILES转换为3D结构,指定GAFF原子类型
- 部队现场支援:GAFF(通用AMBER力场)参数分配
- LAMMPS数据文件生成:从分子结构创建模拟输入文件
- 实时监控:跟踪模拟进度和系统属性
- 分析工具:过程轨迹和计算热力学性质(使用MDAnalysis)
- 费用计算:Gasteiger、MMFF94和GAFF费用估算方法
- 工作流程自动化:定义并执行多步骤模拟工作流程
- SLURM集成:提交和管理HPC集群上的模拟(可选)
支持的分子系统
- 有机小分子
- 液体系统和混合物
- 聚合物体系
- 通过SMILES或坐标文件自定义分子结构
安装
先决条件
- Python 3.9或更高版本
- 带Python接口的LAMMPS
- RDKit(用于分子结构处理)
- Packmol 公司 (用于制作具有适当分子包装的有机液体盒)
系统相关性
Packmol安装 (有机液体模拟所需):
# Ubuntu/Debian
sudo apt install packmol
# macOS (Homebrew)
brew install packmol
# From source
# Download from http://m3g.iqm.unicamp.br/packmol/可选依赖关系
- MDAnalysis(用于高级轨迹分析)
- OpenBabel(用于额外的分子格式转换-需要系统Open Babel库)
- pytraj(用于额外的轨迹分析-需要cpptraj)
- SLURM(用于HPC集群作业提交和管理)
快速开始
- 克隆仓库:
git clone https://github.com/mcp-lammps/mcp-lammps.git
cd mcp-lammps- 创建虚拟环境:
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate- 安装依赖项:
pip install -r requirements.txt- 在开发模式下安装:
pip install -e .用法
基本用法
启动MCP服务器:
python -m mcp_lammps.server配置
服务器可以通过环境变量或配置文件进行配置:
export MCP_LAMMPS_LOG_LEVEL=INFO
export MCP_LAMMPS_WORK_DIR=/path/to/workspace
python -m mcp_lammps.serverSLURM集群集成
对于HPC集群环境,MCP LAMMPS支持SLURM作业提交:
- 配置
slurm_config.yaml在您的工作空间中:
global_defaults:
partition: "compute"
nodes: 1
ntasks_per_node: 4
time_limit: "24:00:00"- 通过AI命令或编程方式将模拟提交到SLURM集群
看 SLURM集成指南 详细说明。
示例提示
基本有机分子模拟:
Create a complete ethanol liquid simulation:
- SMILES: CCO
- 200 molecules
- Temperature: 298 K
- Pressure: 1 atm
- GAFF force field
- 10,000 equilibration steps, 50,000 production steps多组分混合物:
Set up a binary mixture simulation:
- Component 1: Ethanol (CCO, 100 molecules)
- Component 2: Acetone (CC(=O)C, 100 molecules)
- Temperature: 300 K
- NPT ensemble
- GAFF force fieldSMILES定制分子:
Create a simulation for ibuprofen:
- SMILES: CC(C)CC1=CC=C(C=C1)C(C)C(=O)O
- 50 molecules
- Calculate partial charges using Gasteiger method
- NVT ensemble at 310 K发展
项目结构
mcp_lammps/
├── src/mcp_lammps/
│ ├── server.py # Main MCP server
│ ├── lammps_interface.py # LAMMPS wrapper and control
│ ├── simulation_manager.py # Simulation lifecycle management
│ ├── data_handler.py # Data processing and file I/O
│ ├── tools/ # MCP tool implementations
│ │ ├── setup_tools.py # Simulation setup tools
│ │ ├── control_tools.py # Simulation control tools
│ │ ├── analysis_tools.py # Analysis and property calculation
│ │ ├── monitoring_tools.py # Real-time monitoring
│ │ └── organic_tools.py # Organic molecule handling
│ ├── utils/ # Utility modules
│ │ ├── molecular_utils.py # Molecular structure processing
│ │ ├── forcefield_utils.py # GAFF force field handling
│ │ ├── converters.py # Format conversion utilities
│ │ └── helpers.py # General helper functions
│ ├── parsers/ # Parameter file parsers
│ │ └── gaff_parser.py # GAFF force field parser
│ └── data/ # Force field data files
│ └── gaff_parameters.json
├── tests/ # Comprehensive test suite
├── examples/ # Usage examples and sample data
└── docs/ # Documentation贡献
- 克隆该仓库
- 创建要素分支
- 进行更改
- 添加新功能的测试
- 确保所有测试通过
- 提交拉取请求
许可证
此项目根据Apache许可证获得许可-请参阅 许可证 文件以获取详细信息。
致谢
- LAMMPS分子动力学发动机开发团队
- MCP框架的模型上下文协议社区
- 科学计算社区,寻求灵感和反馈
- LLM用于编写代码
