Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add cyanheads/ensembl-mcp-server --skill ensembl-guidegit clone --depth 1 https://github.com/cyanheads/ensembl-mcp-serverWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/cyanheads/ensembl-mcp-server/ensembl-guide)<a href="https://agentmods.dev/skills/cyanheads/ensembl-mcp-server/ensembl-guide"><img src="https://agentmods.dev/badge/skills/cyanheads/ensembl-mcp-server/ensembl-guide/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/cyanheads/ensembl-mcp-server/ensembl-guide"><img src="https://agentmods.dev/badge/skills/cyanheads/ensembl-mcp-server/ensembl-guide.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00095 | $0.01937 |
| Opus 5.5 | $0.00038 | $0.00775 |
| Sonnet 5.5 | $0.00019 | $0.00387 |
| Haiku 4.5 | $0.00010 | $0.00194 |
Grade A, and why
ensembl-guide scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured today.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 52 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Scope
Ensembl REST, keyless: genes, transcripts, sequences, features overlapping a region, VEP consequences, Compara homology, and external references. The default endpoint serves vertebrates plus the plant, fungal, metazoan, and protist genomes; ensembl_list_species lists a non-vertebrate division only when you pass that division.
Not here: population allele frequencies (colocated VEP records carry IDs, clinical significance, and PubMed IDs, no frequencies), allele-level clinical classification, protein function and domains, 3D structures, and sequence similarity search. Get frequencies from a gnomAD source, function from UniProt, and structures from a PDB source. Use the Ensembl IDs from here as keys into those sources.
Identifiers
| ID | Where it comes from | What accepts it |
|---|---|---|
ENSG… gene |
ensembl_lookup_gene (symbol, alias, or ID); gene rows from ensembl_query_region; geneId on VEP consequences; targetId on homologs |
ensembl_lookup_gene, ensembl_get_homology, ensembl_get_xrefs, ensembl_get_sequence (genomic only) |
ENST… transcript |
canonicalTranscript from ensembl_lookup_gene, or its transcript list; transcriptId on VEP consequences |
ensembl_lookup_gene, ensembl_get_sequence (cdna, cds, protein), ensembl_get_xrefs, transcript HGVS for ensembl_predict_variant |
ENSP… translation |
targetProteinId on homologs; the id of an ensembl_get_sequence protein result fetched through the ENST…; hgvsp on VEP consequences |
ensembl_get_sequence (protein), ensembl_get_xrefs |
| rsID | variation rows from ensembl_query_region; colocated variants on VEP results | ensembl_predict_variant |
RefSeq NM_… |
maneSelect on expanded transcripts from ensembl_lookup_gene; RefSeq_mRNA references on the transcript |
other servers |
| UniProt accession | Uniprot/SWISSPROT reference on the translation (see the xref gate) |
other servers |
Gates
Confirm the assembly before you pass a coordinate. Every coordinate this server reads or returns is on the assembly it reports as assemblyName (GRCh38 for human on the default endpoint). The server does not reject a GRCh37/hg19 position. It reads it as GRCh38, where it lands on other genes: BRCA2's GRCh37 locus, queried here, returns a lncRNA and a pseudogene, not BRCA2. Before you use a position from a paper, a VCF, a clinical report, or a genome browser, confirm which build it is on. For a GRCh37 variant, enter through its rsID or a transcript HGVS instead, and the server places it on its own assembly. A genomic HGVS (g.) states its reference base, so VEP rejects it where that base differs. Region+allele input states no reference base, so VEP annotates it wherever it lands.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- today First seen · 52 lines · 95 tokens per session scan A 9c9dfea1325a
ensembl-guide is a skill published in the GitHub repository cyanheads/ensembl-mcp-server (3 stars, last pushed yesterday), licensed Apache-2.0. It adds 95 tokens to every session and 1,937 once invoked, about $0.0004 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-10-29.
Other skills, from other repositories
bulkrna-geneid-mapping
Load when converting Ensembl, Entrez or symbol IDs in a bulk RNA count matrix using an explicit mapping or a small human demo reference. Skip when IDs already match downstream needs; use fetchmapping explicitly for MyGene lookup.
open-meteo-guide
Tool choice, gates, and workflows for the openmeteo weather tools, covering threshold odds from the ensemble, frost, anomalies against a normal, 2050 projections, surf spots, river flood outlooks, and air quality for a set hour. Use before answering a weather, climate, marine, river, or air-quality question from…
noaa-spaceweather-guide
Judgment for the noaaspaceweather tools — turning SWPC Kp, storm scales, solar wind, flares, and alerts into answers about aurora visibility tonight, coming geomagnetic storms, radio blackouts, and impacts on HF radio, GPS, satellites, and power grids. Use before answering an aurora or space-weather question with…
noaa-marine-guide
Gates and conventions for the noaamarine tools (NOAA CO-OPS tides, tidal currents, water levels; NDBC buoys). Covers which station serves which tool, why a place-name search misses, time-zone and direction conventions across the two sources, and what the server cannot answer (forecasts, warnings, past buoy readings).…
usgs-water-guide
Gates and workflows for the water tools over USGS stream gages and groundwater wells. Covers whether a river or aquifer is high or low right now, telling live gages from discontinued ones, reading depth-to-water rankings (they run inverted), finding the parameter code a site actually reports, time zones and data lag…
openfoodfacts-guide
Judgment for the off tools (Open Food Facts) — allergy checks that never overclaim, choosing among a product's many barcodes, where tag IDs come from, grade ranges, free-from searches, and the search budget. Use when answering allergy, diet, ingredient, additive, Nutri-Score, NOVA, or product-comparison questions…