Skip to main content
Glama

jean — Molecular Biology & Genomics

read_variant_calls

Read-only

Read a variant call set (VCF, bgzipped VCF or BCF) in this project and return the records matching a query: a locus, a variant class, a QUAL floor, PASS-only, a sample that is not hom-ref, or an INFO key. Every answer says what it read over and what it filtered on, so a count can never be mistaken for the file's total. A call set too large to read whole opens at its header, and a locus is then the way in rather than an option.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
endNolast base of the region, 1-based and inclusive. Needs `contig`. Unset is the contig's last record.
fileNowhich call set in this project, by name. Unset, it is the project's only one, and it refuses rather than guessing when there is more than one.
limitNohow many matching records to return. The COUNT is always the full number of matches: this caps the rows, never the accounting.
startNofirst base of the region, 1-based and inclusive, as VCF itself counts. Needs `contig`. Unset is the contig's first record.
typesNokeep only these variant classes. The classes are htslib's own, assigned by the ported `setVariantType` and identical to the ones the panel's type filter offers. Unset keeps every class.
_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.
contigNorestrict to one contig, named as the FILE names it: `20` and `chr20` are different names and neither is normalized into the other. With `start`/`end` this is a locus read; alone it is the whole contig.
sampleNokeep only records where this sample's genotype is neither hom-ref nor missing, which is that sample's own variants out of a cohort. Named as the file's header names it.
_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.
info_keyNokeep only records carrying this INFO key; with `info_value`, only those where it equals that value.
min_qualNokeep only records whose QUAL is at least this. A record stating no QUAL (`.`) is DROPPED unless `include_missing_qual` is on, because a missing score is not a passing one.
pass_onlyNokeep only records whose FILTER is PASS or unset (`.`): the usual first question of a call set, and the one filter that changes what most downstream steps should see.
info_valueNowith `info_key`, the value that key must equal.
include_missing_qualNokeep records that state no QUAL when `min_qual` is set. Off by default: a caller asking for a quality floor is asking about scores, and a record with none has not met it.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
readYeshow many records were read before filtering. For a locus read this is the records in that window, NOT the file (`scope` says which)
scopeYeswhether the numbers describe the whole file or one region, and (when the file was too large to read whole) that its header alone was opened. A count read from a window must never be readable as the file's
matchedYeshow many records matched: the full count, not the number of rows returned
samplesYesthe call set's sample names in header order, empty for a sites-only VCF, which is a fact about the file rather than a failure
summaryYeswhat was read and what matched, in one sentence generated from this run
variantsYesthe matching records, up to `limit`: chrom, pos (1-based), ids, ref, alts, qual, filters, end and the record's own htslib class label. Genotypes are not included: `sample` filters on them and `variant_call_summary` counts them, and a cohort record would otherwise carry thousands of columns per row
filters_appliedYesevery filter this run actually applied, with its value. A caller comparing two runs needs to know which asked the narrower question

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnly/safe/non-open-world, so the bar is lower. The description adds genuinely useful behavior: every answer reports what was read over and filtered on so a count is not the file total, and oversized call sets open at the header with locus as the access path. It omits any mention of limits on reading large files or performance throttling.

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?

Three sentences, front-loaded with the essential read-and-return behavior, then the count semantics and the large-file path. Dense but nearly every clause earns its place; a couple of phrases pad slightly.

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 14-parameter, nested, complex read tool with an output schema present, the description covers purpose, filtering modes, count semantics, and large-file behavior. Return-value structure is delegated to the output schema, so nothing critical is missing.

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 each parameter already carries rich prose, so the baseline is 3. The description adds meaning by tying the parameters into query dimensions and clarifying the count-vs-rows distinction, but most of the per-parameter detail (normalization, missing-QUAL handling) lives in the schema, not the description.

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 (read a variant call set - VCF, bgzipped VCF or BCF - in this project) and enumerates the query dimensions it supports. An agent can tell this apart from variant_call_summary or read_sequencing_qc without opening the schema.

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?

Enumerates the supported query modes (locus, variant class, QUAL floor, PASS-only, non-hom-ref sample, INFO key) and explains the large-file entry path via header/locus. It gives clear context for when the tool applies, but never names a sibling alternative or an explicit when-not-to-use condition.

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