Skip to main content
Glama

Server Details

Look up genes, sequences, variants, homologs, and cross-database xrefs from Ensembl REST.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
99.9% over 74 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
cyanheads/ensembl-mcp-server
GitHub Stars
3
Server Listing
ensembl-mcp-server

TDQS

A4.4/5.0

Scored across 7 tools

Disambiguation5/5

Each tool targets a distinct operation and resource: gene resolution, feature discovery by region, sequence retrieval, homology, cross-references, variant effect prediction, and species discovery. Overlap between lookup_gene and query_region is minimal because one resolves a known gene while the other surveys an interval. The descriptions explicitly state entry points and follow-up tools, making selection straightforward.

Naming Consistency5/5

All tools use the same ensembl_ prefix and snake_case verb_noun convention: get_homology, get_sequence, get_xrefs, list_species, lookup_gene, predict_variant, query_region. The verbs vary appropriately by operation but remain predictable and readable. No mixed casing or inconsistent prefixing appears.

Tool Count5/5

Seven tools is well-scoped for an Ensembl server, covering discovery, lookup, sequence, homology, xrefs, region queries, and variant prediction without redundant endpoints. Each tool earns its place and there is no obvious bloat. The set is compact enough for an agent to manage while still supporting core bioinformatics workflows.

Completeness4/5

The surface covers the major Ensembl workflows: species discovery, gene lookup, sequence retrieval, cross-references, homology, region feature queries, and VEP variant consequences. Minor gaps remain, such as dedicated transcript lookup, direct variant annotation beyond VEP, or assembly mapping/liftover, but these are workable via existing tools. Overall the lifecycle is strong for the stated domain.

Available Tools

7 tools
ensembl_get_homologyGet Gene HomologsA
Read-onlyIdempotent
Inspect

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.), percId and percPos (percent identical and positive positions, over the target protein's length), 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. A target_species outside the comparison Ensembl runs for the source species is answered from Ensembl's pan-taxonomic comparison when that comparison holds both species. Includes targetProteinId when available for ensembl_get_sequence with type="protein". targetSymbol is best-effort: a secondary gene lookup shares five seconds across the returned rows and the remaining call deadline; missing names never remove homologs.

NameRequiredDescriptionDefault
idNoEnsembl stable gene ID (e.g. ENSG00000139618). A version suffix (ENSG00000139618.17) is accepted and dropped before the query. Use ensembl_lookup_gene to get the stable ID from a symbol. Cannot be combined with symbol.
typeNoType 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
symbolNoGene symbol in the source species (e.g. BRCA2, TP53). Species defaults to homo_sapiens; set species for other organisms. Cannot be combined with id.
speciesNoSource species (the species the query gene belongs to) in Ensembl internal format. Default is homo_sapiens. Use ensembl_list_species with nameContains (a genus or common name, e.g. mouse) to find valid values.homo_sapiens
max_resultsNoMaximum 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_speciesNoFilter 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 with nameContains (a genus or common name) to find valid values.

Output Schema

NameRequiredDescription
capNoThe max_results limit applied to the homolog list.
errorNoPresent when the call failed. Absent on success.
shownNoNumber of homologs returned after the max_results cap.
noticeNoGuidance when the homologs come from Ensembl's pan-taxonomic comparison, no homologs are found, the list was capped, or symbol enrichment is incomplete.
queryIdNoThe resolved Ensembl gene ID used for the homology query.
homologsNoHomologous genes found for the query gene, capped to max_results. totalCount reports the full count available before the cap.
queryTypeNoThe homology type queried (orthologues, paralogues, or all).
truncatedNoTrue when the homolog list was capped at max_results.
totalCountNoTotal number of homologs available before the max_results cap. Exceeds the returned homologs count when the list was capped.
querySpeciesNoThe source species used for the query.

TDQS

A4.2/5.0
Behavior4/5

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

Goes well beyond the readOnly/idempotent/openWorld annotations: it explains that percId/percPos are measured over the target protein's length, that a target_species outside the source species' comparison run falls back to pan-taxonomic comparison, and that targetSymbol is best-effort under a shared five-second budget and never drops rows. These are meaningful behavioral traits an agent can't infer from structured fields. It stops short of describing pagination beyond max_results or error behavior.

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

Conciseness3/5

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

Front-loaded with the core purpose and return shape, which is good, but the paragraph is dense and mixes return-value documentation, input guidance, fallback semantics, and a caveat about targetSymbol into one block. It's informative but could be restructured into shorter lines; a few clauses (targetSymbol budget detail) are heavier than needed for tool selection.

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

Completeness4/5

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

An output schema exists, yet the description still summarizes the key return fields and the totalCount/cap interaction, plus the protein-ID linkage and the best-effort symbol behavior. For a read-only 6-param tool with full schema coverage, this covers what an agent needs to call it correctly; only error/empty-result behavior is absent.

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

Parameters4/5

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

Schema coverage is already 100%, so baseline is 3; the description adds real value by tying inputs to outputs — targetProteinId feeds ensembl_get_sequence with type="protein", and target_species can be filtered or left open. The pan-taxonomic fallback for out-of-comparison target_species explains a non-obvious parameter behavior not fully captured in the schema.

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?

States a specific verb+resource (find orthologs/paralogs of a gene across species) and enumerates the returned fields (stable ID, species, homology type, percId, percPos, taxonomy level). Clearly distinguished from siblings like ensembl_lookup_gene and ensembl_get_sequence, which are referenced for their respective roles.

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?

Gives concrete use cases ('mouse equivalent of human TP53', 'how conserved is BRCA2 across mammals?') and states the input alternatives (symbol + species or stable gene ID). It doesn't explicitly say when NOT to use it versus a sibling, but the cross-species framing and the pointers to ensembl_lookup_gene for ID resolution and ensembl_list_species for species names make routing clear.

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

ensembl_get_sequenceGet SequenceA
Read-onlyIdempotent
Inspect

Fetch the DNA, cDNA, CDS, or protein sequence for a gene, transcript, protein, or genomic region. Returns a window of the sequence — the first 10,000 characters by default — with its stable ID, molecule type, and full length. When more follows the window, truncated is true and nextOffset is the offset to request next; walking nextOffset reconstructs the whole sequence, and max_length 0 returns everything from offset to the end. 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), spanning at most 10,000,000 bases; a :-1 suffix (13:32315086-32315100:-1) returns the reverse-strand sequence. Regions return genomic DNA only. Protein sequences require a transcript or protein stable ID (ENST…/ENSP…), not a gene ID — use ensembl_lookup_gene and its canonicalTranscript field first; expand_transcripts=true also supplies transcript biotypes and MANE Select accessions.

NameRequiredDescriptionDefault
idYesEnsembl stable ID (ENSG…, ENST…, ENSP…) or a genomic region for region mode — an id containing a colon is a region. A version suffix on a stable ID (ENST00000380152.8) is dropped before the request. 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. Coordinates are whole numbers; start..end works as well as start-end, and a :1 or :-1 suffix picks the strand (13:32315086-32315100:-1 returns the reverse complement). A region needs start at or below end, within the sequence region, and spans at most 10,000,000 bases. Name chromosomes as Ensembl does (13, X, MT; chr13 also works); the mitochondrion is MT in vertebrates, mitochondrion_genome in Drosophila, and MtDNA in C. elegans. M and chrM are accepted only where Ensembl resolves them to the mitochondrion (Drosophila, for one); elsewhere they fail as invalid_region naming the mitochondrion of the species.
typeNoSequence 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). Region ids are genomic-only — request cdna, cds, or protein from a transcript or protein stable ID. A protein ID (ENSP…) serves only its protein; a non-coding transcript has no protein or cds.genomic
offsetNo0-based character offset where the returned window starts, counted in the resolved sequence (including any expand_5prime/expand_3prime flank). Default 0. Pass nextOffset from a truncated response to fetch the following window; an offset at or past the end returns an empty window.
speciesNoSpecies in Ensembl internal format (e.g. homo_sapiens). Required for a bare chr:start-end region. For the species:chr:start-end form the species in id takes precedence and this field is ignored. Unused for stable ID lookups — Ensembl infers species from the ID prefix.
max_lengthNoMaximum number of characters in the returned window. Default 10000. Set to 0 to return everything from offset to the end, uncapped.
expand_3primeNoNumber of base pairs to extend downstream (3' direction) of the requested feature. Default 0. Only applies to genomic sequences and region queries; on a :-1 region it extends the lower coordinate.
expand_5primeNoNumber of base pairs to extend upstream (5' direction) of the requested feature. Default 0. Only applies to genomic sequences and region queries; on a :-1 region it extends the higher coordinate.

Output Schema

NameRequiredDescription
idNoThe stable ID or region used for the lookup.
seqNoThe requested window of the sequence: at most max_length characters starting at offset. DNA sequences use IUPAC nucleotide codes (ACGT + ambiguity codes); protein sequences use single-letter amino acid codes. Empty when offset is at or past the end.
typeNoSequence type returned (genomic, cdna, cds, or protein).
errorNoPresent when the call failed. Absent on success.
lengthNoFull sequence length in characters, not the window size — nucleotides for genomic/cdna/cds, amino-acid residues for protein. Includes any expand_5prime/expand_3prime flank.
noticeNoGuidance about the window: how to continue when truncated, or why it is empty when the offset is past the end.
offsetNo0-based character offset where this window starts.
truncatedNoTrue when more sequence follows this window; request nextOffset to continue.
nextOffsetNoOffset of the first character after this window — pass it as offset to fetch the next window. Present only when truncated.
descriptionNoSequence description from Ensembl, if provided.

TDQS

A4.6/5.0
Behavior4/5

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

Annotations only declare read-only/idempotent/open-world, so the description carries the real behavioral burden, and it does: windowing, the truncated flag plus nextOffset walk, max_length 0 semantics, reverse-strand via :-1, and the 10,000,000-base region cap. It stops short of describing error behaviors or response shape in full, but far exceeds the annotation baseline.

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?

Front-loads the core purpose and pagination contract before type selection and region syntax, so an agent can stop reading early. It is dense and long, but nearly every clause carries operational detail rather than filler.

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

Completeness5/5

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

For a complex sequence-fetch tool with 7 parameters, an output schema, and rich annotations, all call-critical details are present: input modes, type semantics, pagination, strand handling, size limits, and prerequisite lookups. Nothing an agent needs to invoke it correctly is missing.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3, but the description adds cross-parameter interplay the schema states only in isolation: species-in-id precedence over the species field, expand_5prime/expand_3prime behavior flipping on a :-1 region, and which ID types satisfy each sequence type.

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?

Opens with a specific verb and resource ('Fetch the DNA, cDNA, CDS, or protein sequence') and enumerates the accepted ID/region inputs. It also routes the agent away from a sibling by naming ensembl_lookup_gene for the gene→transcript step, so it is distinguishable without opening other schemas.

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

Usage Guidelines5/5

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

States exactly which parameter selection produces which result (genomic/cdna/cds/protein), when region mode applies, and the constraint that protein sequences require a transcript or protein ID — directing the agent to ensembl_lookup_gene first. When-not guidance is implicit but clear (a gene ID cannot serve protein/cdna).

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 ReferencesA
Read-onlyIdempotent
Inspect

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, plus how Ensembl assigned it (infoType, infoText) and its evidence codes (linkageTypes, such as GO evidence codes) when supplied. By default only the requested object level is queried; all_levels=true includes transcript and translation references for a gene. The dbname filter narrows this scope. IDs returned here chain onward: a Uniprot/SWISSPROT accession to UniProt (protein function) and PubChem (bioassays against the protein), MIM_GENE to OMIM (disease), Reactome_gene and Reactome to Reactome (pathways), and PDB to structure sources. Requires an Ensembl stable ID — use ensembl_lookup_gene to get the ENSG… ID first. Common dbname values: HGNC, Uniprot_gn, Uniprot/SWISSPROT (reviewed UniProt accession, held on the translation: use all_levels=true from a gene or transcript), EntrezGene, MIM_GENE, RefSeq_mRNA, RefSeq_peptide, Reactome_gene (gene pathways), Reactome (translation pathways), GO (Gene Ontology), ChEMBL.

NameRequiredDescriptionDefault
idYesEnsembl stable gene (ENSG…), transcript (ENST…), or translation (ENSP…) ID. A version suffix on an ENS… ID (ENSG00000139618.17) is dropped before the request. Use ensembl_lookup_gene to get the stable ID from a gene symbol. References default to this object level; all_levels=true includes child objects.
dbnameNoFilter to a specific external database by its Ensembl internal name. Examples: HGNC (HGNC gene ID), Uniprot_gn (UniProt gene name), Uniprot/SWISSPROT (reviewed UniProt accession, on the translation), EntrezGene (NCBI Gene ID), MIM_GENE (OMIM disease gene), RefSeq_mRNA (NCBI RefSeq transcript), Reactome_gene (gene pathways), Reactome (translation pathways), GO (Gene Ontology terms). Transcript/translation references may require all_levels=true or the specific feature ID. Omit to return every database within the selected scope.
all_levelsNoInclude references on child objects: a gene includes its transcripts and translations. Default false queries only the requested object level, independently of dbname.

Output Schema

NameRequiredDescription
errorNoPresent when the call failed. Absent on success.
xrefsNoCross-database references for the queried Ensembl ID.
noticeNoGuidance when no cross-references are found.
queriedIdNoThe Ensembl stable ID as submitted, including any version suffix.
totalCountNoTotal number of cross-references returned.

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnly/openWorld/idempotent, so the safety profile is covered; the description adds the non-obvious behavioral rule that queries are scoped to the requested object level by default and that dbname does not implicitly widen that scope. It also discloses the shape of each xref record (infoType, infoText, linkageTypes) and that evidence codes appear only when supplied. Slight over-investment in describing return fields that an output schema already covers keeps it from a 5.

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?

Front-loaded with purpose and return shape, then scope rules, then the chaining map — a sensible ordering. It is dense and every clause carries information, but the two long enumerations of dbname values duplicate the schema and could be trimmed without loss.

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

Completeness5/5

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

Covers purpose, precondition, scope defaults, filtering, evidence-code caveats, and the cross-database chaining graph that lets an agent decide which xrefs to fetch next. Combined with a rich input schema, annotations, and an output schema, nothing needed to invoke it correctly is missing.

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 id, dbname, and all_levels thoroughly — including the same list of database examples the description repeats. The description's genuine additions are the downstream chaining guidance (MIM_GENE to OMIM, PDB to structure, etc.) and the note that the reviewed UniProt accession sits on the translation. Baseline 3 given heavy overlap with the schema text.

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?

States a specific verb and resource (retrieve cross-database references for a gene or feature) and immediately enumerates the database families returned, so an agent knows exactly what class of data this yields versus ensembl_get_sequence or ensembl_get_homology. It also names the prerequisite sibling, ensembl_lookup_gene, making the boundary explicit.

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

Usage Guidelines5/5

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

Explicitly states the precondition ('Requires an Ensembl stable ID — use ensembl_lookup_gene to get the ENSG… ID first'), explains the default object-level scope versus all_levels=true, and tells the agent precisely when all_levels is needed (Uniprot/SWISSPROT is held on the translation). It also gives the onward-chaining use cases that motivate choosing a given dbname.

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 SpeciesA
Read-onlyIdempotent
Inspect

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. Use nameContains to find a species by partial name match; filter by division to select one. With no division, lists the endpoint default division — the vertebrates (~356 species on the default GRCh38 endpoint). Species are sorted by internal name and returned max_results at a time (default 50); totalCount reports every match, and when more follow, nextOffset is the offset for the next page.

NameRequiredDescriptionDefault
offsetNo0-based position in the name-sorted matches where the returned page starts. Default 0. Pass nextOffset from a previous response to fetch the following page; an offset at or past totalCount returns no species.
divisionNoFilter 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).
max_resultsNoMaximum number of species to return, counted from offset. Default 50. Set to 0 to return every matching species from offset to the end, uncapped. totalCount always reports the full number of matches before this cap.
nameContainsNoCase-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

NameRequiredDescription
capNoThe max_results limit applied to this page.
errorNoPresent when the call failed. Absent on success.
shownNoNumber of species returned on this page.
noticeNoGuidance when the filter matches no species, the offset is past the end, or more species follow this page.
speciesNoSpecies matching the filter criteria, sorted by internal name: at most max_results entries starting at offset.
truncatedNoTrue when more matching species follow this page; request nextOffset to continue.
nextOffsetNoOffset of the first species after this page — pass it as offset to fetch the next page. Present only when more species follow.
totalCountNoTotal number of matching species after local filtering, before offset and max_results. Exceeds the returned species count when the list was paged.

TDQS

A4.6/5.0
Behavior5/5

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

The annotations already declare readOnlyHint, openWorldHint, and idempotentHint, but the description adds important behavioral detail: species are sorted by internal name, results are paginated with max_results defaulting to 50, totalCount reports the full match count, and nextOffset gives the next page position. It also discloses the default division and approximate species count, which helps the agent anticipate result scope.

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 front-loaded with the purpose and required discovery-step rationale, then moves through filtering and pagination. It is dense and mostly earns its place, though the opening enumeration of returned fields partially duplicates information available in the output schema.

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

Completeness5/5

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

Given an output schema, the description need not explain return structure, and it does not overreach there. It covers the tool's purpose, discovery role, filtering options, default behavior, sorting, pagination, and result counts, leaving no meaningful gap for an agent deciding how to call it.

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 coverage is 100%, so each parameter is already well documented in the input schema. The description reinforces nameContains, division, and pagination usage, but adds little parameter-specific meaning beyond what the schema already provides, only marginally deepening the default-division context with the ~356 vertebrate count.

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 states a specific verb and resource: list species supported by Ensembl, including the fields returned. It also explicitly frames the tool as the required discovery step whose output format every other Ensembl sibling expects, making it easy to distinguish from tools that operate on genes, regions, or sequences.

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

Usage Guidelines5/5

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

It tells the agent when to use the tool: as the required discovery step before other Ensembl tools. It also explains the two filtering routes, nameContains for partial-name search and division for selecting a specific Ensembl division, and notes the default division when neither is used.

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

ensembl_lookup_geneLookup GeneA
Read-onlyIdempotent
Inspect

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). A symbol that is not a current gene name is matched against synonyms and former symbols (HER2 → ERBB2), reported as matchedAlias; when it maps to several genes the result is ambiguous, listing the candidates to retry by id. Supports batch submission of up to 1,000 IDs or symbols: the first 20 distinct queries are resolved, and batch.omitted names the unattempted remainder to resubmit. 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 with nameContains (a genus or common name) to find valid species names.

NameRequiredDescriptionDefault
idNoEnsembl stable gene ID (e.g. ENSG00000139618). A version suffix on an ENS… ID (ENSG00000139618.19) is dropped before the lookup, which returns the current version. Species is not required for ID lookup.
idsNoBatch submission: up to 1,000 Ensembl stable IDs (ENSG…, ENST…); resolves the first 20 distinct trimmed queries. batch.omitted names the remainder to resubmit. A version suffix on an ENS… ID is dropped before the lookup. Returns a succeeded/failed/omitted partition; each attempted item carries its query — the ID as submitted, version included — and each failed item a reason and recovery. Provide exactly one of symbol, id, ids, or symbols.
symbolNoGene symbol to look up (e.g. BRCA2, TP53, EGFR). Species defaults to homo_sapiens; set species for other organisms. Case-insensitive in most species. A synonym or former symbol (HER2, TB1) resolves too; one shared by several genes returns ambiguous with the candidates instead of gene.
speciesNoSpecies 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 with nameContains (a genus or common name) to find valid values.
symbolsNoBatch submission: up to 1,000 gene symbols; resolves the first 20 distinct trimmed queries. batch.omitted names the remainder to resubmit. Species defaults to homo_sapiens; set species for other organisms. Returns a succeeded/failed/omitted partition; each attempted item carries its submitted query. Synonyms and former symbols resolve with matchedAlias; one shared by several genes fails with reason ambiguous and its candidates. Provide exactly one of symbol, id, ids, or symbols.
expand_transcriptsNoWhen 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

NameRequiredDescription
geneNoSingle gene record. Present for an id lookup, or a symbol lookup that resolved to one gene.
batchNoBatch results. Present for ids or symbols lookups.
errorNoPresent when the call failed. Absent on success.
noticeNoGuidance for resubmitting unattempted batch queries.
ambiguousNoPresent instead of gene when a symbol is not a current gene name and is a synonym or former symbol of several genes.

TDQS

A4.8/5.0
Behavior5/5

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

Annotations cover the safety profile (readOnly, idempotent, openWorld), and the description adds substantive behavior beyond them: batch truncation to the first 20 distinct queries with batch.omitted naming the remainder, alias/former-symbol matching surfaced as matchedAlias, ambiguous multi-gene hits returning candidates rather than a gene, and version-suffix normalization on ENS… IDs.

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?

Front-loaded with the verb+resource+returns, then constraints, then routing to a sibling — a sensible order. It is dense prose in one block and the batch/alias/ambiguity details could be trimmed or split, but nearly every sentence carries invocation-relevant information.

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

Completeness5/5

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

For a lookup tool with a full output schema, the description supplies everything needed to call it correctly: exactly-one-of input rule, species defaults and format, batch cap and resubmission behavior, and alias/ambiguity handling. Nothing material is left to inference.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds meaning the schema cannot express: the mutual-exclusivity rule across symbol/id/ids/symbols (no oneOf in the schema), the homo_sapiens default only for symbol lookups, and that species is unnecessary for ID lookups. These are genuinely decision-relevant cross-parameter semantics.

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?

States a specific verb (resolve/lookup) and resource (gene) plus the exact return payload: Ensembl ID, location, biotype, description, transcript list. It also positions itself against siblings by declaring it the entry point whose outputs feed other tools, so an agent can place it in the workflow without opening a schema.

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

Usage Guidelines5/5

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

Gives explicit when-to-use (entry point for most workflows), the alternatives/next steps (other tools consume the returned ID and coordinates), a routing rule for a sibling (use ensembl_list_species with nameContains to find valid species), and a hard input constraint (provide exactly one of symbol, id, ids, or symbols).

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 EffectA
Read-onlyIdempotent
Inspect

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.

NameRequiredDescriptionDefault
speciesNoSpecies 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 with nameContains (a genus or common name) to find valid values.homo_sapiens
variantYesVariant 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_variantNoMaximum 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_consequencesNoMaximum 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_pubmedNoWhen true, return every PubMed ID for each colocated variant, overriding max_pubmed_ids_per_variant. Default false to keep responses compact.

Output Schema

NameRequiredDescription
capNoThe max_transcript_consequences limit applied.
errorNoPresent when the call failed. Absent on success.
shownNoTotal transcript consequences returned across all records after the cap.
noticeNoGuidance when no results are returned or when caps omitted detail.
resultsNoVEP consequence records — typically one per input variant. Multiple records appear when a single notation matches multiple genomic positions.
truncatedNoTrue when transcript consequences were capped at max_transcript_consequences.
totalCountNoNumber of VEP consequence records returned.

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, openWorld), so the bar is lower. The description nonetheless adds real behavioral context: default caps on transcript consequences and PubMed IDs, the fact that true totals are always reported, and the 0 / include_all_colocated_pubmed escape hatch. It does not discuss failure modes (bad HGVS, unknown rsID) or rate limits.

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

Conciseness3/5

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

Purpose and inputs are front-loaded effectively, but the single dense paragraph repeats the three input formats and the chr-prefix normalization rule almost word-for-word from the input schema, so several sentences do not earn their place. The genuinely additive material (default caps and how to disable them) is buried at the end.

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

Completeness5/5

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

With an output schema present, return values need not be documented, yet the description still summarizes the key fields. It covers all three input formats, species defaults, and cap behavior — everything an agent needs to construct a correct call.

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

Parameters4/5

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 adds meaning beyond the schema by explaining *why* the caps default as they do (well-studied variants like rs334 carry 60+ consequences and 100+ citations) and by cross-linking the two cap parameters to include_all_colocated_pubmed, though much of the format syntax is restated verbatim from the schema.

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 names a specific verb and resource ('predict the functional consequences of a sequence variant') and identifies the underlying engine (Ensembl VEP). It is clearly distinguishable from siblings like ensembl_query_region or ensembl_lookup_gene, which retrieve coordinates or annotations rather than predicting effect.

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?

It tells the agent which of three input formats to supply and how chromosome naming is normalized, which is genuinely useful usage context. However, it never states when to prefer this tool over the sibling tools (e.g. query_region or lookup_gene) or any conditions under which it should not be used, so tool-selection guidance is only implied.

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 RegionA
Read-onlyIdempotent
Inspect

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, plus the genome assembly the coordinates are on. Useful for "what's in this locus?" and for seeding follow-up lookups. Region format is chr:start-end with species set (e.g. 13:32315086-32400268 for the BRCA2 locus), or species:chr:start-end (e.g. homo_sapiens:13:32315086-32400268), spanning at most 5,000,000 bases. 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 — requesting variation in an 85 kb region matches 44,000+ entries. Explicitly include variation, regulatory, transcript, or exon only when needed. The response returns up to max_results features (default 100) while totalCount always reports the full count; set max_results to 0 for every feature, or query a smaller region to see a different slice. Exon rows carry the parent transcript ID, so the same exon appears once per transcript it belongs to.

NameRequiredDescriptionDefault
regionYesGenomic region as chr:start-end with species set (e.g. 13:32315086-32400268), or species:chr:start-end (e.g. homo_sapiens:13:32315086-32400268), with start at or below end. Ensembl serves at most 5,000,000 bases per region; split a larger area into smaller windows. 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 mitochondrion is MT in vertebrates, mitochondrion_genome in Drosophila, and MtDNA in C. elegans; M and chrM are accepted only where Ensembl resolves them to the mitochondrion (Drosophila, for one) and otherwise fail as invalid_region naming the mitochondrion of the species. For large regions (>100 kb), limit to gene feature type to avoid overwhelming results.
biotypeNoOptional biotype filter (e.g. protein_coding, lncRNA, SNV). Case-sensitive (lncRNA, not lncrna); remove the filter to inspect all matching feature types. Applied server-side by Ensembl. Not all feature types support biotype filtering.
featureNoFeature types to retrieve — at least one. Default is gene only. Requesting variation in a large region can match tens of thousands of features. Include variation only for targeted small regions (single gene loci or smaller).
speciesNoSpecies in Ensembl internal format (e.g. homo_sapiens, mus_musculus). Required for a bare chr:start-end region; for the species:chr:start-end form the species in region takes precedence and this field is ignored. Use ensembl_list_species with nameContains (a genus or common name, e.g. mouse) to find valid values.
max_resultsNoMaximum number of features to return. A gene-length region can hold tens of thousands of variation features; the default keeps the response compact. Set to 0 to return every feature uncapped. totalCount always reports the true number found before this cap.

Output Schema

NameRequiredDescription
capNoThe max_results limit applied to the feature list.
errorNoPresent when the call failed. Absent on success.
shownNoNumber of features returned after the max_results cap.
noticeNoGuidance about the result set: empty, large, capped, or missing assembly.
regionNoThe region queried, as provided minus any species prefix (reported as species).
speciesNoThe species queried: the region's species prefix when it has one, otherwise the species field.
featuresNoGenomic features found in the requested region, capped to max_results. totalCount reports the full count found before the cap.
truncatedNoTrue when the feature list was capped at max_results.
totalCountNoTotal number of features found in the region before the max_results cap. Exceeds the returned features count when the list was capped.
assemblyNameNoGenome assembly the coordinates are on (e.g. GRCh38). Omitted only when it could not be resolved, in which case the notice says so.

TDQS

A4.6/5.0
Behavior5/5

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

Annotations cover the safety profile (readOnly, idempotent, openWorld), and the description layers on non-obvious behavior: chromosome-name normalization and chr-prefix omission in output, default gene-only feature set, the totalCount-vs-max_results split, max_results=0 as uncapped, and exon rows duplicating per parent transcript. This is exactly the extra context annotations cannot express.

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?

It is long but well front-loaded: purpose, return shape, then region format, then per-parameter caveats. Some sentences (region format, chr-prefix handling) restate schema content, which costs a point, but nothing is padding.

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

Completeness5/5

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

Despite an output schema existing, the description still frames the return shape and adds the pagination/truncation semantics an agent needs to interpret results. Combined with the species-precedence and region-format rules, an agent has everything required to call this correctly.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds rationale the schema lacks: why feature defaults to gene, why variation should be limited to small loci, and the operational meaning of max_results=0 vs the default cap. The region-format explanation largely duplicates the schema, keeping it below 5.

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?

Opens with a specific verb+resource ('Find genomic features overlapping a chromosomal region') and enumerates the five feature types returned. An agent can immediately distinguish this region-scan tool from ensembl_lookup_gene, ensembl_get_sequence, or ensembl_get_homology without opening any schema.

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?

Gives concrete usage context ('what's in this locus?', seeding follow-up lookups) and explicit guidance on when to include variation/regulatory/transcript/exon ('only when needed', with the 85 kb → 44,000 entries rationale). It does not explicitly name a sibling as the alternative for overlapping use cases, so it falls short of a 5.

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.

  1. 2 tool updates
    • Changedensembl_get_homology5 fields changed
      • changedOutput schema / properties / error / properties / data / properties / reason / description
        Previous value: -"Machine-readable failure mode. Declared by this tool: `not_found`: The gene symbol or stable ID was not found in Ensembl for the source species. `invalid_species`: The species or target_species string was not recognized by Ensembl. `no_input`: Neither symbol nor id was provided. `conflicting_input`: Both symbol and id were provided. Other values are possible when a failure originates below the handler."New value: +"Machine-readable failure mode. Declared by this tool: `not_found`: The gene symbol or stable ID was not found in Ensembl for the source species. `invalid_species`: The species or target_species string was not recognized by Ensembl. `target_not_compared`: Both species are valid, but target_species is outside the comparison Ensembl runs for the source species, and Ensembl's pan-taxonomic comparison does not hold both species or its species list could not be read. `no_input`: Neither symbol nor id was provided. `conflicting_input`: Both symbol and id were provided. Other values are possible when a failure originates below the handler."
      • changedOutput schema / properties / error / properties / data / properties / reason / examples
        Previous value: -[
        -  "not_found",
        -  "invalid_species",
        -  "no_input",
        -  "conflicting_input"
        -]New value: +[
        +  "not_found",
        +  "invalid_species",
        +  "target_not_compared",
        +  "no_input",
        +  "conflicting_input"
        +]
      • changedOutput schema / properties / homologs / items / properties / percId / description
        Previous value: -"Percent identity between the query and target gene sequences (0-100). Higher values indicate more conserved sequences."New value: +"Percent identity over the target protein's length (0-100): identical positions divided by the target protein's length. The query-side value differs when the two proteins differ in length."
      • changedOutput schema / properties / homologs / items / properties / percPos / description
        Previous value: -"Percent positive (similar) positions in the alignment (0-100). Includes conservative substitutions as well as identical residues."New value: +"Percent positive positions over the target protein's length (0-100): identical residues plus conservative substitutions, divided by the target protein's length."
      • changedOutput schema / properties / notice / description
        Previous value: -"Guidance when no homologs are found, the list was capped, or symbol enrichment is incomplete."New value: +"Guidance when the homologs come from Ensembl's pan-taxonomic comparison, no homologs are found, the list was capped, or symbol enrichment is incomplete."
    • Changedensembl_get_xrefs5 fields changed
      • changedInput schema / properties / dbname / description
        Previous value: -"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_gene (gene pathways), Reactome (translation pathways), GO (Gene Ontology terms). Transcript/translation references may require all_levels=true or the specific feature ID. Omit to return every database within the selected scope."New value: +"Filter to a specific external database by its Ensembl internal name. Examples: HGNC (HGNC gene ID), Uniprot_gn (UniProt gene name), Uniprot/SWISSPROT (reviewed UniProt accession, on the translation), EntrezGene (NCBI Gene ID), MIM_GENE (OMIM disease gene), RefSeq_mRNA (NCBI RefSeq transcript), Reactome_gene (gene pathways), Reactome (translation pathways), GO (Gene Ontology terms). Transcript/translation references may require all_levels=true or the specific feature ID. Omit to return every database within the selected scope."
      • changedOutput schema / properties / xrefs / items / properties / dbname / description
        Previous value: -"Database name in Ensembl internal format (e.g. HGNC, Uniprot_gn, EntrezGene, MIM_GENE, RefSeq_mRNA)."New value: +"Database name in Ensembl internal format (e.g. HGNC, Uniprot_gn, Uniprot/SWISSPROT, EntrezGene, MIM_GENE, RefSeq_mRNA)."
      • addedOutput schema / properties / xrefs / items / properties / infoText
        Added value: +{
        +  "description": "Detail Ensembl records for the assignment: its source (e.g. UniProt, GO_Central) or, for a projection, the ortholog it came from. Omitted when blank.",
        +  "type": "string"
        +}
      • addedOutput schema / properties / xrefs / items / properties / infoType
        Added value: +{
        +  "description": "How Ensembl assigned the reference, e.g. DIRECT (from the external database), DEPENDENT (derived from another reference), PROJECTION (projected from an ortholog), SEQUENCE_MATCH, CHECKSUM.",
        +  "type": "string"
        +}
      • addedOutput schema / properties / xrefs / items / properties / linkageTypes
        Added value: +{
        +  "description": "Evidence codes supporting the reference — GO evidence codes on GO terms (e.g. IDA experimental, IEA electronic, ISS sequence similarity). Omitted when Ensembl lists none.",
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
  2. 5 tool updates
    • Changedensembl_get_homology3 fields changed
      • addedOutput schema / properties / homologs / items / properties / targetProteinId
        Added value: +{
        +  "description": "Target translation stable ID. Pass to ensembl_get_sequence with type=\"protein\".",
        +  "type": "string"
        +}
      • addedOutput schema / properties / homologs / items / properties / targetSymbol
        Added value: +{
        +  "description": "Target gene display name, when a bounded secondary lookup resolves it.",
        +  "type": "string"
        +}
      • changedOutput schema / properties / notice / description
        Previous value: -"Guidance when no homologs are found or the list was capped."New value: +"Guidance when no homologs are found, the list was capped, or symbol enrichment is incomplete."
    • Changedensembl_get_xrefs4 fields changed
      • addedInput schema / properties / all_levels
        Added value: +{
        +  "default": false,
        +  "description": "Include references on child objects: a gene includes its transcripts and translations. Default false queries only the requested object level, independently of dbname.",
        +  "type": "boolean"
        +}
      • changedInput schema / properties / dbname / description
        Previous value: -"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."New value: +"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_gene (gene pathways), Reactome (translation pathways), GO (Gene Ontology terms). Transcript/translation references may require all_levels=true or the specific feature ID. Omit to return every database within the selected scope."
      • changedInput schema / properties / id / description
        Previous value: -"Ensembl stable gene ID (ENSG…) or transcript ID (ENST…). A version suffix on an ENS… ID (ENSG00000139618.17) is dropped before the request. 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)."New value: +"Ensembl stable gene (ENSG…), transcript (ENST…), or translation (ENSP…) ID. A version suffix on an ENS… ID (ENSG00000139618.17) is dropped before the request. Use ensembl_lookup_gene to get the stable ID from a gene symbol. References default to this object level; all_levels=true includes child objects."
      • changedOutput schema / properties / error / properties / data / properties / reason / description
        Previous value: -"Machine-readable failure mode. Declared by this tool: `not_found`: The Ensembl stable ID was not found or has no cross-references. Other values are possible when a failure originates below the handler."New value: +"Machine-readable failure mode. Declared by this tool: `not_found`: The Ensembl stable ID was not found. An empty cross-reference list remains successful. Other values are possible when a failure originates below the handler."
    • Changedensembl_lookup_gene19 fields changed
      • changedInput schema / properties / ids / description
        Previous value: -"Batch lookup: up to 20 Ensembl stable IDs (ENSG…, ENST…). A version suffix on an ENS… ID is dropped before the lookup. Returns a succeeded/failed split; each item carries its query — the ID as submitted, version included — and each failed item a reason and recovery. Provide exactly one of symbol, id, ids, or symbols."New value: +"Batch submission: up to 1,000 Ensembl stable IDs (ENSG…, ENST…); resolves the first 20 distinct trimmed queries. batch.omitted names the remainder to resubmit. A version suffix on an ENS… ID is dropped before the lookup. Returns a succeeded/failed/omitted partition; each attempted item carries its query — the ID as submitted, version included — and each failed item a reason and recovery. Provide exactly one of symbol, id, ids, or symbols."
      • changedInput schema / properties / ids / maxItems
        Previous value: -20New value: +1000
      • changedInput schema / properties / symbols / description
        Previous value: -"Batch lookup: up to 20 gene symbols. Species defaults to homo_sapiens; set species for other organisms. Returns a succeeded/failed split; each item carries its submitted query. Synonyms and former symbols resolve with matchedAlias; one shared by several genes fails with reason ambiguous and its candidates. Provide exactly one of symbol, id, ids, or symbols."New value: +"Batch submission: up to 1,000 gene symbols; resolves the first 20 distinct trimmed queries. batch.omitted names the remainder to resubmit. Species defaults to homo_sapiens; set species for other organisms. Returns a succeeded/failed/omitted partition; each attempted item carries its submitted query. Synonyms and former symbols resolve with matchedAlias; one shared by several genes fails with reason ambiguous and its candidates. Provide exactly one of symbol, id, ids, or symbols."
      • changedInput schema / properties / symbols / maxItems
        Previous value: -20New value: +1000
      • addedOutput schema / properties / ambiguous / properties / candidates / items / properties / canonicalTranscript
        Added value: +{
        +  "description": "Canonical Ensembl transcript ID, including its version when supplied. Use for a primary protein sequence.",
        +  "type": "string"
        +}
      • addedOutput schema / properties / ambiguous / properties / candidates / items / properties / parentGeneId
        Added value: +{
        +  "description": "Parent gene stable ID for a transcript-ID lookup. Absent for other object types.",
        +  "type": "string"
        +}
      • addedOutput schema / properties / ambiguous / properties / candidates / items / properties / transcripts / items / properties / maneSelect
        Added value: +{
        +  "description": "MANE Select RefSeq transcript accession, when supplied by Ensembl.",
        +  "type": "string"
        +}
      • addedOutput schema / properties / batch / properties / failed / items / properties / candidates / items / properties / canonicalTranscript
        Added value: +{
        +  "description": "Canonical Ensembl transcript ID, including its version when supplied. Use for a primary protein sequence.",
        +  "type": "string"
        +}
      • addedOutput schema / properties / batch / properties / failed / items / properties / candidates / items / properties / parentGeneId
        Added value: +{
        +  "description": "Parent gene stable ID for a transcript-ID lookup. Absent for other object types.",
        +  "type": "string"
        +}
      • addedOutput schema / properties / batch / properties / failed / items / properties / candidates / items / properties / transcripts / items / properties / maneSelect
        Added value: +{
        +  "description": "MANE Select RefSeq transcript accession, when supplied by Ensembl.",
        +  "type": "string"
        +}
      • addedOutput schema / properties / batch / properties / omitted
        Added value: +{
        +  "description": "Queries past the first 20 distinct items, in first-occurrence order. Resubmit these separately.",
        +  "items": {
        +    "description": "A distinct submitted query not attempted in this call.",
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / batch / properties / succeeded / items / properties / canonicalTranscript
        Added value: +{
        +  "description": "Canonical Ensembl transcript ID, including its version when supplied. Use for a primary protein sequence.",
        +  "type": "string"
        +}
      • addedOutput schema / properties / batch / properties / succeeded / items / properties / parentGeneId
        Added value: +{
        +  "description": "Parent gene stable ID for a transcript-ID lookup. Absent for other object types.",
        +  "type": "string"
        +}
      • addedOutput schema / properties / batch / properties / succeeded / items / properties / transcripts / items / properties / maneSelect
        Added value: +{
        +  "description": "MANE Select RefSeq transcript accession, when supplied by Ensembl.",
        +  "type": "string"
        +}
      • changedOutput schema / properties / batch / required
        Previous value: -[
        -  "succeeded",
        -  "failed"
        -]New value: +[
        +  "omitted",
        +  "succeeded",
        +  "failed"
        +]
      • addedOutput schema / properties / gene / properties / canonicalTranscript
        Added value: +{
        +  "description": "Canonical Ensembl transcript ID, including its version when supplied. Use for a primary protein sequence.",
        +  "type": "string"
        +}
      • addedOutput schema / properties / gene / properties / parentGeneId
        Added value: +{
        +  "description": "Parent gene stable ID for a transcript-ID lookup. Absent for other object types.",
        +  "type": "string"
        +}
      • addedOutput schema / properties / gene / properties / transcripts / items / properties / maneSelect
        Added value: +{
        +  "description": "MANE Select RefSeq transcript accession, when supplied by Ensembl.",
        +  "type": "string"
        +}
      • addedOutput schema / properties / notice
        Added value: +{
        +  "description": "Guidance for resubmitting unattempted batch queries.",
        +  "type": "string"
        +}
    • Changedensembl_predict_variant8 fields changed
      • addedOutput schema / properties / results / items / properties / alleleString
        Added value: +{
        +  "description": "Reference and alternate alleles returned by VEP, separated by slashes.",
        +  "type": "string"
        +}
      • changedOutput schema / properties / results / items / properties / colocatedVariants / items / properties / clinicalSignificance / description
        Previous value: -"Clinical significance terms from ClinVar (e.g. pathogenic, benign)."New value: +"Aggregate clinical significance terms for the colocated record; these do not classify the submitted allele."
      • addedOutput schema / properties / results / items / properties / colocatedVariants / items / properties / clinicalSignificanceByAllele
        Added value: +{
        +  "additionalProperties": {
        +    "items": {
        +      "type": "string"
        +    },
        +    "type": "array"
        +  },
        +  "description": "Clinical significance terms keyed by the allele explicitly annotated in the colocated record. Missing alleles have no reported attribution.",
        +  "propertyNames": {
        +    "type": "string"
        +  },
        +  "type": "object"
        +}
      • addedOutput schema / properties / results / items / properties / colocatedVariants / items / properties / clinicalSignificanceReferenceAllele
        Added value: +{
        +  "description": "Reference allele for the colocated clinical annotations, when reported.",
        +  "type": "string"
        +}
      • changedOutput schema / properties / results / items / properties / transcriptConsequences / description
        Previous value: -"Per-transcript consequence details, capped to max_transcript_consequences. High-impact variants may affect many transcripts; focus on canonical transcripts (isCanonical from ensembl_lookup_gene) for primary effect. transcriptConsequencesTotal reports the full count."New value: +"Per-transcript consequence details, capped to max_transcript_consequences. High-impact variants may affect many transcripts; canonical and maneSelect identify annotated primary transcripts. transcriptConsequencesTotal reports the full count."
      • addedOutput schema / properties / results / items / properties / transcriptConsequences / items / properties / canonical
        Added value: +{
        +  "description": "Whether Ensembl marks this consequence transcript as canonical. Omitted when not reported.",
        +  "type": "boolean"
        +}
      • addedOutput schema / properties / results / items / properties / transcriptConsequences / items / properties / maneSelect
        Added value: +{
        +  "description": "MANE Select RefSeq transcript accession, when supplied.",
        +  "type": "string"
        +}
      • addedOutput schema / properties / results / items / properties / transcriptConsequences / items / properties / variantAllele
        Added value: +{
        +  "description": "Allele this transcript consequence describes, in the upstream genomic orientation.",
        +  "type": "string"
        +}
    • Changedensembl_query_region1 field changed
      • changedInput schema / properties / biotype / description
        Previous value: -"Optional biotype filter (e.g. protein_coding, lncRNA, SNV). Applied server-side by Ensembl. Not all feature types support biotype filtering."New value: +"Optional biotype filter (e.g. protein_coding, lncRNA, SNV). Case-sensitive (lncRNA, not lncrna); remove the filter to inspect all matching feature types. Applied server-side by Ensembl. Not all feature types support biotype filtering."
  3. 7 tool updates
    • Changedensembl_get_homology5 fields changed
      • changedInput schema / properties / id / description
        Previous value: -"Ensembl stable gene ID (e.g. ENSG00000139618). Use ensembl_lookup_gene to get the stable ID from a symbol. Cannot be combined with symbol."New value: +"Ensembl stable gene ID (e.g. ENSG00000139618). A version suffix (ENSG00000139618.17) is accepted and dropped before the query. Use ensembl_lookup_gene to get the stable ID from a symbol. Cannot be combined with symbol."
      • changedInput schema / properties / species / description
        Previous value: -"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."New value: +"Source species (the species the query gene belongs to) in Ensembl internal format. Default is homo_sapiens. Use ensembl_list_species with nameContains (a genus or common name, e.g. mouse) to find valid values."
      • changedInput schema / properties / target_species / description
        Previous value: -"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."New value: +"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 with nameContains (a genus or common name) to find valid values."
      • changedOutput schema / properties / error / properties / data / properties / reason / description
        Previous value: -"Machine-readable failure mode. Declared by this tool: `not_found`: The gene symbol or stable ID was not found in Ensembl. `no_input`: Neither symbol nor id was provided. `conflicting_input`: Both symbol and id were provided. Other values are possible when a failure originates below the handler."New value: +"Machine-readable failure mode. Declared by this tool: `not_found`: The gene symbol or stable ID was not found in Ensembl for the source species. `invalid_species`: The species or target_species string was not recognized by Ensembl. `no_input`: Neither symbol nor id was provided. `conflicting_input`: Both symbol and id were provided. Other values are possible when a failure originates below the handler."
      • changedOutput schema / properties / error / properties / data / properties / reason / examples
        Previous value: -[
        -  "not_found",
        -  "no_input",
        -  "conflicting_input"
        -]New value: +[
        +  "not_found",
        +  "invalid_species",
        +  "no_input",
        +  "conflicting_input"
        +]
    • Changedensembl_get_sequence7 fields changed
      • changedInput schema / properties / expand_3prime / description
        Previous value: -"Number of base pairs to extend downstream (3' direction) of the requested feature. Default 0. Only applies to genomic sequences and region queries."New value: +"Number of base pairs to extend downstream (3' direction) of the requested feature. Default 0. Only applies to genomic sequences and region queries; on a :-1 region it extends the lower coordinate."
      • changedInput schema / properties / expand_5prime / description
        Previous value: -"Number of base pairs to extend upstream (5' direction) of the requested feature. Default 0. Only applies to genomic sequences and region queries."New value: +"Number of base pairs to extend upstream (5' direction) of the requested feature. Default 0. Only applies to genomic sequences and region queries; on a :-1 region it extends the higher coordinate."
      • changedInput schema / properties / id / description
        Previous value: -"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. A region needs start at or below end, within the sequence region, and spans at most 10,000,000 bases."New value: +"Ensembl stable ID (ENSG…, ENST…, ENSP…) or a genomic region for region mode — an id containing a colon is a region. A version suffix on a stable ID (ENST00000380152.8) is dropped before the request. 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. Coordinates are whole numbers; start..end works as well as start-end, and a :1 or :-1 suffix picks the strand (13:32315086-32315100:-1 returns the reverse complement). A region needs start at or below end, within the sequence region, and spans at most 10,000,000 bases. Name chromosomes as Ensembl does (13, X, MT; chr13 also works); the mitochondrion is MT in vertebrates, mitochondrion_genome in Drosophila, and MtDNA in C. elegans. M and chrM are accepted only where Ensembl resolves them to the mitochondrion (Drosophila, for one); elsewhere they fail as invalid_region naming the mitochondrion of the species."
      • changedInput schema / properties / species / description
        Previous value: -"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."New value: +"Species in Ensembl internal format (e.g. homo_sapiens). Required for a bare chr:start-end region. For the species:chr:start-end form the species in id takes precedence and this field is ignored. Unused for stable ID lookups — Ensembl infers species from the ID prefix."
      • changedInput schema / properties / type / description
        Previous value: -"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). Region ids are genomic-only — request cdna, cds, or protein from a transcript or protein stable ID."New value: +"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). Region ids are genomic-only — request cdna, cds, or protein from a transcript or protein stable ID. A protein ID (ENSP…) serves only its protein; a non-coding transcript has no protein or cds."
      • changedOutput schema / properties / error / properties / data / properties / reason / description
        Previous value: -"Machine-readable failure mode. Declared by this tool: `not_found`: The stable ID or region was not found in Ensembl. `type_mismatch`: A non-genomic type (cdna, cds, or protein) was requested for a region id or a gene ID. `missing_species`: A bare chr:start-end region was given without a species. `invalid_region`: A region id has its start after its end, starts past the end of its sequence region, spans more than the 10,000,000-base maximum, or names a sequence region the species lacks. Other values are possible when a failure originates below the handler."New value: +"Machine-readable failure mode. Declared by this tool: `not_found`: The stable ID or region was not found in Ensembl. `type_mismatch`: The requested type does not exist for the id: cdna, cds, or protein for a region id or a gene ID; genomic, cdna, or cds for a protein ID; or protein or cds for a non-coding transcript. `invalid_species`: The species of a region (the species field or the species prefix in id) was not recognized by Ensembl. `missing_species`: A bare chr:start-end region was given without a species. `invalid_region`: A region id is not in the [species:]chr:start-end form, has its start after its end, starts past the end of its sequence region, spans more than the 10,000,000-base maximum, names the mitochondrion M or chrM where Ensembl resolves that to another region or none, or names a sequence region the species lacks. Other values are possible when a failure originates below the handler."
      • changedOutput schema / properties / error / properties / data / properties / reason / examples
        Previous value: -[
        -  "not_found",
        -  "type_mismatch",
        -  "missing_species",
        -  "invalid_region"
        -]New value: +[
        +  "not_found",
        +  "type_mismatch",
        +  "invalid_species",
        +  "missing_species",
        +  "invalid_region"
        +]
    • Changedensembl_get_xrefs2 fields changed
      • changedInput schema / properties / id / description
        Previous value: -"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)."New value: +"Ensembl stable gene ID (ENSG…) or transcript ID (ENST…). A version suffix on an ENS… ID (ENSG00000139618.17) is dropped before the request. 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)."
      • changedOutput schema / properties / queriedId / description
        Previous value: -"The Ensembl stable ID that was queried."New value: +"The Ensembl stable ID as submitted, including any version suffix."
    • Changedensembl_list_species9 fields changed
      • addedInput schema / properties / max_results
        Added value: +{
        +  "default": 50,
        +  "description": "Maximum number of species to return, counted from offset. Default 50. Set to 0 to return every matching species from offset to the end, uncapped. totalCount always reports the full number of matches before this cap.",
        +  "maximum": 9007199254740991,
        +  "minimum": 0,
        +  "type": "integer"
        +}
      • addedInput schema / properties / offset
        Added value: +{
        +  "default": 0,
        +  "description": "0-based position in the name-sorted matches where the returned page starts. Default 0. Pass nextOffset from a previous response to fetch the following page; an offset at or past totalCount returns no species.",
        +  "maximum": 9007199254740991,
        +  "minimum": 0,
        +  "type": "integer"
        +}
      • addedOutput schema / properties / cap
        Added value: +{
        +  "description": "The max_results limit applied to this page.",
        +  "type": "number"
        +}
      • addedOutput schema / properties / nextOffset
        Added value: +{
        +  "description": "Offset of the first species after this page — pass it as offset to fetch the next page. Present only when more species follow.",
        +  "type": "number"
        +}
      • changedOutput schema / properties / notice / description
        Previous value: -"Guidance when the filter matches no species."New value: +"Guidance when the filter matches no species, the offset is past the end, or more species follow this page."
      • addedOutput schema / properties / shown
        Added value: +{
        +  "description": "Number of species returned on this page.",
        +  "type": "number"
        +}
      • changedOutput schema / properties / species / description
        Previous value: -"Species matching the filter criteria, sorted by internal name."New value: +"Species matching the filter criteria, sorted by internal name: at most max_results entries starting at offset."
      • changedOutput schema / properties / totalCount / description
        Previous value: -"Total number of matching species after local filtering."New value: +"Total number of matching species after local filtering, before offset and max_results. Exceeds the returned species count when the list was paged."
      • addedOutput schema / properties / truncated
        Added value: +{
        +  "description": "True when more matching species follow this page; request nextOffset to continue.",
        +  "type": "boolean"
        +}
    • Changedensembl_lookup_gene34 fields changed
      • changedInput schema / properties / id / description
        Previous value: -"Ensembl stable gene ID (e.g. ENSG00000139618 or ENSG00000139618.7 with version). Species is not required for ID lookup."New value: +"Ensembl stable gene ID (e.g. ENSG00000139618). A version suffix on an ENS… ID (ENSG00000139618.19) is dropped before the lookup, which returns the current version. Species is not required for ID lookup."
      • changedInput schema / properties / ids / description
        Previous value: -"Batch lookup: up to 20 Ensembl stable IDs (ENSG…, ENST…). Returns a succeeded/failed split. Provide exactly one of symbol, id, ids, or symbols."New value: +"Batch lookup: up to 20 Ensembl stable IDs (ENSG…, ENST…). A version suffix on an ENS… ID is dropped before the lookup. Returns a succeeded/failed split; each item carries its query — the ID as submitted, version included — and each failed item a reason and recovery. Provide exactly one of symbol, id, ids, or symbols."
      • changedInput schema / properties / species / description
        Previous value: -"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."New value: +"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 with nameContains (a genus or common name) to find valid values."
      • changedInput schema / properties / symbol / description
        Previous value: -"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."New value: +"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. A synonym or former symbol (HER2, TB1) resolves too; one shared by several genes returns ambiguous with the candidates instead of gene."
      • changedInput schema / properties / symbols / description
        Previous value: -"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."New value: +"Batch lookup: up to 20 gene symbols. Species defaults to homo_sapiens; set species for other organisms. Returns a succeeded/failed split; each item carries its submitted query. Synonyms and former symbols resolve with matchedAlias; one shared by several genes fails with reason ambiguous and its candidates. Provide exactly one of symbol, id, ids, or symbols."
      • addedOutput schema / properties / ambiguous
        Added value: +{
        +  "additionalProperties": false,
        +  "description": "Present instead of gene when a symbol is not a current gene name and is a synonym or former symbol of several genes.",
        +  "properties": {
        +    "candidates": {
        +      "description": "Every gene the symbol maps to. Retry with id set to the intended one.",
        +      "items": {
        +        "additionalProperties": false,
        +        "description": "A gene the symbol is a synonym or former symbol of.",
        +        "properties": {
        +          "assemblyName": {
        +            "description": "Genome assembly name (e.g. GRCh38). All coordinates are relative to this assembly.",
        +            "type": "string"
        +          },
        +          "biotype": {
        +            "description": "Gene biotype (e.g. protein_coding, lncRNA, pseudogene).",
        +            "type": "string"
        +          },
        +          "chromosome": {
        +            "description": "Chromosome or sequence region name.",
        +            "type": "string"
        +          },
        +          "description": {
        +            "description": "Brief gene description from Ensembl.",
        +            "type": "string"
        +          },
        +          "displayName": {
        +            "description": "Gene symbol or display name (e.g. BRCA2, TP53).",
        +            "type": "string"
        +          },
        +          "end": {
        +            "description": "Gene end position on the chromosome (1-based).",
        +            "type": "number"
        +          },
        +          "id": {
        +            "description": "Ensembl gene stable ID (ENSG…). Use this as input to other Ensembl tools.",
        +            "type": "string"
        +          },
        +          "species": {
        +            "description": "Species in Ensembl internal format (e.g. homo_sapiens). Echoed from lookup.",
        +            "type": "string"
        +          },
        +          "start": {
        +            "description": "Gene start position on the chromosome (1-based).",
        +            "type": "number"
        +          },
        +          "strand": {
        +            "description": "Strand: 1 for forward, -1 for reverse.",
        +            "type": "number"
        +          },
        +          "transcripts": {
        +            "description": "Transcript list. Present only when expand_transcripts is true.",
        +            "items": {
        +              "additionalProperties": false,
        +              "description": "A single transcript summary entry.",
        +              "properties": {
        +                "biotype": {
        +                  "description": "Transcript biotype (e.g. protein_coding, lncRNA, retained_intron).",
        +                  "type": "string"
        +                },
        +                "displayName": {
        +                  "description": "Transcript display name.",
        +                  "type": "string"
        +                },
        +                "end": {
        +                  "description": "Transcript end position on the chromosome (1-based).",
        +                  "type": "number"
        +                },
        +                "id": {
        +                  "description": "Ensembl transcript stable ID (ENST…).",
        +                  "type": "string"
        +                },
        +                "isCanonical": {
        +                  "description": "True when this is the canonical transcript for the gene.",
        +                  "type": "boolean"
        +                },
        +                "lengthInBp": {
        +                  "description": "Transcript length in base pairs.",
        +                  "type": "number"
        +                },
        +                "start": {
        +                  "description": "Transcript start position on the chromosome (1-based).",
        +                  "type": "number"
        +                },
        +                "strand": {
        +                  "description": "Strand: 1 for forward, -1 for reverse.",
        +                  "type": "number"
        +                }
        +              },
        +              "required": [
        +                "id",
        +                "isCanonical"
        +              ],
        +              "type": "object"
        +            },
        +            "type": "array"
        +          }
        +        },
        +        "required": [
        +          "id"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "guidance": {
        +      "description": "How to pick a candidate and retry by id.",
        +      "type": "string"
        +    },
        +    "query": {
        +      "description": "The submitted symbol.",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "query",
        +    "candidates",
        +    "guidance"
        +  ],
        +  "type": "object"
        +}
      • changedOutput schema / properties / batch / properties / failed / description
        Previous value: -"IDs/symbols that could not be resolved, with per-item query and error fields."New value: +"IDs/symbols that did not resolve to one gene, in input order."
      • changedOutput schema / properties / batch / properties / failed / items / additionalProperties
        Previous value: -{}New value: +false
      • changedOutput schema / properties / batch / properties / failed / items / description
        Previous value: -"A failed lookup entry with query (the submitted ID or symbol) and error (reason string) fields."New value: +"One unresolved ID or symbol."
      • addedOutput schema / properties / batch / properties / failed / items / properties / candidates
        Added value: +{
        +  "description": "Every gene the symbol maps to. Present only when reason is ambiguous.",
        +  "items": {
        +    "additionalProperties": false,
        +    "description": "A gene the symbol is a synonym or former symbol of.",
        +    "properties": {
        +      "assemblyName": {
        +        "description": "Genome assembly name (e.g. GRCh38). All coordinates are relative to this assembly.",
        +        "type": "string"
        +      },
        +      "biotype": {
        +        "description": "Gene biotype (e.g. protein_coding, lncRNA, pseudogene).",
        +        "type": "string"
        +      },
        +      "chromosome": {
        +        "description": "Chromosome or sequence region name.",
        +        "type": "string"
        +      },
        +      "description": {
        +        "description": "Brief gene description from Ensembl.",
        +        "type": "string"
        +      },
        +      "displayName": {
        +        "description": "Gene symbol or display name (e.g. BRCA2, TP53).",
        +        "type": "string"
        +      },
        +      "end": {
        +        "description": "Gene end position on the chromosome (1-based).",
        +        "type": "number"
        +      },
        +      "id": {
        +        "description": "Ensembl gene stable ID (ENSG…). Use this as input to other Ensembl tools.",
        +        "type": "string"
        +      },
        +      "species": {
        +        "description": "Species in Ensembl internal format (e.g. homo_sapiens). Echoed from lookup.",
        +        "type": "string"
        +      },
        +      "start": {
        +        "description": "Gene start position on the chromosome (1-based).",
        +        "type": "number"
        +      },
        +      "strand": {
        +        "description": "Strand: 1 for forward, -1 for reverse.",
        +        "type": "number"
        +      },
        +      "transcripts": {
        +        "description": "Transcript list. Present only when expand_transcripts is true.",
        +        "items": {
        +          "additionalProperties": false,
        +          "description": "A single transcript summary entry.",
        +          "properties": {
        +            "biotype": {
        +              "description": "Transcript biotype (e.g. protein_coding, lncRNA, retained_intron).",
        +              "type": "string"
        +            },
        +            "displayName": {
        +              "description": "Transcript display name.",
        +              "type": "string"
        +            },
        +            "end": {
        +              "description": "Transcript end position on the chromosome (1-based).",
        +              "type": "number"
        +            },
        +            "id": {
        +              "description": "Ensembl transcript stable ID (ENST…).",
        +              "type": "string"
        +            },
        +            "isCanonical": {
        +              "description": "True when this is the canonical transcript for the gene.",
        +              "type": "boolean"
        +            },
        +            "lengthInBp": {
        +              "description": "Transcript length in base pairs.",
        +              "type": "number"
        +            },
        +            "start": {
        +              "description": "Transcript start position on the chromosome (1-based).",
        +              "type": "number"
        +            },
        +            "strand": {
        +              "description": "Strand: 1 for forward, -1 for reverse.",
        +              "type": "number"
        +            }
        +          },
        +          "required": [
        +            "id",
        +            "isCanonical"
        +          ],
        +          "type": "object"
        +        },
        +        "type": "array"
        +      }
        +    },
        +    "required": [
        +      "id"
        +    ],
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / batch / properties / failed / items / properties / error
        Added value: +{
        +  "description": "What went wrong for this item.",
        +  "type": "string"
        +}
      • addedOutput schema / properties / batch / properties / failed / items / properties / query
        Added value: +{
        +  "description": "The submitted ID or symbol.",
        +  "type": "string"
        +}
      • addedOutput schema / properties / batch / properties / failed / items / properties / reason
        Added value: +{
        +  "description": "not_found: nothing matched. ambiguous: the symbol is a synonym of several genes, listed in candidates. unavailable: Ensembl did not answer the synonym lookup for this symbol after retries, so whether it matches is unknown — retry it.",
        +  "enum": [
        +    "not_found",
        +    "ambiguous",
        +    "unavailable"
        +  ],
        +  "type": "string"
        +}
      • addedOutput schema / properties / batch / properties / failed / items / properties / recovery
        Added value: +{
        +  "description": "The next step for this item.",
        +  "type": "string"
        +}
      • addedOutput schema / properties / batch / properties / failed / items / required
        Added value: +[
        +  "query",
        +  "reason",
        +  "error",
        +  "recovery"
        +]
      • changedOutput schema / properties / batch / properties / succeeded / description
        Previous value: -"Gene records for IDs/symbols that resolved successfully. Same shape as gene."New value: +"Records for IDs/symbols that resolved to one gene, in input order."
      • changedOutput schema / properties / batch / properties / succeeded / items / additionalProperties
        Previous value: -{}New value: +false
      • changedOutput schema / properties / batch / properties / succeeded / items / description
        Previous value: -"A resolved gene record with the same shape as the gene output field."New value: +"A resolved gene record carrying its submitted query."
      • addedOutput schema / properties / batch / properties / succeeded / items / properties / assemblyName
        Added value: +{
        +  "description": "Genome assembly name (e.g. GRCh38). All coordinates are relative to this assembly.",
        +  "type": "string"
        +}
      • addedOutput schema / properties / batch / properties / succeeded / items / properties / biotype
        Added value: +{
        +  "description": "Gene biotype (e.g. protein_coding, lncRNA, pseudogene).",
        +  "type": "string"
        +}
      • addedOutput schema / properties / batch / properties / succeeded / items / properties / chromosome
        Added value: +{
        +  "description": "Chromosome or sequence region name.",
        +  "type": "string"
        +}
      • addedOutput schema / properties / batch / properties / succeeded / items / properties / description
        Added value: +{
        +  "description": "Brief gene description from Ensembl.",
        +  "type": "string"
        +}
      • addedOutput schema / properties / batch / properties / succeeded / items / properties / displayName
        Added value: +{
        +  "description": "Gene symbol or display name (e.g. BRCA2, TP53).",
        +  "type": "string"
        +}
      • addedOutput schema / properties / batch / properties / succeeded / items / properties / end
        Added value: +{
        +  "description": "Gene end position on the chromosome (1-based).",
        +  "type": "number"
        +}
      • addedOutput schema / properties / batch / properties / succeeded / items / properties / id
        Added value: +{
        +  "description": "Ensembl gene stable ID (ENSG…). Use this as input to other Ensembl tools.",
        +  "type": "string"
        +}
      • addedOutput schema / properties / batch / properties / succeeded / items / properties / matchedAlias
        Added value: +{
        +  "description": "The submitted symbol, present when it matched a synonym or former symbol rather than the current gene name; displayName holds the current name.",
        +  "type": "string"
        +}
      • addedOutput schema / properties / batch / properties / succeeded / items / properties / query
        Added value: +{
        +  "description": "The submitted ID or symbol this record resolved from.",
        +  "type": "string"
        +}
      • addedOutput schema / properties / batch / properties / succeeded / items / properties / species
        Added value: +{
        +  "description": "Species in Ensembl internal format (e.g. homo_sapiens). Echoed from lookup.",
        +  "type": "string"
        +}
      • addedOutput schema / properties / batch / properties / succeeded / items / properties / start
        Added value: +{
        +  "description": "Gene start position on the chromosome (1-based).",
        +  "type": "number"
        +}
      • addedOutput schema / properties / batch / properties / succeeded / items / properties / strand
        Added value: +{
        +  "description": "Strand: 1 for forward, -1 for reverse.",
        +  "type": "number"
        +}
      • addedOutput schema / properties / batch / properties / succeeded / items / properties / transcripts
        Added value: +{
        +  "description": "Transcript list. Present only when expand_transcripts is true.",
        +  "items": {
        +    "additionalProperties": false,
        +    "description": "A single transcript summary entry.",
        +    "properties": {
        +      "biotype": {
        +        "description": "Transcript biotype (e.g. protein_coding, lncRNA, retained_intron).",
        +        "type": "string"
        +      },
        +      "displayName": {
        +        "description": "Transcript display name.",
        +        "type": "string"
        +      },
        +      "end": {
        +        "description": "Transcript end position on the chromosome (1-based).",
        +        "type": "number"
        +      },
        +      "id": {
        +        "description": "Ensembl transcript stable ID (ENST…).",
        +        "type": "string"
        +      },
        +      "isCanonical": {
        +        "description": "True when this is the canonical transcript for the gene.",
        +        "type": "boolean"
        +      },
        +      "lengthInBp": {
        +        "description": "Transcript length in base pairs.",
        +        "type": "number"
        +      },
        +      "start": {
        +        "description": "Transcript start position on the chromosome (1-based).",
        +        "type": "number"
        +      },
        +      "strand": {
        +        "description": "Strand: 1 for forward, -1 for reverse.",
        +        "type": "number"
        +      }
        +    },
        +    "required": [
        +      "id",
        +      "isCanonical"
        +    ],
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / batch / properties / succeeded / items / required
        Added value: +[
        +  "id",
        +  "query"
        +]
      • changedOutput schema / properties / gene / description
        Previous value: -"Single gene record. Present for symbol or id lookups."New value: +"Single gene record. Present for an id lookup, or a symbol lookup that resolved to one gene."
      • addedOutput schema / properties / gene / properties / matchedAlias
        Added value: +{
        +  "description": "The submitted symbol, present when it matched a synonym or former symbol rather than the current gene name; displayName holds the current name.",
        +  "type": "string"
        +}
    • Changedensembl_predict_variant3 fields changed
      • changedInput schema / properties / species / description
        Previous value: -"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."New value: +"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 with nameContains (a genus or common name) to find valid values."
      • changedOutput schema / properties / error / properties / data / properties / reason / description
        Previous value: -"Machine-readable failure mode. Declared by this tool: `invalid_notation`: The variant notation is malformed or cannot be parsed by VEP. `not_found`: The variant location falls outside any known transcript or assembly region. Other values are possible when a failure originates below the handler."New value: +"Machine-readable failure mode. Declared by this tool: `invalid_notation`: The variant notation is malformed or cannot be parsed by VEP. `not_found`: The variant location falls outside any known transcript or assembly region. `invalid_species`: The species string was not recognized by Ensembl. Other values are possible when a failure originates below the handler."
      • changedOutput schema / properties / error / properties / data / properties / reason / examples
        Previous value: -[
        -  "invalid_notation",
        -  "not_found"
        -]New value: +[
        +  "invalid_notation",
        +  "not_found",
        +  "invalid_species"
        +]
    • Changedensembl_query_region7 fields changed
      • changedInput schema / properties / region / description
        Previous value: -"Genomic region in chr:start-end format (e.g. 13:32315086-32400268). Ensembl serves at most 5,000,000 bases per region; split a larger area into smaller windows. 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."New value: +"Genomic region as chr:start-end with species set (e.g. 13:32315086-32400268), or species:chr:start-end (e.g. homo_sapiens:13:32315086-32400268), with start at or below end. Ensembl serves at most 5,000,000 bases per region; split a larger area into smaller windows. 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 mitochondrion is MT in vertebrates, mitochondrion_genome in Drosophila, and MtDNA in C. elegans; M and chrM are accepted only where Ensembl resolves them to the mitochondrion (Drosophila, for one) and otherwise fail as invalid_region naming the mitochondrion of the species. For large regions (>100 kb), limit to gene feature type to avoid overwhelming results."
      • changedInput schema / properties / species / description
        Previous value: -"Species in Ensembl internal format (e.g. homo_sapiens, mus_musculus). Use ensembl_list_species to discover valid values."New value: +"Species in Ensembl internal format (e.g. homo_sapiens, mus_musculus). Required for a bare chr:start-end region; for the species:chr:start-end form the species in region takes precedence and this field is ignored. Use ensembl_list_species with nameContains (a genus or common name, e.g. mouse) to find valid values."
      • changedInput schema / required
        Previous value: -[
        -  "species",
        -  "region"
        -]New value: +[
        +  "region"
        +]
      • changedOutput schema / properties / error / properties / data / properties / reason / description
        Previous value: -"Machine-readable failure mode. Declared by this tool: `invalid_region`: The region string could not be parsed, contains invalid coordinates, or spans more than the 5,000,000-base maximum. `invalid_species`: The species string was not recognized by Ensembl. Other values are possible when a failure originates below the handler."New value: +"Machine-readable failure mode. Declared by this tool: `invalid_region`: The region string could not be parsed, has its start greater than its end, names the mitochondrion M or chrM where Ensembl resolves that to another region or none, contains coordinates outside the sequence region, or spans more than the 5,000,000-base maximum. `invalid_species`: The species (the species field or the region's species prefix) was not recognized by Ensembl. `missing_species`: A bare chr:start-end region was given without a species. Other values are possible when a failure originates below the handler."
      • changedOutput schema / properties / error / properties / data / properties / reason / examples
        Previous value: -[
        -  "invalid_region",
        -  "invalid_species"
        -]New value: +[
        +  "invalid_region",
        +  "invalid_species",
        +  "missing_species"
        +]
      • changedOutput schema / properties / region / description
        Previous value: -"The region queried, as provided."New value: +"The region queried, as provided minus any species prefix (reported as species)."
      • changedOutput schema / properties / species / description
        Previous value: -"The species queried."New value: +"The species queried: the region's species prefix when it has one, otherwise the species field."
  4. 6 tool updates
    • Changedensembl_get_homology1 field changed
      • addedInput schema / properties / species / minLength
        Added value: +1
    • Changedensembl_get_sequence14 fields changed
      • changedInput schema / properties / id / description
        Previous value: -"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."New value: +"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. A region needs start at or below end, within the sequence region, and spans at most 10,000,000 bases."
      • addedInput schema / properties / id / minLength
        Added value: +1
      • addedInput schema / properties / max_length
        Added value: +{
        +  "default": 10000,
        +  "description": "Maximum number of characters in the returned window. Default 10000. Set to 0 to return everything from offset to the end, uncapped.",
        +  "maximum": 9007199254740991,
        +  "minimum": 0,
        +  "type": "integer"
        +}
      • addedInput schema / properties / offset
        Added value: +{
        +  "default": 0,
        +  "description": "0-based character offset where the returned window starts, counted in the resolved sequence (including any expand_5prime/expand_3prime flank). Default 0. Pass nextOffset from a truncated response to fetch the following window; an offset at or past the end returns an empty window.",
        +  "maximum": 9007199254740991,
        +  "minimum": 0,
        +  "type": "integer"
        +}
      • changedInput schema / properties / type / description
        Previous value: -"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)."New value: +"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). Region ids are genomic-only — request cdna, cds, or protein from a transcript or protein stable ID."
      • changedOutput schema / anyOf
        Previous value: -[
        -  {
        -    "not": {
        -      "required": [
        -        "error"
        -      ]
        -    },
        -    "required": [
        -      "id",
        -      "type",
        -      "seq",
        -      "length"
        -    ]
        -  },
        -  {
        -    "required": [
        -      "error"
        -    ]
        -  }
        -]New value: +[
        +  {
        +    "not": {
        +      "required": [
        +        "error"
        +      ]
        +    },
        +    "required": [
        +      "id",
        +      "type",
        +      "seq",
        +      "length",
        +      "offset",
        +      "truncated"
        +    ]
        +  },
        +  {
        +    "required": [
        +      "error"
        +    ]
        +  }
        +]
      • changedOutput schema / properties / error / properties / data / properties / reason / description
        Previous value: -"Machine-readable failure mode. Declared by this tool: `not_found`: The stable ID or region was not found in Ensembl. `type_mismatch`: The requested sequence type is incompatible with the provided ID type. `missing_species`: A bare chr:start-end region was given without a species. Other values are possible when a failure originates below the handler."New value: +"Machine-readable failure mode. Declared by this tool: `not_found`: The stable ID or region was not found in Ensembl. `type_mismatch`: A non-genomic type (cdna, cds, or protein) was requested for a region id or a gene ID. `missing_species`: A bare chr:start-end region was given without a species. `invalid_region`: A region id has its start after its end, starts past the end of its sequence region, spans more than the 10,000,000-base maximum, or names a sequence region the species lacks. Other values are possible when a failure originates below the handler."
      • changedOutput schema / properties / error / properties / data / properties / reason / examples
        Previous value: -[
        -  "not_found",
        -  "type_mismatch",
        -  "missing_species"
        -]New value: +[
        +  "not_found",
        +  "type_mismatch",
        +  "missing_species",
        +  "invalid_region"
        +]
      • changedOutput schema / properties / length / description
        Previous value: -"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."New value: +"Full sequence length in characters, not the window size — nucleotides for genomic/cdna/cds, amino-acid residues for protein. Includes any expand_5prime/expand_3prime flank."
      • addedOutput schema / properties / nextOffset
        Added value: +{
        +  "description": "Offset of the first character after this window — pass it as offset to fetch the next window. Present only when truncated.",
        +  "type": "number"
        +}
      • addedOutput schema / properties / notice
        Added value: +{
        +  "description": "Guidance about the window: how to continue when truncated, or why it is empty when the offset is past the end.",
        +  "type": "string"
        +}
      • addedOutput schema / properties / offset
        Added value: +{
        +  "description": "0-based character offset where this window starts.",
        +  "type": "number"
        +}
      • changedOutput schema / properties / seq / description
        Previous value: -"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."New value: +"The requested window of the sequence: at most max_length characters starting at offset. DNA sequences use IUPAC nucleotide codes (ACGT + ambiguity codes); protein sequences use single-letter amino acid codes. Empty when offset is at or past the end."
      • addedOutput schema / properties / truncated
        Added value: +{
        +  "description": "True when more sequence follows this window; request nextOffset to continue.",
        +  "type": "boolean"
        +}
    • Changedensembl_get_xrefs1 field changed
      • addedInput schema / properties / id / minLength
        Added value: +1
    • Changedensembl_lookup_gene2 fields changed
      • addedInput schema / properties / ids / items / minLength
        Added value: +1
      • addedInput schema / properties / symbols / items / minLength
        Added value: +1
    • Changedensembl_predict_variant2 fields changed
      • addedInput schema / properties / species / minLength
        Added value: +1
      • addedInput schema / properties / variant / minLength
        Added value: +1
    • Changedensembl_query_region14 fields changed
      • changedInput schema / properties / feature / description
        Previous value: -"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)."New value: +"Feature types to retrieve — at least one. Default is gene only. Requesting variation in a large region can match tens of thousands of features. Include variation only for targeted small regions (single gene loci or smaller)."
      • addedInput schema / properties / feature / minItems
        Added value: +1
      • addedInput schema / properties / max_results
        Added value: +{
        +  "default": 100,
        +  "description": "Maximum number of features to return. A gene-length region can hold tens of thousands of variation features; the default keeps the response compact. Set to 0 to return every feature uncapped. totalCount always reports the true number found before this cap.",
        +  "maximum": 9007199254740991,
        +  "minimum": 0,
        +  "type": "integer"
        +}
      • changedInput schema / properties / region / description
        Previous value: -"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."New value: +"Genomic region in chr:start-end format (e.g. 13:32315086-32400268). Ensembl serves at most 5,000,000 bases per region; split a larger area into smaller windows. 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."
      • addedInput schema / properties / region / minLength
        Added value: +1
      • addedInput schema / properties / species / minLength
        Added value: +1
      • addedOutput schema / properties / assemblyName
        Added value: +{
        +  "description": "Genome assembly the coordinates are on (e.g. GRCh38). Omitted only when it could not be resolved, in which case the notice says so.",
        +  "type": "string"
        +}
      • addedOutput schema / properties / cap
        Added value: +{
        +  "description": "The max_results limit applied to the feature list.",
        +  "type": "number"
        +}
      • changedOutput schema / properties / error / properties / data / properties / reason / description
        Previous value: -"Machine-readable failure mode. Declared by this tool: `invalid_region`: The region string could not be parsed or contains invalid coordinates. `invalid_species`: The species string was not recognized by Ensembl. Other values are possible when a failure originates below the handler."New value: +"Machine-readable failure mode. Declared by this tool: `invalid_region`: The region string could not be parsed, contains invalid coordinates, or spans more than the 5,000,000-base maximum. `invalid_species`: The species string was not recognized by Ensembl. Other values are possible when a failure originates below the handler."
      • changedOutput schema / properties / features / description
        Previous value: -"Genomic features found in the requested region."New value: +"Genomic features found in the requested region, capped to max_results. totalCount reports the full count found before the cap."
      • changedOutput schema / properties / notice / description
        Previous value: -"Warning or guidance about the result set."New value: +"Guidance about the result set: empty, large, capped, or missing assembly."
      • addedOutput schema / properties / shown
        Added value: +{
        +  "description": "Number of features returned after the max_results cap.",
        +  "type": "number"
        +}
      • changedOutput schema / properties / totalCount / description
        Previous value: -"Number of features returned. Note: very large regions may return truncated results."New value: +"Total number of features found in the region before the max_results cap. Exceeds the returned features count when the list was capped."
      • addedOutput schema / properties / truncated
        Added value: +{
        +  "description": "True when the feature list was capped at max_results.",
        +  "type": "boolean"
        +}
  5. 7 tool updates
    • Changedensembl_get_homology6 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • addedOutput schema / anyOf
        Added value: +[
        +  {
        +    "not": {
        +      "required": [
        +        "error"
        +      ]
        +    },
        +    "required": [
        +      "homologs",
        +      "totalCount",
        +      "queryId",
        +      "querySpecies",
        +      "queryType"
        +    ]
        +  },
        +  {
        +    "required": [
        +      "error"
        +    ]
        +  }
        +]
      • addedOutput schema / properties / error
        Added value: +{
        +  "additionalProperties": {},
        +  "description": "Present when the call failed. Absent on success.",
        +  "properties": {
        +    "code": {
        +      "description": "JSON-RPC error code for this failure.",
        +      "maximum": 9007199254740991,
        +      "minimum": -9007199254740991,
        +      "type": "integer"
        +    },
        +    "data": {
        +      "additionalProperties": {},
        +      "properties": {
        +        "reason": {
        +          "description": "Machine-readable failure mode. Declared by this tool: `not_found`: The gene symbol or stable ID was not found in Ensembl. `no_input`: Neither symbol nor id was provided. `conflicting_input`: Both symbol and id were provided. Other values are possible when a failure originates below the handler.",
        +          "examples": [
        +            "not_found",
        +            "no_input",
        +            "conflicting_input"
        +          ],
        +          "type": "string"
        +        },
        +        "recovery": {
        +          "additionalProperties": {},
        +          "description": "Actionable next step for the caller.",
        +          "properties": {
        +            "hint": {
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "hint"
        +          ],
        +          "type": "object"
        +        },
        +        "retryable": {
        +          "description": "Whether retrying may succeed.",
        +          "type": "boolean"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "message": {
        +      "description": "Human-readable description of what went wrong.",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "code",
        +    "message"
        +  ],
        +  "type": "object"
        +}
      • removedOutput schema / required
        Removed value: -[
        -  "homologs",
        -  "totalCount",
        -  "queryId",
        -  "querySpecies",
        -  "queryType"
        -]
    • Changedensembl_get_sequence6 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • addedOutput schema / anyOf
        Added value: +[
        +  {
        +    "not": {
        +      "required": [
        +        "error"
        +      ]
        +    },
        +    "required": [
        +      "id",
        +      "type",
        +      "seq",
        +      "length"
        +    ]
        +  },
        +  {
        +    "required": [
        +      "error"
        +    ]
        +  }
        +]
      • addedOutput schema / properties / error
        Added value: +{
        +  "additionalProperties": {},
        +  "description": "Present when the call failed. Absent on success.",
        +  "properties": {
        +    "code": {
        +      "description": "JSON-RPC error code for this failure.",
        +      "maximum": 9007199254740991,
        +      "minimum": -9007199254740991,
        +      "type": "integer"
        +    },
        +    "data": {
        +      "additionalProperties": {},
        +      "properties": {
        +        "reason": {
        +          "description": "Machine-readable failure mode. Declared by this tool: `not_found`: The stable ID or region was not found in Ensembl. `type_mismatch`: The requested sequence type is incompatible with the provided ID type. `missing_species`: A bare chr:start-end region was given without a species. Other values are possible when a failure originates below the handler.",
        +          "examples": [
        +            "not_found",
        +            "type_mismatch",
        +            "missing_species"
        +          ],
        +          "type": "string"
        +        },
        +        "recovery": {
        +          "additionalProperties": {},
        +          "description": "Actionable next step for the caller.",
        +          "properties": {
        +            "hint": {
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "hint"
        +          ],
        +          "type": "object"
        +        },
        +        "retryable": {
        +          "description": "Whether retrying may succeed.",
        +          "type": "boolean"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "message": {
        +      "description": "Human-readable description of what went wrong.",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "code",
        +    "message"
        +  ],
        +  "type": "object"
        +}
      • removedOutput schema / required
        Removed value: -[
        -  "id",
        -  "type",
        -  "seq",
        -  "length"
        -]
    • Changedensembl_get_xrefs6 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • addedOutput schema / anyOf
        Added value: +[
        +  {
        +    "not": {
        +      "required": [
        +        "error"
        +      ]
        +    },
        +    "required": [
        +      "xrefs",
        +      "totalCount",
        +      "queriedId"
        +    ]
        +  },
        +  {
        +    "required": [
        +      "error"
        +    ]
        +  }
        +]
      • addedOutput schema / properties / error
        Added value: +{
        +  "additionalProperties": {},
        +  "description": "Present when the call failed. Absent on success.",
        +  "properties": {
        +    "code": {
        +      "description": "JSON-RPC error code for this failure.",
        +      "maximum": 9007199254740991,
        +      "minimum": -9007199254740991,
        +      "type": "integer"
        +    },
        +    "data": {
        +      "additionalProperties": {},
        +      "properties": {
        +        "reason": {
        +          "description": "Machine-readable failure mode. Declared by this tool: `not_found`: The Ensembl stable ID was not found or has no cross-references. Other values are possible when a failure originates below the handler.",
        +          "examples": [
        +            "not_found"
        +          ],
        +          "type": "string"
        +        },
        +        "recovery": {
        +          "additionalProperties": {},
        +          "description": "Actionable next step for the caller.",
        +          "properties": {
        +            "hint": {
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "hint"
        +          ],
        +          "type": "object"
        +        },
        +        "retryable": {
        +          "description": "Whether retrying may succeed.",
        +          "type": "boolean"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "message": {
        +      "description": "Human-readable description of what went wrong.",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "code",
        +    "message"
        +  ],
        +  "type": "object"
        +}
      • removedOutput schema / required
        Removed value: -[
        -  "xrefs",
        -  "totalCount",
        -  "queriedId"
        -]
    • Changedensembl_list_species6 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • addedOutput schema / anyOf
        Added value: +[
        +  {
        +    "not": {
        +      "required": [
        +        "error"
        +      ]
        +    },
        +    "required": [
        +      "species",
        +      "totalCount"
        +    ]
        +  },
        +  {
        +    "required": [
        +      "error"
        +    ]
        +  }
        +]
      • addedOutput schema / properties / error
        Added value: +{
        +  "additionalProperties": {},
        +  "description": "Present when the call failed. Absent on success.",
        +  "properties": {
        +    "code": {
        +      "description": "JSON-RPC error code for this failure.",
        +      "maximum": 9007199254740991,
        +      "minimum": -9007199254740991,
        +      "type": "integer"
        +    },
        +    "data": {
        +      "additionalProperties": {},
        +      "properties": {
        +        "reason": {
        +          "description": "Machine-readable failure mode.",
        +          "type": "string"
        +        },
        +        "recovery": {
        +          "additionalProperties": {},
        +          "description": "Actionable next step for the caller.",
        +          "properties": {
        +            "hint": {
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "hint"
        +          ],
        +          "type": "object"
        +        },
        +        "retryable": {
        +          "description": "Whether retrying may succeed.",
        +          "type": "boolean"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "message": {
        +      "description": "Human-readable description of what went wrong.",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "code",
        +    "message"
        +  ],
        +  "type": "object"
        +}
      • removedOutput schema / required
        Removed value: -[
        -  "species",
        -  "totalCount"
        -]
    • Changedensembl_lookup_gene5 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • addedOutput schema / anyOf
        Added value: +[
        +  {
        +    "not": {
        +      "required": [
        +        "error"
        +      ]
        +    }
        +  },
        +  {
        +    "required": [
        +      "error"
        +    ]
        +  }
        +]
      • addedOutput schema / properties / error
        Added value: +{
        +  "additionalProperties": {},
        +  "description": "Present when the call failed. Absent on success.",
        +  "properties": {
        +    "code": {
        +      "description": "JSON-RPC error code for this failure.",
        +      "maximum": 9007199254740991,
        +      "minimum": -9007199254740991,
        +      "type": "integer"
        +    },
        +    "data": {
        +      "additionalProperties": {},
        +      "properties": {
        +        "reason": {
        +          "description": "Machine-readable failure mode. Declared by this tool: `not_found`: The gene symbol or stable ID was not found in Ensembl. `invalid_species`: The species string was not recognized by Ensembl. `no_input`: Neither symbol, id, ids, nor symbols was provided. `conflicting_input`: More than one of symbol, id, ids, or symbols was provided. Other values are possible when a failure originates below the handler.",
        +          "examples": [
        +            "not_found",
        +            "invalid_species",
        +            "no_input",
        +            "conflicting_input"
        +          ],
        +          "type": "string"
        +        },
        +        "recovery": {
        +          "additionalProperties": {},
        +          "description": "Actionable next step for the caller.",
        +          "properties": {
        +            "hint": {
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "hint"
        +          ],
        +          "type": "object"
        +        },
        +        "retryable": {
        +          "description": "Whether retrying may succeed.",
        +          "type": "boolean"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "message": {
        +      "description": "Human-readable description of what went wrong.",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "code",
        +    "message"
        +  ],
        +  "type": "object"
        +}
    • Changedensembl_predict_variant6 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • addedOutput schema / anyOf
        Added value: +[
        +  {
        +    "not": {
        +      "required": [
        +        "error"
        +      ]
        +    },
        +    "required": [
        +      "results",
        +      "totalCount"
        +    ]
        +  },
        +  {
        +    "required": [
        +      "error"
        +    ]
        +  }
        +]
      • addedOutput schema / properties / error
        Added value: +{
        +  "additionalProperties": {},
        +  "description": "Present when the call failed. Absent on success.",
        +  "properties": {
        +    "code": {
        +      "description": "JSON-RPC error code for this failure.",
        +      "maximum": 9007199254740991,
        +      "minimum": -9007199254740991,
        +      "type": "integer"
        +    },
        +    "data": {
        +      "additionalProperties": {},
        +      "properties": {
        +        "reason": {
        +          "description": "Machine-readable failure mode. Declared by this tool: `invalid_notation`: The variant notation is malformed or cannot be parsed by VEP. `not_found`: The variant location falls outside any known transcript or assembly region. Other values are possible when a failure originates below the handler.",
        +          "examples": [
        +            "invalid_notation",
        +            "not_found"
        +          ],
        +          "type": "string"
        +        },
        +        "recovery": {
        +          "additionalProperties": {},
        +          "description": "Actionable next step for the caller.",
        +          "properties": {
        +            "hint": {
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "hint"
        +          ],
        +          "type": "object"
        +        },
        +        "retryable": {
        +          "description": "Whether retrying may succeed.",
        +          "type": "boolean"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "message": {
        +      "description": "Human-readable description of what went wrong.",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "code",
        +    "message"
        +  ],
        +  "type": "object"
        +}
      • removedOutput schema / required
        Removed value: -[
        -  "results",
        -  "totalCount"
        -]
    • Changedensembl_query_region6 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • addedInput schema / additionalProperties
        Added value: +false
      • changedOutput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • addedOutput schema / anyOf
        Added value: +[
        +  {
        +    "not": {
        +      "required": [
        +        "error"
        +      ]
        +    },
        +    "required": [
        +      "features",
        +      "totalCount",
        +      "region",
        +      "species"
        +    ]
        +  },
        +  {
        +    "required": [
        +      "error"
        +    ]
        +  }
        +]
      • addedOutput schema / properties / error
        Added value: +{
        +  "additionalProperties": {},
        +  "description": "Present when the call failed. Absent on success.",
        +  "properties": {
        +    "code": {
        +      "description": "JSON-RPC error code for this failure.",
        +      "maximum": 9007199254740991,
        +      "minimum": -9007199254740991,
        +      "type": "integer"
        +    },
        +    "data": {
        +      "additionalProperties": {},
        +      "properties": {
        +        "reason": {
        +          "description": "Machine-readable failure mode. Declared by this tool: `invalid_region`: The region string could not be parsed or contains invalid coordinates. `invalid_species`: The species string was not recognized by Ensembl. Other values are possible when a failure originates below the handler.",
        +          "examples": [
        +            "invalid_region",
        +            "invalid_species"
        +          ],
        +          "type": "string"
        +        },
        +        "recovery": {
        +          "additionalProperties": {},
        +          "description": "Actionable next step for the caller.",
        +          "properties": {
        +            "hint": {
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "hint"
        +          ],
        +          "type": "object"
        +        },
        +        "retryable": {
        +          "description": "Whether retrying may succeed.",
        +          "type": "boolean"
        +        }
        +      },
        +      "type": "object"
        +    },
        +    "message": {
        +      "description": "Human-readable description of what went wrong.",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "code",
        +    "message"
        +  ],
        +  "type": "object"
        +}
      • removedOutput schema / required
        Removed value: -[
        -  "features",
        -  "totalCount",
        -  "region",
        -  "species"
        -]
  6. 2 tool updates
    • Changedensembl_get_homology7 fields changed
      • addedInput schema / properties / max_results
        Added value: +{
        +  "default": 25,
        +  "description": "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.",
        +  "maximum": 9007199254740991,
        +  "minimum": 0,
        +  "type": "integer"
        +}
      • addedOutput schema / properties / cap
        Added value: +{
        +  "description": "The max_results limit applied to the homolog list.",
        +  "type": "number"
        +}
      • changedOutput schema / properties / homologs / description
        Previous value: -"Homologous genes found for the query gene."New value: +"Homologous genes found for the query gene, capped to max_results. totalCount reports the full count available before the cap."
      • changedOutput schema / properties / notice / description
        Previous value: -"Guidance when no homologs are found."New value: +"Guidance when no homologs are found or the list was capped."
      • addedOutput schema / properties / shown
        Added value: +{
        +  "description": "Number of homologs returned after the max_results cap.",
        +  "type": "number"
        +}
      • changedOutput schema / properties / totalCount / description
        Previous value: -"Total number of homologs returned."New value: +"Total number of homologs available before the max_results cap. Exceeds the returned homologs count when the list was capped."
      • addedOutput schema / properties / truncated
        Added value: +{
        +  "description": "True when the homolog list was capped at max_results.",
        +  "type": "boolean"
        +}
    • Changedensembl_predict_variant11 fields changed
      • addedInput schema / properties / include_all_colocated_pubmed
        Added value: +{
        +  "default": false,
        +  "description": "When true, return every PubMed ID for each colocated variant, overriding max_pubmed_ids_per_variant. Default false to keep responses compact.",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / max_pubmed_ids_per_variant
        Added value: +{
        +  "default": 10,
        +  "description": "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.",
        +  "maximum": 9007199254740991,
        +  "minimum": 0,
        +  "type": "integer"
        +}
      • addedInput schema / properties / max_transcript_consequences
        Added value: +{
        +  "default": 10,
        +  "description": "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.",
        +  "maximum": 9007199254740991,
        +  "minimum": 0,
        +  "type": "integer"
        +}
      • addedOutput schema / properties / cap
        Added value: +{
        +  "description": "The max_transcript_consequences limit applied.",
        +  "type": "number"
        +}
      • changedOutput schema / properties / notice / description
        Previous value: -"Guidance when no results are returned."New value: +"Guidance when no results are returned or when caps omitted detail."
      • changedOutput schema / properties / results / items / properties / colocatedVariants / items / properties / pubmed / description
        Previous value: -"PubMed IDs for literature associated with this variant."New value: +"PubMed IDs for literature associated with this variant, capped to max_pubmed_ids_per_variant. pubmedTotal reports the full count when the list was capped."
      • addedOutput schema / properties / results / items / properties / colocatedVariants / items / properties / pubmedTotal
        Added value: +{
        +  "description": "Total PubMed IDs available for this variant before the max_pubmed_ids_per_variant cap. Equals the returned pubmed length when the list was not capped.",
        +  "type": "number"
        +}
      • changedOutput schema / properties / results / items / properties / transcriptConsequences / description
        Previous value: -"Per-transcript consequence details. High-impact variants may affect many transcripts; focus on canonical transcripts (isCanonical from ensembl_lookup_gene) for primary effect."New value: +"Per-transcript consequence details, capped to max_transcript_consequences. High-impact variants may affect many transcripts; focus on canonical transcripts (isCanonical from ensembl_lookup_gene) for primary effect. transcriptConsequencesTotal reports the full count."
      • addedOutput schema / properties / results / items / properties / transcriptConsequencesTotal
        Added value: +{
        +  "description": "Total transcript consequences available before the max_transcript_consequences cap. Equals the returned transcriptConsequences length when not capped.",
        +  "type": "number"
        +}
      • addedOutput schema / properties / shown
        Added value: +{
        +  "description": "Total transcript consequences returned across all records after the cap.",
        +  "type": "number"
        +}
      • addedOutput schema / properties / truncated
        Added value: +{
        +  "description": "True when transcript consequences were capped at max_transcript_consequences.",
        +  "type": "boolean"
        +}
  7. 1 tool update
    • Changedensembl_get_sequence2 fields changed
      • changedInput schema / properties / id / description
        Previous value: -"Ensembl stable ID (ENSG…, ENST…, ENSP…) or region in the format species:chr:start-end (e.g. homo_sapiens:13:32315086-32400268) for region mode. For genomic region queries, species is also required."New value: +"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."
      • changedInput schema / properties / species / description
        Previous value: -"Species in Ensembl internal format (e.g. homo_sapiens). Required for region mode (when id is a species:chr:start-end string). Optional for stable ID lookups — Ensembl infers species from the ID prefix."New value: +"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."
  8. 2 tool updates
    • Changedensembl_predict_variant1 field changed
      • changedInput schema / properties / variant / description
        Previous value: -"Variant in one of two 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. For region+allele, strand is 1 (forward) or -1 (reverse); chromosome names use no \"chr\" prefix for vertebrates."New value: +"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."
    • Changedensembl_query_region3 fields changed
      • changedInput schema / properties / region / description
        Previous value: -"Genomic region in chr:start-end format (e.g. 13:32315086-32400268). Chromosome names use Ensembl format — no \"chr\" prefix for vertebrates (13, not chr13). For large regions (>100 kb), limit to gene feature type to avoid overwhelming results."New value: +"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."
      • addedOutput schema / properties / features / items / properties / parentId
        Added value: +{
        +  "description": "Parent transcript ID (ENST…) for exon features. An exon is reported once per parent transcript it belongs to, so the same exon ID can appear on multiple rows that differ only by this field — not duplicates.",
        +  "type": "string"
        +}
      • addedOutput schema / properties / features / items / properties / rank
        Added value: +{
        +  "description": "Position (1-based) of an exon within its parent transcript.",
        +  "type": "number"
        +}
  9. 1 tool update
    • Changedensembl_list_species1 field changed
      • changedInput schema / properties / division / description
        Previous value: -"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 all divisions."New value: +"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)."
  10. 3 tool updates
    • Changedensembl_get_homology2 fields changed
      • changedInput schema / properties / id / description
        Previous value: -"Ensembl stable gene ID (e.g. ENSG00000139618). Use ensembl_lookup_gene to get the stable ID from a symbol. Cannot be used together with symbol."New value: +"Ensembl stable gene ID (e.g. ENSG00000139618). Use ensembl_lookup_gene to get the stable ID from a symbol. Cannot be combined with symbol."
      • changedInput schema / properties / symbol / description
        Previous value: -"Gene symbol in the source species (e.g. BRCA2, TP53). Requires species to be set. Cannot be used together with id."New value: +"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."
    • Changedensembl_get_sequence3 fields changed
      • addedOutput schema / properties / length
        Added value: +{
        +  "description": "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.",
        +  "type": "number"
        +}
      • removedOutput schema / properties / lengthInBp
        Removed value: -{
        -  "description": "Sequence length in characters (nucleotides or amino acids). Use this to budget context window usage before processing the sequence.",
        -  "type": "number"
        -}
      • changedOutput schema / required
        Previous value: -[
        -  "id",
        -  "type",
        -  "seq",
        -  "lengthInBp"
        -]New value: +[
        +  "id",
        +  "type",
        +  "seq",
        +  "length"
        +]
    • Changedensembl_lookup_gene4 fields changed
      • changedInput schema / properties / ids / description
        Previous value: -"Batch lookup: up to 20 Ensembl stable IDs (ENSG…, ENST…). Returns a succeeded/failed split. Cannot be combined with symbol or id."New value: +"Batch lookup: up to 20 Ensembl stable IDs (ENSG…, ENST…). Returns a succeeded/failed split. Provide exactly one of symbol, id, ids, or symbols."
      • changedInput schema / properties / species / description
        Previous value: -"Species in Ensembl internal format: lowercase scientific name with underscores (e.g. homo_sapiens, mus_musculus, danio_rerio). Required when using symbol. Default is homo_sapiens for symbol-based lookups. Use ensembl_list_species to discover valid values."New value: +"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."
      • changedInput schema / properties / symbol / description
        Previous value: -"Gene symbol to look up (e.g. BRCA2, TP53, EGFR). Requires species to be set. Case-insensitive in most species."New value: +"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."
      • changedInput schema / properties / symbols / description
        Previous value: -"Batch lookup: up to 20 gene symbols. Requires species to be set. Returns a succeeded/failed split. Cannot be combined with symbol, id, or ids."New value: +"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."
  11. 7 tool updates
    • First observedensembl_get_homology
    • First observedensembl_get_sequence
    • First observedensembl_get_xrefs
    • First observedensembl_list_species
    • First observedensembl_lookup_gene
    • First observedensembl_predict_variant
    • First observedensembl_query_region

Related MCP Connectors

Related MCP Servers

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.