Skip to main content
Glama

Jean — Molecular Biology & Genomics

design_degenerate_primers

Design degenerate primers from a multiple-sequence ALIGNMENT - the 'amplify every homologue in this family' question, which a single-template designer cannot answer because it only ever sees one sequence.

Input Schema

NameRequiredDescriptionDefault
seedNoseed for WRM's draw, so a run is REPRODUCIBLE. Upstream is unseeded, so the same alignment can give two answers; a design you cannot reproduce is not one you can order from. Only applies when algorithm is wrm. Advanced.
skipNobases excluded at each end of every sequence (`-skip`). In nt. Advanced.
limitNohow many pairs to return, best coverage first. Advanced.
_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.
lengthNooligomer length (DegePrime `-l`). In nt.
_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.
algorithmNowhich search picks each window's oligo. `wrm` is DegePrime's own default and is randomised (hence `seed`); `exhaustive` is an exact branch-and-bound that GRADES the heuristics rather than letting them grade each other, and REFUSES a window too large to solve rather than guessing - the problem is NP-hard.wrm
alignmentNothe ALIGNED rows to scan, each `{ name, sequence }` with gaps preserved - wire an upstream `align_sequences` rows output here. Gaps carry information the scan reads, so an unaligned set is not a substitute.
min_depthNofewest gapless sequences a window needs before it is reported at all (`-depth`). Advanced.
iterationsNoWRM restarts (`-iter`). Only applies when algorithm is wrm. Advanced.
max_productNolongest product, in TRIMMED alignment columns. In col.
min_productNoshortest product, in TRIMMED alignment columns. In col.
trim_cutoffNocolumns occupied by less than this fraction of sequences are dropped before scanning. Trimming renumbers the alignment, which is why `keptColumns` comes back with the result. Advanced.
max_degeneracyNodegeneracy ceiling (`-d`) - how many distinct oligos the IUPAC code is allowed to stand for. Coerced DOWN when no combination of positions can multiply to it, and the run says so.
alignment_fastaNoan aligned FASTA to scan, when there is no upstream alignment to wire. Sequences must already BE aligned - equal length, gaps as `-`.
exhaustive_mer_limitNolargest number of distinct mers `exhaustive` will attempt before refusing a window. Only applies when algorithm is exhaustive. Advanced.
min_fraction_matchingNoa window must bind at least this fraction of the spanning sequences to be a candidate - the coverage floor, and the number that decides whether 'every homologue' is true.

Output Schema

NameRequiredDescriptionDefault
pairsYesthe primer pairs, best coverage first: both oligos in IUPAC letters, their degeneracy, the fraction of the family each binds, and the product span in trimmed columns
forwardYesthe best pair's forward oligo, IUPAC. Empty when no pair satisfied the constraints
reverseYesthe best pair's reverse oligo AS ORDERED (reverse-complemented). Empty when no pair satisfied the constraints
windowsYesevery scanned window with its degeneracy, entropy and coverage - the scan behind the pairs
pairCountYeshow many pairs were found
keptColumnsYeswhich columns of the ORIGINAL alignment survived trimming - trimmed column 40 is not alignment column 40, and this is the map back
degeneracyCoercedYestrue when the ceiling was lowered, so a run never silently answers a different question than it was asked
maxDegeneracyUsedYesthe degeneracy ceiling actually applied - LOWER than asked when no combination of IUPAC positions can multiply to the request

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4/5.0
Behavior3/5

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

Annotations only declare readOnlyHint=false, destructiveHint=false and openWorldHint=false; the description adds no behavioral context such as whether designs are persisted, what the output looks like, or how refusal behaves for oversized windows. That refusal behavior and the degeneracy coercion are genuinely useful traits, but they live in the schema rather than the description, so the description adds little beyond structured data.

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

Conciseness5/5

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

A single sentence that front-loads the action and the required input before the motivating scenario. No restatement of the title, no filler, nothing wasted.

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 17-parameter tool with a rich schema, an output schema, and an upstream alignment dependency, the description establishes the job and the input contract adequately. It does not hint at the algorithm trade-off (wrm randomness vs exhaustive refusal) that dominates correct invocation, leaving that entirely to the schema, which is dense but self-contained.

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 every parameter already carries its own detailed prose, including units, defaults, and algorithm dependencies. The description contributes only the idea that aligned (gapped) rows are required input, which the `alignment` and `alignment_fasta` schema entries already say. Baseline 3 is appropriate.

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?

Names a specific verb and resource ('design degenerate primers') and pins the required input ('from a multiple-sequence ALIGNMENT'). The framing sentence 'amplify every homologue in this family' plus the contrast with a 'single-template designer' separates it from the many other primer-design siblings at a glance.

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 clear selection rule: use this when the goal is to amplify every homologue in a family from an alignment, because single-template designers only see one sequence. It does not name the specific alternative tools (design_primers, design_primer_pairs, design_bisulfite_primers) or state exclusions such as what to do when no alignment exists, so it stops short of full routing guidance.

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