Skip to main content
Glama

draw_alignment

Read-only

Draw a block of an alignment as an SVG figure: the rows named, the residues shaded by how much of their column agrees with them, the column numbers over the block and Easel's Clustal conservation line under it. Wire alignedSequences from align_sequences. Name the window around whatever you are asking about — a variable site, a motif, a gap — because a 2,000-column alignment drawn at once shows nothing.

Input Schema

NameRequiredDescriptionDefault
fromNofirst column drawn, 1-based and inclusive. Clamped into the alignment.
rowsYesthe ALIGNED rows, each {name, aligned}; every row must already be the same length. Wire `alignedSequences` from align_sequences.
rulerNoprint the column numbers over the block. 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.
schemeNoidentity shades a residue by how much of its column agrees with it, which works for any alphabet; nucleotide paints QUEEN's own base colours and is IGNORED over protein rows, which the answer's `scheme` then says. Values: identity (Column identity), nucleotide (Base colours).identity
columnsNohow many columns to draw. Past about 200 the letters are narrower than the strokes that make them.
_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.
cell_widthNowidth of one column's cell. In px. Advanced.
name_charsNohow many characters of a row's name to print; a longer one is elided in the middle, keeping the tail where two rows of a family differ. Advanced.
row_heightNoheight of one row. In px. Advanced.
conservationNoprint the conservation line under the block.

Output Schema

NameRequiredDescriptionDefault
svgYesthe alignment block as an SVG figure
rowsYesrows drawn
widthYesfigure width in px
heightYesfigure height in px
schemeYesthe scheme ACTUALLY used, which is `identity` whenever `nucleotide` was asked for over protein rows
columnsYescolumns in the WHOLE alignment, so the window can be read against it
alphabetYesthe alphabet the conservation line was computed for — Easel marks the strong and weak groups for protein only
lastColumnYeslast column drawn, 1-based inclusive
firstColumnYesfirst column drawn, 1-based inclusive, AFTER clamping
meanIdentityYesmean per-column identity over the window drawn, 0-1 — the window's, not the alignment's
conservedColumnsYescolumns in the window every row agrees on and none gaps — the `*` marks

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

A4.5/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 an output schema exists, so the safety and return-shape burden is light. The description still adds real behavioral context the annotations cannot: that the output is an SVG figure whose shading encodes column agreement, that nucleotide colouring is ignored over protein rows, and that readability degrades past ~200 columns. It does not discuss performance limits or how the SVG is delivered, but that is minor given the annotations.

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?

Three sentences: what is drawn, what to feed it, and how to choose the window. The key constraint about large alignments is front-loaded into the final sentence as the action-guiding point rather than buried. Nothing is repeated from the schema except a short wiring reminder that serves the agent.

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

Completeness5/5

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

With an output schema handling return values and annotations handling safety, the remaining gaps are data flow and figure legibility — and the description covers both (align_sequences source, window-sizing advice, shading semantics). An agent can decide to call this tool and supply correct inputs from the description alone.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3; the description earns above that by telling the agent where `rows` comes from ('Wire alignedSequences from align_sequences') — a cross-tool data-flow fact invisible in the schema — and by framing the practical window-sizing constraint that governs `from`/`columns` choices.

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?

States a specific verb and resource ('Draw a block of an alignment as an SVG figure') and then enumerates exactly what the figure contains: named rows, identity-shaded residues, column numbers, and a Clustal conservation line. That level of output detail separates it cleanly from alignment_agreement (metrics) and alignment_window (window selection) without either being named.

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 concrete usage rule — 'Name the window around whatever you are asking about — a variable site, a motif, a gap' — and warns that drawing a 2,000-column alignment at once shows nothing. It also names the upstream prerequisite (wire alignedSequences from align_sequences). It stops short of naming sibling alternatives such as alignment_window or add_notebook_figure, so there is no explicit when-not-to-use routing.

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