Skip to main content
Glama

Jean — Molecular Biology & Genomics

score_variant_effect

Read-only

Score protein substitutions with ESM-2, the zero-shot way facebookresearch/esm's own predict.py does: how much less (or more) likely the mutant residue is than the wild type at that site, under a protein language model.

Input Schema

NameRequiredDescriptionDefault
modelNowhich published ESM-2 ONNX export to score under. The three sizes are a download decision as much as an accuracy one, and the label says which. Values: esm2_t6_8M (ESM-2 8M · 30.3 MB), esm2_t12_35M (ESM-2 35M · 134.5 MB), esm2_t33_650M (ESM-2 650M · 2.61 GB).esm2_t6_8M
_filesNoThe project: record references shaped like _subject. Their records become library documents a tool names in sequences/parts/document; a trace or alignment is found by file name.
proteinYesthe protein the positions are numbered against, one letter per residue. Wire a translation, or the CDS protein the library was designed on — the positions mean nothing without it.
_subjectNoThe record to act on: exactly one of sequence, accession (+source), sample (an id from list_samples) or file ({name, text} or {name, base64}); record_index picks one record of several.
strategyNohow the score is computed. `masked-marginals` is ESM-1v's recommendation — one forward pass per residue, each with that site masked. `wt-marginals` is one pass over the wild type and the paper reports it as weaker. `pseudo-ppl` scores the whole mutant sequence and costs one pass per residue PER VARIANT, which is two orders of magnitude more; its number is a log-likelihood, not a ratio, and is comparable only against other variants of the same protein. Values: wt-marginals (Wild-type marginals), masked-marginals (Masked marginals), pseudo-ppl (Pseudo-perplexity).masked-marginals
variantsYesthe substitutions, in `A24D` form: wild-type residue, position, mutant residue. Every one is checked against `protein` first, because a scored substitution whose wild type does not match is a confident number about a protein nobody has.
offset_idxNothe number `position` counts from. 1 is ordinary protein numbering; set it when your variants are numbered against a mature chain or a construct that starts partway in. Advanced.

Output Schema

NameRequiredDescriptionDefault
modelYeswhich ESM-2 export produced these scores. Scores from two models are not comparable
passesYesforward passes the run cost — the price of the strategy, after the fact
rankedYesjust the substitution notations, in the same order — the list to take forward into an order or a filter
scoresYesevery variant with its score in nats, the strategy that produced it and the forward passes it cost — MOST DAMAGING FIRST, which is the reason to rank a library at all
captionYesthe one sentence a score may never be shown without, generated from THIS run rather than fixed: what the number means under the strategy that produced it, and what it is not
strategyYeswhich of the three strategies ran. Scores from two strategies are not comparable either, and pseudo-perplexity is not even the same quantity
mostDamagingYesthe lowest-scoring substitution. It is the model's opinion about likelihood, not a measured loss of function, and `caption` is the sentence that says so
variantCountYeshow many substitutions were scored
leastDamagingYesthe highest-scoring substitution — the one the model finds most ordinary

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint/ non-destructive and closed-world, so the safety profile is covered. The description adds genuinely useful behavioral context beyond that: it is zero-shot (no MSA or labeled data), it deliberately mirrors `facebookresearch/esm`'s `predict.py`, and the output is a relative ratio, not an absolute probability. It does not disclose compute cost or runtime scaling, though that detail lives in the strategy parameter description.

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?

A single front-loaded sentence that spends its words on the two things that matter: the method and the direction/meaning of the returned number. The nested clause with the repo/predict.py reference is slightly dense but still earns its place by anchoring behavior to a known reference implementation.

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?

There is an output schema, so return values need no explanation, and the scoring semantics are stated. The one gap is that the description says nothing about the project-record plumbing (_subject, _files) despite the tool having nested object parameters and 7 total parameters; an agent must read the schema to learn how inputs are wired. For a read-only scoring tool that is a modest, not fatal, omission.

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

Parameters3/5

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

Schema description coverage is 100% and the enum/parameter descriptions are unusually rich (model download sizes, per-strategy cost, offset_idx semantics), so the schema carries the parameter burden. The description adds only the framing of what a score means, not parameter-level guidance, which is the expected baseline-3 case when the schema is fully documented.

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

Purpose4/5

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

Names a specific verb and resource ('Score protein substitutions with ESM-2') and further pins down the exact semantic of the number: the log-ratio of mutant vs wild-type residue likelihood at a site. It does not name or contrast any sibling tool (e.g. protein_profile or variant_consequences), so an agent must infer the boundary from the name alone, which keeps it at 4 rather than 5.

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

Usage Guidelines3/5

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

Usage context is only implied: you have a protein sequence plus a list of A24D-style substitutions and want likelihood-based effect scores. There is no explicit when-to-use/when-not guidance, no mention of alternatives (other variant effect predictors, or protein_profile-style scoring), and no stated prerequisites such as needing the exact wild-type protein.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources