openmm-mcp-server
If you are the rightful owner of openmm-mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
OpenMM MCP Server is a comprehensive server for molecular dynamics simulations using OpenMM and DFT calculations with Abacus, providing a natural language interface for complex molecular simulations.
OpenMM MCP Server
|
𧬠OpenMM & Abacus MCP Server
A comprehensive Model Context Protocol (MCP) server for molecular dynamics simulations using OpenMM and DFT calculations with Abacus. This server provides a natural language interface for complex molecular simulations through LLM integration.
⨠Features
- Complete OpenMM Integration: Support for all OpenMM features including advanced integrators, barostats, and constraints
- DFT Calculations: Abacus DFT engine integration for quantum mechanical calculations
- Pre-configured Templates: Ready-to-use setups for protein simulations, membrane systems, and more
- Advanced Sampling: Metadynamics, free energy calculations, and enhanced sampling methods
- GPU Acceleration: CUDA and OpenCL platform support for high-performance computing
- Task Management: Asynchronous task execution with persistence and monitoring
- Natural Language Interface: Interact with complex simulations using simple English commands
š Quick Start
Installation
# Clone the repository
git clone <repository_url>
cd openmm-mcp-server
# Install dependencies
pip install -r requirements.txt
# Optional: Install OpenMM for actual simulations
conda install -c conda-forge openmm
# Test installation
python test_mcp_server.py
Roo Code Integration
Add to your Code/Cline/Claude MCP settings:
{
"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"
]
}
}
}
Important: Replace the path with your actual project path!
š ļø Available Tools
Basic Tools
create_md_simulation
- Create simple MD simulationscreate_dft_calculation
- Create DFT calculationscontrol_simulation
- Control simulation execution (start/stop/pause)get_task_status
- Check task statuslist_all_tasks
- List all tasksanalyze_results
- Analyze simulation results
Advanced Tools
create_advanced_md_simulation
- Full OpenMM feature support (50+ parameters)setup_protein_simulation
- Pre-configured protein simulation templatessetup_membrane_simulation
- Membrane protein simulation setup
š¬ Usage Examples
Simple Water Simulation
"Run a molecular dynamics simulation of a water molecule at 300K for 10000 steps"
Advanced Protein Simulation
"Set up a protein production simulation for 100 nanoseconds at physiological temperature 310K, using Amber19 force field with TIP3P-FB water model, 0.15M salt concentration, and GPU acceleration"
Membrane Protein Simulation
"Create a POPC membrane protein simulation for 50 nanoseconds with surface tension control"
š OpenMM Parameters Reference
Integrators
LangevinMiddle
- Langevin middle integrator (recommended)Verlet
- Verlet integrator (NVE ensemble)Brownian
- Brownian dynamicsVariableLangevin
- Variable step size LangevinVariableVerlet
- Variable step size VerletNoseHoover
- Nose-Hoover thermostat
Force Fields
- Amber14:
["amber14-all.xml", "amber14/tip3pfb.xml"]
- Amber19:
["amber19-all.xml", "amber19/tip3pfb.xml"]
- CHARMM36:
["charmm36_2024.xml", "charmm36/water.xml"]
Water Models
tip3p
- TIP3P water modeltip3pfb
- TIP3P-FB water model (recommended)tip4pew
- TIP4P-Ew water modelspce
- SPC/E water model
Platforms
CUDA
- NVIDIA GPU (fastest)OpenCL
- General GPUCPU
- CPU computationReference
- Reference implementation
Nonbonded Methods
PME
- Particle Mesh Ewald (recommended for periodic systems)NoCutoff
- No cutoff (small systems)CutoffNonPeriodic
- Non-periodic cutoffCutoffPeriodic
- Periodic cutoffEwald
- Traditional Ewald summation
Constraints
None
- No constraintsHBonds
- Hydrogen bond constraints (recommended)AllBonds
- All bond constraintsHAngles
- Hydrogen angle constraints
Barostats
MonteCarloBarostat
- Isotropic pressure controlMonteCarloAnisotropicBarostat
- Anisotropic pressure controlMonteCarloMembraneBarostat
- Membrane system pressure control
Precision
mixed
- Mixed precision (recommended)single
- Single precisiondouble
- Double precision
š§ Configuration
Environment variables:
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"
š Project Structure
openmm-mcp-server/
āāā run_openmm_server.py # Startup script
āāā test_mcp_server.py # Test script
āāā requirements.txt # Dependencies
āāā README.md # English documentation
āāā README_CN.md # Chinese documentation
āāā src/
ā āāā server_new.py # Main server
ā āāā advanced_md_tools.py # Advanced MD tools
ā āāā task_manager.py # Task management
ā āāā openmm_engine.py # OpenMM engine
ā āāā abacus_engine.py # Abacus DFT engine
ā āāā config.py # Configuration management
ā āāā tools/ # MCP tool implementations
ā āāā resources/ # MCP resource implementations
ā āāā utils/ # Utility functions
āāā tests/ # Test files
āāā examples/ # Example code
āāā docs/ # Documentation
āāā task_data/ # Task data directory (auto-created)
š Additional Documentation
- - Detailed installation instructions
- - Comprehensive usage examples
- - Detailed integration guide
- - Complete parameter reference
- - Technical analysis and improvements
š Troubleshooting
Common Issues
-
"OpenMM not found" warning
- This is normal, server will run in mock mode
- For actual simulations, install OpenMM:
conda install -c conda-forge openmm
-
"command not found" error
- Check if Python is in PATH
- Verify project path is correct
- Try using absolute paths
-
Permission errors
- Ensure read/write permissions for project directory
- Check if task_data directory is writable
Verify Configuration
# Test server startup
python run_openmm_server.py
# Test MCP functionality
python test_mcp_server.py
š¤ Contributing
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests
- Submit a pull request
š Support
If you encounter any issues:
- Run the test script:
python test_mcp_server.py
- Review the documentation
- Check log files (if configured)
- Submit an issue on GitHub
š License
This project is licensed under the GNU General Public License v3.0.
Happy simulating! š