Skip to main content
Glama

evo2-mcp

evo2-mcp banner

BioContextAI - Registry Tests Documentation

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

  1. 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 evo2
  2. Install evo2-mcp:

    pip install evo2-mcp
  3. Activate MCP Server: Add the following to your mcp.json configuration:

    {
    "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 likelihood

  • embed_sequence - Extract feature representations

  • generate_sequence - Generate novel DNA sequences

  • score_snp - Predict variant effects

  • get_embedding_layers - List available embedding layers

  • list_available_checkpoints - Show supported model checkpoints

See the Tools Documentation for detailed API reference and examples.

Documentation

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 tools
embed_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

    A4.5/5.0

    Scored across 6 tools

    Disambiguation5/5

    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.

    Naming Consistency5/5

    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.

    Tool Count5/5

    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.

    Completeness5/5

    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

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      A
      quality
      B
      maintenance
      Enables 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.
      24
      13 npm
      2
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      An 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.
      1
      MIT
    • F
      license
      Not graded
      quality
      C
      maintenance
      Enables AI-powered protein structure prediction and variant analysis via Docker, with tools for submitting predictions, batch processing variants, and monitoring jobs.
      2
      -