← Back to search

io.github.cyanheads/gnomad-genetics-mcp-server

cyanheads Scanned 22d ago

Look up allele frequencies by ancestry, gene constraint, variants, and coverage over gnomAD.

B
89.5 / 100

Versions

0.1.2latest
first seen Jun 30, 2026
PermissionsTool SafetyAuthAnnotationsCode QualityStabilitySpecVuln HistoryAuthorTransparencyCommunity

Tools 8

gnomad_get_variant
annotations: verified low

Fetch the full gnomAD population record for one or more variants — allele count/number/frequency overall and broken down per genetic-ancestry group, homozygote and hemizygote counts, quality flags, transcript consequence, in-silico predictor scores, and joined ClinVar clinical significance. The "how common, is it benign" answer in one call. Accepts a batch of up to ${MAX_VARIANT_BATCH} IDs (chrom-pos-ref-alt or rsID) with per-item partial success: a malformed or absent ID lands in failed[] without failing the others. An empty found[] for a well-formed ID means the variant is not in the chosen dataset — pair with gnomad_get_coverage to confirm the position is callable before concluding true absence.\nData source: gnomAD (Broad Institute) — https://gnomad.broadinstitute.org/

error string found array input object output object dataset string variant string reference_genome string
readOnlyHint true openWorldHint true idempotentHint true
gnomad_list_gene_variants
annotations: verified low

List every gnomAD variant in a gene, transcript, or region with allele frequencies and predicted consequences, optionally filtered to one consequence class (lof, missense, synonymous, other) and/or a maximum allele frequency. The full result is staged on a DataCanvas table named gene_variants and an inline preview is returned alongside canvas_id and table_name — run gnomad_dataframe_query against them to rank by AF, count by consequence, or group across the complete set rather than the preview. When the canvas is disabled (CANVAS_PROVIDER_TYPE != duckdb) the tool returns a capped inline preview with spilled=false and canvas_id empty; the SQL path is then unavailable. Supply exactly one of gene, transcript_id, or region. Echoes the effective dataset and build.\nData source: gnomAD (Broad Institute) — https://gnomad.broadinstitute.org/

input object
readOnlyHint true openWorldHint true idempotentHint true
gnomad_search_clinvar
annotations: verified low

Search ClinVar (NCBI E-utilities) for a gene and return its classified variants — clinical significance, review status with a 0–4 star rating, associated conditions, molecular consequences, and submission counts — turning the variant-level significance gnomAD joins into a gene-panel curation view. Optionally filter by clinical_significance (e.g. pathogenic) and a minimum star rating. The full set is staged on a DataCanvas table named clinvar_variants with an inline preview; query it with gnomad_dataframe_query to rank or count across the complete set. Keyless, but honors NCBI_API_KEY for a higher rate limit. When the canvas is disabled the tool returns a capped inline preview with spilled=false. Credit: ClinVar, NCBI.

input object output object preview array
readOnlyHint true openWorldHint true idempotentHint true
gnomad_dataframe_drop
annotations: verified low

Drop a named table from a canvas to reclaim memory. Opt-in and off by default — a deliberate mutation on the otherwise read-only research surface. Use the canvas_id and table_name from a prior staging call. Per-table TTL already reclaims memory automatically, so this is a convenience for operators who want manual control.

input object output object
readOnlyHint false openWorldHint false idempotentHint false destructiveHint true
gnomad_get_coverage
annotations: verified low

Fetch gnomAD sequencing-coverage summary across a gene, transcript, or region — mean and median read depth, plus the mean fraction of samples covered at each depth threshold (1× through 100×), separated by exome and genome track. Use this to disambiguate a true absent variant from an uncallable position: a variant missing from a well-covered region is informative, while one missing from a poorly-covered region is not. Supply exactly one of gene, transcript_id, or region. The optional coverage_source narrows to one track; by default both available tracks are returned. Echoes the effective dataset and build.\nData source: gnomAD (Broad Institute) — https://gnomad.broadinstitute.org/

input object output object dataset string reference_genome string
readOnlyHint true openWorldHint true idempotentHint true
gnomad_dataframe_query
annotations: verified low

Run a read-only SQL SELECT against a canvas table staged by gnomad_list_gene_variants (table gene_variants) or gnomad_search_clinvar (table clinvar_variants). Use the canvas_id and table_name those tools returned to rank by allele frequency, group by consequence class, count loss-of-function variants, or filter the full set the inline preview only sampled. SELECT statements only — writes, DDL, and file/HTTP table functions are rejected by the canvas gate. Call gnomad_dataframe_describe first to discover staged table and column names.

input object output object columns array row_count number truncated boolean
readOnlyHint true openWorldHint false idempotentHint true
gnomad_get_gene_constraint
annotations: verified low

Fetch gnomAD loss-of-function constraint for a gene — pLI (probability of LoF intolerance; >0.9 intolerant), LOEUF (oe_lof_upper, the headline metric; <0.6 intolerant in v4, <0.35 in v2) plus its lower bound, observed/expected ratios for LoF, missense, and synonymous variation, and the three Z-scores. This is the orthogonal axis to allele frequency: a loss-of-function variant matters far more in a gene intolerant to being broken. Accepts an HGNC symbol (PCSK9) or an Ensembl gene ID (ENSG00000169174). Many genes have null constraint (sparse upstream) — null fields are reported as such, never fabricated. v4 constraint is flagged beta by the gnomAD team; constraint_flags surfaces any caveats. Echoes the effective dataset and reference build.\nData source: gnomAD (Broad Institute) — https://gnomad.broadinstitute.org/

input object lof_z number mis_z number output object symbol string dataset string gene_id string reference_genome string
readOnlyHint true openWorldHint true idempotentHint true
gnomad_dataframe_describe
annotations: verified low

List the tables staged on a canvas and their columns (name and type) so you can write correct SQL for gnomad_dataframe_query. Use the canvas_id returned by gnomad_list_gene_variants or gnomad_search_clinvar. Returns one entry per table with its row count and column schema.

type string input object output object row_count number
readOnlyHint true openWorldHint false idempotentHint true

Permissions 2

shell high
Server uses shell capabilities via: child_process, spawn(), spawnSync()
env_vars low
Server uses env_vars capabilities via: process.env

Scan Findings 25

info
Tool 'gnomad_get_variant' annotations are consistent annotation_checker · 80%
info
Tool 'gnomad_list_gene_variants' annotations are consistent annotation_checker · 80%
info
Tool 'gnomad_search_clinvar' annotations are consistent annotation_checker · 80%
info
Tool 'gnomad_dataframe_drop' annotations are consistent annotation_checker · 80%
info
Tool 'gnomad_get_coverage' annotations are consistent annotation_checker · 80%
info
Tool 'gnomad_dataframe_query' annotations are consistent annotation_checker · 80%
info
Tool 'gnomad_get_gene_constraint' annotations are consistent annotation_checker · 80%
info
Tool 'gnomad_dataframe_describe' annotations are consistent annotation_checker · 80%
info
Sandbox failed to start for behavioral verification behavioral_verifier · 100%
info
package.json metadata manifest_parser · 100%
info
Tool: gnomad_get_variant manifest_parser · 75%
info
Tool: gnomad_list_gene_variants manifest_parser · 75%
info
Tool: gnomad_search_clinvar manifest_parser · 75%
info
Tool: gnomad_dataframe_drop manifest_parser · 75%
info
Tool: gnomad_get_coverage manifest_parser · 75%
info
Tool: gnomad_dataframe_query manifest_parser · 75%
info
Tool: gnomad_get_gene_constraint manifest_parser · 75%
info
Tool: gnomad_dataframe_describe manifest_parser · 75%
info
Required env vars (5) manifest_parser · 80%
info
Sandbox failed to start for output poisoning scan output_poisoning · 100%
high
Permission: shell access detected permission_analyzer · 95%
low
Permission: env_vars access detected permission_analyzer · 90%
info
SBOM generated: 13 components sbom_generator · 100%
high
Hardcoded Password found in cyanheads-gnomad-genetics-mcp-server-f0abe2c/framework-skills/api-utils/references/security.md secret_scanner · 65%
medium
No build provenance detected (SLSA L0) slsa_assessor · 90%