Vmd Hydrate Mcp

io.github.wjgoarxivPublished by GitHub account wjgoarxivv0.2.0Updated Oct 24, 2026

Drive VMD for GROMACS/LAMMPS analysis + clathrate-hydrate cage science (needs a local VMD)

VerifiedSTDIODesktop onlyData & AnalyticsMedia & DesignAI & ML

Overview

AI-generated overview

A local MCP server that drives a VMD session to load molecular-dynamics structures, render images, and analyze clathrate-hydrate cages.

What you can do
Load and inspect structures and trajectories from GROMACS, LAMMPS, PDB, DCD and mmCIF files, listing loaded molecules and checking selections and atom counts in a persistent VMD session. Style, layer and clear representations, and control the camera with rotate, zoom and reset. Render the current view headlessly to a PNG image. Measure geometry such as distances, angles, dihedrals and radius of gyration. Compute hydrate order parameters (F3/F4) and water hydrogen-bond networks. Identify and classify clathrate cages (5¹², 5¹²6⁴ and others), label the sI/sII/sH structure, and render cages filtered or recolored by request.
When to use it
Useful for molecular-dynamics work where you want to inspect GROMACS or LAMMPS trajectories, measure geometry, and analyze clathrate-hydrate structure and order through conversation. It suits researchers who already have VMD installed locally and want reproducible headless renders or cage analysis without writing scripts.
Requirements
Runs as a local Python process (Python 3.10+), typically via uvx from the PyPI package. A local VMD install (2.0b1 or 1.9.4+) is needed for visualization and rendering; set VMD_BIN if vmd is not on PATH. MDAnalysis is needed for measures and selection tools. Set VMD_HYDRATE_MCP_ALLOW_DIR to the directories the server may read. Optional VMD_HYDRATE_MCP_DISPLAY=gui opens a visible VMD window. TGA-to-PNG conversion needs sips, ImageMagick or Pillow.
Before you install
The server reads files from your machine, so the allowlist in VMD_HYDRATE_MCP_ALLOW_DIR should be kept narrow; paths outside it are refused. It starts and controls a local VMD process over a loopback, token-gated socket, and in GUI mode opens a visible window. It changes session state such as loaded molecules, representations and camera, and writes rendered image files. No authentication or credentials are declared.

Installation

In SourceWeft

  1. Open Vmd Hydrate Mcp in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

[Image]

vmd-hydrate-mcp

Drive VMD from any LLM — render GROMACS/LAMMPS trajectories and analyze clathrate-hydrate cages through the Model Context Protocol.

Quick Start · Features · MCP Tools · Usage · 한국어

[Image] [Image] [Image] [Image] [Image]


[!NOTE] An MCP server that lets Claude (or any MCP client) control VMD directly — load GROMACS/LAMMPS trajectories, identify clathrate-hydrate cages (sI/sII/sH), script headless renders, and compute order parameters (F3/F4) and H-bond networks — turning molecular-dynamics analysis into a conversation. Unlike the existing VMD MCP, it keeps a stateful VMD session, is secure by default, and owns the one thing no other MCP does: hydrate cage science.

See it in action

[vmd-hydrate-mcp identifying and rendering sII hydrate cages in VMD]

Every frame is a real headless VMD (Tachyon) render, driven entirely through the MCP server. The sII cages — 128 × 5¹² + 60 × 5¹²6⁴ — are identified by this repo, not mocked. · ▶ full-quality MP4

Features

  • Clathrate Cage Identification -- find and classify hydrate cages (5¹², 5¹²6², 5¹²6⁴, …) from the H-bond network and label the crystal structure (sI/sII/sH). Validated on the sII benchmark (128 small cages, exact).
  • Photorealistic, Style-by-Prompt Cage Rendering -- cages render with ambient occlusion + shadows, orthographic by default, each cage type in ONE unified color (a curated palette: 5¹²=cyan, 5¹²6⁴=red, …). Just ask: "show only the sII large cages in magenta with emphasized width" and the MCP filters, recolors, and thickens them.
  • Stateful VMD Session -- a persistent VMD process (Tcl socket server) keeps your molecules, selections, and camera alive across tool calls -- no reloading on every command.
  • Hydrate Order Parameters -- F3 (tetrahedrality) and F4 (⟨cos 3φ⟩) computed in pure NumPy, validated to the reference to 6 decimals (F4 = 0.926698 on the sII benchmark).
  • H-bond Networks -- water–water hydrogen-bond graph with coordination stats, the substrate for cage identification.
  • Headless Rendering -- CPU Tachyon ray-traced PNGs with no display or GPU, returned inline as images. Works on laptops, servers, and HPC.
  • Attended (GUI) Mode -- run fully offscreen (default), or set VMD_HYDRATE_MCP_DISPLAY=gui to open a visible VMD window and watch Claude load, color, rotate, and render your system live.
  • GROMACS + LAMMPS -- one server ingests .gro/.xtc/.trr, LAMMPS .data/dump, PDB, DCD, mmCIF.
  • Secure by Default -- filesystem allowlist + a Tcl command allowlist (not a bypassable denylist) + a loopback, token-gated control socket. No run_tcl foot-gun exposed.
  • MCP-Native -- clean English tool names and typed outputs; works in Claude Desktop, Claude Code, and any MCP client.

Quick Start

[!IMPORTANT] Requires a local VMD install (2.0b1 or 1.9.4+) — this server drives your VMD; no registry or package ships it. On macOS, VMD lives inside a .app, so set VMD_BIN if vmd isn't on your PATH. (The pure hydrate/measure tools still work without VMD.)

Install

Zero-install via uvx (recommended):

bash
uvx vmd-hydrate-mcp                                  # run the serveruvx --from 'vmd-hydrate-mcp[mda]' vmd-hydrate-mcp    # + MDAnalysis for measures/selection

Or from source:

bash
git clone https://github.com/wjgoarxiv/vmd-hydrate-mcp.gitcd vmd-hydrate-mcp && uv pip install -e ".[mda]"

Register with an MCP client

Claude Code — one command:

bash
claude mcp add vmd-hydrate -- uvx vmd-hydrate-mcp

Claude Desktop / any client — add to the mcpServers config (or commit a project .mcp.json):

json
{  "mcpServers": {    "vmd-hydrate": {      "command": "uvx",      "args": ["vmd-hydrate-mcp"],      "env": { "VMD_HYDRATE_MCP_ALLOW_DIR": "/path/to/your/data" }    }  }}

[!IMPORTANT] Set VMD_HYDRATE_MCP_ALLOW_DIR (os-path-separated) to the directories the server may read. All file arguments are realpath-checked against this allowlist — paths outside it are refused.

Attended (GUI) mode

By default the server drives VMD headless (offscreen). To instead open a real VMD window you can watch while Claude controls it live, add VMD_HYDRATE_MCP_DISPLAY=gui to the server's env:

json
{ "mcpServers": { "vmd-hydrate": {  "command": "uvx", "args": ["vmd-hydrate-mcp"],  "env": { "VMD_HYDRATE_MCP_DISPLAY": "gui", "VMD_HYDRATE_MCP_ALLOW_DIR": "/path/to/data" }}}}

Then ask things like "load prod.gro, show water as points and the surfactant as VDW, then slowly rotate it" — the window updates in real time via load_structure → add_representation → rotate_view. (Requires a local desktop session; the same Tcl socket drives both modes.)

MCP Tools

ToolPurposeBackend
vmd_statusVMD version + molecules loaded in the live sessionVMD
load_structureLoad a structure/trajectory (returns a molid)VMD
list_moleculesList loaded moleculesVMD
set_representationStyle/color/material/selection for a molecule (replaces reps)VMD
add_representationLayer another representation (multi-rep views)VMD
clear_representationsRemove all representationsVMD
rotate_view / zoom_view / reset_viewLive camera control (visible in GUI mode)VMD
renderHeadless PNG of the current viewVMD + Tachyon
resolve_selectionAtom count for a selection (catches the 0-atom .gro trap)MDAnalysis
measure_geometryDistance / angle / dihedral by atom indexMDAnalysis
radius_of_gyrationRg of a selectionMDAnalysis
hydrate_order_paramsF3 + F4 water order parametersNumPy
hbond_networkWater H-bond network + coordinationNumPy
identify_cagesCage counts (5¹²/5¹²6⁴/…) + sI/sII/sH structureNumPy
render_cagesPhotorealistic cage render (AO+shadows, ortho); filter / recolor / emphasize cages by promptVMD + NumPy

Usage

1. Analyze hydrate order in a trajectory frame

Compute the F3/F4 order parameters for hydrate.gro

Returns f4_overall, f3_overall, water count, and a plain-language interpretation (crystalline / hydrate-like / liquid / ice).

2. Render a structure

Load hydrate.gro, show the water oxygens as VDW spheres, and render it

Produces an inline PNG rendered headlessly with CPU Tachyon.

3. Inspect the H-bond network

Build the water hydrogen-bond network for hydrate.gro at frame 0

Returns bond count and average coordination (≈4 for a well-formed clathrate).

4. Style hydrate cages by prompt

Load hydrate.gro and show only the sII large cages in magenta with emphasized width

Renders a photorealistic, orthographic image of just the 5¹²6⁴ cages in magenta with thicker edges — the MCP maps this to render_cages(cage_types=["51264"], highlight_color="magenta", emphasis=True). Omit the filters and every cage type is drawn in its palette color (5¹²=cyan, 5¹²6⁴=red, …).

Does it really drive VMD?

Yes — and you can confirm it in one command. examples/verify.py runs the same code the MCP server exposes on a bundled sII CO₂-hydrate example: it pings the real VMD binary, identifies the cages, and renders them headlessly.

bash
python examples/verify.py

Expected output:

text
[1] VMD found : /Applications/VMD2b1.app/.../vmd_MACOSXARM64    ping      : pong 2.0b1 MACOSXARM64[2] Identifying cages in a real sII CO2 hydrate (1088 waters)...    cage counts : {'51264': 60, '512': 128}    structure   : sII  (confidence 0.93)    F4 order    : 0.965  (highly ordered (crystalline hydrate / ice-like))[3] Rendering cages headlessly (blue = 5^12, red = 5^12 6^4)...    saved       : examples/output/cages.png (362495 bytes)OK — vmd-hydrate-mcp drove VMD and identified the cages above.

The images below are real, unretouched VMD renders from that pipeline (not illustrations):

[Image]
sII crystal — cages colored by type (cyan 5¹², red 5¹²6⁴), photorealistic Tachyon
[Image]
a single 5¹² dodecahedron, unwrapped across PBC (ambient occlusion + shadows)

The demo video at the top is assembled from frames like these — see video/build_frames.py (drives VMD) and video/remotion/ (Remotion compositing). Rebuild it with python video/build_frames.py && cd video/remotion && npm i && npm run gif.

How It Works

  [.gro / .xtc / LAMMPS dump]            |            v     MCP client (Claude)  --stdio-->  vmd-hydrate-mcp (FastMCP)                                          |            |                          numbers  <------+            +------>  visualization                     MDAnalysis + NumPy                     persistent VMD session                   (F3/F4, H-bonds, Rg)                    (Tcl socket, 127.0.0.1)                          |                                         |                          v                                         v                  structured JSON                         Tachyon --> PNG image

Numeric science runs in Python (no display, unit-testable in CI). Visualization and rendering run in a long-lived, token-gated VMD process. The two never mix units: hydrate math is nanometers, VMD/MDAnalysis measures are Ångström.

Requirements

DependencyRequiredPurpose
VMD 2.0b1 or 1.9.4+for viz/renderthe visualization engine
Python 3.10+yesthe server
mcpyesModel Context Protocol SDK
MDAnalysis ([mda])for measures/selectiontopology-aware loading
sips / ImageMagick / Pillowfor renderTGA→PNG conversion

[!WARNING] On macOS, VMD ships as a .app and its CLI binary lives inside the bundle. If vmd is not on your PATH, set VMD_BIN to the binary (e.g. /Applications/VMD*.app/Contents/vmd*/vmd_MACOSXARM64). Pure hydrate/measure tools work without VMD.

Contributing

  1. Fork and branch (git checkout -b feature/x).
  2. uv pip install -e ".[dev,mda]" and keep pytest green (science tests need no VMD).
  3. Commit, push, open a PR. Found a bug? Open an issue.

License

MIT — see LICENSE.

Source: README.md at commit 1a477e7

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v0.2.0LatestSep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts