@cyanheads/ensembl-mcp-server 0.4.4 → 0.5.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.
Files changed (36) hide show
  1. package/AGENTS.md +15 -12
  2. package/CLAUDE.md +15 -12
  3. package/Dockerfile +110 -33
  4. package/README.md +25 -37
  5. package/changelog/0.5.x/0.5.0.md +25 -0
  6. package/changelog/0.5.x/0.5.1.md +28 -0
  7. package/dist/mcp-server/prompts/definitions/gene-dossier.prompt.d.ts.map +1 -1
  8. package/dist/mcp-server/prompts/definitions/gene-dossier.prompt.js +12 -5
  9. package/dist/mcp-server/prompts/definitions/gene-dossier.prompt.js.map +1 -1
  10. package/dist/mcp-server/tools/definitions/get-homology.tool.d.ts.map +1 -1
  11. package/dist/mcp-server/tools/definitions/get-homology.tool.js +6 -8
  12. package/dist/mcp-server/tools/definitions/get-homology.tool.js.map +1 -1
  13. package/dist/mcp-server/tools/definitions/get-sequence.tool.d.ts +14 -2
  14. package/dist/mcp-server/tools/definitions/get-sequence.tool.d.ts.map +1 -1
  15. package/dist/mcp-server/tools/definitions/get-sequence.tool.js +162 -53
  16. package/dist/mcp-server/tools/definitions/get-sequence.tool.js.map +1 -1
  17. package/dist/mcp-server/tools/definitions/get-xrefs.tool.js +3 -3
  18. package/dist/mcp-server/tools/definitions/get-xrefs.tool.js.map +1 -1
  19. package/dist/mcp-server/tools/definitions/lookup-gene.tool.d.ts.map +1 -1
  20. package/dist/mcp-server/tools/definitions/lookup-gene.tool.js +15 -15
  21. package/dist/mcp-server/tools/definitions/lookup-gene.tool.js.map +1 -1
  22. package/dist/mcp-server/tools/definitions/predict-variant.tool.d.ts.map +1 -1
  23. package/dist/mcp-server/tools/definitions/predict-variant.tool.js +10 -14
  24. package/dist/mcp-server/tools/definitions/predict-variant.tool.js.map +1 -1
  25. package/dist/mcp-server/tools/definitions/query-region.tool.d.ts +6 -1
  26. package/dist/mcp-server/tools/definitions/query-region.tool.d.ts.map +1 -1
  27. package/dist/mcp-server/tools/definitions/query-region.tool.js +121 -30
  28. package/dist/mcp-server/tools/definitions/query-region.tool.js.map +1 -1
  29. package/dist/services/ensembl/ensembl-service.d.ts +11 -0
  30. package/dist/services/ensembl/ensembl-service.d.ts.map +1 -1
  31. package/dist/services/ensembl/ensembl-service.js +26 -0
  32. package/dist/services/ensembl/ensembl-service.js.map +1 -1
  33. package/dist/services/ensembl/types.d.ts +11 -0
  34. package/dist/services/ensembl/types.d.ts.map +1 -1
  35. package/package.json +11 -10
  36. package/server.json +10 -24
@@ -30,12 +30,18 @@ export const ensemblGeneDossierPrompt = prompt('ensembl_gene_dossier', {
30
30
  `Record the stable ID (ENSG…), genomic coordinates (chr:start-end:strand:assembly), ` +
31
31
  `biotype, and the canonical transcript ID (ENST…).\n\n` +
32
32
  `2. **Fetch the protein sequence** — call \`ensembl_get_sequence\` with the canonical ` +
33
- `transcript ID from step 1 and type="protein". Record the amino acid sequence and its length.\n\n` +
33
+ `transcript ID from step 1 and type="protein". Record the amino acid sequence and its length. ` +
34
+ `A protein longer than 10,000 residues comes back as a first window (truncated=true); length ` +
35
+ `is still the full length, and the window already holds the leading residues step 7 needs.\n\n` +
34
36
  `3. **Find variants in the locus** — call \`ensembl_query_region\` with ` +
35
37
  `species="${args.species}", the gene's chromosomal region (chr:start-end from step 1), ` +
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` +
38
+ `and feature=["variation"]. A gene locus can hold tens of thousands of variants, so the ` +
39
+ `response returns the first 100 (max_results) while totalCount reports the full count — ` +
40
+ `record totalCount as the locus variant count. To see other variants, query a narrower ` +
41
+ `window (e.g. one exon's coordinates) or raise max_results. Record the variant IDs (rsIDs), ` +
42
+ `positions, consequence type, and any clinical significance of the returned variants. ` +
43
+ `Functional impact (HIGH/MODERATE/LOW) is not reported by this step — it comes from VEP ` +
44
+ `in step 4.\n\n` +
39
45
  `4. **Predict variant consequences** — for up to 3 variants from step 3, ` +
40
46
  `call \`ensembl_predict_variant\` with each variant's rsID (e.g. rs334), HGVS notation, ` +
41
47
  `or region+allele. This step returns the functional impact. ` +
@@ -50,7 +56,8 @@ export const ensemblGeneDossierPrompt = prompt('ensembl_gene_dossier', {
50
56
  `7. **Synthesize the dossier** — compile your findings into a structured report with sections:\n` +
51
57
  ` - Gene overview (ID, location, biotype, description)\n` +
52
58
  ` - Protein sequence summary (length, first 50 aa, key domains if known)\n` +
53
- ` - Variant landscape (count, highest-impact findings, clinical significance)\n` +
59
+ ` - Variant landscape (count from step 3's totalCount, highest-impact findings, ` +
60
+ `clinical significance)\n` +
54
61
  ` - Conservation across species (ortholog table with perc_id)\n` +
55
62
  ` - External IDs for follow-up (UniProt → pubchem for structure, ` +
56
63
  `HGNC/EntrezGene → pubmed for literature, OMIM for disease associations)\n\n` +
@@ -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,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"}
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,+FAA+F;oBAC/F,8FAA8F;oBAC9F,+FAA+F;oBAC/F,yEAAyE;oBACzE,YAAY,IAAI,CAAC,OAAO,gEAAgE;oBACxF,yFAAyF;oBACzF,yFAAyF;oBACzF,wFAAwF;oBACxF,6FAA6F;oBAC7F,uFAAuF;oBACvF,yFAAyF;oBACzF,gBAAgB;oBAChB,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,mFAAmF;oBACnF,0BAA0B;oBAC1B,kEAAkE;oBAClE,oEAAoE;oBACpE,6EAA6E;oBAC7E,4EAA4E;oBAC5E,uDAAuD;aAC1D;SACF;KACF;CACF,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"get-homology.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/get-homology.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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkP7B,CAAC"}
1
+ {"version":3,"file":"get-homology.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/get-homology.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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8O7B,CAAC"}
@@ -57,6 +57,8 @@ export const ensemblGetHomology = tool('ensembl_get_homology', {
57
57
  'Cannot be combined with symbol.'),
58
58
  species: z
59
59
  .string()
60
+ .trim()
61
+ .min(1)
60
62
  .default('homo_sapiens')
61
63
  .describe('Source species (the species the query gene belongs to) in Ensembl internal format. ' +
62
64
  'Default is homo_sapiens. Use ensembl_list_species to discover valid values.'),
@@ -139,12 +141,10 @@ export const ensemblGetHomology = tool('ensembl_get_homology', {
139
141
  });
140
142
  const service = getEnsemblService();
141
143
  if (!input.symbol?.trim() && !input.id?.trim()) {
142
- throw ctx.fail('no_input', 'Provide either symbol (with species) or a stable gene ID.', {
143
- ...ctx.recoveryFor('no_input'),
144
- });
144
+ throw ctx.fail('no_input', 'Provide either symbol (with species) or a stable gene ID.');
145
145
  }
146
146
  if (input.id?.trim() && input.symbol?.trim()) {
147
- throw ctx.fail('conflicting_input', 'Provide either symbol or id, not both — they may resolve to different genes.', { ...ctx.recoveryFor('conflicting_input') });
147
+ throw ctx.fail('conflicting_input', 'Provide either symbol or id, not both — they may resolve to different genes.');
148
148
  }
149
149
  const idTrimmed = input.id?.trim();
150
150
  const symbolTrimmed = input.symbol?.trim();
@@ -156,9 +156,7 @@ export const ensemblGetHomology = tool('ensembl_get_homology', {
156
156
  .catch((err) => {
157
157
  const msg = err instanceof Error ? err.message : String(err);
158
158
  if (/not found|no valid lookup|page not found/i.test(msg)) {
159
- throw ctx.fail('not_found', `Gene ID "${idTrimmed}" not found in Ensembl.`, {
160
- ...ctx.recoveryFor('not_found'),
161
- });
159
+ throw ctx.fail('not_found', `Gene ID "${idTrimmed}" not found in Ensembl.`);
162
160
  }
163
161
  throw err;
164
162
  });
@@ -174,7 +172,7 @@ export const ensemblGetHomology = tool('ensembl_get_homology', {
174
172
  const msg = err instanceof Error ? err.message : String(err);
175
173
  // Ensembl returns {"error":"<species_name>"} for invalid gene symbols in homology endpoint
176
174
  if (/not found|no valid lookup/i.test(msg) || msg === input.species) {
177
- throw ctx.fail('not_found', `Gene symbol "${submittedSymbol}" not found in ${input.species}.`, { ...ctx.recoveryFor('not_found') });
175
+ throw ctx.fail('not_found', `Gene symbol "${submittedSymbol}" not found in ${input.species}.`);
178
176
  }
179
177
  throw err;
180
178
  });
@@ -1 +1 @@
1
- {"version":3,"file":"get-homology.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/get-homology.tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"get-homology.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/get-homology.tool.ts"],"names":[],"mappings":"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"}
@@ -15,11 +15,16 @@ export declare const ensemblGetSequence: import("@cyanheads/mcp-ts-core").ToolDe
15
15
  species: z.ZodOptional<z.ZodString>;
16
16
  expand_5prime: z.ZodDefault<z.ZodNumber>;
17
17
  expand_3prime: z.ZodDefault<z.ZodNumber>;
18
+ offset: z.ZodDefault<z.ZodNumber>;
19
+ max_length: z.ZodDefault<z.ZodNumber>;
18
20
  }, z.core.$strip>, z.ZodObject<{
19
21
  id: z.ZodString;
20
22
  type: z.ZodString;
21
23
  seq: z.ZodString;
22
24
  length: z.ZodNumber;
25
+ offset: z.ZodNumber;
26
+ truncated: z.ZodBoolean;
27
+ nextOffset: z.ZodOptional<z.ZodNumber>;
23
28
  description: z.ZodOptional<z.ZodString>;
24
29
  }, z.core.$strip>, readonly [{
25
30
  readonly reason: "not_found";
@@ -29,12 +34,19 @@ export declare const ensemblGetSequence: import("@cyanheads/mcp-ts-core").ToolDe
29
34
  }, {
30
35
  readonly reason: "type_mismatch";
31
36
  readonly code: JsonRpcErrorCode.ValidationError;
32
- readonly when: "The requested sequence type is incompatible with the provided ID type.";
37
+ readonly when: "A non-genomic type (cdna, cds, or protein) was requested for a region id or a gene ID.";
33
38
  readonly recovery: string;
34
39
  }, {
35
40
  readonly reason: "missing_species";
36
41
  readonly code: JsonRpcErrorCode.ValidationError;
37
42
  readonly when: "A bare chr:start-end region was given without a species.";
38
43
  readonly recovery: string;
39
- }], undefined>;
44
+ }, {
45
+ readonly reason: "invalid_region";
46
+ readonly code: JsonRpcErrorCode.ValidationError;
47
+ readonly when: string;
48
+ readonly recovery: string;
49
+ }], {
50
+ readonly notice: z.ZodOptional<z.ZodString>;
51
+ }>;
40
52
  //# 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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAoM7B,CAAC"}
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;AAqBjE,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsT7B,CAAC"}
@@ -6,24 +6,44 @@ import { tool, z } from '@cyanheads/mcp-ts-core';
6
6
  import { JsonRpcErrorCode } from '@cyanheads/mcp-ts-core/errors';
7
7
  import { getEnsemblService } from '../../../services/ensembl/ensembl-service.js';
8
8
  const SEQUENCE_TYPES = ['genomic', 'cdna', 'cds', 'protein'];
9
+ /**
10
+ * Linear-time `/first.*second/i`: `first`, then `second` later on the same line.
11
+ * Ensembl echoes the caller's ID into its error text, and the backtracking regex
12
+ * is quadratic in that echo.
13
+ */
14
+ function mentionsInOrder(msg, first, second) {
15
+ return msg
16
+ .toLowerCase()
17
+ .split(/[\n\r\u2028\u2029]/)
18
+ .some((line) => {
19
+ const at = line.indexOf(first);
20
+ return at !== -1 && line.includes(second, at + first.length);
21
+ });
22
+ }
9
23
  export const ensemblGetSequence = tool('ensembl_get_sequence', {
10
24
  title: 'Get Sequence',
11
25
  description: 'Fetch the DNA, cDNA, CDS, or protein sequence for a gene, transcript, protein, or genomic region. ' +
12
- 'Returns the sequence with its stable ID, molecule type, and character count — large sequences are ' +
13
- 'returned in full but the length is stated so callers can budget context. The type parameter selects ' +
14
- 'which sequence is fetched: genomic (default, includes introns), cdna (spliced transcript), ' +
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 ' +
18
- 'protein stable ID (ENST…/ENSP…), not a gene ID — use ensembl_lookup_gene with expand_transcripts=true ' +
19
- 'to get the canonical transcript ID first.',
26
+ 'Returns a window of the sequence — the first 10,000 characters by default — with its stable ID, ' +
27
+ 'molecule type, and full length. When more follows the window, truncated is true and nextOffset is the ' +
28
+ 'offset to request next; walking nextOffset reconstructs the whole sequence, and max_length 0 returns ' +
29
+ 'everything from offset to the end. The type parameter selects which sequence is fetched: genomic ' +
30
+ '(default, includes introns), cdna (spliced transcript), cds (coding sequence only), protein. ' +
31
+ 'For region mode, set id to a region — either species:chr:start-end ' +
32
+ '(e.g. homo_sapiens:13:32315086-32400268) or a bare chr:start-end with species set ' +
33
+ '(e.g. id 13:32315086-32400268, species homo_sapiens), spanning at most 10,000,000 bases; ' +
34
+ 'regions return genomic DNA only. Protein sequences require a transcript or protein stable ID ' +
35
+ '(ENST…/ENSP…), not a gene ID — use ' +
36
+ 'ensembl_lookup_gene with expand_transcripts=true to get the canonical transcript ID first.',
20
37
  annotations: { readOnlyHint: true, openWorldHint: true, idempotentHint: true },
21
38
  input: z.object({
22
39
  id: z
23
40
  .string()
41
+ .trim()
42
+ .min(1)
24
43
  .describe('Ensembl stable ID (ENSG…, ENST…, ENSP…) or a genomic region for region mode. ' +
25
44
  '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.'),
45
+ 'chr:start-end (e.g. 13:32315086-32400268) when the species field is set. A region needs ' +
46
+ 'start at or below end, within the sequence region, and spans at most 10,000,000 bases.'),
27
47
  type: z
28
48
  .enum(SEQUENCE_TYPES)
29
49
  .default('genomic')
@@ -31,7 +51,8 @@ export const ensemblGetSequence = tool('ensembl_get_sequence', {
31
51
  'genomic: full genomic DNA including introns (default). ' +
32
52
  'cdna: spliced transcript sequence (requires ENST… ID). ' +
33
53
  'cds: coding sequence only, no UTRs (requires ENST… ID with coding transcript). ' +
34
- 'protein: amino acid sequence (requires ENST… or ENSP… ID).'),
54
+ 'protein: amino acid sequence (requires ENST… or ENSP… ID). ' +
55
+ 'Region ids are genomic-only — request cdna, cds, or protein from a transcript or protein stable ID.'),
35
56
  species: z
36
57
  .string()
37
58
  .optional()
@@ -53,21 +74,52 @@ export const ensemblGetSequence = tool('ensembl_get_sequence', {
53
74
  .default(0)
54
75
  .describe("Number of base pairs to extend downstream (3' direction) of the requested feature. " +
55
76
  'Default 0. Only applies to genomic sequences and region queries.'),
77
+ offset: z
78
+ .number()
79
+ .int()
80
+ .min(0)
81
+ .default(0)
82
+ .describe('0-based character offset where the returned window starts, counted in the resolved sequence ' +
83
+ '(including any expand_5prime/expand_3prime flank). Default 0. Pass nextOffset from a truncated ' +
84
+ 'response to fetch the following window; an offset at or past the end returns an empty window.'),
85
+ max_length: z
86
+ .number()
87
+ .int()
88
+ .min(0)
89
+ .default(10_000)
90
+ .describe('Maximum number of characters in the returned window. Default 10000. ' +
91
+ 'Set to 0 to return everything from offset to the end, uncapped.'),
56
92
  }),
57
93
  output: z.object({
58
94
  id: z.string().describe('The stable ID or region used for the lookup.'),
59
95
  type: z.string().describe('Sequence type returned (genomic, cdna, cds, or protein).'),
60
96
  seq: z
61
97
  .string()
62
- .describe('The full sequence. DNA sequences use IUPAC nucleotide codes (ACGT + ambiguity codes). ' +
63
- 'Protein sequences use single-letter amino acid codes. ' +
64
- 'Large genomic sequences (e.g. 85 kb for BRCA2) are returned in full.'),
98
+ .describe('The requested window of the sequence: at most max_length characters starting at offset. ' +
99
+ 'DNA sequences use IUPAC nucleotide codes (ACGT + ambiguity codes); protein sequences use ' +
100
+ 'single-letter amino acid codes. Empty when offset is at or past the end.'),
65
101
  length: z
66
102
  .number()
67
- .describe('Sequence length in characters — nucleotides for genomic/cdna/cds, amino-acid residues for protein. ' +
68
- 'Use this to budget context window usage before processing the sequence.'),
103
+ .describe('Full sequence length in characters, not the window size — nucleotides for genomic/cdna/cds, ' +
104
+ 'amino-acid residues for protein. Includes any expand_5prime/expand_3prime flank.'),
105
+ offset: z.number().describe('0-based character offset where this window starts.'),
106
+ truncated: z
107
+ .boolean()
108
+ .describe('True when more sequence follows this window; request nextOffset to continue.'),
109
+ nextOffset: z
110
+ .number()
111
+ .optional()
112
+ .describe('Offset of the first character after this window — pass it as offset to fetch the next ' +
113
+ 'window. Present only when truncated.'),
69
114
  description: z.string().optional().describe('Sequence description from Ensembl, if provided.'),
70
115
  }),
116
+ enrichment: {
117
+ notice: z
118
+ .string()
119
+ .optional()
120
+ .describe('Guidance about the window: how to continue when truncated, or why it is empty when the ' +
121
+ 'offset is past the end.'),
122
+ },
71
123
  errors: [
72
124
  {
73
125
  reason: 'not_found',
@@ -79,10 +131,11 @@ export const ensemblGetSequence = tool('ensembl_get_sequence', {
79
131
  {
80
132
  reason: 'type_mismatch',
81
133
  code: JsonRpcErrorCode.ValidationError,
82
- when: 'The requested sequence type is incompatible with the provided ID type.',
83
- recovery: 'protein and cds sequences require a transcript ID (ENST…) or protein ID (ENSP…), not a gene ID. ' +
134
+ when: 'A non-genomic type (cdna, cds, or protein) was requested for a region id or a gene ID.',
135
+ recovery: 'Region ids are genomic-only, and a gene ID serves only its genomic sequence. Request cdna or ' +
136
+ 'cds from a transcript ID (ENST…) and protein from a transcript or protein ID (ENST…/ENSP…). ' +
84
137
  'Use ensembl_lookup_gene with expand_transcripts=true to find the canonical transcript ID, ' +
85
- 'then request the protein or cds sequence from that transcript ID.',
138
+ 'then request the sequence from that transcript ID.',
86
139
  },
87
140
  {
88
141
  reason: 'missing_species',
@@ -91,9 +144,24 @@ export const ensemblGetSequence = tool('ensembl_get_sequence', {
91
144
  recovery: 'Set species (e.g. homo_sapiens) alongside the chr:start-end region, ' +
92
145
  'or use the combined species:chr:start-end id form.',
93
146
  },
147
+ {
148
+ reason: 'invalid_region',
149
+ code: JsonRpcErrorCode.ValidationError,
150
+ when: 'A region id has its start after its end, starts past the end of its sequence region, ' +
151
+ 'spans more than the 10,000,000-base maximum, or names a sequence region the species lacks.',
152
+ recovery: 'Give start at or below end, within the sequence region length for the target assembly, ' +
153
+ 'spanning at most 10,000,000 bases; split a longer region into windows of at most ' +
154
+ '10,000,000 bases. Name the chromosome as Ensembl does (13, X, MT; chr13 is also ' +
155
+ 'accepted) — ensembl_lookup_gene reports valid coordinates for any gene.',
156
+ },
94
157
  ],
95
158
  async handler(input, ctx) {
96
- ctx.log.info('Fetching sequence', { id: input.id, type: input.type });
159
+ ctx.log.info('Fetching sequence', {
160
+ id: input.id,
161
+ type: input.type,
162
+ offset: input.offset,
163
+ maxLength: input.max_length,
164
+ });
97
165
  const service = getEnsemblService();
98
166
  // Region mode accepts two id shapes:
99
167
  // species:chr:start-end embedded species (e.g. homo_sapiens:13:32315086-32400268)
@@ -104,7 +172,13 @@ export const ensemblGetSequence = tool('ensembl_get_sequence', {
104
172
  // colon) matches neither, routing to stable-ID mode below.
105
173
  const isPrefixedRegion = /^[a-z_]+:[\w.]+:\d+-\d+$/i.test(input.id);
106
174
  const isBareRegion = /^[\w.]+:\d+-\d+$/.test(input.id);
175
+ let resolved;
107
176
  if (isPrefixedRegion || isBareRegion) {
177
+ // Ensembl's region endpoint serves genomic DNA only and ignores a type parameter,
178
+ // so a cdna/cds/protein request would come back as genomic — reject it up front.
179
+ if (input.type !== 'genomic') {
180
+ throw ctx.fail('type_mismatch', `Region ids are genomic-only — type "${input.type}" is not available for region ${input.id}.`);
181
+ }
108
182
  // For the prefixed form the species is the segment before the first colon and
109
183
  // the region is everything after it; the bare form takes its species from the
110
184
  // species field and uses the whole id as the region.
@@ -112,40 +186,76 @@ export const ensemblGetSequence = tool('ensembl_get_sequence', {
112
186
  const species = input.species?.trim() || (isPrefixedRegion ? input.id.slice(0, firstColon) : undefined);
113
187
  const region = isPrefixedRegion ? input.id.slice(firstColon + 1) : input.id;
114
188
  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.`, { ...ctx.recoveryFor('missing_species') });
189
+ 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.`);
190
+ }
191
+ // Both region shapes end in start-end after the last colon. Comparing the digit
192
+ // strings (length, then lexically) stays exact past double precision and linear
193
+ // in the caller's input, where BigInt parsing is not.
194
+ const [start = '', end = ''] = region
195
+ .slice(region.lastIndexOf(':') + 1)
196
+ .split('-')
197
+ .map((digits) => digits.replace(/^0+(?=\d)/, ''));
198
+ if (start.length > end.length || (start.length === end.length && start > end)) {
199
+ throw ctx.fail('invalid_region', `Region ${input.id} is reversed: start ${start} is greater than its end ${end}.`);
116
200
  }
117
- const seq = await service
201
+ resolved = await service
118
202
  .getSequenceByRegion(species, region, input.expand_5prime, input.expand_3prime, ctx)
119
203
  .catch((err) => {
120
204
  const msg = err instanceof Error ? err.message : String(err);
205
+ if (/cannot request a slice|maximum allowed length|no slice found/i.test(msg)) {
206
+ throw ctx.fail('invalid_region', `Invalid region ${input.id}: ${msg}`);
207
+ }
121
208
  if (/not found|invalid|no stable id/i.test(msg)) {
122
- throw ctx.fail('not_found', `Region ${input.id} not found: ${msg}`, {
123
- ...ctx.recoveryFor('not_found'),
124
- });
209
+ throw ctx.fail('not_found', `Region ${input.id} not found: ${msg}`);
125
210
  }
126
211
  throw err;
127
212
  });
128
- return seq;
129
213
  }
130
- // Stable ID mode
131
- const seq = await service
132
- .getSequenceById(input.id.trim(), input.type, input.expand_5prime, input.expand_3prime, ctx)
133
- .catch((err) => {
134
- const msg = err instanceof Error ? err.message : String(err);
135
- if (/protein.*gene|cds.*gene|type.*mismatch|incompatible/i.test(msg) ||
136
- /requesting a gene and type not equal/i.test(msg) ||
137
- /multiple sequences detected/i.test(msg)) {
138
- throw ctx.fail('type_mismatch', `Cannot request type "${input.type}" from a gene ID — use a transcript or protein stable ID instead. ` +
139
- `Call ensembl_lookup_gene with expand_transcripts=true to get transcript IDs.`, { ...ctx.recoveryFor('type_mismatch') });
140
- }
141
- if (/not found|no stable id/i.test(msg)) {
142
- throw ctx.fail('not_found', `ID ${input.id} not found in Ensembl.`, {
143
- ...ctx.recoveryFor('not_found'),
144
- });
145
- }
146
- throw err;
147
- });
148
- return seq;
214
+ else {
215
+ resolved = await service
216
+ .getSequenceById(input.id, input.type, input.expand_5prime, input.expand_3prime, ctx)
217
+ .catch((err) => {
218
+ const msg = err instanceof Error ? err.message : String(err);
219
+ // Ensembl echoes the requested ID into "ID '<id>' not found", and the echo can
220
+ // contain any word — so the looser type heuristics never override a not-found.
221
+ const notFound = /not found|no stable id/i.test(msg);
222
+ if (/requesting a gene and type not equal|multiple sequences detected/i.test(msg) ||
223
+ (!notFound &&
224
+ (mentionsInOrder(msg, 'protein', 'gene') ||
225
+ mentionsInOrder(msg, 'cds', 'gene') ||
226
+ mentionsInOrder(msg, 'type', 'mismatch') ||
227
+ /incompatible/i.test(msg)))) {
228
+ throw ctx.fail('type_mismatch', `Cannot request type "${input.type}" from a gene ID — use a transcript or protein stable ID instead. ` +
229
+ `Call ensembl_lookup_gene with expand_transcripts=true to get transcript IDs.`);
230
+ }
231
+ if (notFound) {
232
+ throw ctx.fail('not_found', `ID ${input.id} not found in Ensembl.`);
233
+ }
234
+ throw err;
235
+ });
236
+ }
237
+ // The window is a post-fetch slice of the resolved sequence, so it indexes past any
238
+ // expansion flank and `length` stays the full length. Ensembl's own start/end trim
239
+ // would hide the full length and cannot be combined with expansion.
240
+ const { length } = resolved;
241
+ const end = input.max_length > 0 ? Math.min(input.offset + input.max_length, length) : length;
242
+ const truncated = end < length;
243
+ if (input.offset >= length) {
244
+ ctx.enrich.notice(`No characters returned: offset ${input.offset} is at or past the end of the sequence, ` +
245
+ `which is ${length.toLocaleString()} characters long. Request an offset below the length.`);
246
+ }
247
+ else if (truncated) {
248
+ ctx.enrich.notice(`Showing ${(end - input.offset).toLocaleString()} of ${length.toLocaleString()} characters ` +
249
+ `from offset ${input.offset}. Call again with offset ${end} for the next window, or set ` +
250
+ 'max_length to 0 for everything from offset to the end.');
251
+ }
252
+ return {
253
+ ...resolved,
254
+ seq: resolved.seq.slice(input.offset, end),
255
+ offset: input.offset,
256
+ truncated,
257
+ ...(truncated && { nextOffset: end }),
258
+ };
149
259
  },
150
260
  format: (result) => {
151
261
  const lines = [];
@@ -154,18 +264,17 @@ export const ensemblGetSequence = tool('ensembl_get_sequence', {
154
264
  lines.push(`**Type:** ${result.type} | **Length:** ${result.length.toLocaleString()} ${unit}`);
155
265
  if (result.description)
156
266
  lines.push(`**Description:** ${result.description}`);
267
+ const extent = result.truncated
268
+ ? `truncated; next offset ${result.nextOffset}`
269
+ : 'not truncated (nothing follows this window)';
270
+ lines.push(`**Window:** ${result.seq.length.toLocaleString()} characters from offset ${result.offset} ` +
271
+ `of ${result.length.toLocaleString()} — ${extent}`);
157
272
  lines.push('');
158
- // Show first 200 chars + truncation note for large sequences
159
- if (result.seq.length > 200) {
160
- lines.push('```');
161
- lines.push(result.seq.slice(0, 200));
162
- lines.push(`… (${result.length.toLocaleString()} total characters)`);
163
- lines.push('```');
273
+ if (result.seq) {
274
+ lines.push('```', result.seq, '```');
164
275
  }
165
276
  else {
166
- lines.push('```');
167
- lines.push(result.seq);
168
- lines.push('```');
277
+ lines.push('_No sequence characters at this offset._');
169
278
  }
170
279
  return [{ type: 'text', text: lines.join('\n') }];
171
280
  },
@@ -1 +1 @@
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
+ {"version":3,"file":"get-sequence.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/get-sequence.tool.ts"],"names":[],"mappings":"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"}
@@ -36,6 +36,8 @@ export const ensemblGetXrefs = tool('ensembl_get_xrefs', {
36
36
  input: z.object({
37
37
  id: z
38
38
  .string()
39
+ .trim()
40
+ .min(1)
39
41
  .describe('Ensembl stable gene ID (ENSG…) or transcript ID (ENST…). ' +
40
42
  'Use ensembl_lookup_gene to get the stable ID from a gene symbol. ' +
41
43
  'xrefs/id returns the full cross-reference set (56+ entries for well-annotated genes like BRCA2).'),
@@ -75,9 +77,7 @@ export const ensemblGetXrefs = tool('ensembl_get_xrefs', {
75
77
  .catch((err) => {
76
78
  const msg = err instanceof Error ? err.message : String(err);
77
79
  if (/not found/i.test(msg)) {
78
- throw ctx.fail('not_found', `ID "${input.id}" not found in Ensembl.`, {
79
- ...ctx.recoveryFor('not_found'),
80
- });
80
+ throw ctx.fail('not_found', `ID "${input.id}" not found in Ensembl.`);
81
81
  }
82
82
  throw err;
83
83
  });
@@ -1 +1 @@
1
- {"version":3,"file":"get-xrefs.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/get-xrefs.tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"get-xrefs.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/get-xrefs.tool.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"lookup-gene.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/lookup-gene.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAmEjE,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAmQ5B,CAAC"}
1
+ {"version":3,"file":"lookup-gene.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/lookup-gene.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAmEjE,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAgQ5B,CAAC"}