@cyanheads/protein-mcp-server 0.8.2 → 0.8.4

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 (51) hide show
  1. package/AGENTS.md +1 -1
  2. package/CLAUDE.md +1 -1
  3. package/README.md +13 -10
  4. package/changelog/0.8.x/0.8.2.md +7 -7
  5. package/changelog/0.8.x/0.8.3.md +23 -0
  6. package/changelog/0.8.x/0.8.4.md +13 -0
  7. package/dist/config/server-config.d.ts +2 -0
  8. package/dist/config/server-config.d.ts.map +1 -1
  9. package/dist/config/server-config.js +13 -1
  10. package/dist/config/server-config.js.map +1 -1
  11. package/dist/index.js +1 -1
  12. package/dist/index.js.map +1 -1
  13. package/dist/mcp-server/tools/definitions/analyze-collection.tool.js +2 -2
  14. package/dist/mcp-server/tools/definitions/analyze-collection.tool.js.map +1 -1
  15. package/dist/mcp-server/tools/definitions/compare-structures.tool.d.ts +10 -0
  16. package/dist/mcp-server/tools/definitions/compare-structures.tool.d.ts.map +1 -1
  17. package/dist/mcp-server/tools/definitions/compare-structures.tool.js +77 -11
  18. package/dist/mcp-server/tools/definitions/compare-structures.tool.js.map +1 -1
  19. package/dist/mcp-server/tools/definitions/find-similar.tool.d.ts +14 -4
  20. package/dist/mcp-server/tools/definitions/find-similar.tool.d.ts.map +1 -1
  21. package/dist/mcp-server/tools/definitions/find-similar.tool.js +79 -20
  22. package/dist/mcp-server/tools/definitions/find-similar.tool.js.map +1 -1
  23. package/dist/mcp-server/tools/definitions/get-structure.tool.d.ts.map +1 -1
  24. package/dist/mcp-server/tools/definitions/get-structure.tool.js +84 -36
  25. package/dist/mcp-server/tools/definitions/get-structure.tool.js.map +1 -1
  26. package/dist/mcp-server/tools/definitions/search-structures.tool.d.ts.map +1 -1
  27. package/dist/mcp-server/tools/definitions/search-structures.tool.js +22 -17
  28. package/dist/mcp-server/tools/definitions/search-structures.tool.js.map +1 -1
  29. package/dist/mcp-server/tools/definitions/track-ligands.tool.d.ts.map +1 -1
  30. package/dist/mcp-server/tools/definitions/track-ligands.tool.js +5 -2
  31. package/dist/mcp-server/tools/definitions/track-ligands.tool.js.map +1 -1
  32. package/dist/services/alignment/alignment-service.d.ts +17 -4
  33. package/dist/services/alignment/alignment-service.d.ts.map +1 -1
  34. package/dist/services/alignment/alignment-service.js +31 -21
  35. package/dist/services/alignment/alignment-service.js.map +1 -1
  36. package/dist/services/foldseek/foldseek-service.d.ts +28 -9
  37. package/dist/services/foldseek/foldseek-service.d.ts.map +1 -1
  38. package/dist/services/foldseek/foldseek-service.js +83 -36
  39. package/dist/services/foldseek/foldseek-service.js.map +1 -1
  40. package/dist/services/rcsb/rcsb-service.d.ts +13 -3
  41. package/dist/services/rcsb/rcsb-service.d.ts.map +1 -1
  42. package/dist/services/rcsb/rcsb-service.js +35 -5
  43. package/dist/services/rcsb/rcsb-service.js.map +1 -1
  44. package/dist/services/rcsb/types.d.ts +21 -0
  45. package/dist/services/rcsb/types.d.ts.map +1 -1
  46. package/dist/services/shared/identifiers.d.ts +8 -1
  47. package/dist/services/shared/identifiers.d.ts.map +1 -1
  48. package/dist/services/shared/identifiers.js +12 -1
  49. package/dist/services/shared/identifiers.js.map +1 -1
  50. package/package.json +1 -1
  51. package/server.json +3 -3
@@ -5,8 +5,9 @@
5
5
  * poll → bounded timeout, returning "still computing" rather than blocking).
6
6
  * Both modes page their results the same way (totalCount / start / nextStart),
7
7
  * and a completed structure job returns its ticket so it can be re-paged instead
8
- * of resubmitted. Fields the selected mode cannot consume are rejected, not
9
- * ignored.
8
+ * of resubmitted. A structure response covers one Foldseek query (one chain of a
9
+ * multichain file), selected by `query` and disclosed with `queryCount`. Fields
10
+ * the selected mode cannot consume are rejected, not ignored.
10
11
  * @module mcp-server/tools/definitions/find-similar.tool
11
12
  */
12
13
  import { z } from '@cyanheads/mcp-ts-core';
@@ -21,6 +22,7 @@ export declare const findSimilar: import("@cyanheads/mcp-ts-core").ToolDefinitio
21
22
  uniprot: z.ZodOptional<z.ZodString>;
22
23
  ticket_id: z.ZodOptional<z.ZodString>;
23
24
  databases: z.ZodOptional<z.ZodArray<z.ZodString>>;
25
+ query: z.ZodOptional<z.ZodNumber>;
24
26
  max_evalue: z.ZodOptional<z.ZodNumber>;
25
27
  min_identity: z.ZodOptional<z.ZodNumber>;
26
28
  limit: z.ZodDefault<z.ZodNumber>;
@@ -36,6 +38,8 @@ export declare const findSimilar: import("@cyanheads/mcp-ts-core").ToolDefinitio
36
38
  computing: "computing";
37
39
  }>;
38
40
  ticketId: z.ZodOptional<z.ZodString>;
41
+ query: z.ZodOptional<z.ZodNumber>;
42
+ queryCount: z.ZodOptional<z.ZodNumber>;
39
43
  hits: z.ZodArray<z.ZodObject<{
40
44
  id: z.ZodString;
41
45
  entityId: z.ZodOptional<z.ZodString>;
@@ -60,8 +64,8 @@ export declare const findSimilar: import("@cyanheads/mcp-ts-core").ToolDefinitio
60
64
  }, {
61
65
  readonly reason: "mode_mismatched_field";
62
66
  readonly code: JsonRpcErrorCode.InvalidParams;
63
- readonly when: "An input field only the other by mode consumes was supplied: sequence, max_evalue or min_identity under by:\"structure\"; ticket_id or a non-empty databases list under by:\"sequence\".";
64
- readonly recovery: "Drop the field, or switch by to the mode that reads it — sequence, max_evalue and min_identity apply to by:\"sequence\"; ticket_id and databases apply to by:\"structure\".";
67
+ readonly when: "An input field only the other by mode consumes was supplied: sequence, max_evalue or min_identity under by:\"structure\"; ticket_id, query or a non-empty databases list under by:\"sequence\".";
68
+ readonly recovery: "Drop the field, or switch by to the mode that reads it — sequence, max_evalue and min_identity apply to by:\"sequence\"; ticket_id, databases and query apply to by:\"structure\".";
65
69
  readonly thrownBy: "service";
66
70
  }, {
67
71
  readonly reason: "no_sequence";
@@ -69,6 +73,12 @@ export declare const findSimilar: import("@cyanheads/mcp-ts-core").ToolDefinitio
69
73
  readonly when: "A sequence could not be resolved from the given PDB ID or UniProt accession.";
70
74
  readonly recovery: "Verify the identifier, or pass a raw one-letter sequence directly via the sequence parameter.";
71
75
  readonly thrownBy: "service";
76
+ }, {
77
+ readonly reason: "query_out_of_range";
78
+ readonly code: JsonRpcErrorCode.InvalidParams;
79
+ readonly when: "The requested query index is not below the number of queries the completed Foldseek job holds.";
80
+ readonly recovery: "Re-call with the ticket_id from the error and a query index below the reported query count; the job is already complete.";
81
+ readonly thrownBy: "service";
72
82
  }, {
73
83
  readonly reason: "search_failed";
74
84
  readonly code: JsonRpcErrorCode.ServiceUnavailable;
@@ -1 +1 @@
1
- {"version":3,"file":"find-similar.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/find-similar.tool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAA6B,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AA8HjE,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsFtB,CAAC"}
1
+ {"version":3,"file":"find-similar.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/find-similar.tool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAA6B,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AA4JjE,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkGtB,CAAC"}
@@ -5,8 +5,9 @@
5
5
  * poll → bounded timeout, returning "still computing" rather than blocking).
6
6
  * Both modes page their results the same way (totalCount / start / nextStart),
7
7
  * and a completed structure job returns its ticket so it can be re-paged instead
8
- * of resubmitted. Fields the selected mode cannot consume are rejected, not
9
- * ignored.
8
+ * of resubmitted. A structure response covers one Foldseek query (one chain of a
9
+ * multichain file), selected by `query` and disclosed with `queryCount`. Fields
10
+ * the selected mode cannot consume are rejected, not ignored.
10
11
  * @module mcp-server/tools/definitions/find-similar.tool
11
12
  */
12
13
  import { tool, z } from '@cyanheads/mcp-ts-core';
@@ -38,6 +39,12 @@ const inputSchema = z.object({
38
39
  .array(z.string())
39
40
  .optional()
40
41
  .describe('Foldseek target databases (by:structure). Default pdb100 + afdb50. e.g. afdb-swissprot, BFVD.'),
42
+ query: z
43
+ .number()
44
+ .int()
45
+ .min(0)
46
+ .optional()
47
+ .describe('Zero-based Foldseek query index (by:structure). Default 0. Foldseek splits a multichain structure into one query per chain, in file order; queryCount in the response says how many the job holds. Pass the same value with ticket_id to resume or re-page that query.'),
41
48
  max_evalue: z
42
49
  .number()
43
50
  .positive()
@@ -67,6 +74,14 @@ const outputSchema = z.object({
67
74
  .string()
68
75
  .optional()
69
76
  .describe('Async job ticket ID (by:structure). Present while status is computing, and also on a complete response — re-call with ticket_id plus a different start/limit to page the same finished job instead of resubmitting.'),
77
+ query: z
78
+ .number()
79
+ .optional()
80
+ .describe('Zero-based Foldseek query index the hits belong to (by:structure).'),
81
+ queryCount: z
82
+ .number()
83
+ .optional()
84
+ .describe('Number of queries the Foldseek job holds, one per chain of the submitted structure (by:structure, complete). Valid query values run from 0 to queryCount - 1.'),
70
85
  hits: z
71
86
  .array(z
72
87
  .object({
@@ -98,7 +113,7 @@ const outputSchema = z.object({
98
113
  .describe('UniProt accession (predicted structure hits).'),
99
114
  })
100
115
  .describe('A similar protein, with alignment scores when available.'))
101
- .describe('Similar proteins, best first.'),
116
+ .describe('Similar proteins, best first. Structure hits are ranked by score across all searched databases (hits without a score last, ties by database then target).'),
102
117
  });
103
118
  const enrichmentShape = {
104
119
  totalCount: z.number().optional().describe('Total upstream matches before pagination.'),
@@ -107,11 +122,14 @@ const enrichmentShape = {
107
122
  .number()
108
123
  .optional()
109
124
  .describe('Offset for the next result page; absent on the final or past-end page.'),
110
- notice: z.string().optional().describe('Advisory note (still computing, empty results).'),
125
+ notice: z
126
+ .string()
127
+ .optional()
128
+ .describe('Advisory note: a structure job still computing (with how to resume it), no matches, a start past the end of the results, or other queries in a multichain structure job.'),
111
129
  };
112
130
  export const findSimilar = tool('protein_find_similar', {
113
131
  title: 'protein-mcp-server: find similar',
114
- description: `Find structurally or evolutionarily related proteins. by:"sequence" runs an RCSB mmseqs2 sequence-similarity search (synchronous) over a sequence — supplied directly, or pulled from a PDB ID or UniProt accession. by:"structure" runs a Foldseek fold-similarity search (asynchronous) against experimental and predicted databases; if the job is still computing when the poll budget elapses, the response reports status "computing" with a ticket — re-call with ticket_id set to that value to resume the same job instead of resubmitting, and a complete response carries the same ticket so a finished job can be re-paged with a different start. Each mode reads only its own controls: sequence, max_evalue and min_identity belong to by:"sequence"; ticket_id and databases belong to by:"structure"; pdb_id, uniprot, start and limit are shared. A field the selected mode cannot consume is rejected rather than silently ignored. Output names the engine and database each hit came from.`,
132
+ description: `Find structurally or evolutionarily related proteins. by:"sequence" runs an RCSB mmseqs2 sequence-similarity search (synchronous) over a sequence — supplied directly, or pulled from a PDB ID or UniProt accession. by:"structure" runs a Foldseek fold-similarity search (asynchronous) against experimental and predicted databases; if the job is still computing when the poll budget elapses, the response reports status "computing" with a ticket — re-call with ticket_id set to that value to resume the same job instead of resubmitting, and a complete response carries the same ticket so a finished job can be re-paged with a different start. Foldseek searches each chain of a multichain structure as its own query: a response covers one query (query, default 0), reports queryCount, and ranks that query's hits by score across all searched databases. Each mode reads only its own controls: sequence, max_evalue and min_identity belong to by:"sequence"; ticket_id, databases and query belong to by:"structure"; pdb_id, uniprot, start and limit are shared. A field the selected mode cannot consume is rejected rather than silently ignored. Output names the engine and database each hit came from.`,
115
133
  annotations: { readOnlyHint: true, openWorldHint: true },
116
134
  // Every reason is thrown by a helper below the handler, hence thrownBy on each entry.
117
135
  errors: [
@@ -125,8 +143,8 @@ export const findSimilar = tool('protein_find_similar', {
125
143
  {
126
144
  reason: 'mode_mismatched_field',
127
145
  code: JsonRpcErrorCode.InvalidParams,
128
- when: 'An input field only the other by mode consumes was supplied: sequence, max_evalue or min_identity under by:"structure"; ticket_id or a non-empty databases list under by:"sequence".',
129
- recovery: 'Drop the field, or switch by to the mode that reads it — sequence, max_evalue and min_identity apply to by:"sequence"; ticket_id and databases apply to by:"structure".',
146
+ when: 'An input field only the other by mode consumes was supplied: sequence, max_evalue or min_identity under by:"structure"; ticket_id, query or a non-empty databases list under by:"sequence".',
147
+ recovery: 'Drop the field, or switch by to the mode that reads it — sequence, max_evalue and min_identity apply to by:"sequence"; ticket_id, databases and query apply to by:"structure".',
130
148
  thrownBy: 'service',
131
149
  },
132
150
  {
@@ -136,6 +154,13 @@ export const findSimilar = tool('protein_find_similar', {
136
154
  recovery: 'Verify the identifier, or pass a raw one-letter sequence directly via the sequence parameter.',
137
155
  thrownBy: 'service',
138
156
  },
157
+ {
158
+ reason: 'query_out_of_range',
159
+ code: JsonRpcErrorCode.InvalidParams,
160
+ when: 'The requested query index is not below the number of queries the completed Foldseek job holds.',
161
+ recovery: 'Re-call with the ticket_id from the error and a query index below the reported query count; the job is already complete.',
162
+ thrownBy: 'service',
163
+ },
139
164
  {
140
165
  reason: 'search_failed',
141
166
  code: JsonRpcErrorCode.ServiceUnavailable,
@@ -167,8 +192,12 @@ export const findSimilar = tool('protein_find_similar', {
167
192
  },
168
193
  format: (result) => {
169
194
  const lines = [`## ${result.engine} (by:${result.by}) — ${result.status}`];
170
- if (result.ticketId)
171
- lines.push(`**Ticket:** ${result.ticketId} re-call with ticket_id to resume or re-page this job.`);
195
+ if (result.ticketId) {
196
+ const withQuery = result.query ? ` and query ${result.query}` : '';
197
+ lines.push(`**Ticket:** ${result.ticketId} — re-call with ticket_id${withQuery} to resume or re-page this job.`);
198
+ }
199
+ if (typeof result.queryCount === 'number')
200
+ lines.push(`**Query:** ${result.query ?? 0} of ${result.queryCount} (0-based)`);
172
201
  for (const h of result.hits) {
173
202
  lines.push(`\n### ${h.id} _(${h.source})_`);
174
203
  if (h.title)
@@ -209,8 +238,12 @@ async function runSequence(input, ctx) {
209
238
  start: input.start,
210
239
  ...(nextStart < result.total ? { nextStart } : {}),
211
240
  });
241
+ // Same two empty-page causes runStructure separates: nothing matched, or an
242
+ // offset past the end of a populated result set.
212
243
  if (result.hits.length === 0)
213
- ctx.enrich.notice('No sequence-similar entries found. Lower min_identity or raise max_evalue.');
244
+ ctx.enrich.notice(result.total === 0
245
+ ? 'No sequence-similar entries found. Lower min_identity or raise max_evalue.'
246
+ : `start ${input.start} is past the end of the ${result.total} matches. Re-call with a lower start to read a populated page.`);
214
247
  return {
215
248
  by: 'sequence',
216
249
  engine: 'RCSB mmseqs2',
@@ -234,12 +267,13 @@ async function runSequence(input, ctx) {
234
267
  }
235
268
  async function runStructure(input, timeoutMs, ctx) {
236
269
  const foldseek = getFoldseekService();
270
+ const query = input.query ?? 0;
237
271
  let outcome;
238
272
  if (input.ticket_id) {
239
273
  // Resume path: poll the existing ticket, skipping coordinate resolution +
240
274
  // submit. A completed ticket is idempotent upstream, so a re-call with a new
241
- // start/limit pages the same finished job instead of running a second search.
242
- outcome = await foldseek.resume({ ticketId: input.ticket_id, limit: input.limit, start: input.start, timeoutMs }, ctx);
275
+ // start/limit/query pages the same finished job instead of running a second search.
276
+ outcome = await foldseek.resume({ ticketId: input.ticket_id, query, limit: input.limit, start: input.start, timeoutMs }, ctx);
243
277
  }
244
278
  else {
245
279
  const { content, fileName } = await resolveCoordinateFile(input, ctx);
@@ -248,11 +282,22 @@ async function runStructure(input, timeoutMs, ctx) {
248
282
  fileName,
249
283
  databases: input.databases && input.databases.length > 0 ? input.databases : DEFAULT_FOLDSEEK_DBS,
250
284
  mode: FOLDSEEK_MODE,
285
+ query,
251
286
  limit: input.limit,
252
287
  start: input.start,
253
288
  timeoutMs,
254
289
  }, ctx);
255
290
  }
291
+ if (outcome.status === 'query_out_of_range') {
292
+ const { ticketId, queryCount } = outcome;
293
+ throw ctx.fail('query_out_of_range', `query ${query} is out of range: Foldseek ticket ${ticketId} holds ${queryCount} ${queryCount === 1 ? 'query' : 'queries'}.`, {
294
+ recovery: {
295
+ hint: queryCount > 0
296
+ ? `Re-call with ticket_id "${ticketId}" and query between 0 and ${queryCount - 1}; the job is already complete, so nothing is resubmitted.`
297
+ : 'Foldseek read no chains from the submitted structure; confirm it has protein coordinates via protein_get_structure.',
298
+ },
299
+ });
300
+ }
256
301
  if (outcome.status === 'not_found') {
257
302
  throw ctx.fail('ticket_not_found', `Foldseek ticket ${outcome.ticketId} is invalid or expired.`, { ...ctx.recoveryFor('ticket_not_found') });
258
303
  }
@@ -264,12 +309,14 @@ async function runStructure(input, timeoutMs, ctx) {
264
309
  });
265
310
  }
266
311
  if (outcome.status === 'computing') {
267
- ctx.enrich.notice(`Foldseek job still computing (ticket ${outcome.ticketId}). Re-call protein_find_similar with ticket_id set to "${outcome.ticketId}" to resume.`);
312
+ const withQuery = query > 0 ? ` and query ${query}` : '';
313
+ ctx.enrich.notice(`Foldseek job still computing (ticket ${outcome.ticketId}). Re-call protein_find_similar with ticket_id set to "${outcome.ticketId}"${withQuery} to resume.`);
268
314
  return {
269
315
  by: 'structure',
270
316
  engine: 'Foldseek',
271
317
  status: 'computing',
272
318
  ticketId: outcome.ticketId,
319
+ query,
273
320
  hits: [],
274
321
  };
275
322
  }
@@ -284,17 +331,27 @@ async function runStructure(input, timeoutMs, ctx) {
284
331
  });
285
332
  // An empty page has two unrelated causes now that `start` pages a completed
286
333
  // job, and they need opposite next moves: no hits at all means widen the
287
- // databases, while a start past the end means ask for a lower offset.
334
+ // databases, while a start past the end means ask for a lower offset. A
335
+ // multichain job adds a third note — this page covers one query of several.
336
+ // `notice` is last-wins, so the applicable notes are joined into one string.
337
+ const notes = [];
288
338
  if (outcome.hits.length === 0) {
289
- ctx.enrich.notice(outcome.total === 0
339
+ notes.push(outcome.total === 0
290
340
  ? 'Foldseek returned no fold-similar hits in the selected databases.'
291
341
  : `start ${input.start} is past the end of this job's ${outcome.total} hits. Re-call with a lower start to read a populated page.`);
292
342
  }
343
+ if (outcome.queryCount > 1) {
344
+ notes.push(`This job holds ${outcome.queryCount} queries, one per chain Foldseek read from the submitted structure in file order; these hits are for query ${outcome.query}. Re-call with ticket_id "${outcome.ticketId}" and a different query (0–${outcome.queryCount - 1}) to read another chain's hits.`);
345
+ }
346
+ if (notes.length > 0)
347
+ ctx.enrich.notice(notes.join(' '));
293
348
  return {
294
349
  by: 'structure',
295
350
  engine: 'Foldseek',
296
351
  status: 'complete',
297
352
  ticketId: outcome.ticketId,
353
+ query: outcome.query,
354
+ queryCount: outcome.queryCount,
298
355
  hits: outcome.hits.map((h) => ({
299
356
  id: h.pdbId ?? h.uniprotAccession ?? h.target,
300
357
  source: h.targetType === 'alphafold' ? 'predicted' : 'experimental',
@@ -309,7 +366,7 @@ async function runStructure(input, timeoutMs, ctx) {
309
366
  /**
310
367
  * Reject an input field the selected `by` mode cannot consume. Each branch reads
311
368
  * only its own subset — `runSequence` alone reads sequence/max_evalue/
312
- * min_identity, `runStructure` alone reads ticket_id/databases — so a field
369
+ * min_identity, `runStructure` alone reads ticket_id/databases/query — so a field
313
370
  * supplied for the other mode would be dropped silently, making an unfiltered
314
371
  * search look filtered or an unscoped one look scoped. Guarded here rather than
315
372
  * by a Zod refine so the rejection carries `data.reason` and a recovery hint
@@ -327,6 +384,7 @@ function rejectModeMismatchedFields(input, ctx) {
327
384
  : [
328
385
  typeof input.ticket_id === 'string' ? 'ticket_id' : null,
329
386
  input.databases && input.databases.length > 0 ? 'databases' : null,
387
+ typeof input.query === 'number' ? 'query' : null,
330
388
  ]).filter((field) => field !== null);
331
389
  if (offenders.length === 0)
332
390
  return;
@@ -358,13 +416,14 @@ async function resolveSequence(input, ctx) {
358
416
  ...ctx.recoveryFor('missing_query'),
359
417
  });
360
418
  }
361
- /** Resolve a query coordinate file (PDB-format text) from a PDB ID or UniProt accession. */
419
+ /** Resolve a query coordinate file (mmCIF or PDB-format text) from a PDB ID or UniProt accession. */
362
420
  async function resolveCoordinateFile(input, ctx) {
363
- const rcsb = getRcsbService();
364
421
  if (input.pdb_id && isPdbId(input.pdb_id)) {
422
+ // mmCIF, not PDB format: every entry has an mmCIF file, while large entries
423
+ // are archived without a PDB-format one, and Foldseek reads either.
365
424
  const id = input.pdb_id.toUpperCase();
366
- const content = await fetchCoordinateText(rcsb.coordinateFileUrl(id, 'pdb'), ctx);
367
- return { content, fileName: `${id}.pdb` };
425
+ const content = await fetchCoordinateText(getRcsbService().mmcifUrl(id), ctx);
426
+ return { content, fileName: `${id}.cif` };
368
427
  }
369
428
  if (input.uniprot && isUniProtAccession(input.uniprot)) {
370
429
  const model = await getAlphaFoldService().getPrediction(input.uniprot, ctx);
@@ -1 +1 @@
1
- {"version":3,"file":"find-similar.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/find-similar.tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"find-similar.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/find-similar.tool.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"get-structure.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/get-structure.tool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAsB,CAAC,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AA8GjE,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkUvB,CAAC"}
1
+ {"version":3,"file":"get-structure.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/get-structure.tool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAsB,CAAC,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAoHjE,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsUvB,CAAC"}