--- name: protein-design-mcp description: >- Compose auditable protein-design operations through the configured OpenAI4S protein-design MCP connector: target-conditioned RFdiffusion backbone generation, constrained ProteinMPNN sequence design, monomer or complex structure prediction, Rosetta scoring and relaxation, ESM-2 sequence naturalness scoring, and OpenMM minimization. Use when designing or redesigning proteins, creating target-binding proteins, preserving sequence motifs, validating candidate structures or complexes, refining structures, or ranking protein-design candidates with reproducible model evidence. origin: openai4s category: biomodels capabilities: network: mode: host_only domains: [] --- # Compose protein-design operations over MCP Select atomic tools according to the scientific objective. Do not force every task through one pipeline, and do not treat a model score as experimental proof. ## Discover the connector Find the enabled connector with `host.mcp.list()`, then inspect it with `host.mcp.tools(server)`. The connector can expose: - `generate_backbone` - `design_sequence` - `predict_structure` - `predict_complex` - `rosetta_score` - `rosetta_relax` - `rosetta_interface_score` - `score_stability` - `energy_minimize` Discovery shows that the server started. Before running a model, also verify its execution route, external environment, pinned revision, checkpoint, compute resources and required network-isolation mechanism. ## Select compute before provisioning Call `host.accelerator_status()` before any GPU-only operation. It probes the daemon's local GPUs first and then lists configured SSH GPU routes. These are different from a BYOC provider catalogue and from model-backend readiness. When both a local route and one or more SSH routes are candidates, ask the user to choose `local` or `ssh:` before downloading, installing or launching anything. Do not silently prefer either route. When only one route exists, state the selected `execution_target` and record it in the bring-up evidence. An empty SSH registry is not evidence that the local machine has no GPU, and a missing Docker executable does not make a natively usable local GPU disappear. ## Acquire checkpoints only when needed Do not ask for, locate or download checkpoints during generic connector discovery. Only enter this flow after selecting an operation whose tool schema requires `checkpoint_path`. Before that call, inspect whether the user already supplied a path. If not, stop provisioning and ask whether they have an existing local checkpoint; request its path plus any known digest. Do not search for or download weights while that question is unanswered, and do not make them download a second copy merely because it is outside a conventional directory. If the user says there is no local checkpoint, use the normal approved network and tool bring-up controls to download it. The framework does not maintain a closed list of allowed scientific sources: resolve the source selected for this run to an immutable version, prefer an upstream-published checksum, compute the downloaded file's SHA-256 independently, and retain source URL, size and digest. An observed digest with no independently trusted reference proves transfer identity, not that the file is the intended model; report that distinction. After acquiring code, environment or weights, run a small real inference canary on the selected execution target. The canary must exercise the same adapter, backend revision and checkpoint that the formal call will use, produce the output types the adapter promises, and pass the adapter's parser and digest checks. Set `run_mode="canary"` on this attempt. Record failed bring-up attempts. Only after its result contains a verified `bringup_admission` may a new attempt use `run_mode="formal"`. A formal attempt made too early ends in a durable failure, so retry it with a new `attempt_id` after admission rather than reusing the failed ID. Only after a canary reaches a verified terminal success may the backend be used in the user's formal work. Then retry the original scientific operation instead of ending the task with “backend not configured.” If permission, licensing, source integrity, disk capacity or the canary genuinely blocks bring-up, report that specific blocker and do not fabricate results. ## Choose only the operations the task needs Typical compositions include: - target-conditioned binder design: `generate_backbone` → `design_sequence` → `predict_structure` and `predict_complex` → interface scoring; - backbone sequence redesign: `design_sequence` → `predict_structure` → optional physical scoring; - fixed-motif sequence design: `design_sequence` with explicit per-chain fixed positions → structure validation; - structure refinement: `rosetta_relax` or `energy_minimize` → score the input and refined structures with the same method; - candidate ranking: combine sequence, monomer, complex and physical evidence while retaining the individual scores and provenance. These are examples, not mandatory pipelines. Start from the user's design objective and constraints, then choose the smallest informative set of calls. ## Record reproducible attempts Give each model execution a stable `attempt_id` and explicit seed. Pin the backend revision and checkpoint SHA-256, use a dedicated output directory, and retain the resolved configuration, command, residue maps, raw outputs and terminal record. Reusing the same attempt and configuration is idempotent; changing the configuration under an existing attempt ID is a conflict. One call to `generate_backbone` produces one design. Run multiple attempts with distinct IDs and seeds when sampling a population. A failed attempt remains part of the provenance rather than being silently discarded. ## Generate target-conditioned binder backbones The current `generate_backbone` contract requires a target PDB, explicit target chain or chains, validated target hotspot residues and a binder length. It verifies the local RFdiffusion checkpoint and returns both PDB and `.trb` mapping outputs. Do not describe this operation as epitope-free or purely function-guided de novo design: the hotspot list supplies structural contact-region information. If the task does not provide a contact region, epitope selection is a separate scientific step and its assumptions must be reported. The current schema also does not express unconditional monomer generation, motif-scaffolding contigs, symmetric oligomer generation or membrane-specific constraints. Use another suitable atomic connector or extend this schema before claiming those backbone-generation capabilities. ## Design sequences without losing constraints Call `design_sequence` with every input chain represented in `fixed_positions`. Values are `"all"` or chain-local, 1-based sequence positions. Include only mutable chains in `design_chains`; mark fixed target or context chains as `"all"`. The connector uses ProteinMPNN's `--pdb_path_chains` and `--fixed_positions_jsonl` inputs and independently rejects output when a fixed chain or motif changes, a chain length changes, or the residue map does not close. Inspect this validation before using a sequence downstream. ## Predict structures and complexes without self-conditioning Use `predict_structure` for monomer evidence and `predict_complex` for blind sequence-only complex evidence. Formal prediction calls require: - `msa_mode="single_sequence"`; - a local checkpoint bundle with verified digests; - fixed model type, recycles, model count and seed; - templates and initial guesses disabled; - an operator-configured OS-level network-isolation prefix. Preserve raw confidence values and PAE. Treat pLDDT, pTM, ipTM and interface PAE as model confidence, not as proof of folding, binding, affinity or function. Do not feed a generated complex back as a template or initial guess for its own validation. ## Add physical and sequence evidence carefully Use `rosetta_interface_score` for `dG_separated`, `dSASA`, `packstat`, interface residue count and `interface_delta_unsat_hbonds`. The final field is a change in unsatisfied hydrogen bonds, not a count of formed interface hydrogen bonds. Treat `score_stability` as ESM-2 masked pseudo-log-likelihood or sequence naturalness, not thermodynamic stability. Treat `energy_minimize` as local force-field refinement, not evidence that a candidate folds or binds. `rosetta_relax` is optional; when using it, compare consistently scored input and relaxed structures and retain both. ## Rank and report without collapsing evidence Apply hard task constraints before ranking. Keep evidence types separate, report failed attempts, and preserve structural diversity instead of selecting only near-duplicates with the best value from one model. When these tools are used inside a benchmark, keep any withheld references or labels inaccessible during candidate generation and ranking. This is an optional benchmark-integrity rule, not a restriction on ordinary protein design use and not a responsibility assigned to this connector.