Skip to main content
Glama
huangjianhuster

Biomolecule Modeling MCP Server

Servidor MCP de Modelado de Biomoléculas

Un servidor MCP (Model Context Protocol) que permite a los asistentes de IA (Claude, etc.) limpiar estructuras PDB y ejecutar una etapa inicial de relajación energética, el paso de preparación antes de procesos de dinámica molecular (MD) de producción o de grano grueso (p. ej., Martini).


Inicio rápido (Claude Code)

La forma más sencilla de usar este servidor es a través de uvx: no se necesita gestión manual de dependencias:

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

Eso es todo. uvx instala el paquete y todas sus dependencias de Python en un entorno aislado automáticamente. Después de ejecutar este comando, reinicie Claude Code y el servidor aparecerá en la lista de servidores MCP activos.

Nota sobre OpenMM: uvx instala el wheel de PyPI de OpenMM (solo CPU). Si necesita aceleración por GPU, instale OpenMM primero mediante conda (conda install -c conda-forge openmm pdbfixer) y utilice el método de registro manual en su lugar.


Related MCP server: PLUMED2 MCP Server

Qué hace

El servidor expone un conjunto de herramientas que guían a un LLM a través de un flujo de trabajo estructurado:

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)

En cualquier momento, get_workflow_report devuelve un resumen en Markdown de cada decisión que tomó el LLM, junto con su razonamiento, el cual puede guardarse en el disco.


Herramientas

Herramienta

Descripción

query_pdb_structure

Inspección a nivel de cadena: tipo, secuencia, rango de residuos, huecos en la numeración, roturas en el esqueleto

split_pdb

Dividir un PDB multicomponente en archivos por tipo (proteína, ácido nucleico, ligandos)

fix_pdb_structure

Envoltorio de PDBFixer: eliminar heterógenos, reemplazar residuos no estándar, añadir átomos/hidrógenos faltantes

assemble_pdb_structures

Fusionar varios archivos PDB de nuevo en uno, con resolución de conflictos

relax_pdb_structure

Minimización de energía de OpenMM + MD opcional con restricciones en el esqueleto

query_ff_presets

Listar los preajustes de campos de fuerza disponibles y sus parámetros

get_workflow_report

Devolver y/o guardar un informe en Markdown de todas las llamadas a herramientas y el razonamiento del LLM

reset_workflow_report

Borrar el registro de la sesión para una nueva estructura

set_working_directory

Cambiar el directorio de trabajo para la resolución de rutas relativas


Preajustes de campos de fuerza

Preajuste

Solvente

Notas

amber14_implicit

GBn2 implícito

Predeterminado. No requiere caja periódica. Rápido.

amber14_explicit

TIP3P-FB explícito

Requiere caja periódica presolvatada

amber99sb_implicit

OBC2 implícito

AMBER antiguo, solvente implícito

charmm36_explicit

CHARMM TIP3P explícito

Requiere caja periódica presolvatada


Instalación manual

Utilice este método si desea OpenMM acelerado por GPU o prefiere una descarga local.

1. Instalar OpenMM (se recomienda conda para soporte de GPU)

conda install -c conda-forge openmm pdbfixer

2. Clonar e instalar dependencias

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

3. Registrar con Claude Code

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

Reemplace /path/to/uv con which uv y utilice la ruta absoluta al repositorio clonado.

Importante: utilice --directory (no --project). --project establece el virtualenv pero deja el cwd donde esté el llamador, lo que rompe las importaciones relativas de utils/.

Scripts independientes (no se necesita cliente 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

Sesiones de ejemplo

Los siguientes ejemplos muestran prompts reales en lenguaje natural que puede darle a Claude, y la secuencia de llamadas a herramientas que el servidor ejecutará en respuesta.


Caso 1 — Descargar, inspeccionar, limpiar y relajar un PDB desde RCSB

Su prompt para Claude:

Descarga el PDB 1UBQ, consulta la información de su estructura, limpia la parte de la proteína y relaja la estructura.

Lo que hace Claude:

Paso 1 — Descargar el archivo

Claude obtiene 1UBQ.pdb de RCSB (https://files.rcsb.org/download/1UBQ.pdb) y lo guarda localmente.

Paso 2 — Inspeccionar la estructura

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: []

Razonamiento de Claude: Cadena de proteína única, sin huecos, sin residuos no estándar. Hay aguas presentes: las eliminaré. No hay ligandos de los que preocuparse; puedo pasar directamente a fix_pdb_structure.

Paso 3 — Limpiar la estructura

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

Paso 4 — Relajar la estructura

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

Resumen de Claude: La energía disminuyó ~6400 kJ/mol durante la minimización, algo típico para una estructura cristalina después de la adición de hidrógenos. El archivo 1UBQ_relaxed.pdb está listo para MD o grano grueso posterior.


Caso 2 — Limpiar una estructura local multicadena, manteniendo solo las cadenas seleccionadas

Su prompt para Claude:

Consulta la estructura PDB en ./structures/complex.pdb, límpiala para mantener solo la cadena A y la cadena B, y relaja la estructura.

Lo que hace Claude:

Paso 1 — Inspeccionar la estructura

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)]

Razonamiento de Claude: El usuario solo quiere las cadenas A y B. La cadena A tiene dos huecos en la numeración: probablemente sean bucles cortos desordenados en el cristal; no intentaré modelar bucles. La MSE (selenometionina) en la cadena A se convertirá a MET. El ATP y los iones deben eliminarse antes de la relajación con OpenMM.

Paso 2 — Limpiar, manteniendo solo las cadenas A y 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

Advertencia de Claude al usuario: "La cadena A todavía tiene dos huecos cortos en los residuos 47–51 y 203–208 (faltan en la estructura cristalina). Estas regiones estarán ausentes en la salida relajada. Si necesita bucles completos para su simulación posterior, hágamelo saber y puedo intentar modelar los bucles, aunque la geometría para huecos de este tamaño puede ser irregular".

Paso 3 — Relajar el complejo de dos cadenas

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

Resumen de Claude: La energía disminuyó constantemente a través de la minimización → MD → minimización final. La estructura ha convergido y está lista. Salida: complex_AB_relaxed.pdb.


Estructura del proyecto

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

Problemas comunes

  • Nunca arregle bucles grandes por defecto. fix_missing_residues=False es el valor predeterminado seguro; los bucles > 5–10 residuos producen una geometría deficiente con PDBFixer.

  • Los ligandos rompen la relajación estándar. Los residuos HETATM no estándar deben eliminarse (o parametrizarse por separado) antes de ejecutar OpenMM con preajustes AMBER/CHARMM.

  • OpenMM >= 8.x solvente implícito. El XML de solvente implícito (p. ej., implicit/gbn2.xml) va en ForceField(), no en createSystem().


Licencia

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