@cyanheads/pubchem-mcp-server 0.1.22 → 0.2.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 (73) hide show
  1. package/README.md +43 -8
  2. package/dist/index.js +3 -1
  3. package/dist/index.js.map +1 -1
  4. package/dist/mcp-server/resources/definitions/assay.resource.d.ts +9 -0
  5. package/dist/mcp-server/resources/definitions/assay.resource.d.ts.map +1 -0
  6. package/dist/mcp-server/resources/definitions/assay.resource.js +24 -0
  7. package/dist/mcp-server/resources/definitions/assay.resource.js.map +1 -0
  8. package/dist/mcp-server/resources/definitions/compound-bioactivity.resource.d.ts +9 -0
  9. package/dist/mcp-server/resources/definitions/compound-bioactivity.resource.d.ts.map +1 -0
  10. package/dist/mcp-server/resources/definitions/compound-bioactivity.resource.js +28 -0
  11. package/dist/mcp-server/resources/definitions/compound-bioactivity.resource.js.map +1 -0
  12. package/dist/mcp-server/resources/definitions/compound-image.resource.d.ts +11 -0
  13. package/dist/mcp-server/resources/definitions/compound-image.resource.d.ts.map +1 -0
  14. package/dist/mcp-server/resources/definitions/compound-image.resource.js +28 -0
  15. package/dist/mcp-server/resources/definitions/compound-image.resource.js.map +1 -0
  16. package/dist/mcp-server/resources/definitions/compound-safety.resource.d.ts +9 -0
  17. package/dist/mcp-server/resources/definitions/compound-safety.resource.d.ts.map +1 -0
  18. package/dist/mcp-server/resources/definitions/compound-safety.resource.js +32 -0
  19. package/dist/mcp-server/resources/definitions/compound-safety.resource.js.map +1 -0
  20. package/dist/mcp-server/resources/definitions/compound-xrefs.resource.d.ts +9 -0
  21. package/dist/mcp-server/resources/definitions/compound-xrefs.resource.d.ts.map +1 -0
  22. package/dist/mcp-server/resources/definitions/compound-xrefs.resource.js +29 -0
  23. package/dist/mcp-server/resources/definitions/compound-xrefs.resource.js.map +1 -0
  24. package/dist/mcp-server/resources/definitions/compound.resource.d.ts +9 -0
  25. package/dist/mcp-server/resources/definitions/compound.resource.d.ts.map +1 -0
  26. package/dist/mcp-server/resources/definitions/compound.resource.js +28 -0
  27. package/dist/mcp-server/resources/definitions/compound.resource.js.map +1 -0
  28. package/dist/mcp-server/resources/definitions/index.d.ts +14 -0
  29. package/dist/mcp-server/resources/definitions/index.d.ts.map +1 -0
  30. package/dist/mcp-server/resources/definitions/index.js +19 -0
  31. package/dist/mcp-server/resources/definitions/index.js.map +1 -0
  32. package/dist/mcp-server/tools/definitions/get-bioactivity.tool.d.ts +9 -1
  33. package/dist/mcp-server/tools/definitions/get-bioactivity.tool.d.ts.map +1 -1
  34. package/dist/mcp-server/tools/definitions/get-bioactivity.tool.js +61 -4
  35. package/dist/mcp-server/tools/definitions/get-bioactivity.tool.js.map +1 -1
  36. package/dist/mcp-server/tools/definitions/get-compound-3d-structure.tool.d.ts +38 -0
  37. package/dist/mcp-server/tools/definitions/get-compound-3d-structure.tool.d.ts.map +1 -0
  38. package/dist/mcp-server/tools/definitions/get-compound-3d-structure.tool.js +133 -0
  39. package/dist/mcp-server/tools/definitions/get-compound-3d-structure.tool.js.map +1 -0
  40. package/dist/mcp-server/tools/definitions/get-compound-image.tool.d.ts +7 -1
  41. package/dist/mcp-server/tools/definitions/get-compound-image.tool.d.ts.map +1 -1
  42. package/dist/mcp-server/tools/definitions/get-compound-image.tool.js +9 -0
  43. package/dist/mcp-server/tools/definitions/get-compound-image.tool.js.map +1 -1
  44. package/dist/mcp-server/tools/definitions/get-compound-interactions.tool.d.ts +32 -0
  45. package/dist/mcp-server/tools/definitions/get-compound-interactions.tool.d.ts.map +1 -0
  46. package/dist/mcp-server/tools/definitions/get-compound-interactions.tool.js +92 -0
  47. package/dist/mcp-server/tools/definitions/get-compound-interactions.tool.js.map +1 -0
  48. package/dist/mcp-server/tools/definitions/get-compound-safety.tool.d.ts +22 -16
  49. package/dist/mcp-server/tools/definitions/get-compound-safety.tool.d.ts.map +1 -1
  50. package/dist/mcp-server/tools/definitions/get-compound-safety.tool.js +111 -69
  51. package/dist/mcp-server/tools/definitions/get-compound-safety.tool.js.map +1 -1
  52. package/dist/mcp-server/tools/definitions/get-summary.tool.d.ts +5 -1
  53. package/dist/mcp-server/tools/definitions/get-summary.tool.d.ts.map +1 -1
  54. package/dist/mcp-server/tools/definitions/get-summary.tool.js +16 -1
  55. package/dist/mcp-server/tools/definitions/get-summary.tool.js.map +1 -1
  56. package/dist/mcp-server/tools/definitions/index.d.ts +94 -16
  57. package/dist/mcp-server/tools/definitions/index.d.ts.map +1 -1
  58. package/dist/mcp-server/tools/definitions/index.js +4 -0
  59. package/dist/mcp-server/tools/definitions/index.js.map +1 -1
  60. package/dist/services/pubchem/pubchem-client.d.ts +20 -1
  61. package/dist/services/pubchem/pubchem-client.d.ts.map +1 -1
  62. package/dist/services/pubchem/pubchem-client.js +175 -3
  63. package/dist/services/pubchem/pubchem-client.js.map +1 -1
  64. package/dist/services/pubchem/sdf-parser.d.ts +20 -0
  65. package/dist/services/pubchem/sdf-parser.d.ts.map +1 -0
  66. package/dist/services/pubchem/sdf-parser.js +55 -0
  67. package/dist/services/pubchem/sdf-parser.js.map +1 -0
  68. package/dist/services/pubchem/types.d.ts +44 -0
  69. package/dist/services/pubchem/types.d.ts.map +1 -1
  70. package/dist/services/pubchem/types.js.map +1 -1
  71. package/manifest.json +1 -1
  72. package/package.json +2 -2
  73. package/server.json +3 -3
@@ -3,7 +3,7 @@
3
3
  * Wraps both PUG REST and PUG View APIs behind a shared rate limiter.
4
4
  * @module services/pubchem/pubchem-client
5
5
  */
6
- import { JsonRpcErrorCode, McpError } from '@cyanheads/mcp-ts-core/errors';
6
+ import { JsonRpcErrorCode, McpError, notFound } from '@cyanheads/mcp-ts-core/errors';
7
7
  import { httpErrorFromResponse } from '@cyanheads/mcp-ts-core/utils';
8
8
  const isNotFound = (error) => error instanceof McpError && error.code === JsonRpcErrorCode.NotFound;
9
9
  // ── Rate Limiter ─────────────────────────────────────────────────────
@@ -194,6 +194,7 @@ const activityKey = (v) => `${v.name ?? ''}|${v.value}|${v.unit ?? ''}`;
194
194
  export class PubChemClient {
195
195
  pugBase = 'https://pubchem.ncbi.nlm.nih.gov/rest/pug';
196
196
  viewBase = 'https://pubchem.ncbi.nlm.nih.gov/rest/pug_view';
197
+ sdqBase = 'https://pubchem.ncbi.nlm.nih.gov/sdq/sdqagent.cgi';
197
198
  rateLimiter = new RateLimiter(5);
198
199
  // ── Core HTTP ────────────────────────────────────────────────────
199
200
  async fetchJson(url, init) {
@@ -259,6 +260,28 @@ export class PubChemClient {
259
260
  clearTimeout(timeoutId);
260
261
  }
261
262
  }
263
+ /** Fetch a text/plain body (e.g. an SDF record). Non-2xx is classified and thrown. */
264
+ async fetchText(url) {
265
+ await this.rateLimiter.acquire();
266
+ const controller = new AbortController();
267
+ const timeoutId = setTimeout(() => controller.abort(), 30_000);
268
+ try {
269
+ const response = await fetch(url, { signal: controller.signal });
270
+ if (!response.ok) {
271
+ const text = await response.text();
272
+ const fault = parseFaultMessage(text) ?? text.slice(0, 300);
273
+ throw await httpErrorFromResponse(response, {
274
+ captureBody: false,
275
+ service: 'PubChem',
276
+ data: { fault, url },
277
+ });
278
+ }
279
+ return await response.text();
280
+ }
281
+ finally {
282
+ clearTimeout(timeoutId);
283
+ }
284
+ }
262
285
  // ── CID Resolution ──────────────────────────────────────────────
263
286
  /** Fetch CID list, with automatic ListKey polling for async searches */
264
287
  async fetchCids(url, init) {
@@ -357,9 +380,23 @@ export class PubChemClient {
357
380
  throw error;
358
381
  }
359
382
  }
360
- getImage(cid, size = 'large') {
383
+ async getImage(cid, size = 'large') {
361
384
  const sizeParam = size === 'small' ? '?image_size=small' : '?image_size=large';
362
- return this.fetchBinary(`${this.pugBase}/compound/cid/${cid}/PNG${sizeParam}`);
385
+ try {
386
+ return await this.fetchBinary(`${this.pugBase}/compound/cid/${cid}/PNG${sizeParam}`);
387
+ }
388
+ catch (error) {
389
+ // The image endpoint returns binary, so absence can't be a structured success like
390
+ // the other per-CID tools — surface a typed not-found with a recovery hint instead.
391
+ if (isNotFound(error)) {
392
+ throw notFound(`No PubChem compound found for CID ${cid}.`, {
393
+ cid,
394
+ reason: 'cid_not_found',
395
+ recovery: { hint: 'Verify the CID with pubchem_search_compounds before retrying.' },
396
+ });
397
+ }
398
+ throw error;
399
+ }
363
400
  }
364
401
  async getXrefs(cid, xrefType) {
365
402
  try {
@@ -658,6 +695,141 @@ export class PubChemClient {
658
695
  throw error;
659
696
  }
660
697
  }
698
+ // ── Interactions ────────────────────────────────────────────────
699
+ /** Fetch drug-drug, drug-food, and/or chemical-target interactions for a compound.
700
+ * Drug-drug and target data live in PubChem SDQ external tables (drugbankddi,
701
+ * consolidatedcompoundtarget); drug-food is inline PUG View text. Each kind is capped
702
+ * at maxEntries; absent data for a kind contributes nothing rather than erroring. */
703
+ async getInteractions(cid, kinds, maxEntries) {
704
+ const batches = await Promise.all(kinds.map((kind) => this.getInteractionsForKind(cid, kind, maxEntries)));
705
+ return batches.flat();
706
+ }
707
+ getInteractionsForKind(cid, kind, maxEntries) {
708
+ switch (kind) {
709
+ case 'drug-drug':
710
+ return this.getDrugDrugInteractions(cid, maxEntries);
711
+ case 'drug-food':
712
+ return this.getDrugFoodInteractions(cid, maxEntries);
713
+ case 'target':
714
+ return this.getTargetInteractions(cid, maxEntries);
715
+ }
716
+ }
717
+ async getDrugDrugInteractions(cid, maxEntries) {
718
+ const rows = await this.fetchSdq('drugbankddi', cid, maxEntries);
719
+ const entries = [];
720
+ for (const row of rows) {
721
+ const text = typeof row.descr === 'string' ? row.descr : '';
722
+ if (!text)
723
+ continue;
724
+ const entry = { kind: 'drug-drug', source: 'DrugBank', text };
725
+ if (typeof row.name2 === 'string' && row.name2)
726
+ entry.partner = row.name2;
727
+ entries.push(entry);
728
+ }
729
+ return entries;
730
+ }
731
+ async getTargetInteractions(cid, maxEntries) {
732
+ const rows = await this.fetchSdq('consolidatedcompoundtarget', cid, maxEntries);
733
+ const entries = [];
734
+ for (const row of rows) {
735
+ const target = (typeof row.protname === 'string' && row.protname) ||
736
+ (typeof row.srctargetname === 'string' && row.srctargetname) ||
737
+ (typeof row.genename === 'string' && row.genename) ||
738
+ '';
739
+ const activity = [row.actname, row.actvalue]
740
+ .filter((v) => typeof v === 'string' && v.length > 0)
741
+ .join(': ');
742
+ const text = [target, activity].filter(Boolean).join(' — ');
743
+ if (!text)
744
+ continue;
745
+ const entry = {
746
+ kind: 'target',
747
+ source: typeof row.dsn === 'string' && row.dsn ? row.dsn : 'PubChem',
748
+ text,
749
+ };
750
+ if (target)
751
+ entry.partner = target;
752
+ entries.push(entry);
753
+ }
754
+ return entries;
755
+ }
756
+ async getDrugFoodInteractions(cid, maxEntries) {
757
+ try {
758
+ const data = await this.fetchJson(`${this.viewBase}/data/compound/${cid}/JSON?heading=Drug-Food+Interactions`);
759
+ const sections = data.Record.Section;
760
+ if (!sections)
761
+ return [];
762
+ const section = findSection(sections, 'Drug-Food Interactions');
763
+ if (!section)
764
+ return [];
765
+ const refToSource = new Map();
766
+ for (const ref of data.Record.Reference ?? []) {
767
+ refToSource.set(ref.ReferenceNumber, ref.SourceName);
768
+ }
769
+ const items = dedupByKey(extractDescriptionItems(section), descriptionKey);
770
+ return items.slice(0, maxEntries).map((item) => {
771
+ const source = item.refNum != null ? refToSource.get(item.refNum) : undefined;
772
+ return { kind: 'drug-food', source: source ?? 'PubChem', text: item.text };
773
+ });
774
+ }
775
+ catch (error) {
776
+ if (isNotFound(error))
777
+ return [];
778
+ throw error;
779
+ }
780
+ }
781
+ /** Query a PubChem SDQ external table for a single CID. Returns [] on not-found. */
782
+ async fetchSdq(collection, cid, limit) {
783
+ const query = JSON.stringify({
784
+ download: '*',
785
+ collection,
786
+ where: { ands: [{ cid: String(cid) }] },
787
+ start: 1,
788
+ limit,
789
+ });
790
+ const url = `${this.sdqBase}?infmt=json&outfmt=json&query=${encodeURIComponent(query)}`;
791
+ try {
792
+ const data = await this.fetchJson(url);
793
+ return Array.isArray(data) ? data : [];
794
+ }
795
+ catch (error) {
796
+ if (isNotFound(error))
797
+ return [];
798
+ throw error;
799
+ }
800
+ }
801
+ // ── 3D Structure ────────────────────────────────────────────────
802
+ /** Fetch the default 3D conformer as raw V2000 SDF text. Throws a typed not-found when
803
+ * PubChem has no computed 3D coordinates (large molecules, mixtures, undefined salts). */
804
+ async getSdf3d(cid) {
805
+ try {
806
+ return await this.fetchText(`${this.pugBase}/compound/cid/${cid}/record/SDF?record_type=3d`);
807
+ }
808
+ catch (error) {
809
+ if (isNotFound(error)) {
810
+ throw notFound(`No 3D conformer available for CID ${cid}.`, {
811
+ cid,
812
+ reason: 'no_3d_structure',
813
+ recovery: {
814
+ hint: 'PubChem has no computed 3D coordinates for this compound (common for very large molecules, mixtures, and undefined salts). Use pubchem_get_compound_image for the 2D structure.',
815
+ },
816
+ });
817
+ }
818
+ throw error;
819
+ }
820
+ }
821
+ /** List the conformer IDs PubChem has computed for a compound. Returns [] on not-found. */
822
+ async getConformerIds(cid) {
823
+ try {
824
+ const data = await this.fetchJson(`${this.pugBase}/compound/cid/${cid}/conformers/JSON`);
825
+ return data.InformationList.Information[0]?.ConformerID ?? [];
826
+ }
827
+ catch (error) {
828
+ if (isNotFound(error))
829
+ return [];
830
+ throw error;
831
+ }
832
+ }
661
833
  }
662
834
  // ── Init/Accessor ────────────────────────────────────────────────────
663
835
  let _client;
@@ -1 +1 @@
1
- {"version":3,"file":"pubchem-client.js","sourceRoot":"","sources":["../../../src/services/pubchem/pubchem-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pubchem-client.js","sourceRoot":"","sources":["../../../src/services/pubchem/pubchem-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * @fileoverview Minimal parser for the V2000 SDF connection table (atom + bond blocks).
3
+ * PubChem emits V2000 for 3D conformer records; the format is fixed-column and has been
4
+ * stable since 1991, so a focused slice-based parser is more robust than a dependency.
5
+ * @module services/pubchem/sdf-parser
6
+ */
7
+ import type { Sdf3DStructure } from './types.js';
8
+ /**
9
+ * Parse the first molecule's atom and bond blocks from a V2000 SDF record.
10
+ *
11
+ * Layout: three header lines, then a counts line (atom count at columns 0–3, bond count at
12
+ * columns 3–6), then one fixed-column line per atom (x/y/z as `F10.4` at columns 0–10/10–20/
13
+ * 20–30, element symbol at columns 31–34), then one line per bond (atom1/atom2/order as
14
+ * three-column integers). The block is terminated by `M END`.
15
+ *
16
+ * Throws when the counts line is missing or unparseable — a malformed record is a hard
17
+ * failure, not a silently-empty success.
18
+ */
19
+ export declare function parseSdfV2000(sdf: string): Sdf3DStructure;
20
+ //# sourceMappingURL=sdf-parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sdf-parser.d.ts","sourceRoot":"","sources":["../../../src/services/pubchem/sdf-parser.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAsCzD"}
@@ -0,0 +1,55 @@
1
+ /**
2
+ * @fileoverview Minimal parser for the V2000 SDF connection table (atom + bond blocks).
3
+ * PubChem emits V2000 for 3D conformer records; the format is fixed-column and has been
4
+ * stable since 1991, so a focused slice-based parser is more robust than a dependency.
5
+ * @module services/pubchem/sdf-parser
6
+ */
7
+ /**
8
+ * Parse the first molecule's atom and bond blocks from a V2000 SDF record.
9
+ *
10
+ * Layout: three header lines, then a counts line (atom count at columns 0–3, bond count at
11
+ * columns 3–6), then one fixed-column line per atom (x/y/z as `F10.4` at columns 0–10/10–20/
12
+ * 20–30, element symbol at columns 31–34), then one line per bond (atom1/atom2/order as
13
+ * three-column integers). The block is terminated by `M END`.
14
+ *
15
+ * Throws when the counts line is missing or unparseable — a malformed record is a hard
16
+ * failure, not a silently-empty success.
17
+ */
18
+ export function parseSdfV2000(sdf) {
19
+ const lines = sdf.split('\n');
20
+ // Header is three lines (title, program/timestamp, comment); the counts line is index 3.
21
+ const countsLine = lines[3];
22
+ if (countsLine === undefined)
23
+ throw new Error('Malformed SDF: missing counts line');
24
+ const atomCount = Number.parseInt(countsLine.slice(0, 3), 10);
25
+ const bondCount = Number.parseInt(countsLine.slice(3, 6), 10);
26
+ if (!Number.isInteger(atomCount) || !Number.isInteger(bondCount)) {
27
+ throw new Error('Malformed SDF: unparseable atom/bond counts');
28
+ }
29
+ const atoms = [];
30
+ for (let i = 0; i < atomCount; i++) {
31
+ const line = lines[4 + i];
32
+ if (line === undefined)
33
+ break;
34
+ atoms.push({
35
+ x: Number.parseFloat(line.slice(0, 10)),
36
+ y: Number.parseFloat(line.slice(10, 20)),
37
+ z: Number.parseFloat(line.slice(20, 30)),
38
+ element: line.slice(31, 34).trim(),
39
+ });
40
+ }
41
+ const bonds = [];
42
+ const bondStart = 4 + atomCount;
43
+ for (let i = 0; i < bondCount; i++) {
44
+ const line = lines[bondStart + i];
45
+ if (line === undefined)
46
+ break;
47
+ bonds.push({
48
+ a1: Number.parseInt(line.slice(0, 3), 10),
49
+ a2: Number.parseInt(line.slice(3, 6), 10),
50
+ order: Number.parseInt(line.slice(6, 9), 10),
51
+ });
52
+ }
53
+ return { atomCount, bondCount, atoms, bonds };
54
+ }
55
+ //# sourceMappingURL=sdf-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sdf-parser.js","sourceRoot":"","sources":["../../../src/services/pubchem/sdf-parser.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;;;;;;;;;GAUG;AACH,MAAM,UAAU,aAAa,CAAC,GAAW;IACvC,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAE9B,yFAAyF;IACzF,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAC5B,IAAI,UAAU,KAAK,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;IAEpF,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC9D,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC9D,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC;QACjE,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;IACjE,CAAC;IAED,MAAM,KAAK,GAA4B,EAAE,CAAC;IAC1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC;QACnC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC1B,IAAI,IAAI,KAAK,SAAS;YAAE,MAAM;QAC9B,KAAK,CAAC,IAAI,CAAC;YACT,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACvC,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YACxC,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YACxC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE;SACnC,CAAC,CAAC;IACL,CAAC;IAED,MAAM,KAAK,GAA4B,EAAE,CAAC;IAC1C,MAAM,SAAS,GAAG,CAAC,GAAG,SAAS,CAAC;IAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC;QACnC,MAAM,IAAI,GAAG,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;QAClC,IAAI,IAAI,KAAK,SAAS;YAAE,MAAM;QAC9B,KAAK,CAAC,IAAI,CAAC;YACT,EAAE,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;YACzC,EAAE,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;YACzC,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;SAC7C,CAAC,CAAC;IACL,CAAC;IAED,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;AAChD,CAAC"}
@@ -56,6 +56,15 @@ export interface AssaySummaryTableResponse {
56
56
  }>;
57
57
  };
58
58
  }
59
+ /** Conformer ID list for a compound */
60
+ export interface ConformerListResponse {
61
+ InformationList: {
62
+ Information: Array<{
63
+ CID: number;
64
+ ConformerID: string[];
65
+ }>;
66
+ };
67
+ }
59
68
  export interface PugViewResponse {
60
69
  Record: {
61
70
  RecordType: string;
@@ -120,6 +129,41 @@ export interface BioactivityRow {
120
129
  targetAccession?: string;
121
130
  targetGeneId?: number;
122
131
  }
132
+ /** A single compound interaction entry (drug-drug, drug-food, or chemical-target). */
133
+ export interface InteractionEntry {
134
+ /** Interaction category. */
135
+ kind: 'drug-drug' | 'drug-food' | 'target';
136
+ /** Interacting compound, food, or target name as the source reports it. Absent for food
137
+ * interactions and any entry where the source carries no distinct partner. */
138
+ partner?: string;
139
+ /** Raw severity as the source reports it. Not normalized across sources, and frequently
140
+ * unset — most sources embed severity in the statement text rather than a discrete field. */
141
+ severity?: string;
142
+ /** Originating source (e.g. "DrugBank", "BindingDB"). */
143
+ source: string;
144
+ /** The interaction statement. */
145
+ text: string;
146
+ }
147
+ /** A single atom in a 3D conformer (Cartesian coordinates, Angstroms). */
148
+ export interface Sdf3DAtom {
149
+ element: string;
150
+ x: number;
151
+ y: number;
152
+ z: number;
153
+ }
154
+ /** A single bond in a 3D conformer (1-based atom indices). */
155
+ export interface Sdf3DBond {
156
+ a1: number;
157
+ a2: number;
158
+ order: number;
159
+ }
160
+ /** Parsed atoms and bonds from a V2000 SDF connection table. */
161
+ export interface Sdf3DStructure {
162
+ atomCount: number;
163
+ atoms: Sdf3DAtom[];
164
+ bondCount: number;
165
+ bonds: Sdf3DBond[];
166
+ }
123
167
  /** Pharmacological classification from PUG View */
124
168
  export interface CompoundClassification {
125
169
  /** ATC codes with hierarchical descriptions */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/services/pubchem/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/services/pubchem/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/services/pubchem/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAgJH,wEAAwE;AAExE,gDAAgD;AAChD,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,kBAAkB;IAClB,iBAAiB;IACjB,iBAAiB;IACjB,gBAAgB;IAChB,OAAO;IACP,UAAU;IACV,WAAW;IACX,OAAO;IACP,OAAO;IACP,WAAW;IACX,kBAAkB;IAClB,MAAM;IACN,YAAY;IACZ,QAAQ;IACR,iBAAiB;IACjB,oBAAoB;IACpB,oBAAoB;IACpB,gBAAgB;IAChB,kBAAkB;IAClB,iBAAiB;IACjB,wBAAwB;IACxB,0BAA0B;IAC1B,iBAAiB;IACjB,wBAAwB;IACxB,0BAA0B;IAC1B,mBAAmB;IACnB,UAAU;CACF,CAAC;AAEX,6CAA6C;AAC7C,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,kBAAkB;IAClB,iBAAiB;IACjB,WAAW;IACX,iBAAiB;IACjB,gBAAgB;IAChB,UAAU;IACV,OAAO;IACP,MAAM;IACN,iBAAiB;IACjB,oBAAoB;IACpB,oBAAoB;IACpB,gBAAgB;IAChB,QAAQ;IACR,YAAY;CACJ,CAAC;AAEX,sCAAsC;AACtC,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,YAAY;IACZ,IAAI;IACJ,UAAU;IACV,UAAU;IACV,QAAQ;IACR,WAAW;IACX,YAAY;CACJ,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/services/pubchem/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA8LH,wEAAwE;AAExE,gDAAgD;AAChD,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,kBAAkB;IAClB,iBAAiB;IACjB,iBAAiB;IACjB,gBAAgB;IAChB,OAAO;IACP,UAAU;IACV,WAAW;IACX,OAAO;IACP,OAAO;IACP,WAAW;IACX,kBAAkB;IAClB,MAAM;IACN,YAAY;IACZ,QAAQ;IACR,iBAAiB;IACjB,oBAAoB;IACpB,oBAAoB;IACpB,gBAAgB;IAChB,kBAAkB;IAClB,iBAAiB;IACjB,wBAAwB;IACxB,0BAA0B;IAC1B,iBAAiB;IACjB,wBAAwB;IACxB,0BAA0B;IAC1B,mBAAmB;IACnB,UAAU;CACF,CAAC;AAEX,6CAA6C;AAC7C,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,kBAAkB;IAClB,iBAAiB;IACjB,WAAW;IACX,iBAAiB;IACjB,gBAAgB;IAChB,UAAU;IACV,OAAO;IACP,MAAM;IACN,iBAAiB;IACjB,oBAAoB;IACpB,oBAAoB;IACpB,gBAAgB;IAChB,QAAQ;IACR,YAAY;CACJ,CAAC;AAEX,sCAAsC;AACtC,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,YAAY;IACZ,IAAI;IACJ,UAAU;IACV,UAAU;IACV,QAAQ;IACR,WAAW;IACX,YAAY;CACJ,CAAC"}
package/manifest.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "manifest_version": "0.3",
3
3
  "name": "pubchem-mcp-server",
4
- "version": "0.1.22",
4
+ "version": "0.2.0",
5
5
  "description": "Search PubChem compounds, properties, safety data, bioactivity, cross-references, and entity summaries via MCP.",
6
6
  "author": {
7
7
  "name": "cyanheads"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cyanheads/pubchem-mcp-server",
3
- "version": "0.1.22",
3
+ "version": "0.2.0",
4
4
  "description": "MCP server for the PubChem chemical database. Search compounds, fetch properties, safety data, bioactivity, cross-references, and entity summaries. STDIO & Streamable HTTP.",
5
5
  "mcpName": "io.github.cyanheads/pubchem-mcp-server",
6
6
  "type": "module",
@@ -83,6 +83,6 @@
83
83
  "ignore": "^7.0.5",
84
84
  "tsc-alias": "^1.8.17",
85
85
  "typescript": "^6.0.3",
86
- "vitest": "^4.1.7"
86
+ "vitest": "^4.1.8"
87
87
  }
88
88
  }
package/server.json CHANGED
@@ -6,7 +6,7 @@
6
6
  "url": "https://github.com/cyanheads/pubchem-mcp-server",
7
7
  "source": "github"
8
8
  },
9
- "version": "0.1.22",
9
+ "version": "0.2.0",
10
10
  "remotes": [
11
11
  {
12
12
  "type": "streamable-http",
@@ -19,7 +19,7 @@
19
19
  "registryBaseUrl": "https://registry.npmjs.org",
20
20
  "identifier": "@cyanheads/pubchem-mcp-server",
21
21
  "runtimeHint": "bun",
22
- "version": "0.1.22",
22
+ "version": "0.2.0",
23
23
  "packageArguments": [
24
24
  { "type": "positional", "value": "run" },
25
25
  { "type": "positional", "value": "start:stdio" }
@@ -42,7 +42,7 @@
42
42
  "registryBaseUrl": "https://registry.npmjs.org",
43
43
  "identifier": "@cyanheads/pubchem-mcp-server",
44
44
  "runtimeHint": "bun",
45
- "version": "0.1.22",
45
+ "version": "0.2.0",
46
46
  "packageArguments": [
47
47
  { "type": "positional", "value": "run" },
48
48
  { "type": "positional", "value": "start:http" }