Skip to main content

MCP server for protein design using RFdiffusion, ProteinMPNN, ESMFold, AlphaFold2, ESM2, and OpenMM

Project description

Protein Design MCP Server

Smithery PyPI License

An MCP server that gives LLM agents access to computational protein design tools. Ask your LLM to design binders, predict structures, score stability, or minimize energy — it calls the right tool automatically.

Built on RFdiffusion, ProteinMPNN, ESMFold, AlphaFold2, ESM2, and OpenMM.

Installation

Choose the method that fits your situation. Listed from simplest to most customizable.


1. Auto-Setup (Recommended)

One command. Detects your environment, pulls Docker if available, writes MCP client config.

pip install protein-design-mcp
protein-design-mcp-setup

What it does:

  • Checks for Docker and NVIDIA GPU
  • Pulls the Docker image (or falls back to local Python mode)
  • Writes config for Claude Desktop or Claude Code automatically
  • Model weights download lazily on first tool call

Options:

protein-design-mcp-setup --docker    # Force Docker mode
protein-design-mcp-setup --local     # Force local Python mode
protein-design-mcp-setup --modal URL # Use Modal cloud GPU
protein-design-mcp-setup -y          # Skip confirmation prompt

2. Smithery

If you use Smithery:

npx -y @smithery/cli install protein-design-mcp --client claude

3. pip + Manual Config

pip install protein-design-mcp             # Core (9 CPU tools)
pip install "protein-design-mcp[gpu]"      # + PyTorch + ESM (all 11 tools)

Add to your MCP client config:

Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):

{
  "mcpServers": {
    "protein-design": {
      "command": "protein-design-mcp"
    }
  }
}

Claude Code (.mcp.json in your project root):

{
  "mcpServers": {
    "protein-design": {
      "command": "protein-design-mcp"
    }
  }
}

Restart your client after editing config.


4. Docker

For isolated, reproducible environments. All dependencies and model weights are handled inside the container.

# GPU mode (all 11 tools, ~19GB image)
docker pull ghcr.io/jasonkim8652/protein-design-mcp:latest

# CPU mode (9 tools, same image, no GPU required)
DEVICE=cpu docker pull ghcr.io/jasonkim8652/protein-design-mcp:latest

# Lite CPU image (9 tools, ~3-5GB, no CUDA runtime)
docker build -f Dockerfile.lite -t protein-design-mcp:lite .

Docker MCP config:

{
  "mcpServers": {
    "protein-design": {
      "command": "docker",
      "args": [
        "run", "-i", "--rm", "--gpus", "all",
        "-e", "SKIP_MODEL_DOWNLOAD=true",
        "-v", "protein-design-models:/models",
        "ghcr.io/jasonkim8652/protein-design-mcp:latest"
      ]
    }
  }
}

For CPU mode, remove "--gpus", "all" and add "-e", "DEVICE=cpu".

Docker GPU requires NVIDIA Container Toolkit.


5. Modal (Cloud GPU)

No local GPU? Deploy to your own Modal account. Serverless GPU on demand, billed per-second (~$1.10/hr A10G). Containers auto-stop after 5 min idle.

pip install modal
modal setup                          # One-time: link your Modal account

git clone https://github.com/jasonkim8652/protein-design-mcp.git
cd protein-design-mcp
pip install -e .
modal deploy deploy/modal_app.py     # Deploy GPU endpoint

After deploying, Modal prints your endpoint URL. Connect via the local proxy:

{
  "mcpServers": {
    "protein-design": {
      "command": "python",
      "args": ["-m", "protein_design_mcp.modal_proxy"],
      "env": {
        "MODAL_URL": "https://<your-workspace>--protein-design-tools.modal.run"
      }
    }
  }
}

All 11 tools available. Local PDB files are automatically sent to Modal.


6. From Source (Development)

git clone https://github.com/jasonkim8652/protein-design-mcp.git
cd protein-design-mcp
pip install -e ".[gpu,dev]"
python -m protein_design_mcp.server

For full GPU pipeline, install RFdiffusion and ProteinMPNN separately and set RFDIFFUSION_PATH / PROTEINMPNN_PATH.


CPU vs GPU

GPU CPU
Tools available All 11 9 (no design_binder, generate_backbone)
RFdiffusion ~30s/design Disabled
ESMFold ~10s ~2-5min
ESM2 ~5s ~30s
ProteinMPNN ~30s ~5-10min
OpenMM Fast Comparable
AlphaFold2 (API) Works Works

GPU is auto-detected. To force CPU mode, set DEVICE=cpu.

Available Tools

Design & Generation

design_binder (GPU only)

End-to-end binder design: RFdiffusion (backbone) -> ProteinMPNN (sequence) -> ESMFold (validation).

{
  "target_pdb": "path/to/target.pdb",
  "hotspot_residues": ["A45", "A46", "A49"],
  "num_designs": 10,
  "binder_length": 80
}

Returns ranked designs with sequences, PDB structures, pLDDT, pTM, and mpnn_score.

generate_backbone (GPU only)

De novo backbone generation using unconditional RFdiffusion. No target protein required.

{"length": 100, "num_designs": 5}

optimize_sequence

Redesign a protein sequence for improved stability and/or binding affinity using ProteinMPNN.

{
  "current_sequence": "MTKLYV...",
  "target_pdb": "path/to/target.pdb",
  "optimization_target": "both",
  "fixed_positions": [1, 5, 10]
}

Structure Prediction

predict_structure

Single-chain structure prediction via ESMFold (fast) or AlphaFold2 (accurate).

{"sequence": "MTKLYV...", "predictor": "esmfold"}

Returns PDB file, mean pLDDT, pTM, per-residue confidence.

predict_complex

Multi-chain complex structure prediction using AlphaFold2-Multimer.

{
  "sequences": ["BINDER_SEQ...", "TARGET_SEQ..."],
  "chain_names": ["binder", "target"]
}

Returns predicted complex PDB with pLDDT, pTM/ipTM, and PAE matrix.

validate_design

Predict structure of a designed sequence and optionally compute RMSD against a reference.

{
  "sequence": "MTKLYV...",
  "expected_structure": "path/to/reference.pdb",
  "predictor": "esmfold"
}

Analysis & Scoring

analyze_interface

Analyze protein-protein interface: contacts, buried surface area, hydrogen bonds, salt bridges.

{"complex_pdb": "path/to/complex.pdb", "chain_a": "A", "chain_b": "B"}

suggest_hotspots

Predict binding hotspots from multiple sources. Accepts protein names, UniProt IDs, PDB IDs, or file paths.

{"target": "EGFR", "criteria": "druggable", "include_literature": true}

Criteria: "exposed" (SASA), "druggable" (pocket geometry), "conserved" (evolution).

score_stability

Protein stability scoring via ESM2 pseudo-log-likelihood. Optionally score individual mutations.

{
  "sequence": "MTKLYV...",
  "mutations": ["A42G", "L55V"]
}

Returns overall stability score and per-mutation delta log-likelihood (stabilizing/destabilizing).

energy_minimize

All-atom energy minimization with OpenMM (AMBER14 + implicit solvent).

{"pdb_path": "path/to/structure.pdb", "num_steps": 500, "solvent": "implicit"}

Returns minimized PDB, energy change, and RMSD from input.

Utility

get_design_status

Check progress of long-running design jobs.

{"job_id": "abc123"}

Configuration

Variable Description Default
DEVICE "auto", "cuda", or "cpu" auto
RFDIFFUSION_PATH Path to RFdiffusion installation /opt/RFdiffusion
PROTEINMPNN_PATH Path to ProteinMPNN installation /opt/ProteinMPNN
COLABFOLD_BACKEND "api" (remote MSA) or "local" (local DB) api
CACHE_DIR Cache directory ~/.cache/protein-design-mcp
TORCH_HOME ESM model weights directory (PyTorch default)
SKIP_MODEL_DOWNLOAD Skip eager weight download in Docker true

Architecture

MCP Server (stdio)
 |
 +-- Design tools
 |    +-- design_binder      RFdiffusion -> ProteinMPNN -> ESMFold
 |    +-- generate_backbone   RFdiffusion (unconditional)
 |    +-- optimize_sequence   ProteinMPNN + ESMFold
 |
 +-- Prediction tools
 |    +-- predict_structure   ESMFold or AlphaFold2
 |    +-- predict_complex     AlphaFold2-Multimer (ColabFold)
 |    +-- validate_design     Structure prediction + RMSD
 |
 +-- Analysis tools
 |    +-- analyze_interface   PDB geometry analysis
 |    +-- suggest_hotspots    SASA + pockets + UniProt + PubMed
 |    +-- score_stability     ESM2 pseudo-log-likelihood
 |    +-- energy_minimize     OpenMM (AMBER14)
 |
 +-- Utilities
      +-- Structure fetching (RCSB, AlphaFold DB, UniProt)
      +-- Conservation scoring, job queue, caching

Development

git clone https://github.com/jasonkim8652/protein-design-mcp.git
cd protein-design-mcp
pip install -e ".[gpu,dev]"

pytest tests/           # Run tests
ruff check .            # Lint
black .                 # Format
mypy src/               # Type check

License

Apache License 2.0 - see LICENSE for details.

References

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

protein_design_mcp-0.1.0.tar.gz (90.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

protein_design_mcp-0.1.0-py3-none-any.whl (82.0 kB view details)

Uploaded Python 3

File details

Details for the file protein_design_mcp-0.1.0.tar.gz.

File metadata

  • Download URL: protein_design_mcp-0.1.0.tar.gz
  • Upload date:
  • Size: 90.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for protein_design_mcp-0.1.0.tar.gz
Algorithm Hash digest
SHA256 e95728fac4e49e126946f361b22230ef4dcb61df6adb2d3f3a36096f065a5590
MD5 ecac33f98bc80294facf35009c629faa
BLAKE2b-256 b1f412192db4957edc874e134d1e8010dd75351a3fcbae29eebb0c70ad6c09bc

See more details on using hashes here.

File details

Details for the file protein_design_mcp-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for protein_design_mcp-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 417b6ac4cbd6d180d1cfd197a1d349183ad4d86f588a1deeebf3aa817d9ec798
MD5 96c4efd1f6a3d9258efbcb547b07fad4
BLAKE2b-256 cc2a510de94854aa0890500ab97d7fbd31f98a0699b1e928605000471254d6ca

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page