@cyanheads/protein-mcp-server 0.8.2 → 0.8.3

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 (45) hide show
  1. package/AGENTS.md +1 -1
  2. package/CLAUDE.md +1 -1
  3. package/README.md +10 -9
  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/dist/config/server-config.d.ts +2 -0
  7. package/dist/config/server-config.d.ts.map +1 -1
  8. package/dist/config/server-config.js +13 -1
  9. package/dist/config/server-config.js.map +1 -1
  10. package/dist/index.js +1 -1
  11. package/dist/index.js.map +1 -1
  12. package/dist/mcp-server/tools/definitions/analyze-collection.tool.js +2 -2
  13. package/dist/mcp-server/tools/definitions/analyze-collection.tool.js.map +1 -1
  14. package/dist/mcp-server/tools/definitions/compare-structures.tool.d.ts +10 -0
  15. package/dist/mcp-server/tools/definitions/compare-structures.tool.d.ts.map +1 -1
  16. package/dist/mcp-server/tools/definitions/compare-structures.tool.js +77 -11
  17. package/dist/mcp-server/tools/definitions/compare-structures.tool.js.map +1 -1
  18. package/dist/mcp-server/tools/definitions/find-similar.tool.d.ts.map +1 -1
  19. package/dist/mcp-server/tools/definitions/find-similar.tool.js +14 -6
  20. package/dist/mcp-server/tools/definitions/find-similar.tool.js.map +1 -1
  21. package/dist/mcp-server/tools/definitions/get-structure.tool.d.ts.map +1 -1
  22. package/dist/mcp-server/tools/definitions/get-structure.tool.js +84 -36
  23. package/dist/mcp-server/tools/definitions/get-structure.tool.js.map +1 -1
  24. package/dist/mcp-server/tools/definitions/search-structures.tool.d.ts.map +1 -1
  25. package/dist/mcp-server/tools/definitions/search-structures.tool.js +22 -17
  26. package/dist/mcp-server/tools/definitions/search-structures.tool.js.map +1 -1
  27. package/dist/mcp-server/tools/definitions/track-ligands.tool.d.ts.map +1 -1
  28. package/dist/mcp-server/tools/definitions/track-ligands.tool.js +5 -2
  29. package/dist/mcp-server/tools/definitions/track-ligands.tool.js.map +1 -1
  30. package/dist/services/alignment/alignment-service.d.ts +17 -4
  31. package/dist/services/alignment/alignment-service.d.ts.map +1 -1
  32. package/dist/services/alignment/alignment-service.js +31 -21
  33. package/dist/services/alignment/alignment-service.js.map +1 -1
  34. package/dist/services/rcsb/rcsb-service.d.ts +13 -3
  35. package/dist/services/rcsb/rcsb-service.d.ts.map +1 -1
  36. package/dist/services/rcsb/rcsb-service.js +35 -5
  37. package/dist/services/rcsb/rcsb-service.js.map +1 -1
  38. package/dist/services/rcsb/types.d.ts +21 -0
  39. package/dist/services/rcsb/types.d.ts.map +1 -1
  40. package/dist/services/shared/identifiers.d.ts +8 -1
  41. package/dist/services/shared/identifiers.d.ts.map +1 -1
  42. package/dist/services/shared/identifiers.js +12 -1
  43. package/dist/services/shared/identifiers.js.map +1 -1
  44. package/package.json +1 -1
  45. package/server.json +3 -3
@@ -107,7 +107,10 @@ const enrichmentShape = {
107
107
  .number()
108
108
  .optional()
109
109
  .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).'),
110
+ notice: z
111
+ .string()
112
+ .optional()
113
+ .describe('Advisory note: a structure job still computing (with how to resume it), no matches, or a start past the end of the results.'),
111
114
  };
112
115
  export const findSimilar = tool('protein_find_similar', {
113
116
  title: 'protein-mcp-server: find similar',
@@ -209,8 +212,12 @@ async function runSequence(input, ctx) {
209
212
  start: input.start,
210
213
  ...(nextStart < result.total ? { nextStart } : {}),
211
214
  });
215
+ // Same two empty-page causes runStructure separates: nothing matched, or an
216
+ // offset past the end of a populated result set.
212
217
  if (result.hits.length === 0)
213
- ctx.enrich.notice('No sequence-similar entries found. Lower min_identity or raise max_evalue.');
218
+ ctx.enrich.notice(result.total === 0
219
+ ? 'No sequence-similar entries found. Lower min_identity or raise max_evalue.'
220
+ : `start ${input.start} is past the end of the ${result.total} matches. Re-call with a lower start to read a populated page.`);
214
221
  return {
215
222
  by: 'sequence',
216
223
  engine: 'RCSB mmseqs2',
@@ -358,13 +365,14 @@ async function resolveSequence(input, ctx) {
358
365
  ...ctx.recoveryFor('missing_query'),
359
366
  });
360
367
  }
361
- /** Resolve a query coordinate file (PDB-format text) from a PDB ID or UniProt accession. */
368
+ /** Resolve a query coordinate file (mmCIF or PDB-format text) from a PDB ID or UniProt accession. */
362
369
  async function resolveCoordinateFile(input, ctx) {
363
- const rcsb = getRcsbService();
364
370
  if (input.pdb_id && isPdbId(input.pdb_id)) {
371
+ // mmCIF, not PDB format: every entry has an mmCIF file, while large entries
372
+ // are archived without a PDB-format one, and Foldseek reads either.
365
373
  const id = input.pdb_id.toUpperCase();
366
- const content = await fetchCoordinateText(rcsb.coordinateFileUrl(id, 'pdb'), ctx);
367
- return { content, fileName: `${id}.pdb` };
374
+ const content = await fetchCoordinateText(getRcsbService().mmcifUrl(id), ctx);
375
+ return { content, fileName: `${id}.cif` };
368
376
  }
369
377
  if (input.uniprot && isUniProtAccession(input.uniprot)) {
370
378
  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"}
@@ -14,7 +14,7 @@ import { tool, z } from '@cyanheads/mcp-ts-core';
14
14
  import { JsonRpcErrorCode } from '@cyanheads/mcp-ts-core/errors';
15
15
  import { DEFAULT_OUTLINE_BUDGET_BYTES } from '@cyanheads/mcp-ts-core/utils';
16
16
  import { getServerConfig } from '../../../config/server-config.js';
17
- import { getAlphaFoldService } from '../../../services/alphafold/alphafold-service.js';
17
+ import { getAlphaFoldService, } from '../../../services/alphafold/alphafold-service.js';
18
18
  import { getBeaconsService } from '../../../services/beacons/beacons-service.js';
19
19
  import { getRcsbService } from '../../../services/rcsb/rcsb-service.js';
20
20
  import { mapWithConcurrency } from '../../../services/shared/async.js';
@@ -37,7 +37,7 @@ const structureRecordSchema = z
37
37
  pdbId: z
38
38
  .string()
39
39
  .optional()
40
- .describe('Chosen PDB entry ID when a best_available query resolved to an experimental structure (id stays the queried UniProt accession). Lets an agent cite the structure without parsing the coordinate URL.'),
40
+ .describe('Chosen PDB entry ID when a best_available query resolved to an experimental structure (id stays the queried UniProt accession), so the structure can be cited without parsing the coordinate URL.'),
41
41
  title: z.string().optional().describe('Structure / protein title.'),
42
42
  method: z.string().optional().describe('Experimental method(s).'),
43
43
  resolution: z.number().optional().describe('Resolution in Å (experimental).'),
@@ -45,19 +45,19 @@ const structureRecordSchema = z
45
45
  molecularWeight: z
46
46
  .number()
47
47
  .optional()
48
- .describe('Deposited structure molecular weight in kDa, from the RCSB entry record. Omitted when the record does not report one.'),
48
+ .describe('Deposited structure molecular weight in kDa. Present only when the call used source experimental; omitted when the record does not report one.'),
49
49
  releaseDate: z
50
50
  .string()
51
51
  .optional()
52
- .describe('Initial release date (ISO 8601), from the RCSB entry record. Omitted when the record does not report one.'),
52
+ .describe('Initial release date (ISO 8601). Present only when the call used source experimental; omitted when the record does not report one.'),
53
53
  polymerEntities: z
54
54
  .array(polymerEntitySchema)
55
55
  .optional()
56
- .describe('Modeled polymer entities, each with both chain namespaces — authAsymIds for protein_get_annotations.chain, labelAsymIds for protein_compare_structures.chain. Present for records served by the RCSB entry endpoint (source experimental, computed models included); omitted for predicted / best_available records and for entries with none.'),
56
+ .describe('Modeled polymer entities, each with both chain namespaces — authAsymIds for protein_get_annotations.chain, labelAsymIds for protein_compare_structures.chain. Present when the call used source experimental (computed-model IDs included); omitted under source predicted or best_available and for entries with none.'),
57
57
  ligands: z
58
58
  .array(ligandSchema)
59
59
  .optional()
60
- .describe('Bound non-polymer components. Present for records served by the RCSB entry endpoint; omitted when the entry binds none or the record carries no ligand data.'),
60
+ .describe('Bound non-polymer components. Present when the call used source experimental; omitted under source predicted or best_available, when the entry binds none, or when the record carries no ligand data.'),
61
61
  provider: z.string().optional().describe('Model provider (predicted / best_available).'),
62
62
  confidence: z
63
63
  .number()
@@ -84,7 +84,7 @@ const structureRecordSchema = z
84
84
  pdb: z.string().optional().describe('PDB-format coordinate file URL.'),
85
85
  bcif: z.string().optional().describe('Binary CIF coordinate file URL.'),
86
86
  })
87
- .describe('Coordinate file download URLs.'),
87
+ .describe('Coordinate file download URLs. A format with no published file is omitted — e.g. pdb for large entries archived as mmCIF only.'),
88
88
  coordinateFormat: z
89
89
  .enum(['cif', 'pdb', 'bcif'])
90
90
  .optional()
@@ -97,7 +97,7 @@ const structureRecordSchema = z
97
97
  .describe('A resolved structure with metadata and coordinate-file URLs.');
98
98
  export const getStructure = tool('protein_get_structure', {
99
99
  title: 'protein-mcp-server: get structure',
100
- description: `Fetch structures with metadata and coordinate-file URLs. source "experimental" takes PDB entry IDs (batched in one call), and also resolves the computed-model IDs protein_search_structures returns (AF_*/MA_*), which come back marked source "predicted" with their modelling provider; "predicted" takes UniProt accessions (AlphaFold, with pLDDT/PAE confidence); "best_available" takes UniProt accessions and returns the top federated model — the highest-resolution experimental structure if one exists (optimizing resolution, not biological representativeness, so it can return an engineered mutant over the wild-type entry), else the best prediction. Records served by the RCSB entry endpoint also carry polymer entities with both chain namespaces (labelAsymIds for protein_compare_structures, authAsymIds for protein_get_annotations), bound ligands, molecular weight, and release date. Resolves up to the configured batch cap per call with per-ID partial success — missed IDs are listed in failed[], and IDs beyond the cap are reported in the notice. Set include_coords to inline coordinate content; if the inlined bytes exceed the response budget the content is withheld and overflow lists each structure's size — re-call with sections:[ids] for specific structures, or for a single oversized file download it from that record's coordinateUrls.`,
100
+ description: `Fetch structures with metadata and coordinate-file URLs. source "experimental" takes PDB entry IDs, and also resolves the computed-model IDs protein_search_structures returns (AF_*/MA_*), which come back marked source "predicted" with their modelling provider; "predicted" takes UniProt accessions (AlphaFold, with pLDDT/PAE confidence); "best_available" takes UniProt accessions and returns the top federated model — the highest-resolution experimental structure if one exists (optimizing resolution, not biological representativeness, so it can return an engineered mutant over the wild-type entry), else the best prediction. Records fetched under source "experimental", computed models included, also carry polymer entities with both chain namespaces (labelAsymIds for protein_compare_structures, authAsymIds for protein_get_annotations), bound ligands, molecular weight, and release date. Resolves up to the configured batch cap per call with per-ID partial success — missed IDs are listed in failed[], and IDs beyond the cap are reported in the notice. Set include_coords to inline coordinate content; if the inlined bytes exceed the response budget the content is withheld and overflow lists each structure's size — re-call with sections:[ids] for specific structures, or for a single oversized file download it from that record's coordinateUrls.`,
101
101
  annotations: { readOnlyHint: true, openWorldHint: true },
102
102
  errors: [
103
103
  {
@@ -125,7 +125,7 @@ export const getStructure = tool('protein_get_structure', {
125
125
  include_coords: z
126
126
  .boolean()
127
127
  .default(false)
128
- .describe('Inline coordinate-file content (cif). Off by default — URLs are always returned.'),
128
+ .describe('Inline coordinate-file content — mmCIF, or PDB format when no mmCIF URL is available; coordinateFormat names which. Off by default — URLs are always returned.'),
129
129
  sections: z
130
130
  .array(z.string())
131
131
  .optional()
@@ -166,7 +166,7 @@ export const getStructure = tool('protein_get_structure', {
166
166
  enrichment: {
167
167
  requested: z
168
168
  .number()
169
- .describe('Number of IDs in the original request (input.ids.length), before the batch cap was applied.'),
169
+ .describe('Number of IDs in the original request, before the batch cap was applied.'),
170
170
  processed: z
171
171
  .number()
172
172
  .describe('Number of IDs actually processed after the batch cap. Lower than requested means the excess IDs were ignored and never looked up — re-submit them in a follow-up call.'),
@@ -174,7 +174,7 @@ export const getStructure = tool('protein_get_structure', {
174
174
  notice: z
175
175
  .string()
176
176
  .optional()
177
- .describe('Every applicable advisory joined into one string: batch cap, partial failures, coordinate-budget overflow, and failed coordinate inlining.'),
177
+ .describe('Every applicable advisory joined into one string: batch cap, partial failures, a computed model whose provider coordinate lookup failed (only its BinaryCIF URL listed), coordinate-budget overflow, and failed coordinate inlining.'),
178
178
  },
179
179
  async handler(input, ctx) {
180
180
  const cfg = getServerConfig();
@@ -193,8 +193,8 @@ export const getStructure = tool('protein_get_structure', {
193
193
  else if (ids.some((id) => isPdbId(id) && !isUniProtAccession(id))) {
194
194
  throw ctx.fail('mixed_id_types', `source ${input.source} expects UniProt accessions, but PDB IDs were present.`, { ...ctx.recoveryFor('mixed_id_types') });
195
195
  }
196
- const { structures, failed } = input.source === 'experimental'
197
- ? await fetchExperimental(ids, ctx)
196
+ const { structures, failed, notices: resolutionNotices, } = input.source === 'experimental'
197
+ ? await fetchExperimental(ids, cfg.fanoutConcurrency, ctx)
198
198
  : await fetchPredictedOrBest(ids, input.source, cfg.fanoutConcurrency, ctx);
199
199
  if (structures.length === 0) {
200
200
  throw ctx.fail('all_failed', `None of the ${ids.length} requested IDs resolved to a structure.`, { ...ctx.recoveryFor('all_failed') });
@@ -202,6 +202,8 @@ export const getStructure = tool('protein_get_structure', {
202
202
  if (failed.length > 0) {
203
203
  notices.push(`${failed.length} of ${ids.length} IDs did not resolve: ${failed.map((f) => f.id).join(', ')}.`);
204
204
  }
205
+ if (resolutionNotices)
206
+ notices.push(...resolutionNotices);
205
207
  // Inline coordinates when requested (all, or only the re-called sections).
206
208
  const inlineSet = input.sections?.length
207
209
  ? new Set(input.sections.map((s) => s.toUpperCase()))
@@ -364,12 +366,13 @@ export const getStructure = tool('protein_get_structure', {
364
366
  function pct(fraction) {
365
367
  return `${Math.round(fraction * 100)}%`;
366
368
  }
367
- async function fetchExperimental(ids, ctx) {
369
+ async function fetchExperimental(ids, concurrency, ctx) {
368
370
  const rcsb = getRcsbService();
369
371
  const entries = await rcsb.getEntries(ids, ctx);
370
372
  const byId = new Map(entries.map((e) => [e.id.toUpperCase(), e]));
371
373
  const structures = [];
372
374
  const failed = [];
375
+ const csms = [];
373
376
  for (const id of ids) {
374
377
  const meta = byId.get(id.toUpperCase());
375
378
  if (!meta) {
@@ -381,7 +384,7 @@ async function fetchExperimental(ids, ctx) {
381
384
  // their IDs under the default content_type. Read the provenance rather than
382
385
  // stamping every resolved ID experimental — that would both contradict the
383
386
  // record and credit an AlphaFold/ModelArchive model to the PDB's CC0.
384
- structures.push({
387
+ const record = {
385
388
  id: meta.id,
386
389
  source: meta.computedModelProvider ? 'predicted' : 'experimental',
387
390
  ...(meta.computedModelProvider ? { provider: meta.computedModelProvider } : {}),
@@ -397,14 +400,62 @@ async function fetchExperimental(ids, ctx) {
397
400
  // emitted empty, so a sparse entry does not read as "this entry has none".
398
401
  ...(meta.polymerEntities.length > 0 ? { polymerEntities: meta.polymerEntities } : {}),
399
402
  ...(meta.ligands.length > 0 ? { ligands: meta.ligands } : {}),
400
- coordinateUrls: {
401
- cif: rcsb.coordinateFileUrl(meta.id, 'cif'),
402
- pdb: rcsb.coordinateFileUrl(meta.id, 'pdb'),
403
- bcif: rcsb.coordinateFileUrl(meta.id, 'bcif'),
404
- },
405
- });
403
+ coordinateUrls: rcsb.coordinateUrls(meta),
404
+ };
405
+ structures.push(record);
406
+ if (meta.computedModelProvider)
407
+ csms.push({ meta, record });
406
408
  }
407
- return { structures, failed };
409
+ // RCSB publishes only BinaryCIF for a computed model; its provider publishes the
410
+ // text formats. Each lookup degrades to the RCSB BinaryCIF URL on its own row.
411
+ const notices = [];
412
+ await mapWithConcurrency(csms, concurrency, async ({ meta, record }) => {
413
+ const provider = await providerCoordinateUrls(meta, ctx);
414
+ if (provider === 'unresolved') {
415
+ notices.push(`AlphaFold DB coordinate lookup did not resolve for ${meta.id}; only its RCSB BinaryCIF URL is listed — fetch the model by UniProt accession with source "predicted" for mmCIF and PDB files.`);
416
+ return;
417
+ }
418
+ record.coordinateUrls = { ...record.coordinateUrls, ...provider };
419
+ });
420
+ return { structures, failed, notices };
421
+ }
422
+ /**
423
+ * Text-format coordinate URLs from a computed model's own provider, keyed on the
424
+ * provider entry ID RCSB records. AlphaFold DB file names carry a model version,
425
+ * so they come from its prediction record — the same URLs `source: "predicted"`
426
+ * returns. A ModelArchive download is addressed by entry ID alone. `'unresolved'`
427
+ * marks an AlphaFold model whose lookup failed or found nothing; any other
428
+ * provider has no known download route and contributes nothing.
429
+ */
430
+ async function providerCoordinateUrls(meta, ctx) {
431
+ const entryId = meta.computedModelEntryId;
432
+ if (meta.computedModelProvider === 'ModelArchive' && entryId) {
433
+ return {
434
+ cif: `${getServerConfig().modelArchiveBaseUrl}/api/projects/${encodeURIComponent(entryId)}?type=basic__model_file_name`,
435
+ };
436
+ }
437
+ if (meta.computedModelProvider !== 'AlphaFold DB')
438
+ return {};
439
+ if (!entryId)
440
+ return 'unresolved';
441
+ const model = await getAlphaFoldService()
442
+ .getPrediction(entryId, ctx)
443
+ .catch((err) => {
444
+ ctx.log.warning('AlphaFold coordinate lookup failed', {
445
+ id: meta.id,
446
+ error: err instanceof Error ? err.message : err,
447
+ });
448
+ return null;
449
+ });
450
+ return model ? alphaFoldCoordinateUrls(model) : 'unresolved';
451
+ }
452
+ /** The coordinate URLs an AlphaFold DB prediction record publishes. */
453
+ function alphaFoldCoordinateUrls(model) {
454
+ return {
455
+ ...(model.cifUrl ? { cif: model.cifUrl } : {}),
456
+ ...(model.pdbUrl ? { pdb: model.pdbUrl } : {}),
457
+ ...(model.bcifUrl ? { bcif: model.bcifUrl } : {}),
458
+ };
408
459
  }
409
460
  /**
410
461
  * Per-ID failure reason for an identifier that is not accession-shaped. Kept
@@ -449,11 +500,7 @@ async function fetchPrediction(accession, ctx) {
449
500
  ...(typeof model.meanPlddt === 'number' ? { meanPlddt: model.meanPlddt } : {}),
450
501
  ...(model.confidenceBuckets ? { confidenceBuckets: model.confidenceBuckets } : {}),
451
502
  ...(model.paeDocUrl ? { paeDocUrl: model.paeDocUrl } : {}),
452
- coordinateUrls: {
453
- ...(model.cifUrl ? { cif: model.cifUrl } : {}),
454
- ...(model.pdbUrl ? { pdb: model.pdbUrl } : {}),
455
- ...(model.bcifUrl ? { bcif: model.bcifUrl } : {}),
456
- },
503
+ coordinateUrls: alphaFoldCoordinateUrls(model),
457
504
  };
458
505
  }
459
506
  async function fetchBest(accession, ctx) {
@@ -474,12 +521,12 @@ async function fetchBest(accession, ctx) {
474
521
  // best-effort — a failed lookup must not drop the structure the agent already has.
475
522
  const rcsb = getRcsbService();
476
523
  let pdbId;
477
- let title;
524
+ let entry;
478
525
  if (isExperimental && best.modelIdentifier) {
479
526
  pdbId = best.modelIdentifier.toUpperCase();
480
- const entries = await rcsb.getEntries([pdbId], ctx).catch(() => []);
481
- title = entries[0]?.title;
527
+ entry = (await rcsb.getEntries([pdbId], ctx).catch(() => []))[0];
482
528
  }
529
+ const title = entry?.title;
483
530
  return {
484
531
  id: summary.accession,
485
532
  source: isExperimental ? 'experimental' : 'predicted',
@@ -498,12 +545,10 @@ async function fetchBest(accession, ctx) {
498
545
  best.confidenceType?.toLowerCase() === 'plddt'
499
546
  ? { meanPlddt: best.confidenceAvgLocalScore }
500
547
  : {}),
548
+ // The entry record (when the best-effort lookup succeeded) says whether a
549
+ // PDB-format file exists; without it the URL set matches an unreported entry.
501
550
  coordinateUrls: pdbId
502
- ? {
503
- cif: rcsb.coordinateFileUrl(pdbId, 'cif'),
504
- pdb: rcsb.coordinateFileUrl(pdbId, 'pdb'),
505
- bcif: rcsb.coordinateFileUrl(pdbId, 'bcif'),
506
- }
551
+ ? rcsb.coordinateUrls(entry ?? { id: pdbId })
507
552
  : best.modelUrl
508
553
  ? coordinateUrlFor(best.modelUrl)
509
554
  : {},
@@ -532,8 +577,11 @@ async function inlineCoordinates(structures, inline, concurrency, ctx) {
532
577
  : s.coordinateUrls.pdb
533
578
  ? ['pdb', s.coordinateUrls.pdb]
534
579
  : null;
535
- if (!pick)
580
+ // BinaryCIF is binary, so a record with no text format cannot be inlined.
581
+ if (!pick) {
582
+ failures.push(s.id);
536
583
  return;
584
+ }
537
585
  try {
538
586
  s.coordinates = await fetchText(pick[1], ctx, {
539
587
  operation: 'getStructure.inlineCoordinates',
@@ -1 +1 @@
1
- {"version":3,"file":"get-structure.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/get-structure.tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"get-structure.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/get-structure.tool.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"search-structures.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/search-structures.tool.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAwDjE,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8Q3B,CAAC"}
1
+ {"version":3,"file":"search-structures.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/search-structures.tool.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAmDjE,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqR3B,CAAC"}
@@ -10,7 +10,7 @@ import { JsonRpcErrorCode } from '@cyanheads/mcp-ts-core/errors';
10
10
  import { getServerConfig } from '../../../config/server-config.js';
11
11
  import { buildFacetSpec, FACET_DIMENSION_NAMES } from '../../../services/rcsb/facets.js';
12
12
  import { getRcsbService } from '../../../services/rcsb/rcsb-service.js';
13
- import { entryIdOf } from '../../../services/shared/identifiers.js';
13
+ import { entryIdOf, isComputedModelId } from '../../../services/shared/identifiers.js';
14
14
  import { CONTENT_TYPE_SCOPES, coverageNotices, flatFacetDimensionSchema, renderFacets, toFacetOutput, } from './_schemas.js';
15
15
  /**
16
16
  * Zero-hit advice, per scope. Only the two single-universe scopes have a wider
@@ -22,10 +22,6 @@ const ZERO_HIT_NOTICE = {
22
22
  predicted: 'No predicted models matched. Predicted search covers computed models indexed by RCSB; widen content_type to "all" to include experimental structures.',
23
23
  all: 'No structures matched in either the experimental or computed-model universe — content_type "all" is already the widest scope. Broaden the query or drop filters.',
24
24
  };
25
- /** A computed-model identifier (AlphaFold / ModelArchive) vs an experimental PDB entry. */
26
- function isPredictedId(id) {
27
- return /^(AF|MA)_/i.test(id);
28
- }
29
25
  /** Pull a UniProt accession out of a computed-model identifier when present (`AF_AFP69905F1` → `P69905`). */
30
26
  function accessionFromCsm(id) {
31
27
  return /AF_AF([A-Z0-9]+?)F\d+$/i.exec(id)?.[1]?.toUpperCase();
@@ -50,7 +46,7 @@ function truncationNotice(dimensions, cap, sequenceSearch) {
50
46
  }
51
47
  export const searchStructures = tool('protein_search_structures', {
52
48
  title: 'protein-mcp-server: search structures',
53
- description: 'Search experimental (PDB) and predicted (computed-model) protein structures by free text, protein sequence (triggers an mmseqs2 similarity search), and/or organism, method, and resolution filters. Returns ranked hits; the experimental page is enriched with title, method, resolution, and organism. Chain hit IDs into protein_get_structure. Optionally returns a facet breakdown (counts by method / organism / release year / …) alongside the hits at no extra call. A facet on a dimension you are already filtering (e.g. the organism facet while organism is set) lists unfiltered alternatives by design — it does not constrain by its own active filter, so you can see sibling values to pivot to. Numeric histogram buckets (resolution, molecular weight) carry explicit rangeFrom/rangeTo bounds so a boundary label is unambiguous.',
49
+ description: 'Search experimental (PDB) and predicted (computed-model) protein structures by free text, protein sequence (triggers an mmseqs2 similarity search), and/or organism, method, and resolution filters. Returns ranked hits; the experimental page is enriched with title, method, resolution, and organism. Chain hit IDs into protein_get_structure. Optionally returns a facet breakdown (counts by method / organism / release year / …) alongside the hits in the same response. A facet on a dimension you are already filtering (e.g. the organism facet while organism is set) lists unfiltered alternatives by design — it does not constrain by its own active filter, so you can see sibling values to pivot to. Numeric histogram buckets (resolution, molecular weight) carry explicit rangeFrom/rangeTo bounds so a boundary label is unambiguous.',
54
50
  annotations: { readOnlyHint: true, openWorldHint: true },
55
51
  errors: [
56
52
  {
@@ -99,12 +95,12 @@ export const searchStructures = tool('protein_search_structures', {
99
95
  .min(0)
100
96
  .max(1)
101
97
  .optional()
102
- .describe('Minimum sequence identity (0–1) for a sequence search. Requires sequence — supplying it without one is rejected, since the threshold would never reach RCSB. Default 0.'),
98
+ .describe('Minimum sequence identity (0–1) for a sequence search. Requires sequence — supplying it without one is rejected, since the threshold filters only a sequence search. Default 0.'),
103
99
  max_evalue: z
104
100
  .number()
105
101
  .positive()
106
102
  .optional()
107
- .describe('Maximum E-value for a sequence search. Requires sequence — supplying it without one is rejected, since the threshold would never reach RCSB. Default 1.'),
103
+ .describe('Maximum E-value for a sequence search. Requires sequence — supplying it without one is rejected, since the threshold filters only a sequence search. Default 1.'),
108
104
  content_type: z
109
105
  .enum(['experimental', 'predicted', 'all'])
110
106
  .default('all')
@@ -129,7 +125,7 @@ export const searchStructures = tool('protein_search_structures', {
129
125
  entityId: z
130
126
  .string()
131
127
  .optional()
132
- .describe('Matched polymer-entity ID for experimental sequence hits; id remains the chainable PDB entry ID.'),
128
+ .describe('Matched polymer-entity ID for sequence hits (e.g. 4HHB_1, AF_AFP69905F1_1); id remains the chainable entry ID.'),
133
129
  source: z
134
130
  .enum(['experimental', 'predicted'])
135
131
  .describe('Which universe the hit came from.'),
@@ -218,7 +214,7 @@ export const searchStructures = tool('protein_search_structures', {
218
214
  start: input.start,
219
215
  }, ctx, facetSpecs);
220
216
  const experimentalIds = [
221
- ...new Set(result.hits.filter((h) => !isPredictedId(h.id)).map((h) => entryIdOf(h.id))),
217
+ ...new Set(result.hits.filter((h) => !isComputedModelId(h.id)).map((h) => entryIdOf(h.id))),
222
218
  ];
223
219
  const metaById = new Map();
224
220
  if (experimentalIds.length > 0) {
@@ -238,8 +234,12 @@ export const searchStructures = tool('protein_search_structures', {
238
234
  // `notice` is a single last-wins field, so the zero-hit advice, the capped-facet
239
235
  // advice, and one fragment per under-covered facet dimension compose into ONE string.
240
236
  const notices = [];
237
+ // An empty page with a nonzero total is an offset past the end, not a query
238
+ // that matched nothing — the two need opposite next moves.
241
239
  if (hits.length === 0)
242
- notices.push(ZERO_HIT_NOTICE[input.content_type]);
240
+ notices.push(result.total === 0
241
+ ? ZERO_HIT_NOTICE[input.content_type]
242
+ : `start ${input.start} is past the end of the ${result.total} matches. Re-call with a lower start to read a populated page.`);
243
243
  if (facets) {
244
244
  const capped = facets.filter((f) => f.truncated).map((f) => f.dimension);
245
245
  if (capped.length > 0)
@@ -276,20 +276,25 @@ export const searchStructures = tool('protein_search_structures', {
276
276
  });
277
277
  /** Build one output hit, folding in enrichment metadata when available. */
278
278
  function toHit(hit, metaById, sequenceSearch) {
279
- if (isPredictedId(hit.id)) {
280
- const accession = accessionFromCsm(hit.id);
279
+ // A sequence search returns polymer entities in both universes (4HHB_1,
280
+ // AF_AFP69905F1_1); `id` is the chainable entry and `entityId` the matched entity.
281
+ const entryId = entryIdOf(hit.id);
282
+ const identity = {
283
+ id: sequenceSearch ? entryId : hit.id,
284
+ ...(sequenceSearch ? { entityId: hit.id } : {}),
285
+ };
286
+ if (isComputedModelId(hit.id)) {
287
+ const accession = accessionFromCsm(identity.id);
281
288
  return {
282
- id: hit.id,
289
+ ...identity,
283
290
  source: 'predicted',
284
291
  score: hit.score,
285
292
  ...(accession ? { uniprotAccession: accession } : {}),
286
293
  };
287
294
  }
288
- const entryId = entryIdOf(hit.id);
289
295
  const meta = metaById.get(entryId);
290
296
  return {
291
- id: sequenceSearch ? entryId : hit.id,
292
- ...(sequenceSearch ? { entityId: hit.id } : {}),
297
+ ...identity,
293
298
  source: 'experimental',
294
299
  score: hit.score,
295
300
  ...(meta?.title ? { title: meta.title } : {}),