Skip to main content
Glama

find_genes

Find genes (transcript intervals) in a genomic region (async, ~8-25s).

    Takes 1,000–500,000 bp. The floor is the strictest of the scanning
    tasks: gene finding needs a region, not a site. (Only expression's
    9,198 bp is higher, and that is the sequence around one TSS rather
    than a region to search.)

    Gene-finding: detects transcript boundaries (TSS + PolyA) and returns
    one interval per predicted transcript — start/end, strand, a
    confidence score, and predicted TSS/PolyA positions (BED-style feature
    intervals, not free-text notes). Use this for "what genes are here",
    "find / locate genes", or "annotate this region".

    Each transcript also carries its type (mRNA/lnc_RNA) and internal
    exon/intron/CDS structure in `exons`/`introns`/`cds` arrays, plus a
    browser-ready GFF3 track in `data.formats.gff3`. To get each gene's
    *expression* from a raw region, use find_genes_and_predict_expression
    instead — expression needs a per-gene TSS window, so predict_expression
    cannot run on a whole region.

    Submits an async job internally. With wait=True (default), blocks and
    streams progress, then returns the result {data, meta} — it never
    returns a job_id on this path. (If a generous block ceiling is
    exceeded it returns a timeout error, not a job handle.) With
    wait=False (detached), returns {data: {job_id, status: 'submitted'}}
    immediately — poll it with get_job.
    

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
waitNoDefault True: block and stream progress until the result is ready. Set False for detached mode — returns a job_id immediately to poll with get_job.
modelNoOptional model id; omit for the task default. See list_models.
sequenceNoDNA bases A/C/G/T/N (case-insensitive). Line breaks are ignored (a wrapped FASTA body may be pasted verbatim; a `>` header line may not). Mutually exclusive with `sequence_ref`.
sequence_refNoHandle (seq_…) from any acquisition tool (fetch_ensembl_sequence, fetch_region, fetch_gene_for_expression, load_demo_sequence, load_local_fasta, store_inline_sequence). Mutually exclusive with `sequence`.
sequence_nameNoLabel echoed back in the response (ignored when `sequence_ref` is used).sequence

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / sequence / description
      Previous value: -"DNA bases A/C/G/T/N (case-insensitive). Mutually exclusive with `sequence_ref`."New value: +"DNA bases A/C/G/T/N (case-insensitive). Line breaks are ignored (a wrapped FASTA body may be pasted verbatim; a `>` header line may not). Mutually exclusive with `sequence_ref`."
  2. First observed

TDQS

A4.8/5.0
Behavior5/5

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

Goes well beyond the annotations: it explains that an async job is submitted internally, that wait=True blocks and streams progress and never surfaces a job_id on that path, that an exceeded block ceiling yields a timeout error rather than a handle, and that wait=False returns a pollable job_id. It also discloses the 1,000–500,000 bp input constraint. This is exactly the extra behavioral context annotations cannot carry.

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?

Front-loads the core verb+resource+timing in the first sentence, then layers detail efficiently. The parenthetical comparing the bp floor to expression's 9,198 bp is slightly digressive, and the output/format sentence overlaps with the output schema, keeping it below a perfect score.

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?

For an async, wait-flagged tool with a full output schema and five fully documented parameters, the description covers everything an agent needs: region limits, job lifecycle, return shape, and routing to the expression variant. Nothing material is missing, and return values are legitimately deferred to the output schema.

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, but the description adds the region-length constraint (1,000–500,000 bp) that the schema's sequence property does not state, and reiterates the blocking/detached semantics of wait with the consequence (never returns job_id) that the schema omits. It does not, however, restate the sequence vs sequence_ref mutual exclusivity, so it stops short of a 5.

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 ('Find genes (transcript intervals) in a genomic region') and immediately differentiates itself from siblings by naming find_genes_and_predict_expression and explaining why predict_expression cannot operate on a whole region. An agent can distinguish it without opening any schema.

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

Usage Guidelines5/5

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

Gives explicit trigger phrases ('what genes are here', 'find / locate genes', 'annotate this region') and an explicit alternative with its selection condition (use find_genes_and_predict_expression when you need per-gene expression from a raw region). When-to-use and when-to-switch are both covered.

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