Skip to main content
Glama

Jean — Molecular Biology & Genomics

design_free_codes

Read-only

Generate INDEL-correcting barcodes — FREE divergence codes (Hawkins et al., PNAS 2018) — by reserving each codeword's error sphere over the whole 4^k space, so the guarantee survives an insertion or deletion rather than only a substitution.

Input Schema

NameRequiredDescriptionDefault
modeNogenerate a new code, or prune an existing set down to a valid one. Values: generate (Generate a code), prune (Prune a set to a valid code).generate
limitNostop after this many codewords. 0 = take the whole code. 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.
lengthNobarcode length k. The search is over the whole 4^k space, so cost rises steeply with it.
max_gcNoreject a candidate above this GC fraction. 0 = no limit. 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.
barcodesNothe set to prune — required when `mode` is `prune`, ignored when generating. Only applies when mode is prune.
reservedNocodewords already in use, whose decode spheres are claimed BEFORE generation — this is how a code is EXTENDED rather than regenerated, so what comes back is compatible with the indexes a lab already owns.
max_errorsNohow many insertions/deletions/substitutions each codeword must tolerate. Each extra error costs most of the code.
max_homopolymerNoreject a candidate with a run of this many identical bases. 0 = no limit. Advanced.

Output Schema

NameRequiredDescriptionDefault
countYeshow many codewords came back
droppedYesprune only: the codewords removed because their decode spheres collided — a user pruning their own set needs to know which indexes to stop using, not how many
barcodesYesthe codewords — generated, or the ones that survived pruning

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A3.5/5.0
Behavior3/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 safety is covered by structured data. The description adds genuine mechanism context — error spheres reserved over the whole 4^k space, guarantee holding for indels — but says nothing about runtime, determinism, or the cost of raising max_errors, all of which matter for a search-based generator.

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 leads with verb+resource and then motivates the design. It is dense with jargon and an em-dash citation aside, but nothing is redundant.

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?

With 10 parameters, a nested _subject object, full schema coverage and an output schema, the definition's remaining burden is purpose and mechanism, which it delivers. The one real gap is sibling routing — nothing tells the agent to prefer this over design_barcodes or design_codehop.

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 parameter docs are unusually rich (reserved, max_errors, barcodes/mode interaction all explained in-schema). The description adds only the conceptual framing of the search space, not new parameter-level meaning, so the baseline 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 pairs a specific verb (generate) with a specific resource (INDEL-correcting barcodes / FREE divergence codes, with a literature citation) and adds 'rather than only a substitution', which implicitly separates it from substitution-only barcode design. It never names a sibling tool (design_barcodes, design_codehop, design_degenerate_primers) outright, so the differentiation is inferential rather than explicit.

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?

Use is only implied: an agent can infer it should pick this when a code must survive insertions/deletions. There is no stated when-not, no prerequisites, no mention of the generate-vs-prune workflow (that lives only in the schema), and no routing to the other barcode-design siblings.

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