Skip to main content
Glama

fold_complex

Co-fold one or more protein chains, optionally with small-molecule ligands, using Boltz-2 to predict complex structures and binding affinities.

Instructions

Co-fold one or more protein chains (optionally with small-molecule ligands) using Boltz-2.

Args: protein_sequences: one amino-acid sequence per protein chain. Give the binder AND the target together to score the complex; a binder folded alone does not measure binding. ligand_smiles: optional list of SMILES strings for small-molecule ligands. predict_affinity: if true and a ligand is given, also return a binding-affinity estimate.

Returns a dict with structures, confidence_scores, and (optionally) affinities.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
ligand_smilesNo
predict_affinityNo
protein_sequencesYes

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description carries the full burden: it discloses the underlying method (Boltz-2), the conditional gating of affinity output, and the top-level return keys. It omits operational traits an agent would care about, such as runtime/compute cost and any limits on chain or ligand count.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the core action in one sentence, then uses a compact args block; the Returns line is short. The args block largely restates schema fields, so a bit of the space is not adding new information, but nothing is verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a three-parameter folding tool with a machine-readable output schema, the definition covers purpose, parameter meaning and output keys adequately. It stops short of describing practical constraints (input size limits, expected runtime, whether Boltz-2 runs locally or needs external setup) that would matter for invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description compensates by defining each of the three parameters semantically: one amino-acid sequence per chain for protein_sequences, optional SMILES strings for ligands, and the ligand-dependent behavior of predict_affinity. Minor gap: how multiple SMILES map to chains is not explained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (co-fold), resource (protein chains, optionally with ligands) and names the engine (Boltz-2), which clearly separates it from the design_* siblings that generate sequences or backbones. An agent can tell from the first sentence that this tool scores/evaluates existing sequences rather than designing new ones.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a concrete usage condition: give binder AND target together to score a complex, because a binder folded alone does not measure binding, and states that affinity is only returned when a ligand is supplied and predict_affinity is true. It does not name or exclude the design_* siblings explicitly, so routing to alternatives is left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.