# ensembl-mcp-server [Health: Active]

**Category:** 🧬 Biology & Bioinformatics  
**Repository:** https://github.com/cyanheads/ensembl-mcp-server  
**GitHub Stars:** 3  
**npm Downloads (last month):** 1425  
**Views:** 4  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/ensembl-mcp-server

## Description
Look up genes, fetch sequences, predict variant consequences, find orthologs and xrefs via Ensembl.

## Tools
Capabilities this server exposes over MCP:

- **ensembl_list_species** — List species supported by Ensembl with display name, common name, assembly, taxon ID, and division
- **ensembl_lookup_gene** — Resolve a gene by symbol (synonyms and former symbols included) + species or by stable ID to its Ensembl ID, genomic location, biotype, and transcript list
- **ensembl_get_sequence** — Fetch the DNA, cDNA, CDS, or protein sequence for a gene, transcript, protein, or genomic region
- **ensembl_query_region** — Find genomic features (genes, transcripts, variants, regulatory elements, exons) overlapping a chromosomal region
- **ensembl_predict_variant** — Predict functional consequences of a sequence variant using the Ensembl Variant Effect Predictor (VEP)
- **ensembl_get_homology** — Find orthologs and/or paralogs of a gene across species with percent identity and taxonomy level
- **ensembl_get_xrefs** — Retrieve cross-database references for a gene — HGNC, UniProt, EntrezGene, OMIM, RefSeq, Reactome, and others

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `npx` (confidence: high):

```json
"mcpServers": {
  "ensembl-mcp-server": {
    "command": "npx",
    "args": ["-y","@cyanheads/ensembl-mcp-server"]
  }
}
```

## Documentation

## What ensembl-mcp-server does

Ensembl data becomes available to MCP clients through tools for gene identification, sequence retrieval, genomic-region analysis, variant interpretation, comparative genomics, and cross-database linking. The server supports Ensembl species across divisions including vertebrates, plants, fungi, metazoa, and protists, depending on the endpoint and request.

In addition to tools, it exposes resources for stable-ID gene and transcript records and for supported species. The `ensembl_gene_dossier` prompt outlines a workflow that starts with a gene symbol, resolves its identifier and location, and then gathers sequence, variant, orthology, and cross-reference information.

## How it works

Requests are sent through MCP and translated into calls to the Ensembl REST API. Clients can run the server over STDIO or Streamable HTTP. A hosted endpoint is available at `https://ensembl.caseyjhand.com/mcp`.

Stable Ensembl identifiers are normalized before requests: a trailing version such as `.19` is removed from `ENS...` identifiers, and responses use the current identifier version. HGVS versions supplied to variant prediction remain intact. IDs from other databases are passed through unchanged.

Gene lookups accept a symbol and species, a stable ID, or batch-style symbol and ID inputs. Symbol resolution includes synonyms and former names, while ambiguous matches are returned with candidates for follow-up. Sequence and region operations support species-qualified coordinates, and sequence results can be read in windows when the requested data is long.

## Setup and configuration

The package can be launched with `npx`:

```bash
npx -y @cyanheads/ensembl-mcp-server
```

The repository also publishes a Docker image and provides installation links for Claude Desktop, Cursor, and VS Code. Clients can use the public Streamable HTTP endpoint instead of launching a local process. The available connection styles make the server suitable for local MCP configurations as well as hosted access.

## Tools and capabilities

- `ensembl_list_species` searches or pages through supported species and returns names, assemblies, taxon IDs, and divisions.
- `ensembl_lookup_gene` resolves symbols, aliases, stable IDs, and batches, with optional transcript expansion and canonical-transcript information.
- `ensembl_get_sequence` retrieves genomic, cDNA, CDS, or protein sequence by identifier or region, with strand and flanking-sequence options.
- `ensembl_query_region` finds genes, transcripts, variants, regulatory features, or exons within a coordinate range, with optional biotype filtering.
- `ensembl_predict_variant` sends HGVS, coordinate-and-allele, or dbSNP inputs to Ensembl Variant Effect Predictor.
- `ensembl_get_homology` finds orthologs and paralogs, including identity percentages and taxonomy levels.
- `ensembl_get_xrefs` returns links to resources such as HGNC, UniProt, EntrezGene, OMIM, RefSeq, and Reactome.

## Limitations and notes

Sequence requests are limited to 10 million bases per region, and region feature queries to 5 million bases. Long sequence responses are paged through offsets and maximum lengths. Region queries default to genes and cap returned results unless an uncapped request is made.

The default species endpoint is Ensembl Vertebrates, while other divisions can be selected for species listing. Coordinate naming for mitochondrial sequences differs among organisms. Protein and CDS requests also depend on the selected identifier having a compatible coding record. A non-coding transcript cannot supply protein or CDS output.

Batch gene lookup processes only the first 20 distinct trimmed queries and accepts up to 1,000 submitted items; remaining items must be sent separately. Ensembl stable-ID requests use identifiers without version suffixes, except for versioned HGVS variant input.

_Full upstream README: https://allmcps.com/mcp/ensembl-mcp-server/readme_

