Reported issues for gnomad-genetics-mcp-server
Pod holds 16 of 17 GitHub reports that passed its relevance review. This can include external user reports, maintainer-confirmed bugs, and concrete feature gaps. Treat them as evidence to inspect, not a count of distinct defects.
Back to gnomad-genetics-mcp-server.
Most discussed
bug(gnomad_get_variant): absent coordinate IDs fail as graphql_error instead of not-found
Server version
0.2.1
mcp-ts-core version
0.12.3
Runtime
Bun
Runtime version
Bun 1.4.0 / Node v26.5.0
Transport
HTTP (Streamable HTTP)
Description
An absent coordinate variant surfaces as a generic GraphQL failure instead of as absence. For a missing variant, gnomAD returns HTTP 200 with one pathless error, {"message":"Variant not found"}, and data: {"variant": null, "clinvar_variant": null} on all four datasets. gnomAD strips path from every error it…
Read the thread · 2026-08-31 · closed · 4 comments
bug(gnomad_get_variant): failed[] items drop the failure's reason and recovery hint
Server version
0.3.0
mcp-ts-core version
0.13.6
Runtime
Bun
Runtime version
Bun 1.4.0
Transport
stdio
Description
gnomad_get_variant catches each item's service error and records only err.message in failed[].error. The error's data.reason and recovery hint are dropped, so a caller reading failed[] cannot branch on why an item failed or learn its next step. An item that exhausts retries reads gnomAD is unavailable or rate-limited. with no guidance,…
Read the thread · 2026-09-30 · closed · 1 comment
bug(chromosome-m): mitochondrial IDs, regions, and genes return false absence
Server version
0.3.0
mcp-ts-core version
0.13.6
Runtime
Bun
Runtime version
Bun 1.4.0
Transport
stdio
Description
gnomAD serves mitochondrial variants through separate fields (mitochondrial_variant, gene.mitochondrial_variants, mitochondrial_coverage). The server accepts chromosome M in coordinate variant IDs and regions and resolves mitochondrial genes, but it queries only the nuclear fields, which answer with nothing. Callers get absence for variants…
Read the thread · 2026-09-30 · closed · 1 comment
bug(gnomad_search_clinvar): query syntax in gene escapes the [gene] field
Server version
0.2.2
mcp-ts-core version
0.13.6
Runtime
Bun
Runtime version
Bun 1.4.0
Transport
stdio
Description
gnomad_search_clinvar splices gene into the ESearch term as ${gene}[gene] with no character check. A value carrying E-utilities query syntax (parentheses, brackets, quotes, a trailing OR/AND/NOT) detaches the [gene] tag, NCBI rewrites the term to [All Fields], and the tool returns other genes' records labeled as the requested gene.…
Read the thread · 2026-09-24 · closed · 1 comment
bug(upstream-errors): gnomAD's caller-correctable 500 messages retry as upstream_unavailable
Server version
0.2.2
mcp-ts-core version
0.13.6
Runtime
Bun
Runtime version
Bun 1.4.0
Transport
stdio
Description
gnomAD answers some caller-correctable requests with HTTP 500 and a user-facing GraphQL message. The server classifies every 5xx as upstream_unavailable, retries it four times, and drops the message. A region under the 2.5 Mb span limit that holds more than gnomAD's per-region ceiling of 30,000 variants is the case no local pre-check can predict…
Read the thread · 2026-09-24 · closed · 1 comment
bug(error-contracts): sanitizer reasons reach callers undeclared
Server version
0.2.2
mcp-ts-core version
0.13.6
Runtime
Bun
Runtime version
Bun 1.4.0
Transport
stdio
Description
The gnomAD and ClinVar services put a typed data.reason on every failure, but the tools' and resources' errors[] contracts declare few of them. Callers receive reasons no definition advertises, and every undeclared reason except the two the sanitizer hard-codes reaches the wire with no recovery hint. Undeclared today:
| Surface | Reachable,…
Read the thread · 2026-09-24 · closed · 1 comment
bug(canvas): staging tools return ~120 KB per call — preview budget lands on both surfaces
Server version
0.2.2
mcp-ts-core version
0.13.6
Runtime
Bun
Runtime version
Bun 1.4.0
Transport
stdio
Description
With DataCanvas enabled, gnomad_search_clinvar and gnomad_list_gene_variants call spillover() with previewChars: 60_000, and the preview rows land on both surfaces — structuredContent.preview and the format() text. One call therefore returns roughly twice the preview budget, ~30k tokens, before the caller has asked for anything beyond…
Read the thread · 2026-09-24 · closed · 1 comment
bug(gnomad_get_variant): gnomad_r3 SpliceAI values become NaN and fail every batch containing one
Server version
0.2.2
mcp-ts-core version
0.13.6
Runtime
Bun
Runtime version
Bun 1.4.0
Transport
stdio
Description
On gnomad_r3, gnomAD returns splice_ai as a score followed by the SpliceAI event in parentheses, e.g. "0.00 (no_consequence)". GnomadService maps every predictor with Number(p.value), so these values become NaN. gnomad_get_variant output validation then rejects the whole response, losing every variant in the batch, including those…
Read the thread · 2026-09-24 · closed · 1 comment
Most recent
bug(gnomad_get_coverage): positions counts gnomAD's coverage buckets, not bases
Server version
0.3.0
mcp-ts-core version
0.13.6
Runtime
Bun
Runtime version
Bun 1.4.0
Transport
stdio
Description
gnomAD returns region, gene, and transcript coverage in buckets of max(floor(span / 500), 1) bp (graphql-api/src/queries/coverage-queries.ts in broadinstitute/gnomad-browser). getCoverage() reports positions: bins.length, which the output schema describes as "Number of base positions summarized across the target", so any target longer…
Read the thread · 2026-09-30 · open · 0 comments
bug(canvas): fit-inline calls mint empty canvases and leave reused tables stale
Server version
0.2.2
mcp-ts-core version
0.13.6
Runtime
Bun
Runtime version
Bun 1.4.0
Transport
HTTP (Streamable HTTP)
Description
gnomad_list_gene_variants and gnomad_search_clinvar call canvas.acquire(input.canvas_id, ctx) before spillover() decides whether to stage anything. Two defects follow:
- A call whose result fits inline, with no
canvas_idsupplied, still mints a new canvas that holds no table. Minted canvases count against…
Read the thread · 2026-09-24 · closed · 1 comment
bug(gnomad_search_clinvar): format() claims the canvas is disabled when it is enabled
Server version
0.2.2
mcp-ts-core version
0.13.6
Runtime
Bun
Runtime version
Bun 1.4.0
Transport
HTTP (Streamable HTTP)
Description
With CANVAS_PROVIDER_TYPE=duckdb set, gnomad_search_clinvar given an Ensembl gene ID renders **Canvas disabled** — inline preview only., which tells the model the SQL path is unavailable when it is available. The Ensembl-ID short-circuit returns canvas_id: '' without calling canvas.acquire(), and format() treats any…
Read the thread · 2026-09-20 · closed · 1 comment
bug(gnomad_dataframe_query): bound results without cross-surface data loss
Server version
0.2.1
mcp-ts-core version
0.12.3
Runtime
Bun
Runtime version
Bun 1.4.0 / Node v26.5.0
Transport
HTTP (Streamable HTTP)
Description
Related: #21, #37
gnomad_dataframe_query puts every row the SQL produces into structuredContent.rows, up to the canvas row cap (CANVAS_DEFAULT_ROW_LIMIT, 10,000 by default), while format() renders the first 50 and then … and N more row(s). content[] readers cannot reach the rest, one call can return…
Read the thread · 2026-08-31 · closed · 1 comment
bug(region): unsupported chromosomes and out-of-range regions retry as upstream_unavailable
Server version
0.2.1
mcp-ts-core version
0.12.3
Runtime
Bun
Runtime version
Bun 1.4.0 / Node v26.5.0
Transport
HTTP (Streamable HTTP)
Description
Related: #1, #39
gnomAD rejects a region deterministically, with HTTP 500 and a GraphQL error message, on every dataset when it breaks any of these rules:
- the chromosome is outside
1–22,X,Y,M(exact case, nochrprefix, noMT, no zero-padding); - start is less than 1, or stop is 1,000,000,000 or…
Read the thread · 2026-08-31 · closed · 1 comment
bug(gnomad_get_gene_constraint): exac serves v2.1.1 metrics and no output names the constraint release
Server version
0.2.1
mcp-ts-core version
0.12.3
Runtime
Bun
Runtime version
Bun 1.4.0 / Node v26.5.0
Transport
stdio
Description
gnomad_get_gene_constraint sends gnomAD only the reference genome and echoes the requested dataset as provenance. gene.gnomad_constraint takes no arguments, so the build picks the table (gnomAD v4.1.2 on GRCh38, v2.1.1 on GRCh37). ExAC constraint lives in gene.exac_constraint (GRCh37), which the server never requests. So…
Read the thread · 2026-08-31 · closed · 1 comment
bug(docker): multi-arch image ships the builder's @duckdb binding, not the target platform's
Related: #7
Dockerfile:80 copies node_modules/@duckdb out of the build stage:
COPY --from=build /usr/src/app/node_modules/@duckdb ./node_modules/@duckdb
Since Dockerfile:7 pins the build stage to --platform=$BUILDPLATFORM, that stage resolves dependencies for the builder's platform, not the target's. @duckdb/node-bindings declares one optionalDependency per platform and installs exactly one of them:
$ ls node_modules/@duckdb # on an arm64 macOS…
[Read the thread](https://github.com/cyanheads/gnomad-genetics-mcp-server/issues/24) · 2026-08-25 · closed · 1 comment
### feat(config): default MCP_SESSION_MODE to stateless across env, Docker, and src
`Dockerfile` sets `ENV MCP_SESSION_MODE="stateless"`, but `.env.example` carries a commented `# MCP_SESSION_MODE=stateful`, whose comment documents the value set as `stateful | stateless (default: stateful)`. The container and the same code run via `bunx`, `npm start`, or from source therefore resolve to different session modes — stateless in Docker, stateful everywhere else, since the framework schema defaults to `auto` and `auto` resolves to `stateful`.
The hosted deployment runs stateless…
[Read the thread](https://github.com/cyanheads/gnomad-genetics-mcp-server/issues/23) · 2026-08-22 · closed · 1 comment
The remaining reports are on [the project's issue tracker](https://github.com/cyanheads/gnomad-genetics-mcp-server/issues).