Install
$ agentstack add skill-internscience-molclaw-molclaw-protein-openmm ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Protein OpenMM MD and Frame Extraction
Note:
- Local files are not directly accessible by the server. Please upload them to the server using
molclaw-file-transferbefore execution. - For PDB file inputs, it is recommended to preprocess them using
molclaw-pdbfixerbefore execution. - Please refer to skill
molclaw-scp-serverto complete tool invocation.
Usage
1. Protein OpenMM MD
The description of tool proteinopenmmmd.
Runs OpenMM-based protein molecular dynamics preparation and simulation for structure refinement workflows.
Args:
protein_pdb (str): Absolute or relative path to input protein PDB.
solvent_type (str): Solvent mode, 'explicit' or 'implicit', default 'explicit'.
gb_model (str): GB model for implicit solvent mode, default 'GBn2'.
water_model (str): Water model for explicit solvent mode, default 'tip3p'.
force_field (str): OpenMM force field name, default 'amber14'.
md_time (float): Production MD time in picoseconds, default 100000.0.
platform (str): OpenMM compute platform, default 'CUDA'.
full_md (bool): Run full MD procedure if True, default False.
dry_run (bool): Validate setup and produce run directory without simulation, default False.
Return:
status (str): 'success' or 'error'.
msg (str): Human-readable execution summary.
output_dir (str): Run-specific directory under tool_result/openmm_md_result.
work_dir (str | None): Final OpenMM working directory containing generated files.
protein_pdb (str): Resolved input protein path.
trajectory_path (str | None): Path to md_traj.dcd when available.
topology_path (str | None): Path to a topology PDB used for frame extraction.
generated_files (List[str]): File paths relative to work_dir.
md_time (float): Echoed requested MD time in ps.
solvent_type (str): Echoed solvent mode.
force_field (str): Echoed force field.
full_md (bool): Echoed full MD mode.
How to use tool proteinopenmmmd :
response = await client.session.call_tool(
"protein_openmm_md",
arguments={
"protein_pdb": "/path/to/input.pdb",
"solvent_type": "implicit",
"gb_model": "OBC2",
"water_model": "tip3p",
"force_field": "amber14",
"md_time": 1000.0,
"platform": "CUDA",
"full_md": True,
"dry_run": False
}
)
result = client.parse_result(response)
key_output = result["work_dir"]
Example parameter sets
# 1) Main mode
{
"protein_pdb": "/path/to/input.pdb",
"solvent_type": "implicit",
"gb_model": "OBC2",
"water_model": "tip3p",
"force_field": "amber14",
"md_time": 1000.0,
"platform": "CUDA",
"full_md": True,
"dry_run": False
}
# 2) Variant mode
{
"protein_pdb": "relative/path/to/protein.pdb",
"solvent_type": "explicit",
"water_model": "tip3p",
"force_field": "charmm36",
"md_time": 10000.0,
"platform": "CUDA",
"full_md": False,
"dry_run": False
}
2. OpenMM Trajectory Frame Extraction
The description of tool openmmextractframes.
Extracts evenly spaced protein conformations from an OpenMM work directory for downstream screening and ensemble analysis.
Args:
work_dir (str): OpenMM MD output directory containing topology and trajectory files.
num_frames (int): Number of evenly spaced frames to extract, default 100.
protein_only (bool): Keep only protein atoms in extracted frames, default False.
align (bool): Align extracted structures to the first frame, default False.
prefix (str): Filename prefix for extracted PDB frames, default 'frame'.
dry_run (bool): Validate inputs and prepare output directory without extraction, default False.
Return:
status (str): 'success', 'partial_success', or 'error'.
msg (str): Human-readable extraction summary.
output_dir (str): Run-specific directory under tool_result/openmm_md_result.
work_dir (str): Resolved OpenMM working directory.
topology_path (str | None): Resolved topology file path.
trajectory_path (str | None): Resolved trajectory file path.
frames_dir (str): Directory where extracted frame PDB files are saved.
frame_count (int): Number of extracted frame files.
frame_files (List[str]): Extracted frame file paths relative to output_dir.
How to use tool openmmextractframes :
response = await client.session.call_tool(
"openmm_extract_frames",
arguments={
"work_dir": "/path/to/work_dir",
"num_frames": 100,
"protein_only": False,
"align": False,
"prefix": "frame",
"dry_run": False
}
)
result = client.parse_result(response)
key_output = result["frame_files"]
Example parameter sets
# 1) Main mode
{
"work_dir": "/path/to/work_dir",
"num_frames": 100,
"protein_only": False,
"align": False,
"prefix": "frame",
"dry_run": False
}
# 2) Variant mode
{
"work_dir": "relative/path/to/openmm_md_output",
"num_frames": 50,
"protein_only": True,
"align": True,
"prefix": "conf",
"dry_run": False
}
3. End-to-End Collaboration Workflow
Use the two tools in sequence via API calls:
- Call proteinopenmmmd to generate MD outputs and get
work_dir. - Pass that
work_dirinto openmmextractframes to extract evenly spaced PDB frames.
client = DrugSDAClient("http://180.184.86.2:32208/mcp")
if not await client.connect():
print("connection failed")
return
md_resp = await client.session.call_tool(
"protein_openmm_md",
arguments={
"protein_pdb": "/path/to/input.pdb",
"solvent_type": "implicit",
"gb_model": "OBC2",
"md_time": 1000.0,
"full_md": True
}
)
md_result = client.parse_result(md_resp)
work_dir = md_result["work_dir"]
frames_resp = await client.session.call_tool(
"openmm_extract_frames",
arguments={
"work_dir": work_dir,
"num_frames": 100,
"prefix": "frame"
}
)
frames_result = client.parse_result(frames_resp)
key_output = frames_result["frame_files"]
await client.disconnect()
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: InternScience
- Source: InternScience/MolClaw
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.