Compose protein-design operations over MCP
SkillMediaCompose 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.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the Compose protein-design operations over MCP skill
What this skill tells your AI
The instructions your AI receives, as published by pku-yuangroup/openai4s in skills/protein-design-mcp/SKILL.md and read by ahel’s review.
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_backbonedesign_sequencepredict_structurepredict_complexrosetta_scorerosetta_relaxrosetta_interface_scorescore_stabilityenergy_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:<alias> 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_structureandpredict_complex→ interface scoring; - backbone sequence redesign:
design_sequence→predict_structure→ optional physical scoring; - fixed-motif sequence design:
design_sequencewith explicit per-chain fixed positions → structure validation; - structure refinement:
rosetta_relaxorenergy_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.
Signals
- GitHub stars
- 409
- Forks
- 48
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
protein-design-mcp- Source
- github.com/pku-yuangroup/openai4s