Skip to main content
Glama

Gene

gene
Read-onlyIdempotent

Gene info + its variants. Accepts gene symbol (e.g. "BRCA1") or Ensembl gene id. Variants are paged (default 500, max 2,000 per call); variants_page gives the exact total and next_offset.

Input Schema

NameRequiredDescriptionDefault
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.
offsetNoSkip this many variants first, for the next page (variants_page.next_offset). Default 0.
datasetNo
gene_symbol_or_idYes

Output Schema

NameRequiredDescriptionDefault
geneNo
truncatedNoTrue when this response holds fewer variants than gnomAD has (see variants_page)
gene_searchNoGene search results
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. Changed3 schema fields changed
    • changedOutput schema / properties / gene / properties / variants / items / properties / exome / type
      Previous value: -"object"New value: +[
      +  "object",
      +  "null"
      +]
    • changedOutput schema / properties / gene / properties / variants / items / properties / genome / type
      Previous value: -"object"New value: +[
      +  "object",
      +  "null"
      +]
    • changedOutput schema / properties / gene / properties / variants / items / properties / hgvsp / type
      Previous value: -"string"New value: +[
      +  "string",
      +  "null"
      +]
  3. Changed2 schema fields changed
    • addedInput schema / examples
      Added value: +[
      +  {
      +    "gene_symbol_or_id": "BRCA1"
      +  },
      +  {
      +    "dataset": "gnomad_r4",
      +    "gene_symbol_or_id": "ENSG00000139618"
      +  }
      +]
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "gene": {
      +      "properties": {
      +        "chrom": {
      +          "description": "Chromosome",
      +          "type": "string"
      +        },
      +        "gene_id": {
      +          "description": "Ensembl gene ID",
      +          "type": "string"
      +        },
      +        "name": {
      +          "description": "Full gene name",
      +          "type": "string"
      +        },
      +        "start": {
      +          "description": "Gene start position",
      +          "type": "number"
      +        },
      +        "stop": {
      +          "description": "Gene stop position",
      +          "type": "number"
      +        },
      +        "strand": {
      +          "description": "Strand orientation",
      +          "type": "string"
      +        },
      +        "symbol": {
      +          "description": "Gene symbol",
      +          "type": "string"
      +        },
      +        "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"
      +              },
      +              "hgvsc": {
      +                "description": "HGVS cDNA notation",
      +                "type": "string"
      +              },
      +              "hgvsp": {
      +                "description": "HGVS protein notation",
      +                "type": "string"
      +              },
      +              "rsids": {
      +                "description": "rsID identifiers",
      +                "type": [
      +                  "array",
      +                  "null"
      +                ]
      +              },
      +              "variant_id": {
      +                "description": "Variant identifier",
      +                "type": "string"
      +              }
      +            },
      +            "type": "object"
      +          },
      +          "type": "array"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "gene_search": {
      +      "description": "Gene search results",
      +      "items": {
      +        "properties": {
      +          "ensembl_id": {
      +            "description": "Ensembl gene ID",
      +            "type": "string"
      +          },
      +          "symbol": {
      +            "description": "Gene symbol",
      +            "type": "string"
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "type": "array"
      +    }
      +  },
      +  "type": "object"
      +}
  4. First observed

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive, so the description doesn't need to restate safety. It adds genuinely new behavior: variants are paged with a default of 500 and a hard cap of 2,000 per call, and it points to an exact total plus next_offset for continuation — the paging constraint is the key thing an agent would otherwise get wrong.

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?

Two tight sentences: what it returns first, accepted input second, paging limits last. No filler, no repetition of the title, and the most decision-relevant facts lead.

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?

An output schema exists, so return-value explanation is unnecessary, and the description covers input format and paging adequately for a 4-parameter read tool. It falls short of 5 only because the `dataset` parameter (which appears in a schema example as gnomad_r4) is left entirely unexplained.

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 50%, and the description compensates by explaining the identifier formats for gene_symbol_or_id and the paging contract (default, maximum, and how offset derives from next_offset). The `dataset` parameter remains undescribed in both the schema and the description, which is the remaining gap.

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?

States a specific verb+resource: retrieve gene info plus its variants, and names the accepted identifier forms (symbol or Ensembl id). An agent can tell it apart from generic search tools, though it never contrasts itself with the sibling `variant` tool, which is the most likely confusion.

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?

Usage context is implied by the identifier guidance ("Accepts gene symbol (e.g. \"BRCA1\") or Ensembl gene id"). There is no explicit when-to-use-this-vs-`variant` statement and no prerequisites or exclusions, so an agent must infer selection.

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.