ensembl-mcp-server
Server Details
Look up genes, fetch sequences, predict variant consequences, find orthologs and xrefs via Ensembl.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
- Repository
- cyanheads/ensembl-mcp-server
- GitHub Stars
- 2
- Server Listing
- ensembl-mcp-server
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Average 4.4/5 across 7 of 7 tools scored.
Each tool targets a distinct genomic resource: homology, sequence, xrefs, species metadata, gene lookup, variant prediction, and region query. There is no overlap in their purposes, and the descriptions clearly delineate when to use each.
All tool names follow the consistent pattern 'ensembl_' plus an action verb (get, list, lookup, predict, query) and a noun. The naming style is uniformly snake_case and lowercase, making the tool set predictable and easy to navigate.
With 7 tools, the server is well-scoped for its purpose. Each tool addresses a core Ensembl query need without redundancy or bloat, fitting comfortably in the ideal range for a domain-specific toolkit.
The tool set covers the primary lifecycle of genomic investigation: discovering species, resolving gene identifiers, fetching sequences, obtaining cross-references, querying regions, finding homologs, and predicting variant consequences. There are no critical gaps for typical use cases.
Available Tools
7 toolsensembl_get_homologyGet Gene HomologsARead-onlyIdempotentInspect
Find orthologs and/or paralogs of a gene across species. Returns each homolog's stable ID, species, homology type (ortholog_one2one, ortholog_one2many, paralog_many2many, etc.), perc_id (percent identity), perc_pos (percent positives), and taxonomy level. Essential for cross-species research — for example, "what is the mouse equivalent of human TP53?" or "how conserved is BRCA2 across mammals?". Provide either symbol + species or a stable gene ID. Target species can be filtered to a single species or left open to return all available homologs.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Ensembl stable gene ID (e.g. ENSG00000139618). Use ensembl_lookup_gene to get the stable ID from a symbol. Cannot be combined with symbol. | |
| type | No | Type of homologs to return. orthologues: genes related by speciation (cross-species equivalents). paralogues: genes related by duplication (within or across species). all: both orthologs and paralogs. | orthologues |
| symbol | No | Gene symbol in the source species (e.g. BRCA2, TP53). Species defaults to homo_sapiens; set species for other organisms. Cannot be combined with id. | |
| species | No | Source species (the species the query gene belongs to) in Ensembl internal format. Default is homo_sapiens. Use ensembl_list_species to discover valid values. | homo_sapiens |
| max_results | No | Maximum number of homologs to return. Broad orthology queries (e.g. BRCA2 across all species) can return 150+ homologs; the default keeps responses focused. Set to 0 to return every homolog uncapped. totalCount always reports the true number available before this cap. | |
| target_species | No | Filter to homologs in a single target species (e.g. mus_musculus for mouse). Omit to return homologs across all available species. Use ensembl_list_species to discover valid values. |
Output Schema
| Name | Required | Description |
|---|---|---|
| cap | No | The max_results limit applied to the homolog list. |
| shown | No | Number of homologs returned after the max_results cap. |
| notice | No | Guidance when no homologs are found or the list was capped. |
| queryId | Yes | The resolved Ensembl gene ID used for the homology query. |
| homologs | Yes | Homologous genes found for the query gene, capped to max_results. totalCount reports the full count available before the cap. |
| queryType | Yes | The homology type queried (orthologues, paralogues, or all). |
| truncated | No | True when the homolog list was capped at max_results. |
| totalCount | Yes | Total number of homologs available before the max_results cap. Exceeds the returned homologs count when the list was capped. |
| querySpecies | Yes | The source species used for the query. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, and idempotentHint, so the safety profile is covered. The description adds value beyond annotations by detailing returned fields (stable ID, species, homology type, perc_id, perc_pos, taxonomy level), explaining the max_results cap behavior and totalCount reporting, and noting that target species can be filtered or left open. This is rich behavioral context without contradicting annotations.
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 slightly longer than strictly necessary but remains well-structured: purpose first, then return fields, use-case examples, and input requirements. Each sentence contributes useful guidance, and the front-loaded opening makes it easy to scan.
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?
With 6 parameters, an output schema, and strong annotations, the description still manages to add key contextual details: use cases, input alternatives, target species filtering, and the max_results/totalCount behavior. It is fully complete for an agent to select and invoke this tool effectively without additional documentation.
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 100%, so the schema already documents all 6 parameters in detail. The description reinforces the id/symbol mutual exclusivity and gives examples, but it does not add substantial new meaning beyond what the schema already provides. Baseline 3 is appropriate.
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 'Find orthologs and/or paralogs of a gene across species', a specific verb+resource statement that clearly identifies the tool's function. It also distinguishes this from sibling tools like ensembl_lookup_gene (gene lookup) and ensembl_get_sequence (sequence retrieval) by emphasizing cross-species homology relationships.
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 with concrete examples (e.g., 'what is the mouse equivalent of human TP53?') and explains how to structure queries ('Provide either symbol + species or a stable gene ID'). It does not explicitly name alternative tools or state when not to use it, but the use case is implied strongly enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ensembl_get_sequenceGet SequenceARead-onlyIdempotentInspect
Fetch the DNA, cDNA, CDS, or protein sequence for a gene, transcript, protein, or genomic region. Returns the sequence with its stable ID, molecule type, and character count — large sequences are returned in full but the length is stated so callers can budget context. The type parameter selects which sequence is fetched: genomic (default, includes introns), cdna (spliced transcript), cds (coding sequence only), protein. For region mode, set id to a region — either species:chr:start-end (e.g. homo_sapiens:13:32315086-32400268) or a bare chr:start-end with species set (e.g. id 13:32315086-32400268, species homo_sapiens). Protein sequences require a transcript or protein stable ID (ENST…/ENSP…), not a gene ID — use ensembl_lookup_gene with expand_transcripts=true to get the canonical transcript ID first.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Ensembl stable ID (ENSG…, ENST…, ENSP…) or a genomic region for region mode. Region accepts species:chr:start-end (e.g. homo_sapiens:13:32315086-32400268) or a bare chr:start-end (e.g. 13:32315086-32400268) when the species field is set. | |
| type | No | Sequence type to retrieve. genomic: full genomic DNA including introns (default). cdna: spliced transcript sequence (requires ENST… ID). cds: coding sequence only, no UTRs (requires ENST… ID with coding transcript). protein: amino acid sequence (requires ENST… or ENSP… ID). | genomic |
| species | No | Species in Ensembl internal format (e.g. homo_sapiens). Required for a bare chr:start-end region; optional for the species:chr:start-end form (the embedded species is used when the field is omitted). Optional for stable ID lookups — Ensembl infers species from the ID prefix. | |
| expand_3prime | No | Number of base pairs to extend downstream (3' direction) of the requested feature. Default 0. Only applies to genomic sequences and region queries. | |
| expand_5prime | No | Number of base pairs to extend upstream (5' direction) of the requested feature. Default 0. Only applies to genomic sequences and region queries. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | The stable ID or region used for the lookup. |
| seq | Yes | The full sequence. DNA sequences use IUPAC nucleotide codes (ACGT + ambiguity codes). Protein sequences use single-letter amino acid codes. Large genomic sequences (e.g. 85 kb for BRCA2) are returned in full. |
| type | Yes | Sequence type returned (genomic, cdna, cds, or protein). |
| length | Yes | Sequence length in characters — nucleotides for genomic/cdna/cds, amino-acid residues for protein. Use this to budget context window usage before processing the sequence. |
| description | No | Sequence description from Ensembl, if provided. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations already declaring readOnlyHint, openWorldHint, and idempotentHint, the description adds valuable behavioral context: large sequences are returned in full but the length is included so callers can budget context, and the type parameter's default behavior (genomic includes introns) is clarified. No contradictions with annotations.
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 a single dense paragraph of about 180 words that front-loads the core function and then layers caveats. Every sentence adds value, though the density of region-format details could have been easier to parse with sentence breaks or bullets. Still, it is appropriately sized for the tool's complexity.
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?
This tool has 5 parameters, an output schema, and multiple modes (stable ID vs region, four sequence types). The description covers all critical behavioral nuances: return contents, large-sequence handling, type-specific requirements, region syntax, species resolution, and a pointer to a related tool for prerequisite lookup. The output schema covers exact return fields, so the description doesn't need to repeat them. This is a complete and well-rounded description.
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?
Although the schema already documents all five parameters at 100% coverage, the description enriches meaning by explaining the type enum in practical terms (e.g., cdna is 'spliced transcript', cds is 'coding sequence only, no UTRs'). It also gives concrete region format examples and clarifies when species is required, going beyond the schema's property 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?
The description starts with a specific verb and resource: 'Fetch the DNA, cDNA, CDS, or protein sequence for a gene, transcript, protein, or genomic region.' It enumerates the exact sequence types and supported identifiers, making it unmistakable what this tool does. It also distinguishes itself from sibling tools by focusing on sequence retrieval rather than homology, xrefs, or variant prediction.
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 when-to-use context, especially for region mode versus stable ID mode, and explicitly states that protein sequences require a transcript or protein ID, directing the caller to ensembl_lookup_gene when they only have a gene ID. It does not explicitly name alternative tools for other cases, but the guidance for the most common edge case is actionable and sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ensembl_get_xrefsGet Cross-Database ReferencesARead-onlyIdempotentInspect
Retrieve cross-database references for a gene or feature — HGNC, UniProt, EntrezGene, OMIM, RefSeq, Reactome, and others. Returns each xref with its database name, primary ID, display ID, and description. The dbname filter narrows to specific databases; omit to return all xrefs. IDs returned here chain to protein (pubchem via UniProt), literature (pubmed via PubMed IDs), disease (OMIM via MIM_GENE), and pathway (Reactome) resources. Requires an Ensembl stable ID — use ensembl_lookup_gene to get the ENSG… ID first. Common dbname values: HGNC, Uniprot_gn, EntrezGene, MIM_GENE, RefSeq_mRNA, RefSeq_peptide, Reactome, GO (Gene Ontology), ChEMBL.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Ensembl stable gene ID (ENSG…) or transcript ID (ENST…). Use ensembl_lookup_gene to get the stable ID from a gene symbol. xrefs/id returns the full cross-reference set (56+ entries for well-annotated genes like BRCA2). | |
| dbname | No | Filter to a specific external database by its Ensembl internal name. Examples: HGNC (HGNC gene ID), Uniprot_gn (UniProt gene name), EntrezGene (NCBI Gene ID), MIM_GENE (OMIM disease gene), RefSeq_mRNA (NCBI RefSeq transcript), Reactome (pathway IDs), GO (Gene Ontology terms). Omit to return all available xrefs. |
Output Schema
| Name | Required | Description |
|---|---|---|
| xrefs | Yes | Cross-database references for the queried Ensembl ID. |
| notice | No | Guidance when no cross-references are found. |
| queriedId | Yes | The Ensembl stable ID that was queried. |
| totalCount | Yes | Total number of cross-references returned. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as readOnly, openWorld, and idempotent. The description adds valuable behavioral context beyond that, such as 'IDs returned here chain to protein (pubchem via UniProt), literature (pubmed via PubMed IDs), disease (OMIM via MIM_GENE), and pathway (Reactome) resources.' This enriches the agent's understanding of the output semantics.
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 four sentences, front-loaded with the main action, and each sentence contributes essential information: what it does, output structure, filter behavior, chaining relationships, and prerequisite. No redundancy or filler.
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?
With an output schema present, the description doesn't need to detail return fields, but it still covers the key contextual aspects: input requirements, filter usage, common dbname values, and how returned IDs link to other resources. The tool is simple (2 parameters, no nested objects), and the description fully supports invocation.
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 input schema already provides 100% coverage with detailed descriptions for both id and dbname, including examples. The description adds a consolidated list of common dbname values (e.g., HGNC, Uniprot_gn, EntrezGene) and clarifies the omission behavior, but these largely duplicate schema content. Baseline 3 is appropriate given the schema's thoroughness; the description only marginally adds meaning.
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 retrieves cross-database references for a gene or feature, listing specific databases (HGNC, UniProt, EntrezGene, etc.). This specific verb+resource construction distinguishes it from sibling tools like ensembl_lookup_gene or ensembl_get_sequence.
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 explicitly states a prerequisite: 'Requires an Ensembl stable ID — use ensembl_lookup_gene to get the ENSG… ID first.' It also explains the dbname filter behavior. However, it does not explicitly contrast with other sibling tools (e.g., homology, sequence), so it stops short of full when-to-use vs alternatives guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ensembl_list_speciesList Ensembl SpeciesARead-onlyIdempotentInspect
List species supported by Ensembl with display name, common name, assembly, taxon ID, and division. Required discovery step — species names like homo_sapiens are opaque to non-biologists and are the input format every other Ensembl tool expects. Filter by division to select one; use nameContains to find a species by partial name match. With no division, returns the endpoint default division — the vertebrates (~356 species on the default GRCh38 endpoint); pass a division to list that division.
| Name | Required | Description | Default |
|---|---|---|---|
| division | No | Filter to a specific Ensembl division. EnsemblVertebrates includes human, mouse, zebrafish, and other vertebrates. EnsemblPlants covers crop and model plant genomes. EnsemblFungi, EnsemblMetazoa, EnsemblProtists cover non-vertebrate model organisms. Omit to return the endpoint default division (vertebrates). | |
| nameContains | No | Case-insensitive substring filter applied locally after fetching. Matches against species name, display name, and common name. Example: "sapiens" matches homo_sapiens; "mouse" matches mus_musculus. |
Output Schema
| Name | Required | Description |
|---|---|---|
| notice | No | Guidance when the filter matches no species. |
| species | Yes | Species matching the filter criteria, sorted by internal name. |
| totalCount | Yes | Total number of matching species after local filtering. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint and idempotentHint. The description adds valuable behavioral context beyond annotations: the default division when omitted, the approximate species count (~356), and the note that nameContains is 'applied locally after fetching.' This helps the agent anticipate endpoint behavior.
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 the primary purpose, then explains the discovery role, filtering options, and default behavior. Each sentence earns its place, though it could be tightened slightly. Overall it is well-structured and not overly verbose.
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 an output schema exists and the annotations cover safety, the description is complete enough: it covers default behavior, filtering examples, and the tool's role within the Ensembl tool family. It doesn't mention pagination or rate limits, but those are less critical for a discovery tool.
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 input schema has 100% coverage with detailed descriptions for both parameters, including enums and examples. The description adds minimal extra meaning—it reinforces filtering behavior but mostly restates what the schema already documents. Baseline 3 is appropriate given high schema coverage.
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: 'List species supported by Ensembl with display name, common name, assembly, taxon ID, and division.' It also differentiates it from sibling tools by labeling it a 'Required discovery step' whose output feeds every other Ensembl tool.
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?
Explicitly says when to use this tool: 'Required discovery step — species names like homo_sapiens are opaque to non-biologists and are the input format every other Ensembl tool expects.' It also gives actionable filtering guidance for division and nameContains, making the usage context clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ensembl_lookup_geneLookup GeneARead-onlyIdempotentInspect
Resolve a gene by symbol + species (or by stable ID) to its Ensembl ID, genomic location (chr:start-end:strand), biotype, description, and transcript list. Entry point for most workflows — the stable ID and coordinates returned here are inputs to other tools. Accepts both symbol lookup (BRCA2 + homo_sapiens) and direct ID lookup (ENSG00000139618). Supports batch lookup of up to 20 IDs or symbols in one call via the ids or symbols field. Provide exactly one of symbol, id, ids, or symbols. For symbol lookups species defaults to homo_sapiens (override for other organisms); for ID lookups species is not needed. Use ensembl_list_species to discover valid species names.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Ensembl stable gene ID (e.g. ENSG00000139618 or ENSG00000139618.7 with version). Species is not required for ID lookup. | |
| ids | No | Batch lookup: up to 20 Ensembl stable IDs (ENSG…, ENST…). Returns a succeeded/failed split. Provide exactly one of symbol, id, ids, or symbols. | |
| symbol | No | Gene symbol to look up (e.g. BRCA2, TP53, EGFR). Species defaults to homo_sapiens; set species for other organisms. Case-insensitive in most species. | |
| species | No | Species in Ensembl internal format: lowercase scientific name with underscores (e.g. homo_sapiens, mus_musculus, danio_rerio). Optional for symbol lookups — defaults to homo_sapiens; set it for other organisms. Use ensembl_list_species to discover valid values. | |
| symbols | No | Batch lookup: up to 20 gene symbols. Species defaults to homo_sapiens; set species for other organisms. Returns a succeeded/failed split. Provide exactly one of symbol, id, ids, or symbols. | |
| expand_transcripts | No | When true, include the full transcript list in the response. Each transcript has its ID, biotype, canonical flag, and coordinates. Default is false to keep responses compact. |
Output Schema
| Name | Required | Description |
|---|---|---|
| gene | No | Single gene record. Present for symbol or id lookups. |
| batch | No | Batch results. Present for ids or symbols lookups. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Despite annotations already providing readOnly, openWorld, and idempotent hints, the description adds substantial behavioral detail: the required mutual exclusivity of symbol/id/ids/symbols, the made-up of up to 20 items with a succeeded/failed split, the species default for symbol lookups, and the expand_transcripts flag with its default and effect on response size. These details go well beyond what annotations offer.
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 the primary purpose and immediately establishes the tool's role. It is relatively long but every sentence carries useful information (modes, batch constraints, defaults, pointer to list_species). Slight density prevents a perfect score, but it is 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?
The description is complete for a lookup tool given that an output schema exists (so return format doesn't need to be spelled out), annotations cover safety semantics, and the description covers all relevant usage modes, constraints, defaults, and batch behavior. It also links to a sibling tool for species discovery, providing adequate context for the agent to choose 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 schema already provides 100% parameter descriptions, so the baseline is 3. The description adds extra semantics: 'Provide exactly one of symbol, id, ids, or symbols' clarifies a cross-parameter constraint not visible in the schema, and it reiterates the species default and batch limits, reinforcing the meaning beyond the schema fields.
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 uses a specific verb phrase ('Resolve a gene by symbol + species (or by stable ID)') and lists exact outputs (Ensembl ID, genomic location, biotype, description, transcript list). It also distinguishes itself from sibling tools by calling itself the 'entry point for most workflows' and noting that its outputs feed other tools.
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 clearly states when to use this tool ('entry point for most workflows') and provides contextual usage rules (when to use symbol vs ID lookup, batch vs single, species default). It also points to the sibling tool ensembl_list_species for discovering valid species names. However, it does not explicitly contrast with other sibling tools like get_sequence or get_homology, so the 'alternatives' guidance is partial.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ensembl_predict_variantPredict Variant EffectARead-onlyIdempotentInspect
Predict the functional consequences of a sequence variant using the Ensembl Variant Effect Predictor (VEP). Accepts three input formats: HGVS notation (transcript-relative, e.g. ENST00000380152.8:c.2T>A, or genomic, e.g. 13:g.32316462T>A); region+allele (chr:start:end:strand/allele, e.g. 1:65568:65568:1/T); and a dbSNP rsID (e.g. rs334). Returns the most severe consequence term, affected transcripts and genes, impact level (HIGH/MODERATE/LOW/MODIFIER), and any colocated known variants with clinical significance. HGVS input: provide the full notation including transcript version for best results. Region+allele input: Ensembl normalizes chromosome names and canonical vertebrate output omits the chr prefix (a chr-prefixed name is also accepted). By default the response caps transcript consequences (max_transcript_consequences) and per-variant PubMed IDs (max_pubmed_ids_per_variant) to keep large VEP results compact — well-studied variants like rs334 otherwise carry 60+ consequences and 100+ citations. Truthful totals are always reported; set a cap to 0 (or include_all_colocated_pubmed=true) to retrieve the full set.
| Name | Required | Description | Default |
|---|---|---|---|
| species | No | Species in Ensembl internal format. Default is homo_sapiens. For non-human variants, set the appropriate species (e.g. mus_musculus for mouse). Use ensembl_list_species to discover valid values. | homo_sapiens |
| variant | Yes | Variant in one of three formats: (1) HGVS notation — transcript-relative: ENST00000380152.8:c.2T>A; genomic: 13:g.32316462T>A; (2) Region+allele: chr:start:end:strand/allele — e.g. 1:65568:65568:1/T (strand is 1 for forward or -1 for reverse); (3) dbSNP rsID — e.g. rs334. Ensembl normalizes chromosome names; canonical vertebrate output omits the "chr" prefix, though a chr-prefixed name is also accepted. | |
| max_pubmed_ids_per_variant | No | Maximum PubMed IDs to return per colocated known variant. Well-studied variants (e.g. rs334) cite 100+ papers; the default trims each list. Set to 0 to return every PubMed ID uncapped. pubmedTotal on each colocated variant reports the true pre-cap count. Ignored when include_all_colocated_pubmed is true. | |
| max_transcript_consequences | No | Maximum transcript consequences to return per VEP record. High-impact variants can affect 60+ transcripts; the default keeps the response focused on the top consequences. Set to 0 to return every transcript consequence uncapped. transcriptConsequencesTotal on each record always reports the true pre-cap count. | |
| include_all_colocated_pubmed | No | When true, return every PubMed ID for each colocated variant, overriding max_pubmed_ids_per_variant. Default false to keep responses compact. |
Output Schema
| Name | Required | Description |
|---|---|---|
| cap | No | The max_transcript_consequences limit applied. |
| shown | No | Total transcript consequences returned across all records after the cap. |
| notice | No | Guidance when no results are returned or when caps omitted detail. |
| results | Yes | VEP consequence records — typically one per input variant. Multiple records appear when a single notation matches multiple genomic positions. |
| truncated | No | True when transcript consequences were capped at max_transcript_consequences. |
| totalCount | Yes | Number of VEP consequence records returned. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes beyond the readOnly and idempotent annotations by disclosing substantive behaviors: chromosome name normalization, default caps on transcript consequences and PubMed IDs, how to bypass caps, and that truthful totals are always reported. This gives the agent an accurate mental model of response truncation and how to retrieve full data.
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 moderately long (six sentences) but every sentence adds crucial information: purpose, three input formats, output summary, normalization, and cap behaviors. It is well-structured and avoids redundancy, making it appropriately concise for the tool's complexity.
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?
With 5 parameters, 3 input formats, and an output schema, the description covers all key aspects: how to specify variants, what results are returned, and how to control response size. It integrates annotations and provides enough operational detail 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?
Because the schema already provides detailed descriptions for all 5 parameters (100% coverage), the description's extra examples and rationale (e.g., 'well-studied variants like rs334 otherwise carry 60+ consequences and 100+ citations') add useful context beyond the schema, such as guidance to include transcript version for best HGVS results. This enriches parameter understanding.
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 and resource: 'Predict the functional consequences of a sequence variant using the Ensembl Variant Effect Predictor (VEP).' It clearly differentiates from sibling tools (e.g., ensembl_get_sequence, ensembl_lookup_gene) by specifying the variant-effect prediction use case and lists input formats and output types.
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 (when you need functional consequence prediction for a sequence variant), and gives practical guidance on selecting among input formats (HGVS, region+allele, or rsID). It does not explicitly name alternatives or exclusions, but the niche is well-defined relative to sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ensembl_query_regionQuery Genomic RegionARead-onlyIdempotentInspect
Find genomic features overlapping a chromosomal region: genes, transcripts, variants, regulatory elements, or exons. Returns each feature with its stable ID, type, location, biotype, and name. Useful for "what's in this locus?" and for seeding follow-up lookups. Region format is chr:start-end (e.g. 13:32315086-32400268 for the BRCA2 locus). Ensembl normalizes chromosome names and canonical vertebrate output omits the chr prefix (13, not chr13); a chr-prefixed name like chr13 is also accepted. The feature parameter defaults to gene only to prevent overwhelming returns — requesting variation in an 85 kb region returns 44,000+ entries. Explicitly include variation, regulatory, transcript, or exon only when needed. Exon rows carry the parent transcript ID, so the same exon appears once per transcript it belongs to.
| Name | Required | Description | Default |
|---|---|---|---|
| region | Yes | Genomic region in chr:start-end format (e.g. 13:32315086-32400268). Ensembl normalizes chromosome names and canonical vertebrate output omits the chr prefix (13, not chr13); a chr-prefixed name like chr13 is also accepted. For large regions (>100 kb), limit to gene feature type to avoid overwhelming results. | |
| biotype | No | Optional biotype filter (e.g. protein_coding, lncRNA, SNV). Applied server-side by Ensembl. Not all feature types support biotype filtering. | |
| feature | No | Feature types to retrieve. Default is gene only. Requesting variation in a large region can return tens of thousands of features. Include variation only for targeted small regions (single gene loci or smaller). | |
| species | Yes | Species in Ensembl internal format (e.g. homo_sapiens, mus_musculus). Use ensembl_list_species to discover valid values. |
Output Schema
| Name | Required | Description |
|---|---|---|
| notice | No | Warning or guidance about the result set. |
| region | Yes | The region queried, as provided. |
| species | Yes | The species queried. |
| features | Yes | Genomic features found in the requested region. |
| totalCount | Yes | Number of features returned. Note: very large regions may return truncated results. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Given the read-only, idempotent annotations, the description adds valuable behavioral context: Ensembl normalizes chromosome names, canonical output drops the 'chr' prefix, and exon rows carry parent transcript IDs causing duplicates. It also discloses the risk of huge outputs for variation queries. This goes well beyond the annotations.
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 a single, well-organized paragraph that leads with the main purpose, then covers format, normalization, defaults, and pitfalls. Every sentence adds useful information without redundancy, making it appropriately sized for the tool's complexity.
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?
With an output schema present and annotations covering safety, the description still adds necessary context: return fields, normalization, exon duplication, and output-volume warnings. It is complete for a region-query tool, covering both what it returns and how to use it safely.
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 100%, so the baseline is 3. The description repeats some schema content (e.g., region format, default feature type) and adds a concrete example, but does not significantly extend parameter meaning beyond what the schema already provides.
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 immediately states the tool's core action: 'Find genomic features overlapping a chromosomal region' and lists supported feature types (genes, transcripts, variants, regulatory elements, exons). The scope is specific and distinct from sibling tools like ensembl_lookup_gene, and the example with BRCA2 reinforces the purpose.
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 explicitly says when to use it ('what's in this locus?') and warns against retrieving variation in large regions due to output size. It also tells users to explicitly include feature types only when needed. However, it does not name sibling alternatives for different use cases (e.g., ensembl_lookup_gene for gene-by-name queries), so it lacks full when-not/alternative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Servers
- Alicense-qualityCmaintenanceEnables querying Ensembl genomic data including gene lookup, sequence retrieval, homology, variation, and variant effect prediction via MCP tools.11MIT
- AlicenseBqualityDmaintenanceProvides access to the Ensembl genomics REST API with 30+ tools for genomic data including gene lookup, sequence retrieval, genetic variants, cross-species homology, phenotypes, and regulatory features.25ISC
- AlicenseAqualityCmaintenanceEnables variant annotation and effect prediction using the Ensembl VEP API, with support for batch and single queries.91MIT
- AlicenseAqualityDmaintenanceA Model Context Protocol server providing LLMs with access to the Ensembl genomics database, enabling AI assistants to query gene information, sequences, variants, and other genomic data across multiple species.108JavaScriptMIT
Your Connectors
Sign in to create a connector for this server.