1. Conduid
  2. Developer Tools
  3. Ensembl MCP Server
MCP server · Developer Tools

Ensembl MCP Server

A full-featured Model Context Protocol (MCP) server that exposes Ensembl’s REST API. Built using the TypeScript MCP SDK

Unclaimed MIT last commit 8 months ago devtools
64Good

Scored 11 days ago · breakdown

About Ensembl MCP Server

Ensembl MCP Server is an MCP server published by effieklimi in the Developer Tools category: a full-featured Model Context Protocol (MCP) server that exposes Ensembl’s REST API. Built using the TypeScript MCP SDK.

The repository has 8 stars and 5 forks, with the last commit 8 months ago. Six months or more without a commit doesn't mean the server is broken, but check the open issues before depending on it in production.

Install

From source
git clone https://github.com/effieklimi/ensembl-mcp-server

This server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.

Ask AI

✦

Ask AI about Ensembl MCP Server

Powered by Claude · Grounded in docs

I know everything about Ensembl MCP Server. Ask me about installation, configuration, usage, or troubleshooting.

Security checks

Static checks derived from the repository 4 days ago. Heuristics on the source, not an audit.

  • ✓README presentThe repository ships documentation.
  • ✓License declaredUsable under a stated license.
  • ✓Tests presentA test suite exists in the repository.
  • ✓Dependencies pinnedA lockfile pins dependency versions.
  • ✓No dynamic code executionSource scan found no eval, dynamic Function, or shell execution.
  • !Scoped permissionsDoesn't declare a permission scope. Assume it can do anything its process can.

README

🧬 Ensembl API MCP Server

smithery badge

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

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

README fetched from the repository 4 days ago. The original is authoritative.

Questions

About Ensembl MCP Server

How do I install Ensembl MCP Server?

No package has been published for this server, so install it from source: clone the repository and follow its README.

Is Ensembl MCP Server safe to use with an AI agent?

Its trust score is 64 out of 100 (good). It passes 5 of the 6 static security checks run so far; the failures are listed above. It has no ConduID identity yet, so agent calls to it are not receipted.

Is Ensembl MCP Server still maintained?

The last commit was 8 months ago and 2 open issues. That's long enough that you should check whether the maintainer is responding to issues before depending on it.