Skip to main content
Glama

draw_gel

Read-only

Run an agarose gel and photograph it: every lane's fragments migrated by the validated pydna model, drawn as a gel-doc image with the marker ladder's bp marks and each lane's name.

Input Schema

NameRequiredDescriptionDefault
lanesYesthe lanes, each {name, lengths: [bp, …]}. The marker lane is added for you — `ladder` chooses it.
stainNothe dye the plate was stained with; its published emission maximum is the colour the bands are drawn in. Values: etbr (Ethidium bromide), sybr-safe (SYBR Safe), sybr-gold (SYBR Gold), gelred (GelRed).etbr
_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.
labelsNoprint the ladder's readable bp marks, each lane's number above its well and a legend naming it. Off gives the bare plate, for a figure that captions itself.
ladderNothe MW marker in the reference lane, which is also the curve every lane's migration is read off unless `agarose_percent` is set. Values: generuler_1kb_plus (GeneRuler 1 kb Plus (75–20,000)), hi_lo (Hi-Lo DNA Marker (50–10,000)), generuler_1kb (GeneRuler 1 kb (250–10,000)), generuler_100bp (GeneRuler 100 bp (100–3,000)), generuler_100bp_plus (GeneRuler 100 bp Plus (100–3,000)), thermo_1kb_plus (Thermo 1 Kb Plus (100–15,000)), neb_1kb (NEB 1 kb (500–10,000)), neb_100bp (NEB 100 bp (100–1,517)), lambda_hindiii (Lambda DNA / HindIII (125–23,130)), penn_state (PennState (500–10,000)).generuler_1kb_plus
captionNothe line under the plate naming the curve that positioned the bands and what their brightness is relative to. Advanced.
_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.
dna_formNotopology of the sample DNA: supercoiled and nicked circles do not migrate where a linear fragment of the same length does. Only the Helling-Goodman-Boyer law uses it. Values: linear (Linear), supercoiled (Supercoiled), nicked (Nicked), relaxed (Relaxed). Only applies when agarose_percent is set. Advanced.linear
exposureNoWhole plate: brightness against the brightest band on the plate (a lightly loaded lane, the ladder included, can draw almost black); Per lane: brightness against each lane's own brightest band (brightness can no longer be compared between lanes). Values: plate (Whole plate), lane (Per lane).plate
lane_widthNohow wide each lane is drawn. In px. Advanced.
mobility_modelNowhich published mobility law the agarose % is applied through. Ignored unless `agarose_percent` is set. Values: helling-goodman-boyer (Helling-Goodman-Boyer), rill-van-winkle (Rill / Van Winkle). Only applies when agarose_percent is set. Advanced.helling-goodman-boyer
agarose_percentNothe gel's agarose (% w/v). Set it and migration comes from a concentration law instead of the ladder's own spline, so the gel responds to the percentage the way a real one does; leave it unset for the ladder-calibrated placement. In %.

Output Schema

NameRequiredDescriptionDefault
svgYesthe gel as an SVG figure, carrying the photographed plate and its labels
widthYesfigure width in px
heightYesfigure height in px
ladderYesthe marker in the reference lane
offScaleYesfragments the curve could not place, so they are NOT on the picture — check this before reading a lane as complete
bandCountYesbands with a position on this plate — what the picture shows
laneCountYessample lanes drawn, the marker lane excluded
calibratedByYesthe (bp, Rf) curve that positioned every lane

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedOutput schema / properties / height / x-unit
      Added value: +"px"
    • addedOutput schema / properties / width / x-unit
      Added value: +"px"
  2. First observed

TDQS

B3.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds real behavioral context beyond that: migration is computed by the 'validated pydna model' and the output is a rendered gel-doc image annotated with ladder bp marks and lane names. It stops short of saying anything about failure modes (e.g., invalid lengths or an empty lane list).

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?

It is a single front-loaded sentence that immediately states the action and then the output. The colon-joined second clause is dense but every element (model, image, ladder marks, lane names) carries information; there is no filler.

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

Completeness3/5

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

With 12 parameters, nested objects, five enums, and an output schema, the description is adequate but thin: it explains the headline behavior and defers all parameter detail to the schema, which is acceptable given full schema coverage. What is missing is the relationship to sibling gel tools and any statement of input constraints, which matters for a tool with this much surface area.

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, including the advanced agarose_percent and mobility_model switches, is documented in the schema itself. The description only echoes the ladder-marks and lane-name behavior, adding no semantics beyond what the schema already provides, so the baseline of 3 applies.

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?

The description names a specific verb and resource: running an agarose gel and producing a gel-doc photograph, including what the image contains (ladder bp marks, lane names). It is clear what the tool produces, but it does not distinguish itself from close siblings like run_gel_plate, run_gel_lane, or digest_fragments/size_fragments, which an agent could plausibly confuse it with.

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

Usage Guidelines2/5

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

There is no explicit when-to-use or when-not-to-use guidance. With run_gel_plate and run_gel_lane present in the sibling list, the description never says whether this tool simulates the run, renders an existing one, or both, leaving the agent to infer the choice from tool names alone.

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