Evo2 MCP Server
Click on "Install 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 Serverscore 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")
| Name | Required | Description | Default |
|---|---|---|---|
| sequence | Yes | ||
| checkpoint | No | ||
| layer_name | No | blocks.2.mlp.l3 |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It discloses output structure (dict with keys), normalization of the input sequence, raises AssertionError for empty strings, and notes the default checkpoint behavior. It does not state whether the operation is read-only, but the passive 'Return' and 'Extracts' imply pure computation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a lead sentence, Args, Returns, Raises, and Example. All sections earn their place; the only slightly redundant sentence about downstream analysis is brief and adds context. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description fully covers parameters, return values, error conditions, and includes a concrete example. It even references a sibling tool for checkpoint options, making it complete for an agent to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description provides essential meaning for all three parameters: sequence validity (IUPAC nucleotides), checkpoint selection (default and alternative listing), and layer_name (common layer choices). This goes far beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb+resource: 'Return intermediate Evo 2 embeddings for DNA sequence.' It clearly distinguishes from siblings like score_sequence and generate_sequence by stating it extracts feature representations from a specified layer.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for downstream analysis and references list_available_checkpoints() for checkpoint selection, but it does not explicitly state when to use this tool versus alternatives like score_sequence or generate_sequence. There are no exclusions or when-not-to-use conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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}")
| Name | Required | Description | Default |
|---|---|---|---|
| top_k | No | ||
| prompt | Yes | ||
| n_tokens | No | ||
| checkpoint | No | ||
| temperature | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It details the sampling method (nucleus sampling with top-k), parameter effects, assertion errors for invalid inputs, and the normalization of the prompt. It does not explicitly state that the operation is read-only, but the generation nature implies no side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a clear one-liner purpose followed by detailed Args, Returns, Raises, and Example sections. Every sentence adds value, and the front-loading of the main purpose makes it easy to scan. It is appropriately sized for a complex generation tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite the lack of annotations, the description provides comprehensive coverage: a clear purpose, detailed parameter semantics, expected return structure, error conditions, and a usage example. The output schema is not shown but the Returns section fully documents the dictionary keys. This is complete enough for an agent to invoke the tool correctly without further context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate, and it does thoroughly. Each parameter is explained with constraints, default behavior, and examples (e.g., top_k typical values). The Args section adds significant meaning beyond the raw schema types and defaults.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb and resource: 'Generate DNA sequence continuation using Evo 2.' It distinguishes from sibling tools by focusing on sequence generation rather than scoring or embedding. The example further clarifies the intended use.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use this tool (generating sequence continuations) and references a sibling function `list_available_checkpoints()` for finding valid checkpoints. However, it does not explicitly state when not to use this tool versus alternatives, though the focused purpose makes the primary use case obvious.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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'])}")
| Name | Required | Description | Default |
|---|---|---|---|
| which | No | recommended | |
| checkpoint | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the behavioral difference between 'recommended' and 'all' selections, describes the return structure, and includes an example. While it doesn't mention potential errors or side effects, it is a read-only lookup and the behavioral detail provided is substantial.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with Args, Returns, and Example sections. It is concise yet informative, with each section adding value. The front-loaded purpose statement is clear, and the detailed layer guidance is relevant and earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has two parameters and an output schema, but the description still adds value by explaining return keys, providing an example, and offering layer-selection advice. It is complete enough for an AI agent to understand the tool's purpose, usage, and expected output without additional context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It provides thorough explanations for both parameters: checkpoint and which, detailing what 'recommended' and 'all' return. It also gives a concrete example demonstrating usage, adding significant meaning beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Get available layers for embedding extraction from Evo 2 model.' It uses a specific verb and resource, and distinguishes itself from siblings like embed_sequence (which likely performs extraction) and list_available_checkpoints (which lists checkpoints).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage context, including guidance on which layers to use for different tasks (e.g., intermediate layers for classification, deeper layers for interpretability). It also references list_available_checkpoints() for parameter options. However, it does not explicitly mention when not to use the tool or direct alternatives, but the context is sufficiently clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full transparency burden. It explicitly discloses the return format ('List of dictionaries, each containing: - name, - description'), and states that it 'Retrieves all available' checkpoints. This goes beyond a simple restatement, though it does not mention potential side effects, auth, or failure modes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with a one-sentence summary, followed by a brief explanatory paragraph and a structured Returns block. Every sentence adds meaningful information—there is no fluff or repetition, making it appropriately sized and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
As a simple list tool with no parameters and an output schema, the description provides complete context: it defines the tool's purpose, what the returned data contains, and how the checkpoints relate to other tasks. There is no missing information that an agent would need to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters and the input schema is empty with 100% schema description coverage. Per rubric, a 0-parameter tool earns a baseline of 4. The description does not need to explain parameters, and it adds no unnecessary parameter information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description begins with 'List supported Evo 2 checkpoints with descriptions,' which uses a specific verb ('List') and identifies the resource ('supported Evo 2 checkpoints'). It further clarifies that these checkpoints are used for 'sequence scoring, embedding, and generation,' distinguishing it from sibling tools that perform those operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states the purpose is to retrieve checkpoints 'that can be used for sequence scoring, embedding, and generation,' giving clear context for when to use it (before or alongside those downstream tools). It does not explicitly name alternative tools or provide exclusion scenarios, but the context is sufficient for most agents.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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]}")
| Name | Required | Description | Default |
|---|---|---|---|
| sequence | Yes | ||
| checkpoint | No | ||
| reduce_method | No | mean |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, description carries full burden and mostly delivers: raises AssertionError for invalid inputs, returns a structured dictionary with normalized sequence and scores list, includes example. Slight gaps: log base unspecified, normalization details vague, error cases for invalid checkpoints not disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with Purpose, Args, Returns, Raises, Example. The front-loaded purpose is clear, and each section adds value. Slightly verbose but every part is informative for a non-trivial tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists, the description needn't cover return values, yet it does. It covers all parameter semantics and typical errors. Missing explicit differentiation from score_snp and broader error handling, but overall a complete self-contained description for the core use case.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema descriptions are absent (0% coverage). Description's Args section thoroughly explains all three parameters, including semantics, defaults, and constraints (e.g., reduce_method must be 'mean'/'sum'). Fully compensates for missing schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear and specific: 'Compute log probabilities for DNA sequence under Evo 2 model.' Distinct from siblings like embed_sequence (embeddings) and generate_sequence (generation); the verb+resource precisely identifies the scoring operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides detailed parameter intent but no guidance on when to prefer this over alternatives. Sibling score_snp likely serves a different variant-scoring purpose but is never mentioned. No when-not-to-use or alternate tool references.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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']}")
| Name | Required | Description | Default |
|---|---|---|---|
| sequence | Yes | ||
| checkpoint | No | ||
| reduce_method | No | mean | |
| alternative_allele | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description fully carries the burden of disclosure. It explains the computation (log probabilities for original and mutated sequences), the meaning of the score delta (negative/positive), the exact return structure, and error conditions (AssertionError). It even notes that a sequence must be at least 3 nucleotides long. This is comprehensive and transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections (Args, Returns, Raises, Example). Although lengthy, every sentence adds value: parameter constraints, behavior explanation, interpretation of results, and a practical example. No redundancy or filler text is present.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (4 parameters, 2 required) and rich output schema, the description covers all necessary aspects: purpose, parameter details, return fields, error handling, and usage guidance. It even includes a recommended sequence length and an example. There are no obvious gaps in context needed for an agent to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate entirely. The 'Args' section explains each parameter in detail: sequence (must be DNA, standard IUPAC), alternative_allele (single nucleotide differing from reference), checkpoint (optional, default), and reduce_method ('mean' or 'sum'). This goes well beyond the bare schema and fully clarifies parameter meaning and constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Score the effect of a SNP mutation at the center position of a DNA sequence.' It uses a specific verb (score), identifies the resource (SNP mutation), and distinguishes itself from related tools like score_sequence by focusing on center-position mutation analysis.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use the tool: 'This tool is useful for variant effect prediction.' It also offers practical guidance such as recommended sequence length and parameter constraints. However, it does not explicitly mention when not to use it or compare it to alternatives like score_sequence, so it misses the full 'when-not/alternatives' criterion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
6 tool updates
v0.2.3- First observed
embed_sequence - First observed
generate_sequence - First observed
get_embedding_layers - First observed
list_available_checkpoints - First observed
score_sequence - First observed
score_snp
TDQS
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
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
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
Image, video, music and text generation across 100+ models through one endpoint.
Hosted DNA/RNA/protein tools: primers, oligos, PCR, cloning, CRISPR, alignment, batch & pipelines.
Related MCP Servers
- AlicenseBqualityDmaintenanceEnables 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.20252MIT

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- FlicenseAqualityFmaintenanceProvides 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.617-
- FlicenseNot gradedqualityDmaintenanceEnables AI-powered protein structure prediction and variant analysis via Docker, with tools for submitting predictions, batch processing variants, and monitoring jobs.1-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/not-a-feature/evo2-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server