Skip to main content
Glama
huangjianhuster

Biomolecule Modeling MCP Server

MCP-сервер для моделирования биомолекул

MCP-сервер (Model Context Protocol), который позволяет ИИ-ассистентам (Claude и др.) очищать PDB-структуры и выполнять начальную стадию энергетической релаксации — этап подготовки перед запуском молекулярной динамики (MD) или конвейеров крупнозернистого моделирования (например, Martini).


Быстрый старт (Claude Code)

Самый простой способ использовать этот сервер — через uvx, управление зависимостями вручную не требуется:

claude mcp add "biomolecule-modeling" --scope user -- \
  uvx --from git+https://github.com/YOUR_USERNAME/biomolecule-modeling-mcp biomodeling

Это всё. uvx автоматически устанавливает пакет и все его Python-зависимости в изолированную среду. После выполнения этой команды перезапустите Claude Code, и сервер появится в списке активных MCP-серверов.

Примечание по OpenMM: uvx устанавливает PyPI-версию OpenMM (только для CPU). Если вам нужно ускорение на GPU, сначала установите OpenMM через conda (conda install -c conda-forge openmm pdbfixer) и используйте метод ручной регистрации.


Related MCP server: PLUMED2 MCP Server

Что он делает

Сервер предоставляет набор инструментов, которые направляют LLM через структурированный рабочий процесс:

query_pdb_structure          # inspect chains, sequences, gaps, structural breaks
  └─ split_pdb               # separate protein / nucleic acid / ligands
       └─ fix_pdb_structure  # clean structure (PDBFixer): residues, hydrogens, heavy atoms
            └─ assemble_pdb_structures  # recombine components after separate fixing
                 └─ relax_pdb_structure # energy minimise ± short restrained MD (OpenMM)

В любой момент get_workflow_report возвращает Markdown-отчет обо всех решениях, принятых LLM, с обоснованием, который можно сохранить на диск.


Инструменты

Инструмент

Описание

query_pdb_structure

Анализ на уровне цепей: тип, последовательность, диапазон остатков, разрывы в нумерации, разрывы остова

split_pdb

Разделение многокомпонентного PDB на файлы по типам (белки, нуклеиновые кислоты, лиганды)

fix_pdb_structure

Обертка PDBFixer: удаление гетерогенов, замена нестандартных остатков, добавление недостающих атомов/водородов

assemble_pdb_structures

Объединение нескольких PDB-файлов в один с разрешением конфликтов

relax_pdb_structure

Энергетическая минимизация в OpenMM + опциональная короткая MD с ограничениями остова

query_ff_presets

Список доступных пресетов силовых полей и их параметров

get_workflow_report

Возврат и/или сохранение Markdown-отчета обо всех вызовах инструментов и рассуждениях LLM

reset_workflow_report

Очистка журнала сессии для новой структуры

set_working_directory

Изменение рабочей директории для разрешения относительных путей


Пресеты силовых полей

Пресет

Растворитель

Примечания

amber14_implicit

GBn2 (неявный)

По умолчанию. Периодическая ячейка не нужна. Быстро.

amber14_explicit

TIP3P-FB (явный)

Требует предварительно сольватированную периодическую ячейку

amber99sb_implicit

OBC2 (неявный)

Старый AMBER, неявный растворитель

charmm36_explicit

CHARMM TIP3P (явный)

Требует предварительно сольватированную периодическую ячейку


Ручная установка

Используйте этот метод, если вам нужен OpenMM с поддержкой GPU или вы предпочитаете локальную сборку.

1. Установка OpenMM (рекомендуется conda для поддержки GPU)

conda install -c conda-forge openmm pdbfixer

2. Клонирование и установка зависимостей

git clone https://github.com/YOUR_USERNAME/biomolecule-modeling-mcp
cd biomolecule-modeling-mcp
uv sync

3. Регистрация в Claude Code

claude mcp add "biomolecule-modeling" --scope user -- \
  /path/to/uv run --directory /path/to/biomolecule-modeling-mcp python main.py

Замените /path/to/uv на результат команды which uv и используйте абсолютный путь к клонированному репозиторию.

Важно: используйте --directory (а не --project). --project устанавливает виртуальное окружение, но оставляет cwd там, где находится вызывающий процесс, что нарушает относительные импорты utils/.

Автономные скрипты (MCP-клиент не требуется)

uv run utils/pdb_query.py structure.pdb        # inspect structure
uv run utils/pdb_fix.py input.pdb              # fix structure
uv run utils/openmm_relax.py input.pdb         # minimise structure

Примеры сессий

Следующие примеры показывают реальные запросы на естественном языке, которые вы можете дать Claude, и последовательность вызовов инструментов, которые сервер выполнит в ответ.


Случай 1 — Скачивание, анализ, очистка и релаксация PDB из RCSB

Ваш запрос к Claude:

Скачай PDB 1UBQ, запроси информацию о его структуре, очисти белковую часть и выполни релаксацию структуры.

Что делает Claude:

Шаг 1 — Скачивание файла

Claude загружает 1UBQ.pdb из RCSB (https://files.rcsb.org/download/1UBQ.pdb) и сохраняет его локально.

Шаг 2 — Анализ структуры

query_pdb_structure(
    pdb_file="1UBQ.pdb",
    notes="Initial inspection before cleaning. Need to identify chain types, "
          "any non-standard residues, and structural gaps."
)
chains:
  A — protein, 76 residues (MET1–GLY76), no numbering gaps, no structural breaks
heterogens: HOH (58 water molecules)
non_standard_residues: []
missing_residues: []

Рассуждения Claude: Одна белковая цепь, нет разрывов, нет нестандартных остатков. Присутствует вода — удалю её. Лигандов нет; можно сразу переходить к fix_pdb_structure.

Шаг 3 — Очистка структуры

fix_pdb_structure(
    input_pdb="1UBQ.pdb",
    output_pdb="1UBQ_fixed.pdb",
    remove_heterogens=True,      # removes the 58 water molecules
    add_hydrogens=True,
    ph=7.0,
    fix_missing_residues=False,  # no gaps — nothing to fix
    notes="Removing waters, adding hydrogens at pH 7.0. No non-standard residues "
          "or gaps detected so no other fixing steps needed."
)
output_pdb: 1UBQ_fixed.pdb
n_residues: 76
n_atoms: 1231
heterogens_removed: 58
nonstandard_residues: []
missing_atoms_added: 0
hydrogens_added: true

Шаг 4 — Релаксация структуры

relax_pdb_structure(
    input_pdb="1UBQ_fixed.pdb",
    output_pdb="1UBQ_relaxed.pdb",
    preset="amber14_implicit",
    run_md=False,
    notes="Minimisation-only run. Structure is clean and small (76 residues); "
          "a full MD run is not needed for clash removal."
)
output_pdb: 1UBQ_relaxed.pdb
preset_used: amber14_implicit
n_atoms: 1231
energy_initial_kJ_mol: -18423.4
energy_final_kJ_mol:   -24817.9

Итог Claude: Энергия снизилась примерно на 6400 кДж/моль во время минимизации — типично для кристаллической структуры после добавления водорода. Выходной файл 1UBQ_relaxed.pdb готов для дальнейшей MD или крупнозернистого моделирования.


Случай 2 — Очистка локальной многоцепочечной структуры, сохранение только выбранных цепей

Ваш запрос к Claude:

Проанализируй PDB-структуру в ./structures/complex.pdb, очисти её, оставив только цепи A и B, и выполни релаксацию.

Что делает Claude:

Шаг 1 — Анализ структуры

query_pdb_structure(
    pdb_file="./structures/complex.pdb",
    notes="Inspecting the multi-chain complex before chain selection and cleaning."
)
chains:
  A — protein, 312 residues (SER5–LEU316), 2 numbering gaps (at 47–51, 203–208)
  B — protein, 289 residues (MET1–LYS289), no gaps
  C — protein, 145 residues (ALA1–GLU145), no gaps
  D — nucleic (DNA), 24 residues
heterogens: MG (3 ions), HOH (412 waters), ATP (1 molecule)
non_standard_residues: [MSE → MET in chain A (4 occurrences)]

Рассуждения Claude: Пользователю нужны только цепи A и B. В цепи A есть два разрыва в нумерации — вероятно, это короткие неупорядоченные петли в кристалле; моделирование петель выполнять не буду. MSE (селенометионин) в цепи A будет преобразован в MET. ATP и ионы должны быть удалены перед релаксацией в OpenMM.

Шаг 2 — Очистка, сохранение только цепей A и B

fix_pdb_structure(
    input_pdb="./structures/complex.pdb",
    output_pdb="./structures/complex_AB_fixed.pdb",
    chains_to_keep=["A", "B"],
    replace_nonstandard_residues=True,   # converts MSE → MET
    remove_heterogens=True,              # removes ATP, Mg²⁺, waters
    add_missing_heavy_atoms=True,
    add_hydrogens=True,
    ph=7.0,
    fix_missing_residues=False,          # gaps are 4–5 residues; skipping loop modelling
    notes="Keeping chains A and B only per user request. Converting 4 × MSE → MET "
          "in chain A. Removing ATP, Mg ions, and waters — these cannot be "
          "parameterised with standard AMBER presets. Not fixing the two loops "
          "in chain A (gaps of 4–5 residues) to avoid poor loop geometry."
)
output_pdb: complex_AB_fixed.pdb
n_residues: 601   (312 + 289)
n_atoms: 9847
chains_kept: [A, B]
nonstandard_residues: [MSE→MET ×4 in chain A]
heterogens_removed: 416   (ATP ×1, MG ×3, HOH ×412)
missing_atoms_added: 12
hydrogens_added: true

Предупреждение Claude пользователю: "В цепи A всё ещё есть два коротких разрыва в остатках 47–51 и 203–208 (отсутствуют в кристаллической структуре). Эти области будут отсутствовать в релаксированном результате. Если вам нужны полные петли для последующего моделирования, дайте знать, и я попробую их смоделировать — хотя геометрия для разрывов такого размера может быть неточной."

Шаг 3 — Релаксация комплекса из двух цепей

relax_pdb_structure(
    input_pdb="./structures/complex_AB_fixed.pdb",
    output_pdb="./structures/complex_AB_relaxed.pdb",
    preset="amber14_implicit",
    run_md=True,
    restrain_backbone=True,
    restraint_k=1000.0,
    production_steps=25000,
    notes="Running short restrained MD (25 000 steps ≈ 100 ps) to relax side chains "
          "around the 12 newly added heavy atoms and the two gap termini in chain A. "
          "Backbone restrained at 1000 kJ/mol/nm² to preserve experimental fold."
)
output_pdb: complex_AB_relaxed.pdb
preset_used: amber14_implicit
n_atoms: 9847
energy_initial_kJ_mol: -71203.1
energy_post_min_kJ_mol: -89441.6
energy_post_md_kJ_mol:  -94308.2
energy_final_kJ_mol:    -95112.4

Итог Claude: Энергия стабильно снижалась в процессе минимизации → MD → финальной минимизации. Структура сходится и готова. Выходной файл: complex_AB_relaxed.pdb.


Структура проекта

biomolecule-modeling-mcp/
├── main.py                  # MCP server entry point; all @mcp.tool() definitions
├── pyproject.toml           # dependencies + CLI entry point (biomodeling)
├── utils/
│   ├── pdb_query.py         # Structure inspection (BioPython)
│   ├── pdb_fix.py           # PDBFixer wrapper
│   ├── pdb_splitter.py      # Split multi-component PDB by chain type
│   ├── pdb_assemble.py      # Merge PDB files
│   └── openmm_relax.py      # OpenMM energy minimisation + restrained MD
└── data/                    # Example / test PDB files

Основные нюансы

  • Никогда не исправляйте большие петли по умолчанию. fix_missing_residues=False — безопасное значение по умолчанию; петли > 5–10 остатков дают плохую геометрию при использовании PDBFixer.

  • Лиганды нарушают стандартную релаксацию. Нестандартные остатки HETATM должны быть удалены (или параметризованы отдельно) перед запуском OpenMM с пресетами AMBER/CHARMM.

  • OpenMM >= 8.x и неявный растворитель. XML-файл неявного растворителя (например, implicit/gbn2.xml) передается в ForceField(), а не в createSystem().


Лицензия

MIT

Install Server
F
license - not found
A
quality
D
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to generate, validate, and optimize PLUMED input files for molecular dynamics simulations, with templates and performance suggestions.
    12
    GPL 3.0
  • A
    license
    Not graded
    quality
    F
    maintenance
    Integrates GROMACS molecular dynamics simulations with VMD visualization, enabling setup, execution, analysis, and 3D visualization of molecular dynamics workflows through natural language.
    21
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Enables AI assistants to execute computational chemistry and drug discovery workflows using Schrödinger Suites 2026, including protein preparation, docking, ADMET, QM/MM calculations, and job management.
    28
    MIT

View all related MCP servers

Related MCP Connectors

  • AI-powered bioprotocol optimization — generate, search, and manage lab protocols via MCP

  • Build, validate, and deploy multi-agent AI solutions from any AI environment.

  • Deterministic reasoning stack for AI agents: simulate, decide & compute, plus cross-domain tools.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/huangjianhuster/biomolecule-modeling-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server