mcpField
V
vmd-hydrate-mcp

vmd-hydrate-mcp

本地服务
github.com/wjgoarxiv科研与教育117 周前更新

关于 vmd-hydrate-mcp

vmd-hydrate-mcp 是面向分子动力学研究者的 MCP 服务,可驱动本地 VMD 检视 GROMACS 和 LAMMPS 轨迹,并分析笼形水合物。它结合持续运行的 VMD 会话、无显示渲染和水合物笼识别工具。

主要功能

  1. 01载入 GROMACS、LAMMPS 等结构与轨迹
  2. 02识别水合物笼及 sI、sII、sH 结构
  3. 03计算 F3、F4 有序参数
  4. 04分析水分子氢键网络
  5. 05控制 VMD 会话并生成无显示渲染
  6. 06通过文件和 Tcl 命令允许列表限制访问

适用场景

  1. 01分析轨迹中的水合物有序程度
  2. 02识别并分类水合物笼
  3. 03渲染并查看特定笼型
  4. 04在持续会话中调整分子视图

MCP 相关

该 MCP 服务向 MCP 客户端提供 VMD 控制、结构载入、测量、水合物分析和渲染工具。它需要本地 VMD 执行可视化;纯水合物分析工具无需 VMD。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"wjgoarxiv-vmd-hydrate": {
"command": "uvx",
"args": [
"vmd-hydrate-mcp"
]
}
}
}
启动命令uvx vmd-hydrate-mcp

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypivmd-hydrate-mcp0.2.0

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

README 配图

vmd-hydrate-mcp

通过任何大模型驱动 VMD —— 渲染 GROMACS/LAMMPS 轨迹,并通过模型上下文协议分析笼形水合物笼。

快速开始 · 功能 · MCP 工具 · 用法 · 한국어

README 配图 README 配图 README 配图 README 配图 README 配图


说明

一个 MCP 服务,可让 Claude(或任何 MCP 客户端)直接控制 VMD —— 加载 GROMACS/LAMMPS 轨迹、识别笼形水合物笼(sI/sII/sH)、编写无头渲染脚本,并计算序参量(F3/F4)和氢键网络,将分子动力学分析变成对话体验。与现有的 VMD MCP 不同,它会保留有状态的 VMD 会话,默认安全,并实现了其他 MCP 都没有的一项功能:水合物笼科学分析。

查看实际效果

vmd-hydrate-mcp 在 VMD 中识别并渲染 sII 水合物笼

每一帧都是通过 MCP 服务完全驱动的真实无头 VMD(Tachyon)渲染。sII 笼 —— 128 × 5¹² + 60 × 5¹²6⁴ —— 是由本仓库识别的,并非模拟生成。 · ▶ 高清 MP4 全片

功能

  • 笼形水合物笼识别 -- 从氢键网络中查找并分类水合物笼(5¹²、5¹²6²、5¹²6⁴……),并标注晶体结构(sI/sII/sH)。已在 sII 基准测试中验证(128 个小笼,结果精确)。
  • 照片级真实感、由提示词控制的笼体渲染 -- 笼体采用环境光遮蔽和阴影渲染,默认使用正交投影,每种笼型使用一种统一颜色(精选配色:5¹²=青色、5¹²6⁴=红色……)。只需提出请求:“仅显示 sII 大笼,用洋红色并加粗线条”,MCP 就会筛选、重新着色并加粗线条。
  • 有状态的 VMD 会话 -- 持久运行的 VMD 进程(Tcl 套接字服务)会在多次工具调用间保留分子、选择集和相机状态,无需每条命令都重新加载。
  • 水合物序参量 -- 使用纯 NumPy 计算 F3(四面体性)和 F4(⟨cos 3φ⟩),与参考值验证到小数点后 6 位(sII 基准测试中的 F4 = 0.926698)。
  • 氢键网络 -- 水分子间氢键图及配位统计,是识别笼体的基础。
  • 无头渲染 -- 使用 CPU 进行 Tachyon 光线追踪,生成 PNG,无需显示器或 GPU,并以内嵌图像形式返回。适用于笔记本电脑、服务器和 HPC。
  • 有人值守(GUI)模式 -- 默认完全在后台运行,也可设置 VMD_HYDRATE_MCP_DISPLAY=gui 打开可见的 VMD 窗口,实时观察 Claude 加载、着色、旋转并渲染系统。
  • GROMACS + LAMMPS -- 一个服务即可读取 .gro/.xtc/.trr、LAMMPS .data/dump、PDB、DCD 和 mmCIF。
  • 默认安全 -- 文件系统允许列表 + Tcl 命令允许列表(而非可绕过的拒绝列表)+ 仅限环回连接且需令牌验证的控制套接字。不暴露 run_tcl 这一危险操作。
  • 原生支持 MCP -- 清晰的英文工具名称和类型化输出;适用于 Claude Desktop、Claude Code 和任何 MCP 客户端。

快速开始

重要

需要本地安装 VMD(2.0b1 或 1.9.4+)—— 此服务驱动的是你自己的 VMD;注册表或软件包均不包含 VMD。在 macOS 上,VMD 位于 .app 内,因此如果 vmd 不在 PATH 中,请设置 VMD_BIN。(纯水合物分析和测量工具仍可在没有 VMD 的情况下使用。)

安装

通过 uvx 零安装(推荐):

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

或从源码安装:

git clone https://github.com/wjgoarxiv/vmd-hydrate-mcp.git
cd vmd-hydrate-mcp && uv pip install -e ".[mda]"
注册到 MCP 客户端

Claude Code — 一条命令:

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

Claude Desktop / 任意客户端 — 添加到 mcpServers 配置中(或提交项目 .mcp.json):

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

重要

将 VMD_HYDRATE_MCP_ALLOW_DIR(以操作系统路径分隔符分隔)设置为服务允许读取的目录。所有文件参数都会通过 realpath 与此允许列表进行校验 — 不在列表中的路径将被拒绝。

交互式(GUI)模式

默认情况下,服务以无头(离屏)模式驱动 VMD。若要打开一个可实时查看的真实 VMD 窗口,同时让 Claude 实时控制它,请将 VMD_HYDRATE_MCP_DISPLAY=gui 添加到服务的 env 中:

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

然后可以提出类似 “加载 prod.gro,将水显示为点,将表面活性剂显示为 VDW,然后慢慢旋转” 的要求 — 窗口会通过 load_structure → add_representation → rotate_view 实时更新。(需要本地桌面会话;两种模式由同一个 Tcl 套接字驱动。)

MCP 工具

工具用途后端
vmd_statusVMD 版本 + 实时会话中加载的分子VMD
load_structure加载结构/轨迹(返回 molid)VMD
list_molecules列出已加载的分子VMD
set_representation设置分子的样式/颜色/材质/选择(替换现有表示)VMD
add_representation添加另一种表示(多表示视图)VMD
clear_representations移除所有表示VMD
rotate_view / zoom_view / reset_view实时相机控制(GUI 模式下可见)VMD
render当前视图的无头 PNG 图像VMD + Tachyon
resolve_selection选择的原子数量(可发现 .gro 文件的 0 原子陷阱)MDAnalysis
measure_geometry按原子索引测量距离 / 角度 / 二面角MDAnalysis
radius_of_gyration选择对象的回转半径 RgMDAnalysis
hydrate_order_paramsF3 + F4 水有序参数NumPy
hbond_network水的氢键网络 + 配位数NumPy
identify_cages笼的数量(5¹²/5¹²6⁴/…)+ sI/sII/sH 结构NumPy
render_cages笼的照片级渲染(AO+阴影、正交投影);可按提示词筛选 / 重着色 / 突出显示笼VMD + NumPy

用法

1. 分析轨迹帧中的水合物有序度

Compute the F3/F4 order parameters for hydrate.gro

返回 f4_overall、f3_overall、水分子数量以及通俗易懂的解释(晶态 / 类水合物 / 液态 / 冰)。

2. 渲染结构

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

使用 CPU Tachyon 以无头方式渲染,生成内嵌 PNG 图像。

3. 检查氢键网络

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

返回氢键数量和平均配位数(结构良好的笼形水合物约为 4)。

4. 根据提示词设置水合物笼的样式

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

渲染仅包含品红色 5¹²6⁴ 笼且边缘更粗的照片级正交图像 — MCP 会将其映射为 render_cages(cage_types=["51264"], highlight_color="magenta", emphasis=True)。省略筛选条件后,所有笼都会以各自的调色板颜色绘制(5¹²=青色,5¹²6⁴=红色,…)。

它真的能驱动 VMD 吗?

是的——只需运行一条命令即可验证。examples/verify.py 会在附带的 sII CO₂ 水合物示例上运行与 MCP 服务对外提供的相同代码:它会检测真实的 VMD 二进制文件、识别笼体,并在无头模式下渲染。

python examples/verify.py

预期输出:

[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.

下方图像是由该流程生成的真实、未经修饰的 VMD 渲染图(并非插图):

README 配图
sII 晶体 — 按类型为笼体着色(青色 5¹²,红色 5¹²6⁴),由 Tachyon 生成的照片级渲染
README 配图
单个 5¹² 十二面体,跨 PBC 展开(环境光遮蔽 + 阴影)

顶部的演示视频由此类帧拼接而成——参见 video/build_frames.py(驱动 VMD)和 video/remotion/(Remotion 合成)。运行 python video/build_frames.py && cd video/remotion && npm i && npm run gif 即可重新生成。

工作原理

  [.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

数值科学计算在 Python 中运行(无需显示器,可在 CI 中进行单元测试)。可视化与渲染在长期运行、受令牌保护的 VMD 进程中执行。两者的单位不会混用:水合物计算使用纳米,VMD/MDAnalysis 测量值使用 Ångström。

要求

依赖项必需用途
VMD 2.0b1 或 1.9.4+用于可视化/渲染可视化引擎
Python 3.10+是服务
mcp是Model Context Protocol SDK
MDAnalysis([mda])用于测量/选择支持拓扑感知的加载
sips / ImageMagick / Pillow用于渲染TGA→PNG 转换

警告

在 macOS 上,VMD 以 .app 形式提供,其 CLI 二进制文件位于应用包内。如果 vmd 不在你的 PATH 中,请将 VMD_BIN 设为该二进制文件的路径(例如 /Applications/VMD*.app/Contents/vmd*/vmd_MACOSXARM64)。纯水合物/测量工具无需 VMD 即可运行。

参与贡献

  1. Fork 仓库并创建分支(git checkout -b feature/x)。
  2. 运行 uv pip install -e ".[dev,mda]",并确保 pytest 全部通过(科学计算测试无需 VMD)。
  3. 提交、推送并创建 PR。发现 Bug?请提交 issue。

许可证

MIT — 参见 LICENSE。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。