@cyanheads/pubchem-mcp-server 0.4.2 → 0.5.0

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 (41) hide show
  1. package/README.md +1 -1
  2. package/dist/mcp-server/resources/definitions/assay.resource.d.ts.map +1 -1
  3. package/dist/mcp-server/resources/definitions/assay.resource.js +1 -1
  4. package/dist/mcp-server/resources/definitions/assay.resource.js.map +1 -1
  5. package/dist/mcp-server/resources/definitions/compound-bioactivity.resource.js +1 -1
  6. package/dist/mcp-server/resources/definitions/compound-bioactivity.resource.js.map +1 -1
  7. package/dist/mcp-server/resources/definitions/compound-image.resource.js +1 -1
  8. package/dist/mcp-server/resources/definitions/compound-image.resource.js.map +1 -1
  9. package/dist/mcp-server/resources/definitions/compound-safety.resource.js +1 -1
  10. package/dist/mcp-server/resources/definitions/compound-safety.resource.js.map +1 -1
  11. package/dist/mcp-server/resources/definitions/compound-xrefs.resource.js +1 -1
  12. package/dist/mcp-server/resources/definitions/compound-xrefs.resource.js.map +1 -1
  13. package/dist/mcp-server/resources/definitions/compound.resource.js +1 -1
  14. package/dist/mcp-server/resources/definitions/compound.resource.js.map +1 -1
  15. package/dist/mcp-server/tools/definitions/get-bioactivity.tool.d.ts +3 -0
  16. package/dist/mcp-server/tools/definitions/get-bioactivity.tool.d.ts.map +1 -1
  17. package/dist/mcp-server/tools/definitions/get-bioactivity.tool.js +41 -13
  18. package/dist/mcp-server/tools/definitions/get-bioactivity.tool.js.map +1 -1
  19. package/dist/mcp-server/tools/definitions/get-compound-3d-structure.tool.js +2 -2
  20. package/dist/mcp-server/tools/definitions/get-compound-3d-structure.tool.js.map +1 -1
  21. package/dist/mcp-server/tools/definitions/get-compound-details.tool.d.ts.map +1 -1
  22. package/dist/mcp-server/tools/definitions/get-compound-details.tool.js +24 -10
  23. package/dist/mcp-server/tools/definitions/get-compound-details.tool.js.map +1 -1
  24. package/dist/mcp-server/tools/definitions/get-compound-xrefs.tool.js +3 -3
  25. package/dist/mcp-server/tools/definitions/get-compound-xrefs.tool.js.map +1 -1
  26. package/dist/mcp-server/tools/definitions/get-summary.tool.d.ts.map +1 -1
  27. package/dist/mcp-server/tools/definitions/get-summary.tool.js +39 -9
  28. package/dist/mcp-server/tools/definitions/get-summary.tool.js.map +1 -1
  29. package/dist/mcp-server/tools/definitions/index.d.ts +5 -1
  30. package/dist/mcp-server/tools/definitions/index.d.ts.map +1 -1
  31. package/dist/mcp-server/tools/definitions/search-compounds.tool.d.ts +2 -1
  32. package/dist/mcp-server/tools/definitions/search-compounds.tool.d.ts.map +1 -1
  33. package/dist/mcp-server/tools/definitions/search-compounds.tool.js +46 -18
  34. package/dist/mcp-server/tools/definitions/search-compounds.tool.js.map +1 -1
  35. package/dist/services/pubchem/pubchem-client.d.ts +26 -4
  36. package/dist/services/pubchem/pubchem-client.d.ts.map +1 -1
  37. package/dist/services/pubchem/pubchem-client.js +43 -15
  38. package/dist/services/pubchem/pubchem-client.js.map +1 -1
  39. package/manifest.json +1 -1
  40. package/package.json +1 -1
  41. package/server.json +3 -3
@@ -28,7 +28,10 @@ const entitySummaryDataSchema = z.object({
28
28
  scientificName: z.string().optional().describe('Scientific name (taxonomy summaries).'),
29
29
  commonName: z.string().optional().describe('Common name (taxonomy summaries).'),
30
30
  rank: z.string().optional().describe('Taxonomic rank (taxonomy summaries).'),
31
- lineage: z.array(z.string()).optional().describe('Parent taxonomy lineage (taxonomy summaries).'),
31
+ lineage: z
32
+ .array(z.string())
33
+ .optional()
34
+ .describe('Taxonomic lineage ordered from the most inclusive rank to the most specific, e.g. ["Eukaryota", "Metazoa", "Chordata"] (taxonomy summaries). Ranks that do not apply to the entity are omitted.'),
32
35
  });
33
36
  export const getSummary = tool('pubchem_get_summary', {
34
37
  title: 'Get Entity Summary',
@@ -125,12 +128,15 @@ export const getSummary = tool('pubchem_get_summary', {
125
128
  if (Array.isArray(value)) {
126
129
  if (value.length === 0)
127
130
  continue;
128
- // synonyms / lineage — upstream free text; escape each element inline.
131
+ /**
132
+ * synonyms / lineage — upstream free text; escape each element inline.
133
+ * Rendered in full: structuredContent carries the whole array, so capping
134
+ * here would hide values the structured surface already returned.
135
+ * Pipe-separated because synonyms carry their own commas ("Homo sapiens
136
+ * Linnaeus, 1758"), which would split one entry into two.
137
+ */
129
138
  const items = value.map((v) => inlineData(String(v)));
130
- const display = items.length > 10
131
- ? `${items.slice(0, 10).join(', ')} (+${items.length - 10} more)`
132
- : items.join(', ');
133
- lines.push(` ${formatKey(key)}: ${display}`);
139
+ lines.push(` ${formatKey(key)}: ${items.join(' | ')}`);
134
140
  }
135
141
  else if (typeof value === 'string') {
136
142
  lines.push(` ${formatKey(key)}: ${inlineData(value)}`);
@@ -174,6 +180,29 @@ function toStrArr(v) {
174
180
  return [v];
175
181
  return;
176
182
  }
183
+ /**
184
+ * Ranks of PubChem's `RankedLineage`, ordered most-inclusive-first. The upstream
185
+ * object keys run the other way (Species first) and carry empty strings for ranks
186
+ * that do not apply, so the flat lineage is rebuilt in this order with blanks dropped.
187
+ */
188
+ const LINEAGE_RANKS = [
189
+ 'Superkingdom',
190
+ 'Kingdom',
191
+ 'Phylum',
192
+ 'Class',
193
+ 'Order',
194
+ 'Family',
195
+ 'Genus',
196
+ 'Species',
197
+ ];
198
+ /** Flatten a `RankedLineage` object into an ordered list of taxon names. */
199
+ function toLineage(v) {
200
+ if (typeof v !== 'object' || v === null || Array.isArray(v))
201
+ return;
202
+ const ranked = v;
203
+ const names = LINEAGE_RANKS.map((rank) => ranked[rank]).filter((name) => typeof name === 'string' && name.length > 0);
204
+ return names.length > 0 ? names : undefined;
205
+ }
177
206
  /** Assign `value` to `target[key]` only when defined — keeps unknowns off the output. */
178
207
  function put(target, key, value) {
179
208
  if (value !== undefined)
@@ -187,8 +216,8 @@ function extractSummary(entityType, raw) {
187
216
  put(data, 'name', toStr(raw.Name ?? raw.AssayName));
188
217
  put(data, 'description', toStr(raw.Description));
189
218
  put(data, 'sourceName', toStr(raw.SourceName));
190
- put(data, 'numSubstances', toNum(raw.NumberOfSubstances ?? raw.TotalSIDCount));
191
- put(data, 'numActive', toNum(raw.ActiveSidCount ?? raw.ActiveCount));
219
+ put(data, 'numSubstances', toNum(raw.SIDCountAll));
220
+ put(data, 'numActive', toNum(raw.SIDCountActive));
192
221
  return data;
193
222
  case 'gene':
194
223
  put(data, 'geneId', toNum(raw.GeneID));
@@ -211,7 +240,8 @@ function extractSummary(entityType, raw) {
211
240
  put(data, 'scientificName', toStr(raw.ScientificName));
212
241
  put(data, 'commonName', toStr(raw.CommonName));
213
242
  put(data, 'rank', toStr(raw.Rank));
214
- put(data, 'lineage', toStrArr(raw.Lineage ?? raw.ParentTaxList));
243
+ put(data, 'lineage', toLineage(raw.RankedLineage));
244
+ put(data, 'synonyms', toStrArr(raw.Synonym));
215
245
  return data;
216
246
  }
217
247
  }
@@ -1 +1 @@
1
- {"version":3,"file":"get-summary.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/get-summary.tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"get-summary.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/get-summary.tool.ts"],"names":[],"mappings":"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"}
@@ -145,7 +145,8 @@ export declare const allToolDefinitions: (import("@cyanheads/mcp-ts-core").ToolD
145
145
  readonly recovery: "Pass a positive integer CID string (e.g. \"2244\"), or set queryType \"smiles\" with a SMILES query.";
146
146
  }], {
147
147
  readonly searchType: import("zod").ZodString;
148
- readonly totalFound: import("zod").ZodNumber;
148
+ readonly totalFound: import("zod").ZodOptional<import("zod").ZodNumber>;
149
+ readonly totalFoundAtLeast: import("zod").ZodOptional<import("zod").ZodNumber>;
149
150
  readonly truncated: import("zod").ZodOptional<import("zod").ZodBoolean>;
150
151
  readonly shown: import("zod").ZodOptional<import("zod").ZodNumber>;
151
152
  readonly cap: import("zod").ZodOptional<import("zod").ZodNumber>;
@@ -247,6 +248,7 @@ export declare const allToolDefinitions: (import("@cyanheads/mcp-ts-core").ToolD
247
248
  }>>;
248
249
  targetGeneId: import("zod").ZodOptional<import("zod").ZodNumber>;
249
250
  targetAccession: import("zod").ZodOptional<import("zod").ZodString>;
251
+ offset: import("zod").ZodDefault<import("zod").ZodNumber>;
250
252
  maxResults: import("zod").ZodDefault<import("zod").ZodNumber>;
251
253
  }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
252
254
  cid: import("zod").ZodNumber;
@@ -270,6 +272,8 @@ export declare const allToolDefinitions: (import("@cyanheads/mcp-ts-core").ToolD
270
272
  readonly targetFilter: import("zod").ZodOptional<import("zod").ZodString>;
271
273
  readonly filteredCount: import("zod").ZodNumber;
272
274
  readonly returnedCount: import("zod").ZodNumber;
275
+ readonly offset: import("zod").ZodNumber;
276
+ readonly nextOffset: import("zod").ZodOptional<import("zod").ZodNumber>;
273
277
  readonly truncated: import("zod").ZodOptional<import("zod").ZodBoolean>;
274
278
  readonly shown: import("zod").ZodOptional<import("zod").ZodNumber>;
275
279
  readonly cap: import("zod").ZodOptional<import("zod").ZodNumber>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAaH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAW9B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAaH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAW9B,CAAC"}
@@ -60,7 +60,8 @@ export declare const searchCompounds: import("@cyanheads/mcp-ts-core").ToolDefin
60
60
  readonly recovery: "Pass a positive integer CID string (e.g. \"2244\"), or set queryType \"smiles\" with a SMILES query.";
61
61
  }], {
62
62
  readonly searchType: z.ZodString;
63
- readonly totalFound: z.ZodNumber;
63
+ readonly totalFound: z.ZodOptional<z.ZodNumber>;
64
+ readonly totalFoundAtLeast: z.ZodOptional<z.ZodNumber>;
64
65
  readonly truncated: z.ZodOptional<z.ZodBoolean>;
65
66
  readonly shown: z.ZodOptional<z.ZodNumber>;
66
67
  readonly cap: z.ZodOptional<z.ZodNumber>;
@@ -1 +1 @@
1
- {"version":3,"file":"search-compounds.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/search-compounds.tool.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAgBjE,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwW1B,CAAC"}
1
+ {"version":3,"file":"search-compounds.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/search-compounds.tool.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAgBjE,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8Y1B,CAAC"}
@@ -94,11 +94,25 @@ export const searchCompounds = tool('pubchem_search_compounds', {
94
94
  }),
95
95
  // Agent-facing context — search strategy echo, total before cap, and an empty-result
96
96
  // notice. Reaches structuredContent and content[] automatically; not in the domain return.
97
+ //
98
+ // Bounded-total convention: a reported total states only what the server actually
99
+ // observed. `totalFound` carries a true count and appears only when the whole match set
100
+ // was seen. When the upstream request was itself bounded and came back saturated, the
101
+ // exact total is unknowable, so `totalFoundAtLeast` carries a floor in its place rather
102
+ // than a number that reads as a count. Exactly one of the two is populated per call; any
103
+ // other capped output pairs its count field with an `…AtLeast` twin the same way.
97
104
  enrichment: {
98
105
  searchType: z
99
106
  .string()
100
107
  .describe('Search strategy used: identifier, formula, substructure, superstructure, or similarity.'),
101
- totalFound: z.number().describe('Total CIDs found before the maxResults cap.'),
108
+ totalFound: z
109
+ .number()
110
+ .optional()
111
+ .describe('Exact number of matching CIDs, before the maxResults cap. Omitted when a formula, substructure, superstructure, or similarity search filled its page — PubChem returns no match count for those, so totalFoundAtLeast reports a floor instead.'),
112
+ totalFoundAtLeast: z
113
+ .number()
114
+ .optional()
115
+ .describe('Lower bound on matching CIDs, reported in place of totalFound when the exact count is unavailable. At least this many match, and the true total may be higher; raise maxResults to retrieve more.'),
102
116
  truncated: z
103
117
  .boolean()
104
118
  .optional()
@@ -139,6 +153,11 @@ export const searchCompounds = tool('pubchem_search_compounds', {
139
153
  async handler(input, ctx) {
140
154
  const client = getPubChemClient();
141
155
  let allCids = [];
156
+ // Formula and structure searches are bounded server-side. One record past the cap is
157
+ // enough to prove more matches exist without moving the rest of PubChem's match set,
158
+ // which for a common substructure runs to 16.3 MB of CIDs.
159
+ const recordCap = input.maxResults + 1;
160
+ let boundedSearch = false;
142
161
  const identifierMap = new Map();
143
162
  // Identifier-mode resolution tracking (#29): inputs that resolved to no CID, and
144
163
  // CIDs claimed by more than one distinct input (the output row can echo only one).
@@ -202,7 +221,8 @@ export const searchCompounds = tool('pubchem_search_compounds', {
202
221
  ...ctx.recoveryFor('missing_formula'),
203
222
  });
204
223
  }
205
- allCids = await client.searchByFormula(input.formula, input.allowOtherElements);
224
+ boundedSearch = true;
225
+ allCids = await client.searchByFormula(input.formula, input.allowOtherElements, recordCap);
206
226
  break;
207
227
  }
208
228
  case 'substructure':
@@ -218,21 +238,28 @@ export const searchCompounds = tool('pubchem_search_compounds', {
218
238
  if (input.queryType === 'cid' && !(/^\d+$/.test(input.query) && Number(input.query) > 0)) {
219
239
  throw ctx.fail('invalid_cid_query', `queryType is "cid" but query "${input.query}" is not a positive integer CID.`, { ...ctx.recoveryFor('invalid_cid_query') });
220
240
  }
221
- allCids = await client.searchByStructure(input.searchType, input.query, input.queryType, input.threshold);
241
+ boundedSearch = true;
242
+ allCids = await client.searchByStructure(input.searchType, input.query, input.queryType, input.threshold, recordCap);
222
243
  break;
223
244
  }
224
245
  }
225
246
  // Deduplicate and cap
226
247
  const uniqueCids = [...new Set(allCids)];
227
- const totalFound = uniqueCids.length;
248
+ const observedTotal = uniqueCids.length;
228
249
  const cappedCids = uniqueCids.slice(0, input.maxResults);
250
+ // A bounded search that came back short of its cap returned everything PubChem had, so
251
+ // the count is exact. A saturated one only proves a floor.
252
+ const totalIsExact = !boundedSearch || allCids.length < recordCap;
229
253
  ctx.log.info('Search completed', {
230
254
  searchType: input.searchType,
231
- totalFound,
255
+ observedTotal,
256
+ totalIsExact,
232
257
  returned: cappedCids.length,
233
258
  });
234
259
  // Agent-facing context: search strategy echo, total, and empty-result notice.
235
- ctx.enrich({ searchType: input.searchType, totalFound });
260
+ ctx.enrich(totalIsExact
261
+ ? { searchType: input.searchType, totalFound: observedTotal }
262
+ : { searchType: input.searchType, totalFoundAtLeast: observedTotal });
236
263
  // Identifier-mode signals (#29): name inputs that did not resolve and flag CID
237
264
  // collisions, so a partial miss is never silent. Empty for other search types.
238
265
  const noticeParts = [];
@@ -248,19 +275,20 @@ export const searchCompounds = tool('pubchem_search_compounds', {
248
275
  ? noticeParts.join(' ')
249
276
  : `No compounds matched the ${input.searchType} search. Try a different identifier, broaden the formula, lower the similarity threshold, or verify the SMILES/CID.`);
250
277
  }
251
- else if (totalFound > cappedCids.length) {
278
+ else if (observedTotal > cappedCids.length) {
252
279
  // Truncated: fold any identifier notice into the truncation guidance (notice is
253
- // last-wins, so compose rather than emit two; restate the cap when overriding).
254
- if (noticeParts.length > 0) {
255
- ctx.enrich.truncated({
256
- shown: cappedCids.length,
257
- cap: input.maxResults,
258
- guidance: `${noticeParts.join(' ')} Showing ${cappedCids.length} of ${totalFound} matches — raise maxResults (max 200) for more.`,
259
- });
260
- }
261
- else {
262
- ctx.enrich.truncated({ shown: cappedCids.length, cap: input.maxResults });
263
- }
280
+ // last-wins, so compose rather than emit two). Without an exact total there is no
281
+ // "of N" to quote — say more exist and stop.
282
+ const truncationGuidance = totalIsExact
283
+ ? `Showing ${cappedCids.length} of ${observedTotal} matches — raise maxResults (max 200) for more.`
284
+ : `Showing ${cappedCids.length} matches; more exist, but PubChem reports no match count for a ${input.searchType} search — raise maxResults (max 200) for more.`;
285
+ ctx.enrich.truncated({
286
+ shown: cappedCids.length,
287
+ cap: input.maxResults,
288
+ guidance: noticeParts.length > 0
289
+ ? `${noticeParts.join(' ')} ${truncationGuidance}`
290
+ : truncationGuidance,
291
+ });
264
292
  }
265
293
  else if (noticeParts.length > 0) {
266
294
  ctx.enrich.notice(noticeParts.join(' '));
@@ -1 +1 @@
1
- {"version":3,"file":"search-compounds.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/search-compounds.tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"search-compounds.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/search-compounds.tool.ts"],"names":[],"mappings":"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"}
@@ -19,15 +19,37 @@ export declare class PubChemClient {
19
19
  private fetchBinary;
20
20
  /** Fetch a text/plain body (e.g. an SDF record). Non-2xx is classified and thrown. */
21
21
  private fetchText;
22
- /** Fetch CID list, with automatic ListKey polling for async searches */
22
+ /** Fetch CID list, with automatic ListKey polling for async searches.
23
+ *
24
+ * `maxRecords` carries a bounded search's cap into the ListKey retrieval. A search that
25
+ * answers synchronously is already bounded by the `MaxRecords` on its own URL, but that
26
+ * bound lives in the request, not the ListKey — so an async answer would otherwise return
27
+ * the full match set and the caller would read PubChem's ceiling as a real count. Omitted
28
+ * for identifier lookups, which are unbounded by design. */
23
29
  private fetchCids;
24
- /** Poll a PubChem ListKey until results are ready */
30
+ /** Poll a PubChem ListKey until results are ready.
31
+ *
32
+ * `listkey_count` asks PubChem to trim the page; the slice enforces the same bound
33
+ * locally, so the caller's saturation test holds whether or not the parameter is honored. */
25
34
  private pollListKey;
26
35
  searchByName(name: string): Promise<number[]>;
27
36
  searchBySmiles(smiles: string): Promise<number[]>;
28
37
  searchByInchiKey(inchikey: string): Promise<number[]>;
29
- searchByFormula(formula: string, allowOther?: boolean): Promise<number[]>;
30
- searchByStructure(mode: 'substructure' | 'superstructure' | 'similarity', query: string, queryType: 'smiles' | 'cid', threshold?: number): Promise<number[]>;
38
+ /** Formula search, bounded server-side by `maxRecords`.
39
+ *
40
+ * `MaxRecords` is mandatory rather than optional because an unbounded fast search moves
41
+ * PubChem's entire match set: a benzoic-acid substructure query returns 1,000,000 CIDs in
42
+ * 16.3 MB, which is PubChem's own ceiling rather than a real count. Callers ask for the
43
+ * window they will actually use.
44
+ *
45
+ * A response shorter than `maxRecords` is the complete match set; a response of exactly
46
+ * `maxRecords` is saturated, and the true total is not recoverable — PubChem returns the
47
+ * CID list alone, with no match count beside it. Callers that need to distinguish the two
48
+ * compare the returned length against the cap they passed. */
49
+ searchByFormula(formula: string, allowOther: boolean, maxRecords: number): Promise<number[]>;
50
+ /** Substructure, superstructure, and 2D-similarity search, bounded server-side by
51
+ * `maxRecords`. Same cap contract as {@link searchByFormula}. */
52
+ searchByStructure(mode: 'substructure' | 'superstructure' | 'similarity', query: string, queryType: 'smiles' | 'cid', threshold: number | undefined, maxRecords: number): Promise<number[]>;
31
53
  getProperties(cids: number[], properties: string[]): Promise<Array<Record<string, unknown> & {
32
54
  CID: number;
33
55
  }>>;
@@ -1 +1 @@
1
- {"version":3,"file":"pubchem-client.d.ts","sourceRoot":"","sources":["../../../src/services/pubchem/pubchem-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pubchem-client.d.ts","sourceRoot":"","sources":["../../../src/services/pubchem/pubchem-client.ts"],"names":[],"mappings":"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"}
@@ -455,12 +455,18 @@ export class PubChemClient {
455
455
  return response.text();
456
456
  }
457
457
  // ── CID Resolution ──────────────────────────────────────────────
458
- /** Fetch CID list, with automatic ListKey polling for async searches */
459
- async fetchCids(url, init) {
458
+ /** Fetch CID list, with automatic ListKey polling for async searches.
459
+ *
460
+ * `maxRecords` carries a bounded search's cap into the ListKey retrieval. A search that
461
+ * answers synchronously is already bounded by the `MaxRecords` on its own URL, but that
462
+ * bound lives in the request, not the ListKey — so an async answer would otherwise return
463
+ * the full match set and the caller would read PubChem's ceiling as a real count. Omitted
464
+ * for identifier lookups, which are unbounded by design. */
465
+ async fetchCids(url, init, maxRecords) {
460
466
  try {
461
467
  const data = await this.fetchJson(url, init);
462
468
  if ('Waiting' in data)
463
- return this.pollListKey(data.Waiting.ListKey);
469
+ return this.pollListKey(data.Waiting.ListKey, maxRecords);
464
470
  return data.IdentifierList.CID;
465
471
  }
466
472
  catch (error) {
@@ -469,16 +475,21 @@ export class PubChemClient {
469
475
  throw error;
470
476
  }
471
477
  }
472
- /** Poll a PubChem ListKey until results are ready */
473
- async pollListKey(listKey, maxAttempts = 20) {
474
- const pollUrl = `${this.pugBase}/compound/listkey/${listKey}/cids/JSON`;
478
+ /** Poll a PubChem ListKey until results are ready.
479
+ *
480
+ * `listkey_count` asks PubChem to trim the page; the slice enforces the same bound
481
+ * locally, so the caller's saturation test holds whether or not the parameter is honored. */
482
+ async pollListKey(listKey, maxRecords, maxAttempts = 20) {
483
+ const query = maxRecords === undefined ? '' : `?listkey_count=${maxRecords}`;
484
+ const pollUrl = `${this.pugBase}/compound/listkey/${listKey}/cids/JSON${query}`;
475
485
  for (let attempt = 0; attempt < maxAttempts; attempt++) {
476
486
  await sleep(1500);
477
487
  try {
478
488
  const data = await this.fetchJson(pollUrl);
479
489
  if ('Waiting' in data)
480
490
  continue;
481
- return data.IdentifierList.CID;
491
+ const cids = data.IdentifierList.CID;
492
+ return maxRecords === undefined ? cids : cids.slice(0, maxRecords);
482
493
  }
483
494
  catch (error) {
484
495
  if (isNotFound(error))
@@ -501,27 +512,44 @@ export class PubChemClient {
501
512
  searchByInchiKey(inchikey) {
502
513
  return this.fetchCids(`${this.pugBase}/compound/inchikey/${encodeURIComponent(inchikey)}/cids/JSON`);
503
514
  }
504
- searchByFormula(formula, allowOther = false) {
505
- const params = allowOther ? '?AllowOtherElements=true' : '';
506
- return this.fetchCids(`${this.pugBase}/compound/fastformula/${encodeURIComponent(formula)}/cids/JSON${params}`);
515
+ /** Formula search, bounded server-side by `maxRecords`.
516
+ *
517
+ * `MaxRecords` is mandatory rather than optional because an unbounded fast search moves
518
+ * PubChem's entire match set: a benzoic-acid substructure query returns 1,000,000 CIDs in
519
+ * 16.3 MB, which is PubChem's own ceiling rather than a real count. Callers ask for the
520
+ * window they will actually use.
521
+ *
522
+ * A response shorter than `maxRecords` is the complete match set; a response of exactly
523
+ * `maxRecords` is saturated, and the true total is not recoverable — PubChem returns the
524
+ * CID list alone, with no match count beside it. Callers that need to distinguish the two
525
+ * compare the returned length against the cap they passed. */
526
+ searchByFormula(formula, allowOther, maxRecords) {
527
+ const params = new URLSearchParams({ MaxRecords: String(maxRecords) });
528
+ if (allowOther)
529
+ params.set('AllowOtherElements', 'true');
530
+ return this.fetchCids(`${this.pugBase}/compound/fastformula/${encodeURIComponent(formula)}/cids/JSON?${params}`, undefined, maxRecords);
507
531
  }
508
- searchByStructure(mode, query, queryType, threshold) {
532
+ /** Substructure, superstructure, and 2D-similarity search, bounded server-side by
533
+ * `maxRecords`. Same cap contract as {@link searchByFormula}. */
534
+ searchByStructure(mode, query, queryType, threshold, maxRecords) {
509
535
  const endpoint = mode === 'similarity'
510
536
  ? 'fastsimilarity_2d'
511
537
  : mode === 'substructure'
512
538
  ? 'fastsubstructure'
513
539
  : 'fastsuperstructure';
514
- const thresholdParam = mode === 'similarity' ? `?Threshold=${threshold ?? 90}` : '';
540
+ const params = new URLSearchParams({ MaxRecords: String(maxRecords) });
541
+ if (mode === 'similarity')
542
+ params.set('Threshold', String(threshold ?? 90));
515
543
  if (queryType === 'cid') {
516
- return this.fetchCids(`${this.pugBase}/compound/${endpoint}/cid/${query}/cids/JSON${thresholdParam}`);
544
+ return this.fetchCids(`${this.pugBase}/compound/${endpoint}/cid/${query}/cids/JSON?${params}`, undefined, maxRecords);
517
545
  }
518
546
  // POST for SMILES to avoid encoding issues
519
- const url = `${this.pugBase}/compound/${endpoint}/smiles/cids/JSON${thresholdParam}`;
547
+ const url = `${this.pugBase}/compound/${endpoint}/smiles/cids/JSON?${params}`;
520
548
  return this.fetchCids(url, {
521
549
  method: 'POST',
522
550
  headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
523
551
  body: new URLSearchParams({ smiles: query }).toString(),
524
- });
552
+ }, maxRecords);
525
553
  }
526
554
  // ── Compound Data ───────────────────────────────────────────────
527
555
  async getProperties(cids, properties) {