ensembl-mcp-server

effieklimi/ensembl-mcp-server

3.4

If you are the rightful owner of ensembl-mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.

The Ensembl API MCP Server is a comprehensive Model Context Protocol server that provides access to Ensembl's REST API, designed for biologists and developers.

🧬 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

  1. 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:

  1. Clone and install dependencies:

    git clone https://github.com/effieklimi/ensembl-mcp-server.git
    cd ensembl-mcp-server
    npm install
    
  2. 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"
        }
      }
    }
    
  3. 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:

Development Workflow

  1. Fork the repository
  2. Clone your fork:
    git clone https://github.com/YOUR_USERNAME/ensembl-mcp-server.git
    cd ensembl-mcp-server
    
  3. Install dependencies:
    npm install
    
  4. Run tests to make sure everything works:
    npm test
    
  5. Start development server:
    npm run dev
    
  6. Make your changes and test thoroughly
  7. Submit a pull request

Available Scripts

  • npm run dev - Development with hot reload
  • npm run start - Run the server
  • npm test - Run all tests
  • npm 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