Skip to main content
Glama

🧬 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:


Related MCP server: GeneOntology MCP Server

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

Available Tools

10 tools
ensembl_comparaC

Comparative genomics: gene trees, homology, species alignments, and evolutionary analysis. Covers /genetree/, /homology/, /alignment/* endpoints.

ParametersJSON Schema
NameRequiredDescriptionDefault
gene_idNoGene ID for homology/gene tree analysis (e.g., 'ENSG00000141510', 'ENSG00000012048')
gene_symbolNoGene symbol (alternative to gene_id) (e.g., 'BRCA1', 'TP53', 'EGFR')
regionNoGenomic region for alignments in format 'chr:start-end' (e.g., '17:7565096-7590856', 'X:1000000-2000000', '6:25000000-35000000')
analysis_typeNoType of comparative analysis
speciesNoSpecies name (e.g., 'homo_sapiens', 'mus_musculus', 'pan_troglodytes')homo_sapiens
target_speciesNoTarget species for homology search (e.g., 'mus_musculus', 'pan_troglodytes', 'rattus_norvegicus')
homology_typeNoType of homology to retrieveall
alignedNoInclude aligned sequences

TDQS

C2.9/5.0
Behavior2/5

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 mentions endpoint categories but doesn't describe what the tool actually returns (e.g., tree structures, alignment formats, homology lists), performance characteristics, rate limits, authentication needs, or error conditions. For a complex tool with 8 parameters and multiple analysis types, this is insufficient behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is efficiently structured in two sentences: first stating the broad purpose, then listing endpoint categories. It's appropriately sized for the tool's complexity. However, the endpoint listing could be more clearly integrated with the purpose statement rather than appearing as an afterthought.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex comparative genomics tool with 8 parameters, multiple analysis types, no annotations, and no output schema, the description is incomplete. It doesn't explain what results to expect for different analysis types, how gene trees vs homology vs alignments differ in output, or provide any examples of typical use cases. The agent would struggle to understand what this tool actually returns.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all 8 parameters thoroughly with descriptions, enums, defaults, and constraints. The description adds minimal value beyond the schema - it mentions endpoint categories that loosely map to analysis_type values but doesn't provide additional parameter context, validation rules, or usage examples. Baseline 3 is appropriate when schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose as 'Comparative genomics: gene trees, homology, species alignments, and evolutionary analysis' and mentions specific endpoint categories. It distinguishes from siblings by focusing on comparative genomics rather than feature overlap, lookup, mapping, etc. However, it doesn't explicitly contrast with each sibling tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus the sibling tools. While it mentions endpoint categories, it doesn't explain scenarios where comparative genomics analysis is preferred over feature overlap, sequence retrieval, variation analysis, or other sibling capabilities. No alternatives or exclusions are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ensembl_feature_overlapB

Find genomic features (genes, transcripts, regulatory elements) that overlap with a genomic region or specific feature. Automatically handles assembly-specific format variations (GRCh38/hg38, chromosome naming conventions, coordinate systems). Covers /overlap/region and /overlap/id endpoints.

ParametersJSON Schema
NameRequiredDescriptionDefault
regionNoGenomic region in format 'chromosome:start-end' (e.g., '17:7565096-7590856', 'X:1000000-2000000', '1:100000-200000'). Use this OR feature_id, not both.
feature_idNoFeature ID (gene, transcript, etc.) to find overlapping features for (e.g., 'ENSG00000141510', 'ENST00000288602', 'BRCA1'). Use this OR region, not both.
speciesNoSpecies name (e.g., 'homo_sapiens', 'mus_musculus', 'danio_rerio')homo_sapiens
feature_typesNoTypes of features to include (e.g., ['gene', 'transcript', 'exon'], ['regulatory', 'enhancer'])
biotypeNoFilter by biotype (e.g., 'protein_coding', 'lncRNA', 'miRNA', 'pseudogene')

TDQS

B3.4/5.0
Behavior3/5

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 adds useful context: 'Automatically handles assembly-specific format variations' and 'Covers /overlap/region and /overlap/id endpoints,' which helps the agent understand implementation details. However, it doesn't cover critical behavioral aspects like rate limits, error handling, response format, or whether this is a read-only operation (though 'Find' implies it likely is).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately sized (three sentences) and front-loaded with the core purpose. Every sentence adds value: the first states the purpose, the second adds behavioral context (format handling), and the third specifies endpoints. There's no wasted text, though it could be slightly more structured for clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (5 parameters, no output schema, no annotations), the description is partially complete. It covers the purpose and some behavioral context but lacks details on output format, error cases, or performance characteristics. Without annotations or output schema, the agent might struggle to interpret results fully, making this description adequate but with clear gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description doesn't add any parameter-specific semantics beyond what's in the schema (e.g., it doesn't explain format variations for 'region' beyond the schema's examples). Baseline 3 is appropriate when the schema does the heavy lifting, though the description could have enhanced understanding of parameter interactions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Find genomic features (genes, transcripts, regulatory elements) that overlap with a genomic region or specific feature.' It specifies the verb ('Find') and resource ('genomic features'), and mentions the types of features covered. However, it doesn't explicitly differentiate this tool from its siblings (e.g., ensembl_lookup, ensembl_mapping), which would be needed for a score of 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage context by mentioning 'genomic region or specific feature' and the endpoints covered, but it doesn't provide explicit guidance on when to use this tool versus alternatives like ensembl_lookup or ensembl_mapping. The input schema's 'oneOf' constraint (region OR feature_id) offers some usage rules, but the description itself lacks clear when/when-not instructions or named alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ensembl_lookupB

Look up genes, transcripts, variants by ID or symbol. Get cross-references and perform ID translation. Covers /lookup/* and /xrefs/* endpoints plus variant_recoder.

ParametersJSON Schema
NameRequiredDescriptionDefault
identifierYesID or symbol to look up (gene, transcript, variant, etc.) (e.g., 'ENSG00000141510', 'BRCA1', 'rs699', 'ENST00000288602')
lookup_typeNoType of lookup to performid
speciesNoSpecies name (e.g., 'homo_sapiens', 'mus_musculus')homo_sapiens
expandNoAdditional data to include (e.g., ['Transcript', 'Exon'], ['Translation'], ['UTR'])
external_dbNoExternal database name for xrefs lookup (e.g., 'HGNC', 'UniProtKB/Swiss-Prot', 'RefSeq_mRNA')

TDQS

B3.4/5.0
Behavior2/5

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 mentions the tool 'covers' specific endpoints but doesn't describe response formats, error conditions, rate limits, authentication needs, or whether it's read-only versus mutative. For a tool with 5 parameters and no annotation coverage, this leaves significant behavioral gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately sized with two sentences that efficiently convey scope and endpoint coverage. It's front-loaded with the core purpose and avoids unnecessary elaboration, though the second sentence could be slightly more polished.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 5 parameters, no annotations, and no output schema, the description provides adequate purpose and scope but lacks behavioral context and output expectations. It's complete enough to understand what the tool does but insufficient for an agent to fully predict how to use it effectively without trial and error.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all 5 parameters thoroughly with examples and defaults. The description adds minimal value beyond the schema by mentioning endpoint coverage, but doesn't provide additional parameter semantics, syntax details, or usage patterns beyond what's in the structured fields.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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 specific verbs ('look up', 'get cross-references', 'perform ID translation') and resources ('genes, transcripts, variants'), distinguishing it from siblings by mentioning specific endpoints (/lookup/*, /xrefs/*, variant_recoder) that other tools likely don't cover.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage through endpoint references but doesn't explicitly state when to use this tool versus alternatives like ensembl_mapping or ensembl_variation. It provides context about what the tool covers but lacks explicit guidance on tool selection among siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ensembl_mappingC

Map coordinates between different coordinate systems (genomic ↔ cDNA/CDS/protein) and between genome assemblies. Covers /map/* endpoints.

ParametersJSON Schema
NameRequiredDescriptionDefault
coordinatesYesCoordinates to map: '100..200' for cDNA/CDS coords, or 'chr:start-end' for genomic (e.g., '100..300', '1..150', '17:7565096-7590856', 'X:1000000-2000000')
feature_idNoFeature ID (transcript/translation) for coordinate mapping (e.g., 'ENST00000288602', 'ENSP00000288602')
mapping_typeYesType of coordinate mapping
source_assemblyNoSource assembly name (for assembly mapping) (e.g., 'GRCh37', 'GRCh38')
target_assemblyNoTarget assembly name (for assembly mapping) (e.g., 'GRCh38', 'GRCh37')
speciesNoSpecies name (e.g., 'homo_sapiens', 'mus_musculus')homo_sapiens

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states what the tool does but lacks details on behavioral traits such as rate limits, authentication needs, error handling, or what the output looks like (e.g., format, structure). For a tool with 6 parameters and no output schema, this is a significant gap in transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and front-loaded, stating the core purpose in a single sentence. It avoids unnecessary details and wastes no words. However, it could be slightly more structured by explicitly separating coordinate system mapping from assembly mapping for clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (6 parameters, no annotations, no output schema), the description is incomplete. It doesn't address output format, error cases, or usage context relative to siblings. For a mapping tool with multiple parameter dependencies, more guidance on behavior and results is needed to be fully helpful.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds no additional parameter semantics beyond what's in the schema (e.g., it doesn't explain interactions between parameters like how feature_id relates to mapping_type). Baseline 3 is appropriate when the schema does the heavy lifting, but the description doesn't compensate with extra insights.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: mapping coordinates between different coordinate systems and genome assemblies. It specifies the scope with 'genomic ↔ cDNA/CDS/protein' and mentions coverage of '/map/* endpoints.' However, it doesn't explicitly differentiate this tool from its siblings (e.g., ensembl_sequence or ensembl_variation), which might also involve coordinate handling.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It mentions coverage of '/map/* endpoints' but doesn't explain when mapping is needed compared to other Ensembl tools like ensembl_lookup or ensembl_sequence. There are no explicit when/when-not statements or references to sibling tools for context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ensembl_metaA

Get server metadata, data releases, species info, and system status. Covers /info/* endpoints and /archive/id for version tracking.

ParametersJSON Schema
NameRequiredDescriptionDefault
info_typeNoType of information to retrieve
speciesNoSpecies name (required for species-specific info) (e.g., 'homo_sapiens', 'mus_musculus', 'drosophila_melanogaster')
archive_idNoID to get version information for (alternative to info_type) (e.g., 'ENSG00000141510', 'rs699')
divisionNoEnsembl division name (e.g., 'vertebrates', 'plants', 'fungi', 'metazoa')

TDQS

A3.9/5.0
Behavior3/5

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 describes what information can be retrieved (metadata, releases, species info, status) and the endpoints covered, but doesn't mention rate limits, authentication requirements, response formats, or error conditions. The description is informative but lacks operational details.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is perfectly concise with two sentences that each earn their place. The first sentence states the purpose comprehensively, and the second sentence provides important implementation context about the endpoints covered. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 4-parameter tool with no annotations and no output schema, the description provides good purpose and endpoint context but lacks information about return values, error handling, and operational constraints. Given the complexity of the tool (multiple parameter combinations), more behavioral context would be helpful.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description doesn't add any parameter-specific information beyond what's in the schema (e.g., it doesn't explain parameter interactions or provide examples). Baseline 3 is appropriate when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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 specific verbs ('Get server metadata, data releases, species info, and system status') and resources ('/info/* endpoints and /archive/id'), distinguishing it from sibling tools focused on compara, features, lookup, mapping, etc. It explicitly covers what information can be retrieved.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context by mentioning the specific API endpoints covered ('/info/* endpoints and /archive/id'), which helps understand when to use this tool. However, it doesn't explicitly state when NOT to use it or name alternatives among siblings, though the distinction is implied by the different tool names.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ensembl_ontotaxC

Ontology term search and NCBI taxonomy traversal. Search GO terms, phenotype ontologies, and taxonomic classifications.

ParametersJSON Schema
NameRequiredDescriptionDefault
termNoOntology term or taxonomy term to search (e.g., 'protein binding', 'cell cycle', 'mitochondrion', 'Homo sapiens')
ontologyNoOntology to search in
term_idNoSpecific ontology term ID (e.g., 'GO:0008150', 'GO:0005515', 'HP:0000001', 'MP:0000001')
speciesNoSpecies for taxonomy search (e.g., 'homo_sapiens', 'mus_musculus', 'drosophila_melanogaster')
relationNoRelationship to explore in ontology

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure. It mentions 'search' and 'traversal' operations but doesn't specify whether these are read-only, have rate limits, require authentication, or what format results return. For a tool with 5 parameters and complex logic (multiple required parameter combinations via anyOf), this leaves significant behavioral gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise (one sentence) and front-loaded with the core functionality. Every word earns its place by specifying the domain (ontology/taxonomy), operations (search/traversal), and examples of what can be searched. There's zero redundancy or wasted verbiage.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 5 parameters, complex conditional requirements (anyOf with three alternative required sets), no annotations, and no output schema, the description is insufficient. It doesn't explain how the different parameter combinations work together, what the tool returns, or the scope of operations. The agent must rely entirely on the input schema to understand functionality.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all parameters thoroughly with descriptions and enums. The description adds minimal value beyond the schema by mentioning the types of ontologies and taxonomy, but doesn't provide additional context about parameter interactions or usage patterns. The baseline of 3 is appropriate when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Ontology term search and NCBI taxonomy traversal' with specific examples of what can be searched (GO terms, phenotype ontologies, taxonomic classifications). It distinguishes itself from sibling tools by focusing on ontology/taxonomy operations rather than sequence, variation, or comparative genomics tools. However, it doesn't explicitly differentiate from potential overlapping functionality in sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention any prerequisites, constraints, or scenarios where this tool is preferred over other search or traversal methods. The agent must infer usage from the description alone without explicit direction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ensembl_protein_featuresC

Get protein-level features, domains, and annotations for proteins and translations.

ParametersJSON Schema
NameRequiredDescriptionDefault
protein_idYesProtein/translation ID (e.g., 'ENSP00000288602', 'ENSP00000350283', 'ENSP00000334393')
feature_typeNoType of protein feature (e.g., 'domain', 'signal_peptide', 'transmembrane', 'low_complexity')
speciesNoSpecies name (e.g., 'homo_sapiens', 'mus_musculus')homo_sapiens

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the action 'Get' but does not describe any behavioral traits such as whether this is a read-only operation, potential rate limits, authentication needs, or what the output format looks like (e.g., structured data or raw text). This leaves significant gaps for an agent to understand how to interact with the tool effectively.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that front-loads the key information ('Get protein-level features, domains, and annotations') without any unnecessary words or redundancy. It is appropriately sized for the tool's purpose and structure, making it easy to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of a tool with 3 parameters, no annotations, and no output schema, the description is incomplete. It does not address behavioral aspects, output expectations, or usage context, which are critical for an agent to use the tool correctly. The high schema coverage helps with parameters, but overall, the description lacks sufficient detail for full contextual understanding.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 100%, meaning all parameters are well-documented in the input schema itself. The description does not add any additional meaning beyond what the schema provides, such as explaining relationships between parameters or usage examples. With high schema coverage, the baseline score is 3, as the description does not compensate but also does not detract.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Get' and the resources 'protein-level features, domains, and annotations for proteins and translations', making the purpose specific and understandable. However, it does not explicitly distinguish this tool from sibling tools like ensembl_feature_overlap or ensembl_sequence, which might also retrieve features or sequences, so it lacks sibling differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives, such as which sibling tools might be better for different types of data (e.g., ensembl_variation for variants or ensembl_sequence for sequences). There is no mention of prerequisites, exclusions, or specific contexts for usage, leaving the agent without clear direction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ensembl_regulatoryC

Get regulatory features, binding matrices, and regulatory annotations. Covers regulatory overlap endpoints and binding matrix data.

ParametersJSON Schema
NameRequiredDescriptionDefault
regionNoGenomic region in format 'chromosome:start-end' (e.g., '17:7565096-7590856', 'X:1000000-2000000', '6:25000000-35000000')
protein_idNoProtein ID for regulatory features affecting translation (e.g., 'ENSP00000288602', 'ENSP00000350283')
binding_matrix_idNoBinding matrix stable ID (e.g., 'ENSPFM0001', 'ENSPFM0123')
speciesNoSpecies name (e.g., 'homo_sapiens', 'mus_musculus')homo_sapiens
feature_typeNoType of regulatory feature (e.g., 'RegulatoryFeature', 'MotifFeature', 'TF_binding_site')

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states 'Get' which implies a read-only operation, but doesn't specify if this requires authentication, has rate limits, returns paginated results, or details error conditions. The mention of 'regulatory overlap endpoints' hints at API behavior but lacks specifics like response format or performance characteristics, leaving significant gaps for a tool with 5 parameters.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and front-loaded, stating the core purpose in the first clause. Both sentences earn their place: the first defines what the tool gets, and the second clarifies the scope of coverage. There's no redundant or vague language, making it efficient for quick understanding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (5 parameters, no annotations, no output schema), the description is incomplete. It lacks behavioral details (e.g., read/write nature, error handling), usage guidelines compared to siblings, and explanation of return values. While the schema covers parameters well, the description doesn't compensate for missing annotations or output schema, making it inadequate for full agent understanding.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, providing clear documentation for all 5 parameters (region, protein_id, binding_matrix_id, species, feature_type). The description adds no additional parameter semantics beyond what's in the schema—it doesn't explain relationships between parameters (e.g., that region, protein_id, and binding_matrix_id are alternative inputs) or provide usage examples. Baseline 3 is appropriate since the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Get regulatory features, binding matrices, and regulatory annotations.' It specifies the types of data retrieved (regulatory features, binding matrices, annotations) and mentions coverage of regulatory overlap endpoints and binding matrix data. However, it doesn't explicitly differentiate this tool from its siblings like 'ensembl_feature_overlap' or 'ensembl_protein_features', which likely handle related genomic data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It mentions 'Covers regulatory overlap endpoints and binding matrix data' but doesn't clarify if this is exclusive to this tool or shared with siblings. There's no mention of prerequisites, typical use cases, or comparisons to other tools in the Ensembl suite, leaving the agent without context for selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ensembl_sequenceC

Retrieve DNA, RNA, or protein sequences for genes, transcripts, regions. Covers /sequence/id and /sequence/region endpoints.

ParametersJSON Schema
NameRequiredDescriptionDefault
identifierYesFeature ID (gene, transcript, etc.) OR genomic region in format 'chr:start-end' (e.g., 'ENSG00000141510', 'ENST00000288602', '17:7565096-7590856', 'X:1000000-2000000')
sequence_typeNoType of sequence to retrievegenomic
speciesNoSpecies name (e.g., 'homo_sapiens', 'mus_musculus')homo_sapiens
formatNoOutput formatjson
maskNoMask repeats (soft=lowercase, hard=N)

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions the endpoints covered but fails to describe key behavioral traits: it doesn't specify if this is a read-only operation, potential rate limits, authentication needs, error handling, or what the output looks like (e.g., sequence data structure). For a tool with 5 parameters and no annotations, this leaves significant gaps in understanding how it behaves.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and front-loaded, stating the core purpose in the first sentence. The second sentence adds endpoint context without redundancy. Both sentences earn their place by clarifying scope, though it could be slightly more structured (e.g., bullet points for endpoints). No wasted words are present.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (5 parameters, no annotations, no output schema), the description is incomplete. It lacks behavioral details (e.g., read-only status, error cases), output format explanations (beyond the 'format' parameter), and guidance on sibling tool differentiation. For a sequence retrieval tool with multiple parameters and no structured output schema, more context is needed to ensure the agent can use it effectively.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, meaning all parameters are well-documented in the schema itself. The description adds minimal value beyond the schema: it implies the tool handles both ID-based and region-based queries via the endpoints mentioned, but doesn't elaborate on parameter interactions or provide examples beyond what's in the schema. With high schema coverage, the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Retrieve DNA, RNA, or protein sequences for genes, transcripts, regions.' It specifies the verb ('retrieve') and resources (sequences for various biological entities), making the function unambiguous. However, it doesn't explicitly differentiate from sibling tools like ensembl_lookup or ensembl_feature_overlap, which might also retrieve sequence-related data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides minimal usage guidance: it mentions covering '/sequence/id and /sequence/region endpoints,' which hints at two use cases (ID-based vs. region-based retrieval). However, it lacks explicit guidance on when to use this tool versus alternatives (e.g., ensembl_lookup for general feature info or ensembl_protein_features for protein-specific data). No exclusions or prerequisites are stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ensembl_variationC

Variant analysis: VEP consequence prediction, variant lookup, LD analysis, phenotype mapping, haplotypes. Covers /variation/, /vep/, /ld/, /phenotype/ endpoints.

ParametersJSON Schema
NameRequiredDescriptionDefault
variant_idNoVariant ID (e.g., 'rs699', 'rs1042779', 'COSM476') or HGVS notation (e.g., '17:g.7579472G>C')
regionNoGenomic region in format 'chr:start-end' for variant search (e.g., '17:7565096-7590856', 'X:1000000-2000000', '1:100000-200000')
hgvs_notationNoHGVS notation for VEP analysis (e.g., '17:g.7579472G>C', 'ENST00000288602.6:c.1799T>A', 'NM_007294.3:c.1799T>A')
analysis_typeNoType of variant analysis
speciesNoSpecies name (e.g., 'homo_sapiens', 'mus_musculus')homo_sapiens
consequence_typeNoFilter by consequence type (e.g., 'missense_variant', 'stop_gained', 'splice_donor_variant')
populationNoPopulation for LD analysis (e.g., '1000GENOMES:phase_3:EUR', '1000GENOMES:phase_3:AFR', '1000GENOMES:phase_3:ASN')
transcript_idNoTranscript ID for haplotype analysis (e.g., 'ENST00000288602', 'ENST00000350283')

TDQS

C2.9/5.0
Behavior2/5

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 mentions analysis types and endpoints but fails to describe critical traits: whether operations are read-only or mutative, authentication needs, rate limits, error handling, or output format. For a tool with 8 parameters and complex genomic analysis, this lack of behavioral context is a significant gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately concise and front-loaded, stating the core purpose in the first phrase. It uses a semicolon-separated list for analysis types and a brief endpoint summary, with no redundant sentences. However, the endpoint list ('Covers /variation/*, /vep/*, /ld/*, /phenotype/* endpoints.') could be integrated more smoothly, slightly affecting flow.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (8 parameters, no output schema, no annotations), the description is incomplete. It lacks output details, behavioral traits, and usage guidelines, which are crucial for an AI agent to invoke it correctly in genomic contexts. The high schema coverage helps with parameters, but overall, the description doesn't compensate for missing structured data.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 100%, so the schema already documents all 8 parameters thoroughly. The description adds minimal value beyond the schema by listing analysis types (e.g., 'VEP consequence prediction') that map to the 'analysis_type' enum, but it doesn't provide additional syntax, format details, or interdependencies. This meets the baseline for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Variant analysis: VEP consequence prediction, variant lookup, LD analysis, phenotype mapping, haplotypes.' It provides specific verbs (prediction, lookup, analysis, mapping) and resources (variants, phenotypes, haplotypes), making the function unambiguous. However, it doesn't explicitly differentiate from sibling tools like 'ensembl_lookup' or 'ensembl_feature_overlap,' which might offer overlapping genomic analysis capabilities.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It lists analysis types and endpoints but doesn't specify prerequisites, exclusions, or comparisons to sibling tools. For example, it doesn't clarify if this is the primary tool for variant data or when to choose it over 'ensembl_lookup' for similar queries, leaving the agent without usage context.

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.

  1. 10 tool updates
    • First observedensembl_compara
    • First observedensembl_feature_overlap
    • First observedensembl_lookup
    • First observedensembl_mapping
    • First observedensembl_meta
    • First observedensembl_ontotax
    • First observedensembl_protein_features
    • First observedensembl_regulatory
    • First observedensembl_sequence
    • First observedensembl_variation

TDQS

A3.6/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose targeting specific genomic data types or operations, such as comparative genomics, feature overlap, sequence retrieval, or variant analysis. The descriptions explicitly differentiate their scopes (e.g., 'ensembl_compara' for evolutionary analysis vs. 'ensembl_sequence' for sequence retrieval), with no apparent overlap that could cause agent misselection.

Naming Consistency5/5

All tool names follow a consistent 'ensembl_' prefix with descriptive suffixes (e.g., 'compara', 'lookup', 'mapping'), using snake_case uniformly throughout. This predictable pattern enhances readability and helps agents quickly identify the tool's domain without confusion.

Tool Count5/5

With 10 tools, the server is well-scoped for genomic data access and analysis, covering key areas like sequence retrieval, variant analysis, and metadata. Each tool earns its place by addressing distinct aspects of the Ensembl database, avoiding bloat while providing comprehensive coverage for typical bioinformatics workflows.

Completeness5/5

The tool set offers complete coverage for genomic data operations, including lookup, mapping, sequence retrieval, variation analysis, and metadata access. It supports full CRUD-like workflows (e.g., from data query to analysis) with no obvious gaps, ensuring agents can handle end-to-end tasks without dead ends.

Maintenance

ActivityInactive
ResponsivenessSyncing

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

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/effieklimi/ensembl-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server