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/listis the authoritative source for what is required.