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.