Skip to main content

MCP Tool Reference

UbiTools exposes 22 tools to MCP clients. These are high-level operations composed from one or more backend services. LLM clients can call any of them directly; the discovery pattern with list_tools returns the same catalog.

Sequence arguments are amino acids in single-letter code. Structure outputs are returned as PDB-format text unless otherwise noted.

Connectivity and validation

health_check

Server status, no backend call.

echo

echo(message: str) returns the message with a timestamp. Connectivity probe.

validate_sequence

validate_sequence(sequence: str) checks an amino acid string for invalid characters and reports composition. No backend call.

Antibody analysis

analyze_antibody

Comprehensive analysis: numbering, CDR identification, germline assignment, humanness scoring.

analyze_antibody(
heavy_chain: str | None,
light_chain: str | None,
nanobody: str | None,
scheme: str = "imgt",
)

Provide either heavy_chain (optionally with light_chain) or nanobody. Supported schemes: imgt, kabat, chothia, martin.

humanize_antibody

Humanize a non-human antibody by grafting CDRs onto the closest human germline.

humanize_antibody(sequence: str, chain_type: str | None = None)

number_sequence

Apply a numbering scheme to one sequence.

number_sequence(sequence: str, scheme: str = "imgt", chain_type: str | None = None)

batch_number_sequences

Number many sequences in a single call.

batch_number_sequences(sequences: list[str], scheme: str = "imgt")

Structure prediction

predict_antibody_structure

3D structure for an antibody or nanobody. Long-running; emits progress updates.

predict_antibody_structure(
heavy_chain: str | None,
light_chain: str | None,
nanobody: str | None,
)

abb4_generate

Predict structure with the ABodyBuilder3 model. Useful when you want explicit control over the model rather than the default.

Sequence design

design_protein_sequences

ProteinMPNN: design amino acid sequences that fold to a given backbone.

design_protein_sequences(
pdb: str,
num_sequences: int = 8,
temperature: float = 0.1,
chains_to_design: list[str] | None,
)

inverse_fold_antibody

AntiFold: antibody-specific inverse folding. Same idea as ProteinMPNN but trained on antibody backbones.

Developability

assess_developability

Combined aggregation, viscosity, and humanness assessment for an antibody.

assess_developability(heavy_chain: str, light_chain: str | None)

predict_viscosity

DeepViscosity: predict whether a formulated antibody will be viscous at high concentration.

Antibody CDR design (dyMEAN)

design_antibody_cdrs

Design CDR loops that bind a specified epitope on a target structure.

design_antibody_cdrs(
target_pdb: str,
epitope_residues: list[int],
framework: str | None,
num_designs: int = 10,
)

optimize_antibody_binding

Improve binding affinity of an existing antibody by introducing sequence mutations guided by the complex structure.

predict_antibody_complex

Predict the 3D structure of an antibody-antigen complex.

General protein design (Genie3 and RFdiffusion)

generate_protein_structure

Unconditional protein backbone generation.

design_protein_binder

Design a protein that binds a specified target region.

genie3_generate_proteins

Genie3 unconditional generation with finer-grained control than generate_protein_structure.

genie3_scaffold_motif

Scaffold a functional motif (for example an active site or epitope) within a new protein context.

genie3_design_binder

Genie3-based binder design with longer compute budget than the default.

Database search and embeddings

search_antibodies

KASearch over the Observed Antibody Space (OAS) for sequences similar to a query.

search_antibodies(query_sequence: str, chain_type: str, top_k: int = 100)

get_embeddings

Protein language model embeddings (AbLang2 for antibodies, SaProt for general proteins).

get_embeddings(sequence: str, model: str = "ablang2")

Behavior notes for LLM clients

  • Tools either return a result directly or report progress through MCP progress notifications and return on completion. There is no separate polling step at the MCP layer.
  • Sequence inputs are validated server-side. Invalid characters raise an error with a descriptive message.
  • For structure prediction and design, expect end-to-end runtimes from tens of seconds (AbNumber, ImmuneBuilder) to several minutes (BoltzGen, RFdiffusion).
  • Tools accept reasonable defaults for non-required parameters; the schema returned by tools/list is the authoritative source for what is required.