Skip to main content
Glama

Region

region
Read-onlyIdempotent

Variants in a genomic region (≤25kb recommended). You MUST say which genome build your start/stop are in via assembly — there is no default, because a position is valid in both builds and a wrong guess returns real variants from the wrong locus rather than an error. Variants are paged (default 500, max 2,000 per call); variants_page gives the exact total and next_offset.

Input Schema

NameRequiredDescriptionDefault
stopYes
chromYese.g. "1", "X", "MT"
limitNoVariants to return, 1-2000. Default 500. gnomAD returns every variant with no limit of its own (BRCA1 has ~7,300), so the list is paged here; variants_page says how many exist and the next offset.
startYes
offsetNoSkip this many variants first, for the next page (variants_page.next_offset). Default 0.
datasetNoDefault gnomad_r4 (GRCh38). gnomad_r2_1* and exac are GRCh37.
assemblyYesREQUIRED. The genome build your start/stop are in: "GRCh38" (= hg38) or "GRCh37" (= hg19). There is no default, because every position is valid in both builds — an unstated build cannot be detected, only guessed wrong. Must agree with dataset: gnomad_r2_1* and exac are GRCh37, gnomad_r3*/r4* are GRCh38.

Output Schema

NameRequiredDescriptionDefault
regionNo
truncatedNoTrue when this response holds fewer variants than gnomAD has (see variants_page)
variants_pageNoHow the variant list was paged. gnomAD returns every variant with no limit of its own, so the pack pages it; total is exact.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changed
    • addedInput schema / properties / limit
      Added value: +{
      +  "description": "Variants to return, 1-2000. Default 500. gnomAD returns every variant with no limit of its own (BRCA1 has ~7,300), so the list is paged here; variants_page says how many exist and the next offset.",
      +  "type": "number"
      +}
    • addedInput schema / properties / offset
      Added value: +{
      +  "description": "Skip this many variants first, for the next page (variants_page.next_offset). Default 0.",
      +  "type": "number"
      +}
    • addedOutput schema / properties / truncated
      Added value: +{
      +  "description": "True when this response holds fewer variants than gnomAD has (see variants_page)",
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / variants_page
      Added value: +{
      +  "description": "How the variant list was paged. gnomAD returns every variant with no limit of its own, so the pack pages it; total is exact.",
      +  "properties": {
      +    "limit": {
      +      "description": "Page size applied",
      +      "type": "number"
      +    },
      +    "next_offset": {
      +      "description": "Offset for the next page, null on the last page",
      +      "type": [
      +        "number",
      +        "null"
      +      ]
      +    },
      +    "note": {
      +      "description": "Plain-language statement of what is and is not in this page",
      +      "type": "string"
      +    },
      +    "offset": {
      +      "description": "Variants skipped before this page",
      +      "type": "number"
      +    },
      +    "returned": {
      +      "description": "Variants in this response",
      +      "type": "number"
      +    },
      +    "total": {
      +      "description": "Variants gnomAD holds for this query",
      +      "type": "number"
      +    },
      +    "upstream_bytes": {
      +      "description": "Size of the full upstream response, in bytes",
      +      "type": "number"
      +    }
      +  },
      +  "type": "object"
      +}
  2. Changed1 schema field changed
    • changedOutput schema / properties / region / properties / variants / items / properties / exome / type
      Previous value: -"object"New value: +[
      +  "object",
      +  "null"
      +]
  3. Changed4 schema fields changed
    • changedInput schema / examples
      Previous value: -[
      -  {
      -    "chrom": "1",
      -    "start": 55000000,
      -    "stop": 55025000
      -  },
      -  {
      -    "chrom": "X",
      -    "dataset": "gnomad_r4",
      -    "start": 123400000,
      -    "stop": 123420000
      -  }
      -]New value: +[
      +  {
      +    "assembly": "GRCh38",
      +    "chrom": "1",
      +    "start": 55000000,
      +    "stop": 55025000
      +  },
      +  {
      +    "assembly": "GRCh37",
      +    "chrom": "1",
      +    "dataset": "gnomad_r2_1",
      +    "start": 11856300,
      +    "stop": 11856500
      +  }
      +]
    • addedInput schema / properties / assembly
      Added value: +{
      +  "description": "REQUIRED. The genome build your start/stop are in: \"GRCh38\" (= hg38) or \"GRCh37\" (= hg19). There is no default, because every position is valid in both builds — an unstated build cannot be detected, only guessed wrong. Must agree with dataset: gnomad_r2_1* and exac are GRCh37, gnomad_r3*/r4* are GRCh38.",
      +  "type": "string"
      +}
    • addedInput schema / properties / dataset / description
      Added value: +"Default gnomad_r4 (GRCh38). gnomad_r2_1* and exac are GRCh37."
    • changedInput schema / required
      Previous value: -[
      -  "chrom",
      -  "start",
      -  "stop"
      -]New value: +[
      +  "chrom",
      +  "start",
      +  "stop",
      +  "assembly"
      +]
  4. Changed2 schema fields changed
    • addedInput schema / examples
      Added value: +[
      +  {
      +    "chrom": "1",
      +    "start": 55000000,
      +    "stop": 55025000
      +  },
      +  {
      +    "chrom": "X",
      +    "dataset": "gnomad_r4",
      +    "start": 123400000,
      +    "stop": 123420000
      +  }
      +]
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "region": {
      +      "properties": {
      +        "variants": {
      +          "items": {
      +            "properties": {
      +              "consequence": {
      +                "description": "VEP consequence",
      +                "type": "string"
      +              },
      +              "exome": {
      +                "properties": {
      +                  "ac": {
      +                    "description": "Allele count",
      +                    "type": "number"
      +                  },
      +                  "af": {
      +                    "description": "Allele frequency",
      +                    "type": "number"
      +                  },
      +                  "an": {
      +                    "description": "Allele number",
      +                    "type": "number"
      +                  }
      +                },
      +                "type": "object"
      +              },
      +              "genome": {
      +                "properties": {
      +                  "ac": {
      +                    "description": "Allele count",
      +                    "type": "number"
      +                  },
      +                  "af": {
      +                    "description": "Allele frequency",
      +                    "type": "number"
      +                  },
      +                  "an": {
      +                    "description": "Allele number",
      +                    "type": "number"
      +                  }
      +                },
      +                "type": "object"
      +              },
      +              "rsids": {
      +                "description": "rsID identifiers",
      +                "type": [
      +                  "array",
      +                  "null"
      +                ]
      +              },
      +              "variant_id": {
      +                "description": "Variant identifier",
      +                "type": "string"
      +              }
      +            },
      +            "type": "object"
      +          },
      +          "type": "array"
      +        }
      +      },
      +      "type": "object"
      +    }
      +  },
      +  "type": "object"
      +}
  5. First observed

TDQS

A4.6/5.0
Behavior5/5

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

Discloses a non-obvious and costly failure mode: a wrong assembly does not error, it silently returns real variants from the wrong locus. It also documents paging defaults (500, max 2,000) and that `variants_page` provides totals and next_offset. Annotations only cover read-only/idempotent safety, so this adds substantial value beyond them.

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-loaded with the resource and scope, then the must-do rule, then paging. Three dense sentences with no filler, though the assembly rationale is partially duplicated in the schema's own `assembly` description.

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?

Covers scope limits, the mandatory assembly/binding rule, pagination defaults, and the companion tool for total counts. With an output schema present, no return-value explanation is needed, so nothing an agent requires to call this correctly is missing.

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 71% and the schema already documents `assembly`, `limit`, `offset`, and `dataset` well; the description reinforces the no-default requirement for `assembly` with the rationale for why a guess is dangerous. It adds meaning over the schema but largely restates the assembly rule rather than introducing new per-parameter detail.

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+resource ("Variants in a genomic region") with a size constraint, which cleanly separates it from the sibling tools `variant` (single variant), `gene`, and `search`. An agent can route to it 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?

Gives an explicit operating window (≤25kb recommended) and directs the agent to `variants_page` when it needs counts or paging state. It stops short of naming alternative siblings for out-of-window or gene-level queries, so it is clear context without explicit exclusions.

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.