Evo2 MCP Server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Evo2 MCP Server score this DNA sequence: ATGCGATACGTTAGCTAGCTAG"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
evo2-mcp

The evo2-mcp server exposes Evo 2 as a Model Context Protocol (MCP) server, providing tools for genomic sequence analysis. Any MCP-compatible client can use these tools to score, embed, and generate DNA sequences.
Features
Sequence Scoring: Compute log probabilities for DNA sequences
Sequence Embedding: Extract learned representations from intermediate model layers
Sequence Generation: Generate novel DNA sequences with controlled sampling
Variant Effect Prediction: Score SNP mutations for variant prioritization
Multiple Model Checkpoints: Support for 7B, 40B, and 1B parameter models
Related MCP server: bio-mcp-evo2
Getting Started
Prerequisites: Python 3.12
Install Evo2 dependencies: See Installation Guide for details.
conda install -c nvidia cuda-nvcc cuda-cudart-dev conda install -c conda-forge transformer-engine-torch=2.3.0 pip install flash-attn==2.8.0.post2 --no-build-isolation pip install evo2Install evo2-mcp:
pip install evo2-mcpActivate MCP Server: Add the following to your
mcp.jsonconfiguration:{ "mcpServers": { "evo2-mcp": { "command": "python", "args": ["-m", "evo2_mcp.main"] } } }
For detailed installation instructions, see the Installation Guide.
Usage
Once installed, the server can be accessed by any MCP-compatible client. For available tools and usage examples, see the Tools Documentation.
Available Tools
score_sequence- Evaluate DNA sequence likelihoodembed_sequence- Extract feature representationsgenerate_sequence- Generate novel DNA sequencesscore_snp- Predict variant effectsget_embedding_layers- List available embedding layerslist_available_checkpoints- Show supported model checkpoints
See the Tools Documentation for detailed API reference and examples.
Documentation
Installation Guide - Detailed installation instructions
Tools Reference - Complete API documentation and usage examples
Development Guide - Contributing and testing information
Changelog - Version history and updates
You can also find this project on BioContextAI, the community hub for biomedical MCP servers.
Citation
If you use evo2-mcp in your research, please cite:
@software{evo2_mcp,
author = {Kreuer, Jules},
title = {evo2-mcp: MCP server for Evo 2 genomic sequence operations},
year = {2025},
url = {https://github.com/not-a-feature/evo2-mcp},
version = {0.2.3}
}For the underlying Evo 2 model, please also cite the original Evo 2 publication.
License and Attribution
The banner image in this repository is a modified version of the original Evo 2 banner from the Evo 2 project, which is released under the Apache 2.0 License. It was modified using Google Gemini "Nanobana" and GIMP.
Available Tools
6 toolsembed_sequenceA
Return intermediate Evo 2 embeddings for DNA sequence.
Extracts feature representations from a specified layer of the Evo 2 model for a given DNA sequence. The embeddings capture the model's learned representations and can be used for downstream analysis or as features for other tasks.
Args:
sequence: DNA sequence to embed. Should contain standard IUPAC nucleotides (A, C, G, T).
checkpoint: Model checkpoint identifier. If None, uses the default checkpoint.
See list_available_checkpoints() for available options.
layer_name: Name of the model layer from which to extract embeddings.
Common choices include intermediate MLP layers and attention blocks.
Returns: Dictionary containing: - checkpoint: The checkpoint identifier used - sequence: The normalized input sequence - layer_name: The layer from which embeddings were extracted - embedding: 2D list of embedding vectors (shape: [sequence_length, embedding_dim])
Raises: AssertionError: If sequence or layer_name are empty strings.
Example: >>> embeddings = embed_sequence("ATCGATCG") >>> embedding_matrix = embeddings["embedding"] >>> print(f"Embedding shape: {len(embedding_matrix)} tokens")
Inputs: sequence (required), checkpoint, layer_name. Returns: object
generate_sequenceA
Generate DNA sequence continuation using Evo 2.
Generates new DNA sequence tokens conditioned on a given prompt sequence using the Evo 2 language model. The generation process uses nucleus sampling (top-k) for controlled diversity.
Args:
prompt: Starting DNA sequence to condition generation. Should contain standard
IUPAC nucleotides (A, C, G, T, N).
checkpoint: Model checkpoint identifier. If None, uses the default checkpoint.
See list_available_checkpoints() for available options.
n_tokens: Number of new tokens to generate. Must be a positive integer.
temperature: Sampling temperature controlling randomness. Higher values (>1.0) increase
diversity; lower values (<1.0) make generation more deterministic. Must be greater than 0.
top_k: Number of highest probability nucleotides to sample from at each step.
Must be positive. Typical values: 5 (all nucleotides including N), 4 (more constrained).
Returns: Dictionary containing: - checkpoint: The checkpoint identifier used - prompt: The normalized input prompt sequence - generated_sequence: The newly generated DNA sequence - n_tokens: Number of tokens generated - temperature: Temperature value used - top_k: Top-k value used
Raises: AssertionError: If prompt is empty, n_tokens <= 0, temperature <= 0, or top_k <= 0.
Example: >>> result = generate_sequence("ATCGATCG", n_tokens=100, temperature=0.8) >>> full_sequence = result["prompt"] + result["generated_sequence"] >>> print(f"Generated sequence: {full_sequence}")
Inputs: prompt (required), top_k, n_tokens, checkpoint, +1 more. Returns: object
get_embedding_layersA
Get available layers for embedding extraction from Evo 2 model.
Returns a list of layer names that can be used to extract sequence embeddings from the specified Evo 2 checkpoint. Different layers encode varying levels of biological abstraction. Larger models tend to have more nuanced representations but require more computational resources. For supervised classification tasks (e.g., variant effect prediction), intermediate layers like Block 20 (40B model) often perform best. For mechanistic interpretability (e.g., SAE training), deeper layers like Layer 26 are commonly used. For probing tasks, top-level layers (e.g., blocks.26 in 7B model) may be optimal.
Args:
checkpoint: Model checkpoint identifier. See list_available_checkpoints() for options.
which: Selection switch. "recommended" returns a curated subset of layers suitable for
common downstream tasks; "all" returns every available layer from the model.
Returns: Dictionary containing: - checkpoint: The checkpoint identifier - layers: List of layer names available for embedding extraction - info: Information about layer selection for different tasks
Example: >>> layers = get_embedding_layers("evo2_7b") >>> print(f"Layers (recommended): {layers['layers']}") >>> layers_all = get_embedding_layers("evo2_7b", which="all") >>> print(f"Total layers: {len(layers_all['layers'])}")
Inputs: checkpoint (required), which. Returns: object
list_available_checkpointsA
List supported Evo 2 checkpoints with descriptions.
Retrieves all available Evo 2 model checkpoints that can be used for sequence scoring, embedding, and generation. Each checkpoint is described with its size and context length capabilities.
Returns: List of dictionaries, each containing: - name: The identifier string for the checkpoint - description: Human-readable description of the model specifications
Inputs: no named parameters. Returns: Generic wrapper for non-object return types.
score_sequenceA
Compute log probabilities for DNA sequence under Evo 2 model.
Evaluates the likelihood of a DNA sequence under the Evo 2 language model. Returns the model's log probability score for the entire sequence, which can be reduced using either mean or sum aggregation.
Args:
sequence: DNA sequence to score. Should contain standard IUPAC nucleotides (A, C, G, T, N).
checkpoint: Model checkpoint identifier. If None, uses the default checkpoint.
See list_available_checkpoints() for available options.
reduce_method: Method for aggregating per-token scores. Must be either "mean"
(average log probability across all tokens) or "sum" (sum of all log probabilities).
Returns: Dictionary containing: - checkpoint: The checkpoint identifier used - sequence: The normalized input sequence - reduce_method: The reduction method applied - scores: List of computed score values (typically length 1)
Raises: AssertionError: If sequence is empty or reduce_method is not "mean" or "sum".
Example: >>> scores = score_sequence("ATCGATCG") >>> print(f"Score: {scores['scores'][0]}")
Inputs: sequence (required), checkpoint, reduce_method. Returns: object
score_snpA
Score the effect of a SNP mutation at the center position of a DNA sequence.
Computes log probabilities for both the original sequence and the sequence with the center nucleotide replaced by the alternative allele, then returns the delta. Recommended sequence length: max_context - 1 for best performance.
This tool is useful for variant effect prediction, where the score delta indicates how much the mutation changes the model's likelihood of the sequence. Negative deltas indicate the mutation decreases likelihood; positive deltas increase it.
Args:
sequence: Reference DNA sequence. Must be at least 3 nucleotides long to have a
well-defined center position. Should contain standard IUPAC nucleotides (A, C, G, T, N).
alternative_allele: Alternative nucleotide at the center position. Must be a single
nucleotide (one of A, C, G, T, N) that differs from the reference nucleotide at the center.
checkpoint: Model checkpoint identifier. If None, uses the default checkpoint.
See list_available_checkpoints() for available options.
reduce_method: Method for aggregating per-token scores. Must be either "mean"
(average log probability across all tokens) or "sum" (sum of all log probabilities).
Returns: Dictionary containing: - checkpoint: The checkpoint identifier used - original_sequence: The input reference sequence (uppercase) - mutated_sequence: The sequence with the mutation applied at center position - center_position: Index of the mutated position (0-indexed) - reference_allele: The original nucleotide at the center position - alternative_allele: The alternative nucleotide used - reduce_method: The reduction method applied - original_score: Log probability score of the reference sequence - mutated_score: Log probability score of the mutated sequence - score_delta: Difference (mutated_score - original_score). Indicates mutation effect.
Raises: AssertionError: If sequence length < 3, alternative_allele is not a single valid nucleotide, sequence contains invalid nucleotides, or alternative_allele matches the reference nucleotide.
Example: >>> result = score_snp("ATCGATCG", "A") # Center is T, mutate to A >>> print(f"Score delta: {result['score_delta']}") >>> print(f"Original: {result['original_sequence']}") >>> print(f"Mutated: {result['mutated_sequence']}")
Inputs: sequence (required), alternative_allele (required), checkpoint, reduce_method. Returns: object
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 6 tools
Each tool targets a distinct operation: checkpoint listing, layer retrieval, sequence scoring, embedding extraction, sequence generation, and SNP scoring. Even score_sequence and score_snp are clearly differentiated by purpose and input requirements. No overlapping boundaries exist that would cause misselection.
All tools follow a verb_noun pattern in snake_case with clear, domain-specific nouns (list_available_checkpoints, get_embedding_layers, score_sequence, embed_sequence, generate_sequence, score_snp). The verbs accurately reflect the action, and the minor variation between 'list' and 'get' for retrieval is acceptable.
Six tools is a well-scoped set for an Evo 2 model server, covering discovery, feature extraction, scoring, generation, and variant analysis. Each tool earns its place without redundancy or unnecessary bulk.
The tool surface covers the core capabilities of the Evo 2 model: listing checkpoints, getting embedding layers, scoring sequences, extracting embeddings, generating sequences, and scoring SNP effects. No obvious gaps exist for standard use cases, and the inclusion of supporting discovery tools completes the workflow.
Maintenance
Related MCP Connectors
Protein analysis: ESM-2/ESMC embeddings, mutation scoring, landscape scans, ESMFold structure.
Hosted DNA language models: promoter, splice, enhancer, chromatin, expression, annotation
Fold proteins, co-fold ligands with binding affinity, design binders and embed sequences.
Find open biology and chemistry AI models, bioinformatics tools and databases, and run them online.
Related MCP Servers
- AlicenseAqualityBmaintenanceEnables AI-powered genomic variant analysis including variant impact prediction, regulatory element discovery, and batch variant scoring. Currently operates in mock mode as a proof-of-concept awaiting the public release of Google DeepMind's AlphaGenome API.2413 npm2MIT

bio-mcp-evo2official
AlicenseNot gradedqualityDmaintenanceAn MCP server that enables AI assistants to generate, score, and analyze DNA sequences using the evo2 genomic foundation model. It supports multiple execution modes including local GPU, SLURM clusters, and the Nvidia NIM cloud API for tasks like variant effect prediction and sequence embedding.1MIT- FlicenseAqualityDmaintenanceProvides interpretable variant effect predictions for 4.2 million ClinVar variants using the EVEE API. Enables searching, comparing, and analyzing genetic variants with AI-generated mechanistic interpretations and disruption profiles.618-
- FlicenseNot gradedqualityCmaintenanceEnables AI-powered protein structure prediction and variant analysis via Docker, with tools for submitting predictions, batch processing variants, and monitoring jobs.2-