@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.
- package/AGENTS.md +1 -1
- package/CLAUDE.md +1 -1
- package/README.md +10 -9
- package/changelog/0.8.x/0.8.2.md +7 -7
- package/changelog/0.8.x/0.8.3.md +23 -0
- package/dist/config/server-config.d.ts +2 -0
- package/dist/config/server-config.d.ts.map +1 -1
- package/dist/config/server-config.js +13 -1
- package/dist/config/server-config.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/mcp-server/tools/definitions/analyze-collection.tool.js +2 -2
- package/dist/mcp-server/tools/definitions/analyze-collection.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/compare-structures.tool.d.ts +10 -0
- package/dist/mcp-server/tools/definitions/compare-structures.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/compare-structures.tool.js +77 -11
- package/dist/mcp-server/tools/definitions/compare-structures.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/find-similar.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/find-similar.tool.js +14 -6
- package/dist/mcp-server/tools/definitions/find-similar.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/get-structure.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/get-structure.tool.js +84 -36
- package/dist/mcp-server/tools/definitions/get-structure.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/search-structures.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/search-structures.tool.js +22 -17
- package/dist/mcp-server/tools/definitions/search-structures.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/track-ligands.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/track-ligands.tool.js +5 -2
- package/dist/mcp-server/tools/definitions/track-ligands.tool.js.map +1 -1
- package/dist/services/alignment/alignment-service.d.ts +17 -4
- package/dist/services/alignment/alignment-service.d.ts.map +1 -1
- package/dist/services/alignment/alignment-service.js +31 -21
- package/dist/services/alignment/alignment-service.js.map +1 -1
- package/dist/services/rcsb/rcsb-service.d.ts +13 -3
- package/dist/services/rcsb/rcsb-service.d.ts.map +1 -1
- package/dist/services/rcsb/rcsb-service.js +35 -5
- package/dist/services/rcsb/rcsb-service.js.map +1 -1
- package/dist/services/rcsb/types.d.ts +21 -0
- package/dist/services/rcsb/types.d.ts.map +1 -1
- package/dist/services/shared/identifiers.d.ts +8 -1
- package/dist/services/shared/identifiers.d.ts.map +1 -1
- package/dist/services/shared/identifiers.js +12 -1
- package/dist/services/shared/identifiers.js.map +1 -1
- package/package.json +1 -1
- 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
|
|
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(
|
|
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(
|
|
367
|
-
return { content, fileName: `${id}.
|
|
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":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAuB,IAAI,EAAE,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAC;AAChF,OAAO,EAAwB,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AACnG,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAEjE,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAC1F,OAAO,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAE1E,MAAM,oBAAoB,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAClD,MAAM,aAAa,GAAG,OAAO,CAAC;AAE9B,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3B,EAAE,EAAE,CAAC;SACF,IAAI,CAAC,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;SAC/B,QAAQ,CAAC,8DAA8D,CAAC;IAC3E,QAAQ,EAAE,CAAC;SACR,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,8DAA8D,CAAC;IAC3E,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;IAChF,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6CAA6C,CAAC;IACtF,SAAS,EAAE,CAAC;SACT,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,sNAAsN,CACvN;IACH,SAAS,EAAE,CAAC;SACT,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;SACjB,QAAQ,EAAE;SACV,QAAQ,CACP,+FAA+F,CAChG;IACH,UAAU,EAAE,CAAC;SACV,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,EAAE;SACV,QAAQ,CAAC,2CAA2C,CAAC;IACxD,YAAY,EAAE,CAAC;SACZ,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,EAAE;SACV,QAAQ,CAAC,yDAAyD,CAAC;IACtE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,iCAAiC,CAAC;IAC/F,KAAK,EAAE,CAAC;SACL,MAAM,EAAE;SACR,GAAG,EAAE;SACL,GAAG,CAAC,CAAC,CAAC;SACN,OAAO,CAAC,CAAC,CAAC;SACV,QAAQ,CACP,2HAA2H,CAC5H;CACJ,CAAC,CAAC;AAEH,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5B,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,yBAAyB,CAAC;IACzE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6DAA6D,CAAC;IAC1F,MAAM,EAAE,CAAC;SACN,IAAI,CAAC,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;SAC/B,QAAQ,CAAC,8EAA8E,CAAC;IAC3F,QAAQ,EAAE,CAAC;SACR,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,qNAAqN,CACtN;IACH,IAAI,EAAE,CAAC;SACJ,KAAK,CACJ,CAAC;SACE,MAAM,CAAC;QACN,EAAE,EAAE,CAAC;aACF,MAAM,EAAE;aACR,QAAQ,CACP,6IAA6I,CAC9I;QACH,QAAQ,EAAE,CAAC;aACR,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,+FAA+F,CAChG;QACH,MAAM,EAAE,CAAC;aACN,IAAI,CAAC,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;aACnC,QAAQ,CAAC,4DAA4D,CAAC;QACzE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8BAA8B,CAAC;QACrE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;QAC7E,QAAQ,EAAE,CAAC;aACR,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,4DAA4D,CAAC;QACzE,QAAQ,EAAE,CAAC;aACR,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,qDAAqD,CAAC;QAClE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2CAA2C,CAAC;QAClF,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2CAA2C,CAAC;QACrF,gBAAgB,EAAE,CAAC;aAChB,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,+CAA+C,CAAC;KAC7D,CAAC;SACD,QAAQ,CAAC,0DAA0D,CAAC,CACxE;SACA,QAAQ,CAAC,+BAA+B,CAAC;CAC7C,CAAC,CAAC;AAEH,MAAM,eAAe,GAAG;IACtB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2CAA2C,CAAC;IACvF,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gDAAgD,CAAC;IACvF,SAAS,EAAE,CAAC;SACT,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,wEAAwE,CAAC;IACrF,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iDAAiD,CAAC;CAC1F,CAAC;AASF,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,CAAC,sBAAsB,EAAE;IACtD,KAAK,EAAE,kCAAkC;IACzC,WAAW,EAAE,i9BAAi9B;IAC99B,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE;IAExD,sFAAsF;IACtF,MAAM,EAAE;QACN;YACE,MAAM,EAAE,eAAe;YACvB,IAAI,EAAE,gBAAgB,CAAC,aAAa;YACpC,IAAI,EAAE,oDAAoD;YAC1D,QAAQ,EAAE,gFAAgF;YAC1F,QAAQ,EAAE,SAAS;SACpB;QACD;YACE,MAAM,EAAE,uBAAuB;YAC/B,IAAI,EAAE,gBAAgB,CAAC,aAAa;YACpC,IAAI,EAAE,sLAAsL;YAC5L,QAAQ,EACN,yKAAyK;YAC3K,QAAQ,EAAE,SAAS;SACpB;QACD;YACE,MAAM,EAAE,aAAa;YACrB,IAAI,EAAE,gBAAgB,CAAC,QAAQ;YAC/B,IAAI,EAAE,8EAA8E;YACpF,QAAQ,EACN,+FAA+F;YACjG,QAAQ,EAAE,SAAS;SACpB;QACD;YACE,MAAM,EAAE,eAAe;YACvB,IAAI,EAAE,gBAAgB,CAAC,kBAAkB;YACzC,IAAI,EAAE,mEAAmE;YACzE,SAAS,EAAE,IAAI;YACf,QAAQ,EACN,uGAAuG;YACzG,QAAQ,EAAE,SAAS;SACpB;QACD;YACE,MAAM,EAAE,kBAAkB;YAC1B,IAAI,EAAE,gBAAgB,CAAC,QAAQ;YAC/B,IAAI,EAAE,kFAAkF;YACxF,QAAQ,EACN,mIAAmI;YACrI,QAAQ,EAAE,SAAS;SACpB;KACF;IAED,KAAK,EAAE,WAAW;IAClB,MAAM,EAAE,YAAY;IACpB,UAAU,EAAE,eAAe;IAE3B,+EAA+E;IAC/E,6EAA6E;IAC7E,YAAY;IACZ,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG;QACtB,MAAM,GAAG,GAAG,eAAe,EAAE,CAAC;QAC9B,0BAA0B,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QACvC,OAAO,KAAK,CAAC,EAAE,KAAK,UAAU;YAC5B,CAAC,CAAC,MAAM,WAAW,CAAC,KAAK,EAAE,GAAG,CAAC;YAC/B,CAAC,CAAC,MAAM,YAAY,CAAC,KAAK,EAAE,GAAG,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAC;IAC7D,CAAC;IAED,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE;QACjB,MAAM,KAAK,GAAa,CAAC,MAAM,MAAM,CAAC,MAAM,QAAQ,MAAM,CAAC,EAAE,OAAO,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QACrF,IAAI,MAAM,CAAC,QAAQ;YACjB,KAAK,CAAC,IAAI,CACR,eAAe,MAAM,CAAC,QAAQ,0DAA0D,CACzF,CAAC;QACJ,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;YAC5B,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC;YAC5C,IAAI,CAAC,CAAC,KAAK;gBAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YACjC,MAAM,KAAK,GAAG;gBACZ,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI;gBAC/C,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI;gBAC5D,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI;gBAChE,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI;gBACrE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI;gBAC3C,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,IAAI;gBACjD,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,IAAI;aACjE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAClB,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;gBAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QACtD,CAAC;QACD,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACpD,CAAC;CACF,CAAC,CAAC;AAEH,KAAK,UAAU,WAAW,CAAC,KAAuB,EAAE,GAAQ;IAC1D,MAAM,IAAI,GAAG,cAAc,EAAE,CAAC;IAC9B,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAEnD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CACtC,QAAQ,EACR;QACE,GAAG,CAAC,OAAO,KAAK,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAChF,GAAG,CAAC,OAAO,KAAK,CAAC,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACtF,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,KAAK,EAAE,KAAK,CAAC,KAAK;KACnB,EACD,GAAG,CACJ,CAAC;IAEF,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACvE,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAqB,CAAC;IAC9C,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,KAAK,MAAM,IAAI,IAAI,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,GAAG,CAAC;YAAE,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IACvF,CAAC;IAED,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC/B,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;IACnD,GAAG,CAAC,MAAM,CAAC;QACT,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,GAAG,CAAC,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACnD,CAAC,CAAC;IACH,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC;QAC1B,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,4EAA4E,CAAC,CAAC;IAElG,OAAO;QACL,EAAE,EAAE,UAAU;QACd,MAAM,EAAE,cAAc;QACtB,MAAM,EAAE,UAAU;QAClB,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YAC1B,yEAAyE;YACzE,wEAAwE;YACxE,0EAA0E;YAC1E,MAAM,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAChC,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACnC,OAAO;gBACL,EAAE,EAAE,OAAO;gBACX,QAAQ,EAAE,CAAC,CAAC,EAAE;gBACd,MAAM,EAAE,cAAuB;gBAC/B,KAAK,EAAE,CAAC,CAAC,KAAK;gBACd,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC7C,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC/D,CAAC;QACJ,CAAC,CAAC;KACH,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,YAAY,CACzB,KAAuB,EACvB,SAAiB,EACjB,GAAQ;IAER,MAAM,QAAQ,GAAG,kBAAkB,EAAE,CAAC;IACtC,IAAI,OAAwB,CAAC;IAC7B,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;QACpB,0EAA0E;QAC1E,6EAA6E;QAC7E,8EAA8E;QAC9E,OAAO,GAAG,MAAM,QAAQ,CAAC,MAAM,CAC7B,EAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,SAAS,EAAE,EAChF,GAAG,CACJ,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,MAAM,qBAAqB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QACtE,OAAO,GAAG,MAAM,QAAQ,CAAC,MAAM,CAC7B;YACE,WAAW,EAAE,OAAO;YACpB,QAAQ;YACR,SAAS,EACP,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,oBAAoB;YACxF,IAAI,EAAE,aAAa;YACnB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,SAAS;SACV,EACD,GAAG,CACJ,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;QACnC,MAAM,GAAG,CAAC,IAAI,CACZ,kBAAkB,EAClB,mBAAmB,OAAO,CAAC,QAAQ,yBAAyB,EAC5D,EAAE,GAAG,GAAG,CAAC,WAAW,CAAC,kBAAkB,CAAC,EAAE,CAC3C,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QAChC,MAAM,GAAG,CAAC,IAAI,CAAC,eAAe,EAAE,2BAA2B,OAAO,CAAC,KAAK,EAAE,EAAE;YAC1E,QAAQ,EAAE;gBACR,IAAI,EAAE,8EAA8E;aACrF;SACF,CAAC,CAAC;IACL,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;QACnC,GAAG,CAAC,MAAM,CAAC,MAAM,CACf,wCAAwC,OAAO,CAAC,QAAQ,0DAA0D,OAAO,CAAC,QAAQ,cAAc,CACjJ,CAAC;QACF,OAAO;YACL,EAAE,EAAE,WAAW;YACf,MAAM,EAAE,UAAU;YAClB,MAAM,EAAE,WAAW;YACnB,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,IAAI,EAAE,EAAE;SACT,CAAC;IACJ,CAAC;IAED,+EAA+E;IAC/E,4EAA4E;IAC5E,mDAAmD;IACnD,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAChC,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;IACpD,GAAG,CAAC,MAAM,CAAC;QACT,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,GAAG,CAAC,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACpD,CAAC,CAAC;IACH,4EAA4E;IAC5E,yEAAyE;IACzE,sEAAsE;IACtE,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,GAAG,CAAC,MAAM,CAAC,MAAM,CACf,OAAO,CAAC,KAAK,KAAK,CAAC;YACjB,CAAC,CAAC,mEAAmE;YACrE,CAAC,CAAC,SAAS,KAAK,CAAC,KAAK,kCAAkC,OAAO,CAAC,KAAK,6DAA6D,CACrI,CAAC;IACJ,CAAC;IACD,OAAO;QACL,EAAE,EAAE,WAAW;QACf,MAAM,EAAE,UAAU;QAClB,MAAM,EAAE,UAAU;QAClB,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC7B,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,gBAAgB,IAAI,CAAC,CAAC,MAAM;YAC7C,MAAM,EAAE,CAAC,CAAC,UAAU,KAAK,WAAW,CAAC,CAAC,CAAE,WAAqB,CAAC,CAAC,CAAE,cAAwB;YACzF,GAAG,CAAC,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1D,GAAG,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7D,GAAG,CAAC,OAAO,CAAC,CAAC,gBAAgB,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACnF,QAAQ,EAAE,CAAC,CAAC,QAAQ;YACpB,GAAG,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,CAAC,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACxE,CAAC,CAAC;KACJ,CAAC;AACJ,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAS,0BAA0B,CAAC,KAAuB,EAAE,GAAQ;IACnE,MAAM,SAAS,GAAG,CAChB,KAAK,CAAC,EAAE,KAAK,WAAW;QACtB,CAAC,CAAC;YACE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI;YAClC,OAAO,KAAK,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI;YAC1D,OAAO,KAAK,CAAC,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI;SAC/D;QACH,CAAC,CAAC;YACE,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI;YACxD,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI;SACnE,CACN,CAAC,MAAM,CAAC,CAAC,KAAK,EAAmB,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC;IACrD,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAEnC,MAAM,SAAS,GAAG,KAAK,CAAC,EAAE,KAAK,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC;IACtE,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;IACpC,MAAM,GAAG,CAAC,IAAI,CACZ,uBAAuB,EACvB,OAAO,KAAK,CAAC,EAAE,sBAAsB,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAC5D;QACE,QAAQ,EAAE;YACR,IAAI,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,wBAAwB,SAAS,WAAW,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,gBAAgB,SAAS,cAAc,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG;SACzL;KACF,CACF,CAAC;AACJ,CAAC;AAED,qFAAqF;AACrF,KAAK,UAAU,eAAe,CAAC,KAAuB,EAAE,GAAQ;IAC9D,IAAI,KAAK,CAAC,QAAQ;QAAE,OAAO,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC9D,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QACjB,MAAM,GAAG,GAAG,MAAM,cAAc,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAClE,IAAI,CAAC,GAAG;YACN,MAAM,GAAG,CAAC,IAAI,CACZ,aAAa,EACb,2CAA2C,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,GAAG,EACxE,EAAE,GAAG,GAAG,CAAC,WAAW,CAAC,aAAa,CAAC,EAAE,CACtC,CAAC;QACJ,OAAO,GAAG,CAAC,QAAQ,CAAC;IACtB,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QAClB,MAAM,GAAG,GAAG,MAAM,iBAAiB,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QACtE,IAAI,CAAC,GAAG;YACN,MAAM,GAAG,CAAC,IAAI,CACZ,aAAa,EACb,2CAA2C,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,GAAG,EACzE,EAAE,GAAG,GAAG,CAAC,WAAW,CAAC,aAAa,CAAC,EAAE,CACtC,CAAC;QACJ,OAAO,GAAG,CAAC;IACb,CAAC;IACD,MAAM,GAAG,CAAC,IAAI,CAAC,eAAe,EAAE,wDAAwD,EAAE;QACxF,GAAG,GAAG,CAAC,WAAW,CAAC,eAAe,CAAC;KACpC,CAAC,CAAC;AACL,CAAC;AAED,4FAA4F;AAC5F,KAAK,UAAU,qBAAqB,CAClC,KAAuB,EACvB,GAAQ;IAER,MAAM,IAAI,GAAG,cAAc,EAAE,CAAC;IAC9B,IAAI,KAAK,CAAC,MAAM,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1C,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;QACtC,MAAM,OAAO,GAAG,MAAM,mBAAmB,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;QAClF,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;IAC5C,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,IAAI,kBAAkB,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QACvD,MAAM,KAAK,GAAG,MAAM,mBAAmB,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QAC5E,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC;YACnB,MAAM,GAAG,CAAC,IAAI,CACZ,aAAa,EACb,iDAAiD,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,GAAG,EAC/E,EAAE,GAAG,GAAG,CAAC,WAAW,CAAC,aAAa,CAAC,EAAE,CACtC,CAAC;QACJ,CAAC;QACD,OAAO;YACL,OAAO,EAAE,MAAM,mBAAmB,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC;YACrD,QAAQ,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM;SAC/C,CAAC;IACJ,CAAC;IACD,yEAAyE;IACzE,8EAA8E;IAC9E,oCAAoC;IACpC,MAAM,GAAG,CAAC,IAAI,CACZ,eAAe,EACf,4EAA4E,EAC5E;QACE,QAAQ,EAAE;YACR,IAAI,EAAE,wIAAwI;SAC/I;KACF,CACF,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAAC,GAAW,EAAE,GAAQ;IAChD,OAAO,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE;QACzB,SAAS,EAAE,8BAA8B;QACzC,KAAK,EAAE,iBAAiB;QACxB,WAAW,EAAE,GAAG;QAChB,UAAU,EAAE,CAAC;KACd,CAAC,CAAC;AACL,CAAC"}
|
|
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;
|
|
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)
|
|
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
|
|
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)
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
}
|
|
405
|
-
});
|
|
403
|
+
coordinateUrls: rcsb.coordinateUrls(meta),
|
|
404
|
+
};
|
|
405
|
+
structures.push(record);
|
|
406
|
+
if (meta.computedModelProvider)
|
|
407
|
+
csms.push({ meta, record });
|
|
406
408
|
}
|
|
407
|
-
|
|
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
|
|
524
|
+
let entry;
|
|
478
525
|
if (isExperimental && best.modelIdentifier) {
|
|
479
526
|
pdbId = best.modelIdentifier.toUpperCase();
|
|
480
|
-
|
|
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
|
-
|
|
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;
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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) => !
|
|
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(
|
|
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
|
-
|
|
280
|
-
|
|
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
|
-
|
|
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
|
-
|
|
292
|
-
...(sequenceSearch ? { entityId: hit.id } : {}),
|
|
297
|
+
...identity,
|
|
293
298
|
source: 'experimental',
|
|
294
299
|
score: hit.score,
|
|
295
300
|
...(meta?.title ? { title: meta.title } : {}),
|