@cyanheads/ensembl-mcp-server 0.3.0 → 0.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +2 -2
- package/CLAUDE.md +2 -2
- package/Dockerfile +10 -6
- package/LICENSE +1 -1
- package/README.md +2 -2
- package/changelog/0.4.x/0.4.0.md +20 -0
- package/changelog/0.4.x/0.4.1.md +30 -0
- package/changelog/template.md +5 -3
- package/dist/mcp-server/prompts/definitions/gene-dossier.prompt.d.ts.map +1 -1
- package/dist/mcp-server/prompts/definitions/gene-dossier.prompt.js +6 -3
- package/dist/mcp-server/prompts/definitions/gene-dossier.prompt.js.map +1 -1
- package/dist/mcp-server/tools/definitions/get-sequence.tool.d.ts +5 -0
- package/dist/mcp-server/tools/definitions/get-sequence.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/get-sequence.tool.js +35 -21
- package/dist/mcp-server/tools/definitions/get-sequence.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/predict-variant.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/predict-variant.tool.js +31 -12
- package/dist/mcp-server/tools/definitions/predict-variant.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/query-region.tool.d.ts +3 -1
- package/dist/mcp-server/tools/definitions/query-region.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/query-region.tool.js +25 -8
- package/dist/mcp-server/tools/definitions/query-region.tool.js.map +1 -1
- package/dist/services/ensembl/ensembl-service.d.ts +2 -1
- package/dist/services/ensembl/ensembl-service.d.ts.map +1 -1
- package/dist/services/ensembl/ensembl-service.js +23 -2
- package/dist/services/ensembl/ensembl-service.js.map +1 -1
- package/dist/services/ensembl/types.d.ts +12 -0
- package/dist/services/ensembl/types.d.ts.map +1 -1
- package/package.json +9 -7
- package/server.json +3 -3
package/AGENTS.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# Developer Protocol
|
|
2
2
|
|
|
3
3
|
**Server:** ensembl-mcp-server
|
|
4
|
-
**Version:** 0.
|
|
5
|
-
**Framework:** [@cyanheads/mcp-ts-core](https://www.npmjs.com/package/@cyanheads/mcp-ts-core) `^0.10.
|
|
4
|
+
**Version:** 0.4.1
|
|
5
|
+
**Framework:** [@cyanheads/mcp-ts-core](https://www.npmjs.com/package/@cyanheads/mcp-ts-core) `^0.10.14`
|
|
6
6
|
**Engines:** Bun ≥1.3.0, Node ≥24.0.0
|
|
7
7
|
**MCP SDK:** `@modelcontextprotocol/sdk` ^1.29.0
|
|
8
8
|
**Zod:** ^4.4.3
|
package/CLAUDE.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# Developer Protocol
|
|
2
2
|
|
|
3
3
|
**Server:** ensembl-mcp-server
|
|
4
|
-
**Version:** 0.
|
|
5
|
-
**Framework:** [@cyanheads/mcp-ts-core](https://www.npmjs.com/package/@cyanheads/mcp-ts-core) `^0.10.
|
|
4
|
+
**Version:** 0.4.1
|
|
5
|
+
**Framework:** [@cyanheads/mcp-ts-core](https://www.npmjs.com/package/@cyanheads/mcp-ts-core) `^0.10.14`
|
|
6
6
|
**Engines:** Bun ≥1.3.0, Node ≥24.0.0
|
|
7
7
|
**MCP SDK:** `@modelcontextprotocol/sdk` ^1.29.0
|
|
8
8
|
**Zod:** ^4.4.3
|
package/Dockerfile
CHANGED
|
@@ -4,15 +4,17 @@
|
|
|
4
4
|
# This stage installs all dependencies (including dev), builds the TypeScript
|
|
5
5
|
# source code into JavaScript, and prepares the production assets.
|
|
6
6
|
# ==============================================================================
|
|
7
|
-
FROM oven/bun:1.3 AS build
|
|
7
|
+
FROM oven/bun:1.3.14 AS build
|
|
8
8
|
|
|
9
9
|
WORKDIR /usr/src/app
|
|
10
10
|
|
|
11
11
|
# Copy dependency manifests for optimized layer caching
|
|
12
12
|
COPY package.json bun.lock ./
|
|
13
13
|
|
|
14
|
-
# Install all dependencies (including dev dependencies for building)
|
|
15
|
-
|
|
14
|
+
# Install all dependencies (including dev dependencies for building).
|
|
15
|
+
# The BuildKit cache mount persists Bun's global package cache across builds.
|
|
16
|
+
RUN --mount=type=cache,target=/root/.bun/install/cache \
|
|
17
|
+
bun install --frozen-lockfile --ignore-scripts
|
|
16
18
|
|
|
17
19
|
# Copy the rest of the source code
|
|
18
20
|
COPY . .
|
|
@@ -28,7 +30,7 @@ RUN bun run build
|
|
|
28
30
|
# application. It uses a slim base image and only includes production
|
|
29
31
|
# dependencies and build artifacts.
|
|
30
32
|
# ==============================================================================
|
|
31
|
-
FROM oven/bun:1.3-slim AS production
|
|
33
|
+
FROM oven/bun:1.3.14-slim AS production
|
|
32
34
|
|
|
33
35
|
WORKDIR /usr/src/app
|
|
34
36
|
|
|
@@ -49,13 +51,15 @@ COPY package.json bun.lock ./
|
|
|
49
51
|
|
|
50
52
|
# Install only production dependencies, ignoring any lifecycle scripts (like 'prepare')
|
|
51
53
|
# that are not needed in the final production image.
|
|
52
|
-
RUN bun
|
|
54
|
+
RUN --mount=type=cache,target=/root/.bun/install/cache \
|
|
55
|
+
bun install --production --frozen-lockfile --ignore-scripts
|
|
53
56
|
|
|
54
57
|
# Conditionally install OpenTelemetry optional peer dependencies (Tier 3).
|
|
55
58
|
# These are not bundled by default to keep the base image lean. Enable at build time
|
|
56
59
|
# with: docker build --build-arg OTEL_ENABLED=true
|
|
57
60
|
ARG OTEL_ENABLED=true
|
|
58
|
-
RUN
|
|
61
|
+
RUN --mount=type=cache,target=/root/.bun/install/cache \
|
|
62
|
+
if [ "$OTEL_ENABLED" = "true" ]; then \
|
|
59
63
|
bun add @hono/otel \
|
|
60
64
|
@opentelemetry/instrumentation-http \
|
|
61
65
|
@opentelemetry/exporter-metrics-otlp-http \
|
package/LICENSE
CHANGED
|
@@ -186,7 +186,7 @@ Apache License
|
|
|
186
186
|
same "printed page" as the copyright notice for easier
|
|
187
187
|
identification within third-party archives.
|
|
188
188
|
|
|
189
|
-
Copyright
|
|
189
|
+
Copyright 2026 Casey Hand @cyanheads
|
|
190
190
|
|
|
191
191
|
Licensed under the Apache License, Version 2.0 (the "License");
|
|
192
192
|
you may not use this file except in compliance with the License.
|
package/README.md
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
|
|
8
8
|
<div align="center">
|
|
9
9
|
|
|
10
|
-
[](./CHANGELOG.md) [](./LICENSE) [](https://github.com/users/cyanheads/packages/container/package/ensembl-mcp-server) [](https://modelcontextprotocol.io/) [](https://www.npmjs.com/package/@cyanheads/ensembl-mcp-server) [](https://www.typescriptlang.org/) [](https://bun.sh/)
|
|
11
11
|
|
|
12
12
|
</div>
|
|
13
13
|
|
|
@@ -235,7 +235,7 @@ MCP_TRANSPORT_TYPE=http MCP_HTTP_PORT=3010 bun run start:http
|
|
|
235
235
|
|
|
236
236
|
### Prerequisites
|
|
237
237
|
|
|
238
|
-
- [Bun v1.3.
|
|
238
|
+
- [Bun v1.3.14](https://bun.sh/) or higher (or Node.js v24+).
|
|
239
239
|
- No API key required — Ensembl REST is fully public.
|
|
240
240
|
|
|
241
241
|
### Installation
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "ensembl_predict_variant accepts dbSNP rsIDs via a new VEP /id endpoint; ensembl_query_region exon rows carry parentId/rank; chromosome-name docs corrected; gene-dossier prompt's variant workflow now attributes impact to VEP"
|
|
3
|
+
breaking: false
|
|
4
|
+
security: false
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# 0.4.0 — 2026-07-03
|
|
8
|
+
|
|
9
|
+
## Added
|
|
10
|
+
|
|
11
|
+
- **`ensembl_predict_variant` accepts dbSNP rsIDs** — third input format alongside HGVS and region+allele (e.g. `rs334`), routed to a new VEP `GET /vep/{species}/id/{id}` endpoint via the new `predictVariantId` service method. An rsID unknown to dbSNP surfaces as `not_found`; a malformed identifier as `invalid_notation`. ([#11](https://github.com/cyanheads/ensembl-mcp-server/issues/11))
|
|
12
|
+
- **`ensembl_query_region` exon features carry `parentId` and `rank`** — `parentId` (the `ENST…` parent transcript stable ID) and `rank` (1-based exon position within that transcript) explain why the same exon ID can appear on multiple rows: once per parent transcript it belongs to. ([#9](https://github.com/cyanheads/ensembl-mcp-server/issues/9))
|
|
13
|
+
|
|
14
|
+
## Changed
|
|
15
|
+
|
|
16
|
+
- **Chromosome-name guidance corrected** in `ensembl_query_region` and `ensembl_predict_variant` (descriptions, input schemas, error recovery text, and the empty-result notice) — no longer states chr-prefixed names are unsupported. Ensembl normalizes chromosome names; canonical vertebrate output omits the `chr` prefix, but a `chr`-prefixed name (e.g. `chr13`) is also accepted. ([#10](https://github.com/cyanheads/ensembl-mcp-server/issues/10))
|
|
17
|
+
|
|
18
|
+
## Fixed
|
|
19
|
+
|
|
20
|
+
- **`ensembl_gene_dossier` prompt's variant workflow corrected** — step 3 no longer claims `ensembl_query_region` can identify HIGH/MODERATE impact variants (query_region doesn't report functional impact); step 4 now attributes impact to VEP and offers a valid rsID example (`rs334`), consistent with the new rsID input support. ([#7](https://github.com/cyanheads/ensembl-mcp-server/issues/7))
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "ensembl_get_sequence forwards expand_5prime/expand_3prime to stable-ID genomic lookups and accepts a bare chr:start-end region when species is set; mcp-ts-core 0.10.10 → 0.10.14 with a Bun supply-chain guard and Dockerfile hardening"
|
|
3
|
+
breaking: false
|
|
4
|
+
security: false
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# 0.4.1 — 2026-07-09
|
|
8
|
+
|
|
9
|
+
## Added
|
|
10
|
+
|
|
11
|
+
- **`ensembl_get_sequence` accepts a bare `chr:start-end` region when `species` is set** — alongside the existing `species:chr:start-end` form, so region-mode input chains directly from `ensembl_lookup_gene`/`ensembl_query_region` coordinates without repackaging into a server-specific string. A bare region given without `species` throws the new `missing_species` `ValidationError`. ([#14](https://github.com/cyanheads/ensembl-mcp-server/issues/14))
|
|
12
|
+
|
|
13
|
+
## Changed
|
|
14
|
+
|
|
15
|
+
- **`@cyanheads/mcp-ts-core` maintenance adoption** — 12 skills re-synced to the current framework set; see Dependencies for the version arrow.
|
|
16
|
+
- **Supply-chain guard** — `bunfig.toml` sets `install.minimumReleaseAge` (3 days, `@cyanheads/mcp-ts-core` excluded) and `install.security.scanner = "@socketsecurity/bun-security-scanner"`.
|
|
17
|
+
- **`devcheck.config.json`** outdated-package allowlist adds `@socketsecurity/bun-security-scanner`; `scripts/devcheck.ts`'s outdated check also skips any package held back by the `minimumReleaseAge` guard instead of flagging it as unexpected.
|
|
18
|
+
- **`Dockerfile`** pins `oven/bun:1.3.14` (was floating `1.3`), adds BuildKit cache mounts to both install stages, and runs the build-stage install with `--ignore-scripts`.
|
|
19
|
+
- **`.github/SECURITY.md`** and **`.gitattributes`** added; **`LICENSE`** copyright year 2025 → 2026.
|
|
20
|
+
|
|
21
|
+
## Fixed
|
|
22
|
+
|
|
23
|
+
- **`ensembl_get_sequence` stable-ID genomic lookups now forward `expand_5prime`/`expand_3prime`** — previously only region-mode requests received these params, so a stable-ID call returned the same sequence length regardless of the requested expansion. `EnsemblService.getSequenceById` now accepts both params and gates them to `type=genomic` (Ensembl ignores them for cdna/cds/protein). ([#13](https://github.com/cyanheads/ensembl-mcp-server/issues/13))
|
|
24
|
+
|
|
25
|
+
## Dependencies
|
|
26
|
+
|
|
27
|
+
- `@cyanheads/mcp-ts-core` `^0.10.10` → `^0.10.14`
|
|
28
|
+
- `tsc-alias` `^1.8.17` → `^1.9.0`
|
|
29
|
+
- `vitest` `^4.1.9` → `^4.1.10`
|
|
30
|
+
- `@socketsecurity/bun-security-scanner` `^1.1.2` added
|
package/changelog/template.md
CHANGED
|
@@ -15,9 +15,11 @@ summary: ""
|
|
|
15
15
|
# usage. Flagged as `Breaking` in the rollup.
|
|
16
16
|
breaking: false
|
|
17
17
|
|
|
18
|
-
# Set `true`
|
|
19
|
-
#
|
|
20
|
-
#
|
|
18
|
+
# Set `true` ONLY for a security fix in THIS project's own source code — a
|
|
19
|
+
# vulnerability or hardening in code you ship. A dependency or transitive CVE
|
|
20
|
+
# bump is routine maintenance, NOT a security release: record it under
|
|
21
|
+
# `## Dependencies` (with the advisory ID) and leave this `false`. When true,
|
|
22
|
+
# pairs with the `## Security` section below and flags `Security` in the rollup.
|
|
21
23
|
security: false
|
|
22
24
|
|
|
23
25
|
# Optional free-form notes for maintenance agents processing this release.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gene-dossier.prompt.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/prompts/definitions/gene-dossier.prompt.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAU,CAAC,EAAE,MAAM,wBAAwB,CAAC;AAEnD,eAAO,MAAM,wBAAwB;;;
|
|
1
|
+
{"version":3,"file":"gene-dossier.prompt.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/prompts/definitions/gene-dossier.prompt.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAU,CAAC,EAAE,MAAM,wBAAwB,CAAC;AAEnD,eAAO,MAAM,wBAAwB;;;kBA8DnC,CAAC"}
|
|
@@ -33,9 +33,12 @@ export const ensemblGeneDossierPrompt = prompt('ensembl_gene_dossier', {
|
|
|
33
33
|
`transcript ID from step 1 and type="protein". Record the amino acid sequence and its length.\n\n` +
|
|
34
34
|
`3. **Find variants in the locus** — call \`ensembl_query_region\` with ` +
|
|
35
35
|
`species="${args.species}", the gene's chromosomal region (chr:start-end from step 1), ` +
|
|
36
|
-
`and feature=["variation"].
|
|
37
|
-
`
|
|
38
|
-
`
|
|
36
|
+
`and feature=["variation"]. Record the variant IDs (rsIDs), positions, consequence type, ` +
|
|
37
|
+
`and any clinical significance. Functional impact (HIGH/MODERATE/LOW) is not reported by ` +
|
|
38
|
+
`this step — it comes from VEP in step 4.\n\n` +
|
|
39
|
+
`4. **Predict variant consequences** — for up to 3 variants from step 3, ` +
|
|
40
|
+
`call \`ensembl_predict_variant\` with each variant's rsID (e.g. rs334), HGVS notation, ` +
|
|
41
|
+
`or region+allele. This step returns the functional impact. ` +
|
|
39
42
|
`Record most_severe_consequence, impact, and clinical significance.\n\n` +
|
|
40
43
|
`5. **Find cross-species orthologs** — call \`ensembl_get_homology\` with ` +
|
|
41
44
|
`symbol="${args.gene_symbol}", species="${args.species}", and type="orthologues". ` +
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gene-dossier.prompt.js","sourceRoot":"","sources":["../../../../src/mcp-server/prompts/definitions/gene-dossier.prompt.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,wBAAwB,CAAC;AAEnD,MAAM,CAAC,MAAM,wBAAwB,GAAG,MAAM,CAAC,sBAAsB,EAAE;IACrE,WAAW,EACT,gGAAgG;QAChG,8FAA8F;QAC9F,0EAA0E;IAC5E,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;QACb,WAAW,EAAE,CAAC;aACX,MAAM,EAAE;aACR,QAAQ,CACP,oDAAoD;YAClD,4DAA4D,CAC/D;QACH,OAAO,EAAE,CAAC;aACP,MAAM,EAAE;aACR,OAAO,CAAC,cAAc,CAAC;aACvB,QAAQ,CACP,wEAAwE;YACtE,6EAA6E,CAChF;KACJ,CAAC;IACF,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;QAClB;YACE,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE;gBACP,IAAI,EAAE,MAAM;gBACZ,IAAI,EACF,0CAA0C,IAAI,CAAC,WAAW,WAAW,IAAI,CAAC,OAAO,KAAK;oBACtF,+DAA+D;oBAC/D,uEAAuE,IAAI,CAAC,WAAW,IAAI;oBAC3F,gBAAgB,IAAI,CAAC,OAAO,sCAAsC;oBAClE,qFAAqF;oBACrF,uDAAuD;oBACvD,uFAAuF;oBACvF,kGAAkG;oBAClG,yEAAyE;oBACzE,YAAY,IAAI,CAAC,OAAO,gEAAgE;oBACxF
|
|
1
|
+
{"version":3,"file":"gene-dossier.prompt.js","sourceRoot":"","sources":["../../../../src/mcp-server/prompts/definitions/gene-dossier.prompt.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,wBAAwB,CAAC;AAEnD,MAAM,CAAC,MAAM,wBAAwB,GAAG,MAAM,CAAC,sBAAsB,EAAE;IACrE,WAAW,EACT,gGAAgG;QAChG,8FAA8F;QAC9F,0EAA0E;IAC5E,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;QACb,WAAW,EAAE,CAAC;aACX,MAAM,EAAE;aACR,QAAQ,CACP,oDAAoD;YAClD,4DAA4D,CAC/D;QACH,OAAO,EAAE,CAAC;aACP,MAAM,EAAE;aACR,OAAO,CAAC,cAAc,CAAC;aACvB,QAAQ,CACP,wEAAwE;YACtE,6EAA6E,CAChF;KACJ,CAAC;IACF,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;QAClB;YACE,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE;gBACP,IAAI,EAAE,MAAM;gBACZ,IAAI,EACF,0CAA0C,IAAI,CAAC,WAAW,WAAW,IAAI,CAAC,OAAO,KAAK;oBACtF,+DAA+D;oBAC/D,uEAAuE,IAAI,CAAC,WAAW,IAAI;oBAC3F,gBAAgB,IAAI,CAAC,OAAO,sCAAsC;oBAClE,qFAAqF;oBACrF,uDAAuD;oBACvD,uFAAuF;oBACvF,kGAAkG;oBAClG,yEAAyE;oBACzE,YAAY,IAAI,CAAC,OAAO,gEAAgE;oBACxF,0FAA0F;oBAC1F,0FAA0F;oBAC1F,8CAA8C;oBAC9C,0EAA0E;oBAC1E,yFAAyF;oBACzF,6DAA6D;oBAC7D,wEAAwE;oBACxE,2EAA2E;oBAC3E,WAAW,IAAI,CAAC,WAAW,eAAe,IAAI,CAAC,OAAO,6BAA6B;oBACnF,yFAAyF;oBACzF,wFAAwF;oBACxF,qDAAqD;oBACrD,gEAAgE;oBAChE,iFAAiF;oBACjF,iGAAiG;oBACjG,2DAA2D;oBAC3D,6EAA6E;oBAC7E,kFAAkF;oBAClF,kEAAkE;oBAClE,oEAAoE;oBACpE,6EAA6E;oBAC7E,4EAA4E;oBAC5E,uDAAuD;aAC1D;SACF;KACF;CACF,CAAC,CAAC"}
|
|
@@ -31,5 +31,10 @@ export declare const ensemblGetSequence: import("@cyanheads/mcp-ts-core").ToolDe
|
|
|
31
31
|
readonly code: JsonRpcErrorCode.ValidationError;
|
|
32
32
|
readonly when: "The requested sequence type is incompatible with the provided ID type.";
|
|
33
33
|
readonly recovery: string;
|
|
34
|
+
}, {
|
|
35
|
+
readonly reason: "missing_species";
|
|
36
|
+
readonly code: JsonRpcErrorCode.ValidationError;
|
|
37
|
+
readonly when: "A bare chr:start-end region was given without a species.";
|
|
38
|
+
readonly recovery: string;
|
|
34
39
|
}], undefined>;
|
|
35
40
|
//# sourceMappingURL=get-sequence.tool.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-sequence.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/get-sequence.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAKjE,eAAO,MAAM,kBAAkB
|
|
1
|
+
{"version":3,"file":"get-sequence.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/get-sequence.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAKjE,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cA8L7B,CAAC"}
|
|
@@ -12,17 +12,18 @@ export const ensemblGetSequence = tool('ensembl_get_sequence', {
|
|
|
12
12
|
'Returns the sequence with its stable ID, molecule type, and character count — large sequences are ' +
|
|
13
13
|
'returned in full but the length is stated so callers can budget context. The type parameter selects ' +
|
|
14
14
|
'which sequence is fetched: genomic (default, includes introns), cdna (spliced transcript), ' +
|
|
15
|
-
'cds (coding sequence only), protein. For region mode, set id to
|
|
16
|
-
'(e.g. homo_sapiens:13:32315086-32400268)
|
|
15
|
+
'cds (coding sequence only), protein. For region mode, set id to a region — either ' +
|
|
16
|
+
'species:chr:start-end (e.g. homo_sapiens:13:32315086-32400268) or a bare chr:start-end with ' +
|
|
17
|
+
'species set (e.g. id 13:32315086-32400268, species homo_sapiens). Protein sequences require a transcript or ' +
|
|
17
18
|
'protein stable ID (ENST…/ENSP…), not a gene ID — use ensembl_lookup_gene with expand_transcripts=true ' +
|
|
18
19
|
'to get the canonical transcript ID first.',
|
|
19
20
|
annotations: { readOnlyHint: true, openWorldHint: true, idempotentHint: true },
|
|
20
21
|
input: z.object({
|
|
21
22
|
id: z
|
|
22
23
|
.string()
|
|
23
|
-
.describe('Ensembl stable ID (ENSG…, ENST…, ENSP…) or region
|
|
24
|
-
'species:chr:start-end (e.g. homo_sapiens:13:32315086-32400268)
|
|
25
|
-
'
|
|
24
|
+
.describe('Ensembl stable ID (ENSG…, ENST…, ENSP…) or a genomic region for region mode. ' +
|
|
25
|
+
'Region accepts species:chr:start-end (e.g. homo_sapiens:13:32315086-32400268) or a bare ' +
|
|
26
|
+
'chr:start-end (e.g. 13:32315086-32400268) when the species field is set.'),
|
|
26
27
|
type: z
|
|
27
28
|
.enum(SEQUENCE_TYPES)
|
|
28
29
|
.default('genomic')
|
|
@@ -35,7 +36,8 @@ export const ensemblGetSequence = tool('ensembl_get_sequence', {
|
|
|
35
36
|
.string()
|
|
36
37
|
.optional()
|
|
37
38
|
.describe('Species in Ensembl internal format (e.g. homo_sapiens). ' +
|
|
38
|
-
'Required for
|
|
39
|
+
'Required for a bare chr:start-end region; optional for the species:chr:start-end form ' +
|
|
40
|
+
'(the embedded species is used when the field is omitted). ' +
|
|
39
41
|
'Optional for stable ID lookups — Ensembl infers species from the ID prefix.'),
|
|
40
42
|
expand_5prime: z
|
|
41
43
|
.number()
|
|
@@ -82,26 +84,38 @@ export const ensemblGetSequence = tool('ensembl_get_sequence', {
|
|
|
82
84
|
'Use ensembl_lookup_gene with expand_transcripts=true to find the canonical transcript ID, ' +
|
|
83
85
|
'then request the protein or cds sequence from that transcript ID.',
|
|
84
86
|
},
|
|
87
|
+
{
|
|
88
|
+
reason: 'missing_species',
|
|
89
|
+
code: JsonRpcErrorCode.ValidationError,
|
|
90
|
+
when: 'A bare chr:start-end region was given without a species.',
|
|
91
|
+
recovery: 'Set species (e.g. homo_sapiens) alongside the chr:start-end region, ' +
|
|
92
|
+
'or use the combined species:chr:start-end id form.',
|
|
93
|
+
},
|
|
85
94
|
],
|
|
86
95
|
async handler(input, ctx) {
|
|
87
96
|
ctx.log.info('Fetching sequence', { id: input.id, type: input.type });
|
|
88
97
|
const service = getEnsemblService();
|
|
89
|
-
//
|
|
90
|
-
//
|
|
91
|
-
//
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
98
|
+
// Region mode accepts two id shapes:
|
|
99
|
+
// species:chr:start-end embedded species (e.g. homo_sapiens:13:32315086-32400268)
|
|
100
|
+
// chr:start-end bare region — the species field supplies the species
|
|
101
|
+
// Scaffold/patch names carry dots (e.g. GL000220.1), so the chromosome segment
|
|
102
|
+
// allows "." alongside word characters. Colon count is the discriminant: the two
|
|
103
|
+
// patterns are mutually exclusive (2 colons vs. 1), and a stable ID (ENSG…, no
|
|
104
|
+
// colon) matches neither, routing to stable-ID mode below.
|
|
105
|
+
const isPrefixedRegion = /^[a-z_]+:[\w.]+:\d+-\d+$/i.test(input.id);
|
|
106
|
+
const isBareRegion = /^[\w.]+:\d+-\d+$/.test(input.id);
|
|
107
|
+
if (isPrefixedRegion || isBareRegion) {
|
|
108
|
+
// For the prefixed form the species is the segment before the first colon and
|
|
109
|
+
// the region is everything after it; the bare form takes its species from the
|
|
110
|
+
// species field and uses the whole id as the region.
|
|
111
|
+
const firstColon = input.id.indexOf(':');
|
|
112
|
+
const species = input.species?.trim() || (isPrefixedRegion ? input.id.slice(0, firstColon) : undefined);
|
|
113
|
+
const region = isPrefixedRegion ? input.id.slice(firstColon + 1) : input.id;
|
|
114
|
+
if (!species) {
|
|
115
|
+
throw ctx.fail('missing_species', `Region ${input.id} needs a species — set species (e.g. homo_sapiens) or use the species:chr:start-end id form.`);
|
|
99
116
|
}
|
|
100
|
-
const [speciesFromId, chr, range] = parts;
|
|
101
|
-
const speciesStr = input.species?.trim() || speciesFromId;
|
|
102
|
-
const region = `${chr}:${range}`;
|
|
103
117
|
const seq = await service
|
|
104
|
-
.getSequenceByRegion(
|
|
118
|
+
.getSequenceByRegion(species, region, input.expand_5prime, input.expand_3prime, ctx)
|
|
105
119
|
.catch((err) => {
|
|
106
120
|
const msg = err instanceof Error ? err.message : String(err);
|
|
107
121
|
if (/not found|invalid|no stable id/i.test(msg)) {
|
|
@@ -113,7 +127,7 @@ export const ensemblGetSequence = tool('ensembl_get_sequence', {
|
|
|
113
127
|
}
|
|
114
128
|
// Stable ID mode
|
|
115
129
|
const seq = await service
|
|
116
|
-
.getSequenceById(input.id.trim(), input.type, ctx)
|
|
130
|
+
.getSequenceById(input.id.trim(), input.type, input.expand_5prime, input.expand_3prime, ctx)
|
|
117
131
|
.catch((err) => {
|
|
118
132
|
const msg = err instanceof Error ? err.message : String(err);
|
|
119
133
|
if (/protein.*gene|cds.*gene|type.*mismatch|incompatible/i.test(msg) ||
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-sequence.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/get-sequence.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAE1E,MAAM,cAAc,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,CAAU,CAAC;AAEtE,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,CAAC,sBAAsB,EAAE;IAC7D,KAAK,EAAE,cAAc;IACrB,WAAW,EACT,oGAAoG;QACpG,oGAAoG;QACpG,sGAAsG;QACtG,6FAA6F;QAC7F,
|
|
1
|
+
{"version":3,"file":"get-sequence.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/get-sequence.tool.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"predict-variant.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/predict-variant.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AA6GjE,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"predict-variant.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/predict-variant.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AA6GjE,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6NhC,CAAC"}
|
|
@@ -90,22 +90,25 @@ const VepResultSchema = z.object({
|
|
|
90
90
|
export const ensemblPredictVariant = tool('ensembl_predict_variant', {
|
|
91
91
|
title: 'Predict Variant Effect',
|
|
92
92
|
description: 'Predict the functional consequences of a sequence variant using the Ensembl Variant Effect Predictor (VEP). ' +
|
|
93
|
-
'Accepts HGVS notation (transcript-relative, e.g. ENST00000380152.8:c.2T>A,
|
|
94
|
-
'e.g. 13:g.32316462T>A)
|
|
95
|
-
'e.g.
|
|
93
|
+
'Accepts three input formats: HGVS notation (transcript-relative, e.g. ENST00000380152.8:c.2T>A, ' +
|
|
94
|
+
'or genomic, e.g. 13:g.32316462T>A); region+allele (chr:start:end:strand/allele, e.g. 1:65568:65568:1/T); ' +
|
|
95
|
+
'and a dbSNP rsID (e.g. rs334). Returns the most severe consequence term, affected transcripts and genes, ' +
|
|
96
96
|
'impact level (HIGH/MODERATE/LOW/MODIFIER), and any colocated known variants with clinical significance. ' +
|
|
97
97
|
'HGVS input: provide the full notation including transcript version for best results. ' +
|
|
98
|
-
'Region+allele input:
|
|
98
|
+
'Region+allele input: Ensembl normalizes chromosome names and canonical vertebrate output omits the chr ' +
|
|
99
|
+
'prefix (a chr-prefixed name is also accepted).',
|
|
99
100
|
annotations: { readOnlyHint: true, openWorldHint: true, idempotentHint: true },
|
|
100
101
|
input: z.object({
|
|
101
102
|
variant: z
|
|
102
103
|
.string()
|
|
103
|
-
.describe('Variant in one of
|
|
104
|
+
.describe('Variant in one of three formats: ' +
|
|
104
105
|
'(1) HGVS notation — transcript-relative: ENST00000380152.8:c.2T>A; ' +
|
|
105
106
|
'genomic: 13:g.32316462T>A; ' +
|
|
106
|
-
'(2) Region+allele: chr:start:end:strand/allele — e.g. 1:65568:65568:1/T
|
|
107
|
-
'
|
|
108
|
-
'
|
|
107
|
+
'(2) Region+allele: chr:start:end:strand/allele — e.g. 1:65568:65568:1/T ' +
|
|
108
|
+
'(strand is 1 for forward or -1 for reverse); ' +
|
|
109
|
+
'(3) dbSNP rsID — e.g. rs334. ' +
|
|
110
|
+
'Ensembl normalizes chromosome names; canonical vertebrate output omits the "chr" prefix, ' +
|
|
111
|
+
'though a chr-prefixed name is also accepted.'),
|
|
109
112
|
species: z
|
|
110
113
|
.string()
|
|
111
114
|
.default('homo_sapiens')
|
|
@@ -128,9 +131,8 @@ export const ensemblPredictVariant = tool('ensembl_predict_variant', {
|
|
|
128
131
|
reason: 'invalid_notation',
|
|
129
132
|
code: JsonRpcErrorCode.ValidationError,
|
|
130
133
|
when: 'The variant notation is malformed or cannot be parsed by VEP.',
|
|
131
|
-
recovery: '
|
|
132
|
-
'
|
|
133
|
-
'Region+allele format is chr:start:end:strand/allele. ' +
|
|
134
|
+
recovery: 'Provide HGVS (transcript-relative ENST…:c.POSREF>ALT or genomic CHR:g.POSREF>ALT), ' +
|
|
135
|
+
'region+allele (chr:start:end:strand/allele), or a dbSNP rsID (e.g. rs334). ' +
|
|
134
136
|
'Verify the transcript version matches the current Ensembl release.',
|
|
135
137
|
},
|
|
136
138
|
{
|
|
@@ -144,8 +146,10 @@ export const ensemblPredictVariant = tool('ensembl_predict_variant', {
|
|
|
144
146
|
async handler(input, ctx) {
|
|
145
147
|
ctx.log.info('Predicting variant effect', { variant: input.variant, species: input.species });
|
|
146
148
|
const service = getEnsemblService();
|
|
147
|
-
//
|
|
149
|
+
// Route by input format: region+allele (chr:start:end:strand/allele) → /region;
|
|
150
|
+
// else a dbSNP rsID (rs followed by digits) → /id; else HGVS notation → /hgvs.
|
|
148
151
|
const regionAllelePattern = /^([^:]+):(\d+):(\d+):(-?1)\/(.+)$/;
|
|
152
|
+
const rsIdPattern = /^rs\d+$/i;
|
|
149
153
|
const regionMatch = input.variant.match(regionAllelePattern);
|
|
150
154
|
let results;
|
|
151
155
|
if (regionMatch) {
|
|
@@ -163,6 +167,21 @@ export const ensemblPredictVariant = tool('ensembl_predict_variant', {
|
|
|
163
167
|
throw err;
|
|
164
168
|
});
|
|
165
169
|
}
|
|
170
|
+
else if (rsIdPattern.test(input.variant)) {
|
|
171
|
+
results = await service
|
|
172
|
+
.predictVariantId(input.variant, input.species, ctx)
|
|
173
|
+
.catch((err) => {
|
|
174
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
175
|
+
// A well-formed rsID that dbSNP does not know reports "No variant found with ID …".
|
|
176
|
+
if (/not found|no variant|unknown variant/i.test(msg)) {
|
|
177
|
+
throw ctx.fail('not_found', `Variant identifier ${input.variant} not found in dbSNP.`);
|
|
178
|
+
}
|
|
179
|
+
if (/invalid|unrecognized|parse|malformed/i.test(msg)) {
|
|
180
|
+
throw ctx.fail('invalid_notation', `Invalid variant identifier "${input.variant}": ${msg}`);
|
|
181
|
+
}
|
|
182
|
+
throw err;
|
|
183
|
+
});
|
|
184
|
+
}
|
|
166
185
|
else {
|
|
167
186
|
results = await service
|
|
168
187
|
.predictVariantHgvs(input.variant, input.species, ctx)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"predict-variant.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/predict-variant.tool.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"predict-variant.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/predict-variant.tool.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,11 +8,11 @@ export declare const ensemblQueryRegion: import("@cyanheads/mcp-ts-core").ToolDe
|
|
|
8
8
|
species: z.ZodString;
|
|
9
9
|
region: z.ZodString;
|
|
10
10
|
feature: z.ZodDefault<z.ZodArray<z.ZodEnum<{
|
|
11
|
+
exon: "exon";
|
|
11
12
|
gene: "gene";
|
|
12
13
|
transcript: "transcript";
|
|
13
14
|
variation: "variation";
|
|
14
15
|
regulatory: "regulatory";
|
|
15
|
-
exon: "exon";
|
|
16
16
|
}>>>;
|
|
17
17
|
biotype: z.ZodOptional<z.ZodString>;
|
|
18
18
|
}, z.core.$strip>, z.ZodObject<{
|
|
@@ -28,6 +28,8 @@ export declare const ensemblQueryRegion: import("@cyanheads/mcp-ts-core").ToolDe
|
|
|
28
28
|
description: z.ZodOptional<z.ZodString>;
|
|
29
29
|
consequenceType: z.ZodOptional<z.ZodString>;
|
|
30
30
|
clinicalSignificance: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
31
|
+
parentId: z.ZodOptional<z.ZodString>;
|
|
32
|
+
rank: z.ZodOptional<z.ZodNumber>;
|
|
31
33
|
}, z.core.$strip>>;
|
|
32
34
|
totalCount: z.ZodNumber;
|
|
33
35
|
region: z.ZodString;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-region.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/query-region.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"query-region.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/query-region.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AA0CjE,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwK7B,CAAC"}
|
|
@@ -29,16 +29,28 @@ const FeatureSchema = z.object({
|
|
|
29
29
|
.array(z.string().describe('A clinical significance term for this variant.'))
|
|
30
30
|
.optional()
|
|
31
31
|
.describe('Clinical significance terms for variation features (e.g. pathogenic, benign).'),
|
|
32
|
+
parentId: z
|
|
33
|
+
.string()
|
|
34
|
+
.optional()
|
|
35
|
+
.describe('Parent transcript ID (ENST…) for exon features. An exon is reported once per parent ' +
|
|
36
|
+
'transcript it belongs to, so the same exon ID can appear on multiple rows that differ ' +
|
|
37
|
+
'only by this field — not duplicates.'),
|
|
38
|
+
rank: z
|
|
39
|
+
.number()
|
|
40
|
+
.optional()
|
|
41
|
+
.describe('Position (1-based) of an exon within its parent transcript.'),
|
|
32
42
|
});
|
|
33
43
|
export const ensemblQueryRegion = tool('ensembl_query_region', {
|
|
34
44
|
title: 'Query Genomic Region',
|
|
35
45
|
description: 'Find genomic features overlapping a chromosomal region: genes, transcripts, variants, regulatory ' +
|
|
36
46
|
'elements, or exons. Returns each feature with its stable ID, type, location, biotype, and name. ' +
|
|
37
47
|
'Useful for "what\'s in this locus?" and for seeding follow-up lookups. Region format is chr:start-end ' +
|
|
38
|
-
'(e.g. 13:32315086-32400268 for the BRCA2 locus).
|
|
39
|
-
'
|
|
40
|
-
'
|
|
41
|
-
'
|
|
48
|
+
'(e.g. 13:32315086-32400268 for the BRCA2 locus). Ensembl normalizes chromosome names and canonical ' +
|
|
49
|
+
'vertebrate output omits the chr prefix (13, not chr13); a chr-prefixed name like chr13 is also ' +
|
|
50
|
+
'accepted. The feature parameter defaults to gene only to prevent overwhelming returns — requesting ' +
|
|
51
|
+
'variation in an 85 kb region returns 44,000+ entries. Explicitly include variation, regulatory, ' +
|
|
52
|
+
'transcript, or exon only when needed. Exon rows carry the parent transcript ID, so the same exon ' +
|
|
53
|
+
'appears once per transcript it belongs to.',
|
|
42
54
|
annotations: { readOnlyHint: true, openWorldHint: true, idempotentHint: true },
|
|
43
55
|
input: z.object({
|
|
44
56
|
species: z
|
|
@@ -48,7 +60,8 @@ export const ensemblQueryRegion = tool('ensembl_query_region', {
|
|
|
48
60
|
region: z
|
|
49
61
|
.string()
|
|
50
62
|
.describe('Genomic region in chr:start-end format (e.g. 13:32315086-32400268). ' +
|
|
51
|
-
'
|
|
63
|
+
'Ensembl normalizes chromosome names and canonical vertebrate output omits the chr prefix ' +
|
|
64
|
+
'(13, not chr13); a chr-prefixed name like chr13 is also accepted. ' +
|
|
52
65
|
'For large regions (>100 kb), limit to gene feature type to avoid overwhelming results.'),
|
|
53
66
|
feature: z
|
|
54
67
|
.array(z
|
|
@@ -83,7 +96,8 @@ export const ensemblQueryRegion = tool('ensembl_query_region', {
|
|
|
83
96
|
code: JsonRpcErrorCode.ValidationError,
|
|
84
97
|
when: 'The region string could not be parsed or contains invalid coordinates.',
|
|
85
98
|
recovery: 'Use the format chr:start-end (e.g. 13:32315086-32400268). ' +
|
|
86
|
-
'Chromosome names
|
|
99
|
+
'Chromosome names normalize either way — canonical vertebrate names omit the chr prefix ' +
|
|
100
|
+
'(13, not chr13), but a chr-prefixed name is also accepted. ' +
|
|
87
101
|
'Verify coordinates are within the chromosome bounds for the target assembly.',
|
|
88
102
|
},
|
|
89
103
|
{
|
|
@@ -117,8 +131,8 @@ export const ensemblQueryRegion = tool('ensembl_query_region', {
|
|
|
117
131
|
});
|
|
118
132
|
if (features.length === 0) {
|
|
119
133
|
ctx.enrich.notice(`No ${input.feature.join(', ')} features found in ${input.region} for ${input.species}. ` +
|
|
120
|
-
'The region may be intergenic
|
|
121
|
-
'
|
|
134
|
+
'The region may be intergenic, or the coordinates may not cover the intended locus. ' +
|
|
135
|
+
'Use ensembl_lookup_gene to confirm the locus coordinates.');
|
|
122
136
|
}
|
|
123
137
|
else if (features.length > 1000) {
|
|
124
138
|
ctx.enrich.notice(`Large result set (${features.length} features). ` +
|
|
@@ -149,6 +163,9 @@ export const ensemblQueryRegion = tool('ensembl_query_region', {
|
|
|
149
163
|
if (f.biotype)
|
|
150
164
|
lines.push(`**Biotype:** ${f.biotype}`);
|
|
151
165
|
lines.push(`**Location:** ${f.chromosome}:${f.start}-${f.end}${f.strand != null ? ` strand:${f.strand} (${f.strand === -1 ? '-' : '+'})` : ''}`);
|
|
166
|
+
if (f.parentId) {
|
|
167
|
+
lines.push(`**Parent transcript:** ${f.parentId}${f.rank != null ? ` (exon rank ${f.rank})` : ''}`);
|
|
168
|
+
}
|
|
152
169
|
if (f.description)
|
|
153
170
|
lines.push(`**Description:** ${f.description}`);
|
|
154
171
|
if (f.consequenceType)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-region.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/query-region.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAE1E,MAAM,aAAa,GAAG,CAAC,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,CAAU,CAAC;AAEzF,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7B,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uDAAuD,CAAC;IAC3F,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2CAA2C,CAAC;IACjF,WAAW,EAAE,CAAC;SACX,MAAM,EAAE;SACR,QAAQ,CAAC,iEAAiE,CAAC;IAC9E,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,4DAA4D,CAAC;IACzE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;IACtE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6CAA6C,CAAC;IACzE,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2CAA2C,CAAC;IACrE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;IAChF,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oCAAoC,CAAC;IACjF,eAAe,EAAE,CAAC;SACf,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,sDAAsD,CAAC;IACnE,oBAAoB,EAAE,CAAC;SACpB,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gDAAgD,CAAC,CAAC;SAC5E,QAAQ,EAAE;SACV,QAAQ,CAAC,+EAA+E,CAAC;
|
|
1
|
+
{"version":3,"file":"query-region.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/query-region.tool.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,11 +17,12 @@ export declare class EnsemblService {
|
|
|
17
17
|
lookupGenesBatch(ids: string[], expandTranscripts: boolean, ctx: Context): Promise<Map<string, GeneRecord>>;
|
|
18
18
|
lookupSymbolsBatch(symbols: string[], species: string, expandTranscripts: boolean, ctx: Context): Promise<Map<string, GeneRecord>>;
|
|
19
19
|
lookupTranscript(id: string, ctx: Context): Promise<TranscriptRecord>;
|
|
20
|
-
getSequenceById(id: string, type: string, ctx: Context): Promise<SequenceRecord>;
|
|
20
|
+
getSequenceById(id: string, type: string, expand5prime: number, expand3prime: number, ctx: Context): Promise<SequenceRecord>;
|
|
21
21
|
getSequenceByRegion(species: string, region: string, expand5prime: number, expand3prime: number, ctx: Context): Promise<SequenceRecord>;
|
|
22
22
|
queryRegion(species: string, region: string, features: string[], biotype: string | undefined, ctx: Context): Promise<OverlapFeature[]>;
|
|
23
23
|
predictVariantHgvs(notation: string, species: string, ctx: Context): Promise<VepRecord[]>;
|
|
24
24
|
predictVariantRegion(chr: string, start: number, end: number, strand: number, allele: string, species: string, ctx: Context): Promise<VepRecord[]>;
|
|
25
|
+
predictVariantId(id: string, species: string, ctx: Context): Promise<VepRecord[]>;
|
|
25
26
|
getHomologyBySymbol(symbol: string, species: string, type: string, targetSpecies: string | undefined, ctx: Context): Promise<HomologyResult>;
|
|
26
27
|
getHomologyById(id: string, species: string, type: string, targetSpecies: string | undefined, ctx: Context): Promise<HomologyResult>;
|
|
27
28
|
getXrefsById(id: string, dbname: string | undefined, ctx: Context): Promise<XrefEntry[]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ensembl-service.d.ts","sourceRoot":"","sources":["../../../src/services/ensembl/ensembl-service.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAE/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAGrE,OAAO,KAAK,EAEV,UAAU,EAEV,cAAc,EACd,cAAc,EASd,cAAc,EACd,WAAW,EACX,gBAAgB,EAChB,SAAS,EACT,SAAS,EACV,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"ensembl-service.d.ts","sourceRoot":"","sources":["../../../src/services/ensembl/ensembl-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -74,6 +74,11 @@ function normalizeOverlapFeature(raw) {
|
|
|
74
74
|
...(raw.clinical_significance?.length && {
|
|
75
75
|
clinicalSignificance: raw.clinical_significance,
|
|
76
76
|
}),
|
|
77
|
+
// Parent + rank are exon-specific here: an exon's Parent is its transcript.
|
|
78
|
+
// Other overlap types reuse `Parent` with different semantics (a transcript's
|
|
79
|
+
// Parent is its gene), so scope these to exons to avoid mislabeling other modes.
|
|
80
|
+
...(raw.feature_type === 'exon' && raw.Parent && { parentId: raw.Parent }),
|
|
81
|
+
...(raw.feature_type === 'exon' && typeof raw.rank === 'number' && { rank: raw.rank }),
|
|
77
82
|
};
|
|
78
83
|
}
|
|
79
84
|
function normalizeVep(raw) {
|
|
@@ -278,8 +283,17 @@ export class EnsemblService {
|
|
|
278
283
|
return normalizeTranscript(raw);
|
|
279
284
|
}
|
|
280
285
|
// --- Sequence ---
|
|
281
|
-
async getSequenceById(id, type, ctx) {
|
|
282
|
-
const
|
|
286
|
+
async getSequenceById(id, type, expand5prime, expand3prime, ctx) {
|
|
287
|
+
const params = [`type=${encodeURIComponent(type)}`];
|
|
288
|
+
// Ensembl only honors expansion when type=genomic; it is meaningless for
|
|
289
|
+
// cdna/cds/protein, so gate the params to avoid sending them where the API ignores them.
|
|
290
|
+
if (type === 'genomic') {
|
|
291
|
+
if (expand5prime > 0)
|
|
292
|
+
params.push(`expand_5prime=${expand5prime}`);
|
|
293
|
+
if (expand3prime > 0)
|
|
294
|
+
params.push(`expand_3prime=${expand3prime}`);
|
|
295
|
+
}
|
|
296
|
+
const path = `/sequence/id/${encodeURIComponent(id)}?${params.join('&')}`;
|
|
283
297
|
const raw = await this.fetchWithRetry(path, ctx);
|
|
284
298
|
return normalizeSequence(raw, type);
|
|
285
299
|
}
|
|
@@ -322,6 +336,13 @@ export class EnsemblService {
|
|
|
322
336
|
return [];
|
|
323
337
|
return raw.map(normalizeVep);
|
|
324
338
|
}
|
|
339
|
+
async predictVariantId(id, species, ctx) {
|
|
340
|
+
const path = `/vep/${encodeURIComponent(species)}/id/${encodeURIComponent(id)}`;
|
|
341
|
+
const raw = await this.fetchWithRetry(path, ctx);
|
|
342
|
+
if (!Array.isArray(raw))
|
|
343
|
+
return [];
|
|
344
|
+
return raw.map(normalizeVep);
|
|
345
|
+
}
|
|
325
346
|
// --- Homology ---
|
|
326
347
|
async getHomologyBySymbol(symbol, species, type, targetSpecies, ctx) {
|
|
327
348
|
let path = `/homology/symbol/${encodeURIComponent(species)}/${encodeURIComponent(symbol)}?type=${encodeURIComponent(type)}`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ensembl-service.js","sourceRoot":"","sources":["../../../src/services/ensembl/ensembl-service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ensembl-service.js","sourceRoot":"","sources":["../../../src/services/ensembl/ensembl-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -80,6 +80,10 @@ export type RawOverlapFeature = {
|
|
|
80
80
|
clinical_significance?: string[];
|
|
81
81
|
alleles?: string[];
|
|
82
82
|
source?: string;
|
|
83
|
+
/** Parent transcript stable ID (ENST…) for exon overlap rows. */
|
|
84
|
+
Parent?: string;
|
|
85
|
+
/** 1-based position of an exon within its parent transcript. */
|
|
86
|
+
rank?: number;
|
|
83
87
|
};
|
|
84
88
|
export type RawVepTranscriptConsequence = {
|
|
85
89
|
transcript_id?: string;
|
|
@@ -227,6 +231,14 @@ export type OverlapFeature = {
|
|
|
227
231
|
description?: string;
|
|
228
232
|
consequenceType?: string;
|
|
229
233
|
clinicalSignificance?: string[];
|
|
234
|
+
/**
|
|
235
|
+
* Parent transcript stable ID (ENST…) for exon features. The same exon ID
|
|
236
|
+
* appears once per parent transcript it belongs to, so this is the
|
|
237
|
+
* discriminator that explains repeated exon rows in a region query.
|
|
238
|
+
*/
|
|
239
|
+
parentId?: string;
|
|
240
|
+
/** 1-based rank of an exon within its parent transcript. */
|
|
241
|
+
rank?: number;
|
|
230
242
|
};
|
|
231
243
|
export type VepConsequence = {
|
|
232
244
|
transcriptId?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/services/ensembl/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/services/ensembl/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cyanheads/ensembl-mcp-server",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.1",
|
|
4
4
|
"mcpName": "io.github.cyanheads/ensembl-mcp-server",
|
|
5
5
|
"description": "Look up genes, fetch sequences, predict variant consequences, find orthologs and cross-database xrefs via Ensembl REST via MCP. STDIO or Streamable HTTP.",
|
|
6
6
|
"type": "module",
|
|
@@ -69,7 +69,7 @@
|
|
|
69
69
|
"url": "https://github.com/cyanheads/ensembl-mcp-server/issues"
|
|
70
70
|
},
|
|
71
71
|
"homepage": "https://github.com/cyanheads/ensembl-mcp-server#readme",
|
|
72
|
-
"author": "
|
|
72
|
+
"author": "Casey Hand <casey@caseyjhand.com> (https://caseyjhand.com)",
|
|
73
73
|
"funding": [
|
|
74
74
|
{
|
|
75
75
|
"type": "github",
|
|
@@ -81,7 +81,7 @@
|
|
|
81
81
|
}
|
|
82
82
|
],
|
|
83
83
|
"license": "Apache-2.0",
|
|
84
|
-
"packageManager": "bun@1.3.
|
|
84
|
+
"packageManager": "bun@1.3.14",
|
|
85
85
|
"engines": {
|
|
86
86
|
"bun": ">=1.3.0",
|
|
87
87
|
"node": ">=24.0.0"
|
|
@@ -90,17 +90,19 @@
|
|
|
90
90
|
"access": "public"
|
|
91
91
|
},
|
|
92
92
|
"dependencies": {
|
|
93
|
-
"@cyanheads/mcp-ts-core": "^0.10.
|
|
93
|
+
"@cyanheads/mcp-ts-core": "^0.10.14",
|
|
94
94
|
"pino-pretty": "^13.1.3",
|
|
95
95
|
"zod": "^4.4.3"
|
|
96
96
|
},
|
|
97
97
|
"devDependencies": {
|
|
98
98
|
"@biomejs/biome": "^2.5.0",
|
|
99
|
+
"@socketsecurity/bun-security-scanner": "^1.1.2",
|
|
99
100
|
"@types/node": "^26.0.0",
|
|
100
101
|
"depcheck": "^1.4.7",
|
|
101
102
|
"ignore": "^7.0.5",
|
|
102
|
-
"tsc-alias": "^1.
|
|
103
|
+
"tsc-alias": "^1.9.0",
|
|
103
104
|
"typescript": "^6.0.3",
|
|
104
|
-
"vitest": "^4.1.
|
|
105
|
-
}
|
|
105
|
+
"vitest": "^4.1.10"
|
|
106
|
+
},
|
|
107
|
+
"trustedDependencies": ["@socketsecurity/bun-security-scanner"]
|
|
106
108
|
}
|
package/server.json
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
"url": "https://github.com/cyanheads/ensembl-mcp-server",
|
|
7
7
|
"source": "github"
|
|
8
8
|
},
|
|
9
|
-
"version": "0.
|
|
9
|
+
"version": "0.4.1",
|
|
10
10
|
"remotes": [
|
|
11
11
|
{
|
|
12
12
|
"type": "streamable-http",
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"registryBaseUrl": "https://registry.npmjs.org",
|
|
20
20
|
"identifier": "@cyanheads/ensembl-mcp-server",
|
|
21
21
|
"runtimeHint": "bun",
|
|
22
|
-
"version": "0.
|
|
22
|
+
"version": "0.4.1",
|
|
23
23
|
"packageArguments": [
|
|
24
24
|
{
|
|
25
25
|
"type": "positional",
|
|
@@ -55,7 +55,7 @@
|
|
|
55
55
|
"registryBaseUrl": "https://registry.npmjs.org",
|
|
56
56
|
"identifier": "@cyanheads/ensembl-mcp-server",
|
|
57
57
|
"runtimeHint": "bun",
|
|
58
|
-
"version": "0.
|
|
58
|
+
"version": "0.4.1",
|
|
59
59
|
"packageArguments": [
|
|
60
60
|
{
|
|
61
61
|
"type": "positional",
|