Pod

Available as Markdown and JSON. Pod is also available over MCP.

Reported issues for ensembl-mcp-server

Pod holds 13 of 13 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 ensembl-mcp-server.

Most discussed

feat(species): cap ensembl_list_species and the species resources by default

Use case

ensembl_list_species is the discovery step most workflows start from, but neither it nor the ensembl://species / ensembl://species/{division} resources can bound their output: every unfiltered call returns the whole division. nameContains narrows only as well as the substring discriminates — { "division": "EnsemblFungi", "nameContains": "saccharomyces" } still returns 132 species.

Measured 2026-09-23 against the default rest.ensembl.org endpoint, on the response a…

Read the thread · 2026-06-18 · open · 5 comments

feat(ensembl_query_region): cap high-cardinality overlap output like predict_variant/get_homology

Use case

ensembl_query_region can return very large overlap sets — a wide region with feature: ["variation"] can yield tens of thousands of entries (its own description warns a large region can return 44,000+). It emits a >1000-result warning notice but does not cap the result, so the full set still lands in both content[] and structuredContent — the same all-or-nothing cost #15 already fixed for ensembl_predict_variant and ensembl_get_homology. Measured against the live API:…

Read the thread · 2026-07-10 · closed · 3 comments

bug(ensembl_get_sequence): region-mode rejections lack an invalid_region reason

Server version

0.4.4

mcp-ts-core version

0.13.6

Runtime

Bun

Runtime version

1.4.0

Transport

HTTP (Streamable HTTP)

Description

In region mode, ensembl_get_sequence returns a reasonless -32001 for region rejections that should be an input error. The region .catch recognizes only not found|invalid|no stable id, so these /sequence/region HTTP 400 messages fall through:

id (with species: homo_sapiens) Ensembl message
…

Read the thread · 2026-09-24 · closed · 1 comment

bug(ensembl_query_region): out-of-bounds, reversed, and undecodable regions lack invalid_region

Server version

0.4.4

mcp-ts-core version

0.13.6

Runtime

Bun

Runtime version

1.4.0

Transport

HTTP (Streamable HTTP)

Description

ensembl_query_region still returns a reasonless -32001 NotFound for three upstream region rejections that invalid_region should cover. Ensembl answers each with HTTP 400, and none of the messages matches the handler's invalid_region patterns:

region Ensembl message
1:250000000-250000100 `Cannot request…

Read the thread · 2026-09-24 · closed · 1 comment

bug(ensembl_get_sequence): region mode silently ignores type and always returns genomic

Related: #13

Server version

0.4.3

mcp-ts-core version

0.13.6

Runtime

Bun

Runtime version

1.4.0

Transport

HTTP (Streamable HTTP)

Description

In region mode, ensembl_get_sequence never forwards input.type to the service. getSequenceByRegion() takes no type argument and hardcodes normalizeSequence(raw, 'genomic'), so a caller who asks for cdna, cds, or protein on a region receives genomic DNA labelled type: "genomic" — a wrong answer with no…

Read the thread · 2026-09-19 · closed · 1 comment

bug(ensembl_query_region): oversized regions return NotFound

Server version

0.4.3

mcp-ts-core version

0.12.3

Runtime

Bun

Runtime version

Bun 1.4.0 client

Transport

HTTP (Streamable HTTP)

Description

ensembl_query_region accepts a syntactically valid region larger than Ensembl's documented 5 Mb maximum, then returns NotFound without its invalid_region reason or recovery hint. The region description recommends restricting large queries to genes but never states the hard length limit.

Related: #1.

Steps to…

Read the thread · 2026-09-13 · closed · 1 comment

feat(ensembl_query_region): include assembly metadata

Use case

Genomic coordinates are assembly-specific. A region-overlap result is unsafe to carry into VEP, external annotation, or downstream interval analysis unless the response says which assembly the coordinates use.

ensembl_query_region currently returns the submitted species and region plus feature coordinates, but no assembly name. A successful BRCA2-region query therefore cannot be handed to another system without an additional out-of-band assembly lookup.

Proposed behavior…

Read the thread · 2026-08-11 · closed · 1 comment

bug(validation): reject blank required identifiers

Server version

0.4.2

mcp-ts-core version

^0.10.14

Runtime

Bun

Runtime version

1.3.14

Transport

HTTP (Streamable HTTP)

Description

Required free-form string identifiers accept blank or whitespace-only values and reach Ensembl before failing. Verified live against all five required-identifier fields — ensembl_predict_variant.variant, ensembl_get_sequence.id, ensembl_get_xrefs.id, ensembl_query_region.species/region — each makes a live upstream call on…

Read the thread · 2026-08-11 · closed · 1 comment

Most recent

bug(ensembl_get_sequence): prefixed region with a digit-bearing species routes to stable-ID mode

Server version

0.5.0

mcp-ts-core version

^0.13.6

Runtime

Bun

Runtime version

1.4.0

Transport

stdio

Description

ensembl_get_sequence detects the prefixed region form with /^[a-z_]+:[\w.]+:\d+-\d+$/i, so a species name containing digits never matches. Ensembl strain genomes carry digits in their internal names (mus_musculus_129s1svimj, from /info/genomes), and a valid prefixed region for one is sent to /sequence/id as a stable ID instead of…

Read the thread · 2026-09-24 · open · 0 comments

bug(ensembl_get_sequence): protein ID with type cdna returns protein labelled cdna

Server version

0.4.4

mcp-ts-core version

0.13.6

Runtime

Bun

Runtime version

1.4.0

Transport

HTTP (Streamable HTTP)

Description

ensembl_get_sequence labels a record with the type the caller requested rather than the molecule Ensembl returned. For a protein ID requested as cdna or genomic, Ensembl returns the protein sequence ("molecule":"protein"). The tool reports it as type: "cdna" and renders its length in bp, so the caller gets a wrong…

Read the thread · 2026-09-24 · open · 0 comments

bug(ensembl_get_sequence): unknown species, non-coding protein/cds, and malformed regions lack reasons

Server version

0.4.4

mcp-ts-core version

0.13.6

Runtime

Bun

Runtime version

1.4.0

Transport

HTTP (Streamable HTTP)

Description

ensembl_get_sequence still returns reasonless errors, or the wrong reason, for three input mistakes. Each case has an actionable recovery that the caller never sees:

Input Ensembl (HTTP 400) Tool today
{"id":"1:1-100","species":"homo_sapienz"} Can not find internal name for species 'homo_sapienz' …

Read the thread · 2026-09-24 · open · 0 comments

bug(ensembl_query_region): reject an empty feature list

Server version

0.4.2

mcp-ts-core version

^0.10.14

Runtime

Bun

Runtime version

1.3.14

Transport

HTTP (Streamable HTTP)

Description

ensembl_query_region accepts an empty feature array even though Ensembl requires at least one feature type. The request reaches the provider without a feature filter, and the resulting error is classified as not_found with data.reason absent entirely — not merely a generic reason, the field is missing from the error…

Read the thread · 2026-08-11 · closed · 1 comment

feat(ensembl_get_sequence): add bounded, retrievable sequence windows

Use case

Full sequences already exceed useful MCP response sizes for real genes, and the two client surfaces diverge: content[] always renders a fixed ~300–370 character preview regardless of sequence length, while structuredContent carries the complete sequence. Measured live against GRCh38:

Call seq length content[] chars structuredContent bytes
TP53 genomic 25,768 365 25,898
BRCA2 genomic 85,183 366 85,314
BRCA2 protein …

Read the thread · 2026-08-11 · closed · 1 comment

The remaining reports are on the project's issue tracker.