- Explore MCP Servers
- ensembl-mcp-server
Ensembl Mcp Server
What is Ensembl Mcp Server
The ensembl-mcp-server is a full-featured Model Context Protocol (MCP) server that provides access to Ensembl’s REST API, built using the TypeScript MCP SDK.
Use cases
Use cases include fetching gene information by ID or symbol, searching genes across species, retrieving DNA sequences, exploring variant data, inspecting transcript information, and accessing multi-species data.
How to use
To use the ensembl-mcp-server, you can install it via Smithery using the command line, specifying your preferred client and secret key.
Key features
Key features include comprehensive coverage of Ensembl’s API through 10 functional tools, production-ready TypeScript implementation, robust error handling, and a user-friendly organization of biological tasks.
Where to use
The ensembl-mcp-server is used in fields such as genomics, bioinformatics, and biological research, where access to genomic data and analysis tools is essential.
Clients Supporting MCP
The following are the main client software that supports the Model Context Protocol. Click the link to visit the official website for more information.
Overview
What is Ensembl Mcp Server
The ensembl-mcp-server is a full-featured Model Context Protocol (MCP) server that provides access to Ensembl’s REST API, built using the TypeScript MCP SDK.
Use cases
Use cases include fetching gene information by ID or symbol, searching genes across species, retrieving DNA sequences, exploring variant data, inspecting transcript information, and accessing multi-species data.
How to use
To use the ensembl-mcp-server, you can install it via Smithery using the command line, specifying your preferred client and secret key.
Key features
Key features include comprehensive coverage of Ensembl’s API through 10 functional tools, production-ready TypeScript implementation, robust error handling, and a user-friendly organization of biological tasks.
Where to use
The ensembl-mcp-server is used in fields such as genomics, bioinformatics, and biological research, where access to genomic data and analysis tools is essential.
Clients Supporting MCP
The following are the main client software that supports the Model Context Protocol. Click the link to visit the official website for more information.
Content
🧬 Ensembl API MCP Server
A full-featured Model Context Protocol (MCP) server that exposes Ensembl’s REST API. Built using the TypeScript MCP SDK
- Comprehensive coverage – 10 tools map to functional areas instead of 100 + individual endpoints, yet still expose nearly the whole API.
- Production-ready – TypeScript throughout, robust error handling, and a tidy API-client layer.
- Biologist-friendly – grouped by biological task (genes, variants, compara…), not by low-level REST paths.
Listed on:
Use cases:
- 🧬 Gene information – fetch details by ID or symbol
- 🔍 Gene search – scan genes across any species
- 🧬 Sequence retrieval – pull DNA for any genomic region
- 🔬 Variant data – explore variants and their annotations
- 📊 Transcript info – inspect transcripts and isoforms
- 🌍 Multi-species – every species in Ensembl, right here
- 🔗 Cross-references – hop to external databases in one call
- ⚡ Rate-limited – built-in throttling keeps you within Ensembl limits
Installation
Choose your preferred installation method:
Option 1: Via Smithery
- Visit Smithery - Ensembl MCP Server. The most common platform options include:
# claude code:
npx -y @smithery/cli@latest install @effieklimi/ensembl-mcp-server --client claude --key your-smithery-secret-key
# cursor:
npx -y @smithery/cli@latest install @effieklimi/ensembl-mcp-server --client cursor --key your-smithery-secret-key
# vscode:
npx -y @smithery/cli@latest install @effieklimi/ensembl-mcp-server --client vscode --key your-smithery-secret-key
# windsurf:
npx -y @smithery/cli@latest install @effieklimi/ensembl-mcp-server --client windsurf --key your-smithery-secret-key
Check the MCP’s smithery link for additional platform options.
Option 2: Local Development Setup
For development or custom setups:
-
Clone and install dependencies:
git clone https://github.com/effieklimi/ensembl-mcp-server.git cd ensembl-mcp-server npm install -
Configure Claude Desktop manually:
Edit your config file:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%/Claude/claude_desktop_config.json
Add this server configuration:
{ "mcpServers": { "ensembl": { "command": "npm", "args": [ "run", "start" ], "cwd": "/absolute/path/to/ensembl-mcp-server" } } } - macOS:
-
Restart Claude Desktop - The Ensembl tools will appear in your available tools
Development Setup
# Development with hot reload
npm run dev
# Run tests
npm test
# Production build (optional)
npm run build
npm run start:prod
Contributing
We’d love your help! Here’s how to get started:
Quick Contact
- Email the dev: [email protected]
Development Workflow
- Fork the repository
- Clone your fork:
git clone https://github.com/YOUR_USERNAME/ensembl-mcp-server.git cd ensembl-mcp-server - Install dependencies:
npm install - Run tests to make sure everything works:
npm test - Start development server:
npm run dev - Make your changes and test thoroughly
- Submit a pull request
Available Scripts
npm run dev- Development with hot reloadnpm run start- Run the servernpm test- Run all testsnpm run build- Compile TypeScript (optional)npm run start:prod- Run compiled version
The ten tools (with endpoints)
1 · ensembl_feature_overlap
Find genes, transcripts, or regulatory elements that overlap a region or another feature.
GET /overlap/region/:species/:region GET /overlap/id/:id
Typical asks: “Which genes sit in chr17:43-44 Mb?” – “What overlaps BRCA1?”
2 · ensembl_regulatory
Regulatory features, binding matrices and related annotations.
GET /overlap/region/:species/:region (with regulatory filters) GET /overlap/translation/:id (regulatory features on proteins) GET /species/:species/binding_matrix/:binding_matrix_stable_id
Use cases: TF-binding sites, regulatory annotation.
3 · ensembl_protein_features
Protein-level domains and functional sites.
GET /overlap/translation/:id
Use cases: protein domains, signal peptides, catalytic residues.
4 · ensembl_meta
Server metadata, species lists, release info, and diagnostics.
GET /info/ping GET /info/rest GET /info/software GET /info/data GET /info/species GET /info/divisions GET /info/assembly/:species GET /info/biotypes/:species GET /info/analysis/:species GET /info/external_dbs/:species GET /info/variation/:species GET /archive/id/:id POST /archive/id
Typical asks: “Which assemblies do you have for human?” – server health checks.
5 · ensembl_lookup
Translate IDs ↔ symbols, pull xrefs, recode variants.
GET /lookup/id/:id GET /lookup/symbol/:species/:symbol POST /lookup/id POST /lookup/symbol GET /xrefs/id/:id GET /xrefs/symbol/:species/:symbol GET /xrefs/name/:species/:name GET /variant_recoder/:species/:id POST /variant_recoder/:species
Use cases: “What is BRCA1’s Ensembl ID?” – cross-reference UniProt.
6 · ensembl_sequence
Retrieve DNA, RNA or protein sequences.
GET /sequence/id/:id GET /sequence/region/:species/:region POST /sequence/id POST /sequence/region
Use cases: gene FASTA, transcript cDNA, genomic regions.
7 · ensembl_mapping
Coordinate conversion (genome ↔ cDNA/CDS/protein) and assembly lift-over.
GET /map/cdna/:id/:region GET /map/cds/:id/:region GET /map/translation/:id/:region GET /map/:species/:asm_one/:region/:asm_two
Use cases: map CDS to GRCh38, convert protein to genome coords.
8 · ensembl_compara
Comparative genomics—homology, gene trees, alignments.
GET /homology/id/:species/:id GET /homology/symbol/:species/:symbol GET /genetree/id/:id GET /genetree/member/symbol/:species/:symbol GET /genetree/member/id/:species/:id GET /cafe/genetree/id/:id GET /cafe/genetree/member/symbol/:species/:symbol GET /cafe/genetree/member/id/:species/:id GET /alignment/region/:species/:region
Use cases: find orthologs, build phylogenies, pull species alignments.
9 · ensembl_variation
Variant lookup, VEP consequences, LD, phenotype mapping.
GET /variation/:species/:id GET /variation/:species/pmcid/:pmcid GET /variation/:species/pmid/:pmid POST /variation/:species GET /vep/:species/hgvs/:hgvs_notation POST /vep/:species/hgvs GET /vep/:species/id/:id POST /vep/:species/id GET /vep/:species/region/:region/:allele POST /vep/:species/region GET /ld/:species/:id/:population_name GET /phenotype/variant/:species/:id GET /phenotype/region/:species/:region GET /transcript_haplotypes/:species/:id
Use cases: VEP predictions, LD blocks, phenotype associations.
10 · ensembl_ontotax
Ontology term search and NCBI taxonomy traversal.
GET /ontology/id/:id GET /ontology/name/:name GET /taxonomy/id/:id GET /taxonomy/name/:name
Use cases: GO term look-up, phenotype ontology, taxonomic classification.
Installing via Smithery
To install ensembl-mcp-server for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @effieklimi/ensembl-mcp-server --client claude
Dev Tools Supporting MCP
The following are the main code editors that support the Model Context Protocol. Click the link to visit the official website for more information.










