Skip to main content
Glama

Variant

variant
Read-onlyIdempotent

Variant by chr-pos-ref-alt (e.g. "1-55051215-G-A") or rsid.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
datasetNoDefault gnomad_r4.
variant_idYes

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
variantNo

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. Changed2 schema fields changed
    • addedInput schema / examples
      Added value: +[
      +  {
      +    "variant_id": "1-55051215-G-A"
      +  },
      +  {
      +    "dataset": "gnomad_r4",
      +    "variant_id": "rs1801133"
      +  }
      +]
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "variant": {
      +      "properties": {
      +        "alt": {
      +          "description": "Alternate allele",
      +          "type": "string"
      +        },
      +        "chrom": {
      +          "description": "Chromosome",
      +          "type": "string"
      +        },
      +        "clinvar": {
      +          "properties": {
      +            "clinical_significance": {
      +              "description": "ClinVar clinical significance",
      +              "type": "string"
      +            },
      +            "gold_stars": {
      +              "description": "ClinVar review status stars",
      +              "type": "number"
      +            },
      +            "submissions": {
      +              "items": {
      +                "properties": {
      +                  "clinical_significance": {
      +                    "description": "Submission clinical significance",
      +                    "type": "string"
      +                  },
      +                  "review_status": {
      +                    "description": "Submission review status",
      +                    "type": "string"
      +                  }
      +                },
      +                "type": "object"
      +              },
      +              "type": "array"
      +            }
      +          },
      +          "type": "object"
      +        },
      +        "exome": {
      +          "properties": {
      +            "ac": {
      +              "description": "Allele count",
      +              "type": "number"
      +            },
      +            "af": {
      +              "description": "Allele frequency",
      +              "type": "number"
      +            },
      +            "an": {
      +              "description": "Allele number",
      +              "type": "number"
      +            },
      +            "homozygote_count": {
      +              "description": "Count of homozygotes",
      +              "type": "number"
      +            },
      +            "populations": {
      +              "items": {
      +                "properties": {
      +                  "ac": {
      +                    "description": "Population allele count",
      +                    "type": "number"
      +                  },
      +                  "af": {
      +                    "description": "Population allele frequency",
      +                    "type": "number"
      +                  },
      +                  "an": {
      +                    "description": "Population allele number",
      +                    "type": "number"
      +                  },
      +                  "id": {
      +                    "description": "Population identifier",
      +                    "type": "string"
      +                  }
      +                },
      +                "type": "object"
      +              },
      +              "type": "array"
      +            }
      +          },
      +          "type": "object"
      +        },
      +        "genome": {
      +          "properties": {
      +            "ac": {
      +              "description": "Allele count",
      +              "type": "number"
      +            },
      +            "af": {
      +              "description": "Allele frequency",
      +              "type": "number"
      +            },
      +            "an": {
      +              "description": "Allele number",
      +              "type": "number"
      +            },
      +            "homozygote_count": {
      +              "description": "Count of homozygotes",
      +              "type": "number"
      +            },
      +            "populations": {
      +              "items": {
      +                "properties": {
      +                  "ac": {
      +                    "description": "Population allele count",
      +                    "type": "number"
      +                  },
      +                  "af": {
      +                    "description": "Population allele frequency",
      +                    "type": "number"
      +                  },
      +                  "an": {
      +                    "description": "Population allele number",
      +                    "type": "number"
      +                  },
      +                  "id": {
      +                    "description": "Population identifier",
      +                    "type": "string"
      +                  }
      +                },
      +                "type": "object"
      +              },
      +              "type": "array"
      +            }
      +          },
      +          "type": "object"
      +        },
      +        "pos": {
      +          "description": "Genomic position",
      +          "type": "number"
      +        },
      +        "ref": {
      +          "description": "Reference allele",
      +          "type": "string"
      +        },
      +        "reference_genome": {
      +          "description": "Reference genome version",
      +          "type": "string"
      +        },
      +        "rsids": {
      +          "description": "rsID identifiers",
      +          "type": [
      +            "array",
      +            "null"
      +          ]
      +        },
      +        "transcript_consequences": {
      +          "items": {
      +            "properties": {
      +              "consequence_terms": {
      +                "description": "VEP consequence terms",
      +                "items": {
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              "gene_id": {
      +                "description": "Ensembl gene ID",
      +                "type": "string"
      +              },
      +              "gene_symbol": {
      +                "description": "Gene symbol",
      +                "type": "string"
      +              },
      +              "hgvsc": {
      +                "description": "HGVS cDNA notation",
      +                "type": "string"
      +              },
      +              "hgvsp": {
      +                "description": "HGVS protein notation",
      +                "type": "string"
      +              },
      +              "is_canonical": {
      +                "description": "Whether transcript is canonical",
      +                "type": "boolean"
      +              },
      +              "transcript_id": {
      +                "description": "Ensembl transcript ID",
      +                "type": "string"
      +              }
      +            },
      +            "type": "object"
      +          },
      +          "type": "array"
      +        },
      +        "variant_id": {
      +          "description": "Variant identifier (chr-pos-ref-alt format)",
      +          "type": "string"
      +        }
      +      },
      +      "type": "object"
      +    }
      +  },
      +  "type": "object"
      +}
  2. First observed

TDQS

C2.6/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true, and destructiveHint=false, covering the safety profile. However, the description adds no behavioral context beyond the identifier formats, such as what data is returned, whether it queries external databases, or how it handles invalid IDs. With annotations present, the description needn't restate safety, but it also provides no additional transparency value, resulting in a low score.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely short—a single fragment—which is concise, but it sacrifices structure. It lacks a proper sentence with a verb, making it feel truncated rather than efficiently written. Every word earns its place, but the under-specification reduces the quality of the structure, similar to the 'Process' example though less extreme.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has only 2 parameters, an output schema, and strong annotations, so the description has less work to do. It adequately communicates the primary input format, which is the core usage. However, it omits context about when to prefer this tool over sibling tools, dataset behavior, and what the output represents (though output schema covers return values). It is minimally viable but has clear gaps in context.

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?

The schema covers 50% of parameters (only 'dataset' has a description). The description adds meaning to 'variant_id' by providing concrete examples of accepted formats (chr-pos-ref-alt and rsid), which is useful and compensates partially for the schema gap. However, it does not explain possible 'dataset' values beyond showing 'gnomad_r4' in an example. The parameter semantics are improved but not fully clarified.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Variant by chr-pos-ref-alt (e.g. "1-55051215-G-A") or rsid.' clearly indicates the resource (genetic variant) and provides example identifiers, but it lacks an explicit action verb like 'lookup' or 'retrieve'. This makes the purpose somewhat implied rather than directly stated. It does distinguish the tool from sibling tools by focusing on variant identifiers, but the missing verb lowers clarity.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like 'gene' or 'region'. There is no mention of preferred contexts, exclusions, or alternative tools. The only hint is the input format examples, which are more about parameter semantics than usage context. This fails to help an agent decide when to select this tool.

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.

TDQS

B3.4/5.0
Disambiguation2/5

The set mixes several overlapping query surfaces: ask_pipeworx and ask_pipeworx_beta are currently identical, ask_pipeworx_grounded/deep_research/discover_tools/suggest_questions all serve related retrieval/discovery purposes, and the five polymarket_* tools have similar opportunity-finding goals. Only the unusually detailed descriptions save some tools from misselection; an agent would struggle to quickly pick the right one.

Naming Consistency4/5

Names are uniformly snake_case and mostly follow a verb_noun or prefixed_noun pattern (ask_pipeworx, validate_claim, polymarket_edges, scan_dependency). Minor inconsistencies exist — bare nouns like gene/variant/search sit alongside compound names like generate_llms_txt, and the pipeworx_ prefix isn't applied to ask_pipeworx/deep_research — but the overall style is recognizable and predictable.

Tool Count2/5

36 tools is too many for a coherent server, especially since the domains are largely unrelated: 5 gnomAD genomics tools, 20+ Pipeworx/Polymarket data tools, memory CRUD, subscription management, and a couple of web-dev utilities. The count doesn't align with a single obvious scope and would overwhelm an agent selecting among them.

Completeness3/5

Within the major subdomains coverage is strong: memory has remember/recall/forget, subscriptions have full lifecycle tools, and Polymarket has edge detection plus fill-risk checking. However, there are notable gaps — no tool to fetch a pipeworx:// citation URI despite deep_research promising resolvable citations, and the gnomAD surface lacks batch queries, coverage, or constraint data for a server named Gnomad.