@cyanheads/pubchem-mcp-server 0.5.0 → 0.5.1
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/README.md +5 -4
- package/dist/mcp-server/resources/definitions/compound-xrefs.resource.js +1 -1
- package/dist/mcp-server/resources/definitions/compound-xrefs.resource.js.map +1 -1
- package/dist/mcp-server/tools/definitions/get-compound-details.tool.d.ts +11 -1
- package/dist/mcp-server/tools/definitions/get-compound-details.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/get-compound-details.tool.js +147 -21
- package/dist/mcp-server/tools/definitions/get-compound-details.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/get-compound-xrefs.tool.d.ts +3 -0
- package/dist/mcp-server/tools/definitions/get-compound-xrefs.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/get-compound-xrefs.tool.js +60 -16
- package/dist/mcp-server/tools/definitions/get-compound-xrefs.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/index.d.ts +17 -1
- package/dist/mcp-server/tools/definitions/index.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/search-assays.tool.d.ts +3 -0
- package/dist/mcp-server/tools/definitions/search-assays.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/search-assays.tool.js +41 -16
- package/dist/mcp-server/tools/definitions/search-assays.tool.js.map +1 -1
- package/manifest.json +1 -1
- package/package.json +1 -1
- package/server.json +3 -3
package/README.md
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
|
|
8
8
|
<div align="center">
|
|
9
9
|
|
|
10
|
-
[](./CHANGELOG.md) [](./LICENSE) [](https://github.com/users/cyanheads/packages/container/package/pubchem-mcp-server) [](https://modelcontextprotocol.io/) [](https://www.npmjs.com/package/@cyanheads/pubchem-mcp-server) [](https://www.typescriptlang.org/) [](https://bun.sh/)
|
|
11
11
|
|
|
12
12
|
</div>
|
|
13
13
|
|
|
@@ -62,8 +62,9 @@ Get detailed compound information by CID.
|
|
|
62
62
|
|
|
63
63
|
- Batches up to 100 CIDs in a single request
|
|
64
64
|
- 27 available properties: molecular weight, SMILES, InChIKey, XLogP, TPSA, complexity, stereo counts, and more
|
|
65
|
-
- Optionally includes textual descriptions (pharmacology, mechanism, therapeutic use) from PUG View
|
|
66
|
-
- Optionally includes
|
|
65
|
+
- Optionally includes textual descriptions (pharmacology, mechanism, therapeutic use) from PUG View — fetched for the first 10 CIDs of a batch, with the skipped CIDs named in the response
|
|
66
|
+
- Optionally includes known synonyms (trade names, systematic names, registry numbers)
|
|
67
|
+
- Synonyms and descriptions are paged: `synonymOffset` and `descriptionOffset` window every compound in the batch at the same position, reaching the entries past a page
|
|
67
68
|
- Optionally computes drug-likeness assessment (Lipinski Rule of Five + Veber rules) from fetched properties
|
|
68
69
|
- Optionally fetches pharmacological classification (FDA classes, mechanisms of action, MeSH classes, ATC codes)
|
|
69
70
|
|
|
@@ -75,7 +76,7 @@ Get a compound's bioactivity profile from PubChem BioAssay.
|
|
|
75
76
|
|
|
76
77
|
- Returns assay outcomes (Active/Inactive/Inconclusive), target info (protein accessions, NCBI Gene IDs), and quantitative values (IC50, EC50, Ki)
|
|
77
78
|
- Filter by outcome and/or a specific molecular target (NCBI Gene ID or protein accession)
|
|
78
|
-
- Caps at 100 results per
|
|
79
|
+
- Caps at 100 results per page; `offset` reaches the rest (well-studied compounds may have thousands)
|
|
79
80
|
|
|
80
81
|
---
|
|
81
82
|
|
|
@@ -9,7 +9,7 @@ const RESOURCE_XREF_TYPES = ['RN', 'RegistryID', 'PubMedID'];
|
|
|
9
9
|
const MAX_PER_TYPE = 25;
|
|
10
10
|
export const compoundXrefsResource = resource('pubchem://compound/{cid}/xrefs', {
|
|
11
11
|
name: 'pubchem-compound-xrefs',
|
|
12
|
-
description: 'External cross-references (CAS RN, registry IDs, PubMed) for a PubChem compound by CID, up to 25 per type. Use pubchem_get_compound_xrefs for the full set of xref types
|
|
12
|
+
description: 'External cross-references (CAS RN, registry IDs, PubMed) for a PubChem compound by CID, up to 25 per type. Use pubchem_get_compound_xrefs for the full set of xref types, a higher per-type cap, and to page through the rest with offset.',
|
|
13
13
|
mimeType: 'application/json',
|
|
14
14
|
params: z.object({
|
|
15
15
|
cid: z.coerce.number().int().positive().describe('PubChem Compound ID.'),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compound-xrefs.resource.js","sourceRoot":"","sources":["../../../../src/mcp-server/resources/definitions/compound-xrefs.resource.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AAExE,0FAA0F;AAC1F,MAAM,mBAAmB,GAAG,CAAC,IAAI,EAAE,YAAY,EAAE,UAAU,CAAU,CAAC;AACtE,MAAM,YAAY,GAAG,EAAE,CAAC;AAExB,MAAM,CAAC,MAAM,qBAAqB,GAAG,QAAQ,CAAC,gCAAgC,EAAE;IAC9E,IAAI,EAAE,wBAAwB;IAC9B,WAAW,EACT,
|
|
1
|
+
{"version":3,"file":"compound-xrefs.resource.js","sourceRoot":"","sources":["../../../../src/mcp-server/resources/definitions/compound-xrefs.resource.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AAExE,0FAA0F;AAC1F,MAAM,mBAAmB,GAAG,CAAC,IAAI,EAAE,YAAY,EAAE,UAAU,CAAU,CAAC;AACtE,MAAM,YAAY,GAAG,EAAE,CAAC;AAExB,MAAM,CAAC,MAAM,qBAAqB,GAAG,QAAQ,CAAC,gCAAgC,EAAE;IAC9E,IAAI,EAAE,wBAAwB;IAC9B,WAAW,EACT,4OAA4O;IAC9O,QAAQ,EAAE,kBAAkB;IAC5B,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;KACzE,CAAC;IAEF,KAAK,CAAC,OAAO,CAAC,MAAM;QAClB,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;QAClC,MAAM,KAAK,GAA8E,EAAE,CAAC;QAC5F,KAAK,MAAM,IAAI,IAAI,mBAAmB,EAAE,CAAC;YACvC,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YACpD,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACnB,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,YAAY,CAAC,EAAE,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;YACpF,CAAC;QACH,CAAC;QACD,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC;IACpC,CAAC;CACF,CAAC,CAAC"}
|
|
@@ -10,8 +10,10 @@ export declare const getCompoundDetails: import("@cyanheads/mcp-ts-core").ToolDe
|
|
|
10
10
|
[x: string]: string;
|
|
11
11
|
}>>>;
|
|
12
12
|
includeDescription: z.ZodDefault<z.ZodBoolean>;
|
|
13
|
+
descriptionOffset: z.ZodDefault<z.ZodNumber>;
|
|
13
14
|
maxDescriptions: z.ZodDefault<z.ZodNumber>;
|
|
14
15
|
includeSynonyms: z.ZodDefault<z.ZodBoolean>;
|
|
16
|
+
synonymOffset: z.ZodDefault<z.ZodNumber>;
|
|
15
17
|
maxSynonyms: z.ZodDefault<z.ZodNumber>;
|
|
16
18
|
includeDrugLikeness: z.ZodDefault<z.ZodBoolean>;
|
|
17
19
|
includeClassification: z.ZodDefault<z.ZodBoolean>;
|
|
@@ -76,5 +78,13 @@ export declare const getCompoundDetails: import("@cyanheads/mcp-ts-core").ToolDe
|
|
|
76
78
|
meshClasses: z.ZodArray<z.ZodString>;
|
|
77
79
|
}, z.core.$strip>>;
|
|
78
80
|
}, z.core.$strip>>;
|
|
79
|
-
}, z.core.$strip>, undefined,
|
|
81
|
+
}, z.core.$strip>, undefined, {
|
|
82
|
+
readonly enrichedCids: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
|
|
83
|
+
readonly skippedCids: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
|
|
84
|
+
readonly synonymOffset: z.ZodOptional<z.ZodNumber>;
|
|
85
|
+
readonly nextSynonymOffset: z.ZodOptional<z.ZodNumber>;
|
|
86
|
+
readonly descriptionOffset: z.ZodOptional<z.ZodNumber>;
|
|
87
|
+
readonly nextDescriptionOffset: z.ZodOptional<z.ZodNumber>;
|
|
88
|
+
readonly notice: z.ZodOptional<z.ZodString>;
|
|
89
|
+
}>;
|
|
80
90
|
//# sourceMappingURL=get-compound-details.tool.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-compound-details.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/get-compound-details.tool.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"get-compound-details.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/get-compound-details.tool.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AAmHjD,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAijB7B,CAAC"}
|
|
@@ -93,10 +93,16 @@ function computeDrugLikeness(properties) {
|
|
|
93
93
|
veber: { rotatableBonds, tpsa, violations: veberViolations },
|
|
94
94
|
};
|
|
95
95
|
}
|
|
96
|
+
/**
|
|
97
|
+
* PUG View is a per-CID endpoint, so descriptions and classification fan out one request per
|
|
98
|
+
* compound. The batch accepts up to 100 CIDs; this bounds that fan-out. CIDs past it come back
|
|
99
|
+
* without descriptions or classification — disclosed via enrichment (#40).
|
|
100
|
+
*/
|
|
101
|
+
const PUG_VIEW_CID_CAP = 10;
|
|
96
102
|
// ── Tool definition ────────────────────────────────────────────────────
|
|
97
103
|
export const getCompoundDetails = tool('pubchem_get_compound_details', {
|
|
98
104
|
title: 'Get Compound Details',
|
|
99
|
-
description: 'Get detailed compound information by CID. Returns physicochemical properties (molecular weight, SMILES, InChIKey, XLogP, TPSA, etc.), optionally with a textual description (pharmacology, mechanism, therapeutic use),
|
|
105
|
+
description: 'Get detailed compound information by CID. Returns physicochemical properties (molecular weight, SMILES, InChIKey, XLogP, TPSA, etc.), optionally with a textual description (pharmacology, mechanism, therapeutic use), known synonyms, drug-likeness assessment (Lipinski/Veber rules), and/or pharmacological classification (FDA classes, MeSH classes, ATC codes). Accepts up to 100 CIDs per call.',
|
|
100
106
|
annotations: {
|
|
101
107
|
readOnlyHint: true,
|
|
102
108
|
idempotentHint: true,
|
|
@@ -115,25 +121,37 @@ export const getCompoundDetails = tool('pubchem_get_compound_details', {
|
|
|
115
121
|
includeDescription: z
|
|
116
122
|
.boolean()
|
|
117
123
|
.default(false)
|
|
118
|
-
.describe(
|
|
124
|
+
.describe(`Include textual descriptions (pharmacology, mechanism, therapeutic use) attributed by source. Well-studied compounds have many overlapping summaries — paged via descriptionOffset/maxDescriptions. Fetched only for the first ${PUG_VIEW_CID_CAP} CIDs in the batch; remaining CIDs return without descriptions and are listed in the response's skippedCids.`),
|
|
125
|
+
descriptionOffset: z
|
|
126
|
+
.number()
|
|
127
|
+
.int()
|
|
128
|
+
.min(0)
|
|
129
|
+
.default(0)
|
|
130
|
+
.describe("Zero-based index of the first description to return within each compound's description list. The same offset is applied to every compound in the batch. Pass the nextDescriptionOffset from a previous call to read the following page. Default: 0."),
|
|
119
131
|
maxDescriptions: z
|
|
120
132
|
.number()
|
|
121
133
|
.int()
|
|
122
134
|
.min(1)
|
|
123
135
|
.max(20)
|
|
124
136
|
.default(3)
|
|
125
|
-
.describe('Max number of distinct description entries per compound (1-20). PubChem returns near-duplicate summaries from many depositors; duplicates are collapsed before this cap applies. Default: 3.'),
|
|
137
|
+
.describe('Max number of distinct description entries per compound per page (1-20). PubChem returns near-duplicate summaries from many depositors; duplicates are collapsed before this cap applies. Default: 3.'),
|
|
126
138
|
includeSynonyms: z
|
|
127
139
|
.boolean()
|
|
128
140
|
.default(false)
|
|
129
|
-
.describe('Fetch
|
|
141
|
+
.describe('Fetch known names and synonyms (trade names, systematic names, registry numbers), paged via synonymOffset/maxSynonyms. Fetched for every found CID in the batch. Slower for large CID lists.'),
|
|
142
|
+
synonymOffset: z
|
|
143
|
+
.number()
|
|
144
|
+
.int()
|
|
145
|
+
.min(0)
|
|
146
|
+
.default(0)
|
|
147
|
+
.describe("Zero-based index of the first synonym to return within each compound's synonym list. The same offset is applied to every compound in the batch. Pass the nextSynonymOffset from a previous call to read the following page. Default: 0."),
|
|
130
148
|
maxSynonyms: z
|
|
131
149
|
.number()
|
|
132
150
|
.int()
|
|
133
151
|
.min(1)
|
|
134
152
|
.max(100)
|
|
135
153
|
.default(20)
|
|
136
|
-
.describe('Max synonyms returned per compound (1-100). PubChem lists hundreds for common drugs;
|
|
154
|
+
.describe('Max synonyms returned per compound per page (1-100). PubChem lists hundreds for common drugs; use synonymOffset to reach the ones past this page. Default: 20.'),
|
|
137
155
|
includeDrugLikeness: z
|
|
138
156
|
.boolean()
|
|
139
157
|
.default(false)
|
|
@@ -141,7 +159,7 @@ export const getCompoundDetails = tool('pubchem_get_compound_details', {
|
|
|
141
159
|
includeClassification: z
|
|
142
160
|
.boolean()
|
|
143
161
|
.default(false)
|
|
144
|
-
.describe(
|
|
162
|
+
.describe(`Include pharmacological classification: FDA Established Pharmacologic Classes, mechanisms of action, MeSH classes, and ATC codes. Fetched only for the first ${PUG_VIEW_CID_CAP} CIDs in the batch; remaining CIDs return without classification and are listed in the response's skippedCids.`),
|
|
145
163
|
}),
|
|
146
164
|
output: z.object({
|
|
147
165
|
compounds: z
|
|
@@ -165,16 +183,19 @@ export const getCompoundDetails = tool('pubchem_get_compound_details', {
|
|
|
165
183
|
})
|
|
166
184
|
.describe('Description entry with optional source attribution.'))
|
|
167
185
|
.optional()
|
|
168
|
-
.describe('Textual descriptions, deduplicated
|
|
186
|
+
.describe('Textual descriptions on this page, deduplicated then windowed by descriptionOffset/maxDescriptions. Each entry carries optional source attribution. Empty when descriptionOffset runs past descriptionsTotal.'),
|
|
169
187
|
descriptionsTotal: z
|
|
170
188
|
.number()
|
|
171
189
|
.optional()
|
|
172
|
-
.describe('Total distinct descriptions available
|
|
173
|
-
synonyms: z
|
|
190
|
+
.describe('Total distinct descriptions available for this compound, across all pages. Larger than descriptions.length when more sources exist — raise maxDescriptions or page with descriptionOffset to see them.'),
|
|
191
|
+
synonyms: z
|
|
192
|
+
.array(z.string())
|
|
193
|
+
.optional()
|
|
194
|
+
.describe('Known names and synonyms on this page, windowed by synonymOffset/maxSynonyms. Empty when synonymOffset runs past synonymsTotal.'),
|
|
174
195
|
synonymsTotal: z
|
|
175
196
|
.number()
|
|
176
197
|
.optional()
|
|
177
|
-
.describe('Total synonyms available
|
|
198
|
+
.describe('Total synonyms available for this compound, across all pages. Larger than synonyms.length when more exist — raise maxSynonyms or page with synonymOffset to see them.'),
|
|
178
199
|
drugLikeness: drugLikenessSchema
|
|
179
200
|
.optional()
|
|
180
201
|
.describe('Drug-likeness assessment. lipinski.violations ≤ 1 and veber.violations = 0 → pass.'),
|
|
@@ -185,6 +206,54 @@ export const getCompoundDetails = tool('pubchem_get_compound_details', {
|
|
|
185
206
|
.describe('Per-CID compound detail record.'))
|
|
186
207
|
.describe('Compound detail records.'),
|
|
187
208
|
}),
|
|
209
|
+
// Agent-facing context for the two things a per-compound record cannot say on its own:
|
|
210
|
+
// which CIDs the PUG View fan-out reached (#40), and where the synonym/description windows
|
|
211
|
+
// sit within each compound's full list (#38). Both are batch-wide — one offset and one cap
|
|
212
|
+
// apply to every compound — so they belong here rather than repeated per record. Reaches
|
|
213
|
+
// structuredContent and content[]; keys disjoint from output (compounds lives there).
|
|
214
|
+
//
|
|
215
|
+
// A full page is exactly maxSynonyms/maxDescriptions long, so one nextOffset serves every
|
|
216
|
+
// compound that still has entries left, whatever its individual total.
|
|
217
|
+
enrichment: {
|
|
218
|
+
enrichedCids: z
|
|
219
|
+
.array(z.number())
|
|
220
|
+
.optional()
|
|
221
|
+
.describe('CIDs whose descriptions and classification were fetched. Present only when the batch exceeded the per-call fan-out limit and other CIDs were skipped.'),
|
|
222
|
+
skippedCids: z
|
|
223
|
+
.array(z.number())
|
|
224
|
+
.optional()
|
|
225
|
+
.describe('CIDs found in PubChem whose descriptions and classification were NOT fetched because the batch exceeded the per-call fan-out limit. Their absence from a record means "not requested", not "PubChem has none" — re-request these CIDs in a follow-up call. Present only when CIDs were skipped.'),
|
|
226
|
+
synonymOffset: z
|
|
227
|
+
.number()
|
|
228
|
+
.optional()
|
|
229
|
+
.describe("Zero-based index of the first synonym returned within each compound's list. Present when includeSynonyms is true."),
|
|
230
|
+
nextSynonymOffset: z
|
|
231
|
+
.number()
|
|
232
|
+
.optional()
|
|
233
|
+
.describe('synonymOffset to pass on the next call to continue past this page. Omitted when no compound in the batch has further synonyms.'),
|
|
234
|
+
descriptionOffset: z
|
|
235
|
+
.number()
|
|
236
|
+
.optional()
|
|
237
|
+
.describe("Zero-based index of the first description returned within each compound's list. Present when includeDescription is true."),
|
|
238
|
+
nextDescriptionOffset: z
|
|
239
|
+
.number()
|
|
240
|
+
.optional()
|
|
241
|
+
.describe('descriptionOffset to pass on the next call to continue past this page. Omitted when no compound in the batch has further descriptions.'),
|
|
242
|
+
notice: z
|
|
243
|
+
.string()
|
|
244
|
+
.optional()
|
|
245
|
+
.describe('Recovery guidance covering the skipped CIDs, an offset that runs past every compound, and pages that remain. Absent when nothing was skipped or truncated.'),
|
|
246
|
+
},
|
|
247
|
+
// Both fields are optional, so `render` sees `number[] | undefined` at the type level; the
|
|
248
|
+
// framework only calls it for a populated field.
|
|
249
|
+
enrichmentTrailer: {
|
|
250
|
+
enrichedCids: {
|
|
251
|
+
render: (cids) => `**Descriptions/classification fetched for:** CID ${(cids ?? []).join(', ')}`,
|
|
252
|
+
},
|
|
253
|
+
skippedCids: {
|
|
254
|
+
render: (cids) => `**Descriptions/classification skipped for:** CID ${(cids ?? []).join(', ')}`,
|
|
255
|
+
},
|
|
256
|
+
},
|
|
188
257
|
async handler(input, ctx) {
|
|
189
258
|
const client = getPubChemClient();
|
|
190
259
|
const requestedProps = input.properties ?? [...DEFAULT_PROPERTIES];
|
|
@@ -207,12 +276,14 @@ export const getCompoundDetails = tool('pubchem_get_compound_details', {
|
|
|
207
276
|
return false;
|
|
208
277
|
return Object.keys(row).some((k) => k !== 'CID');
|
|
209
278
|
};
|
|
210
|
-
// PUG View calls (per-CID, capped
|
|
279
|
+
// PUG View calls (per-CID, capped) — skip CIDs that aren't in PubChem
|
|
211
280
|
const foundCids = input.cids.filter(isFound);
|
|
212
|
-
const viewCids = foundCids.slice(0,
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
281
|
+
const viewCids = foundCids.slice(0, PUG_VIEW_CID_CAP);
|
|
282
|
+
const skippedViewCids = foundCids.slice(PUG_VIEW_CID_CAP);
|
|
283
|
+
const viewCapEngaged = (input.includeDescription || input.includeClassification) && skippedViewCids.length > 0;
|
|
284
|
+
if (viewCapEngaged) {
|
|
285
|
+
ctx.log.info('PUG View fetch capped', {
|
|
286
|
+
cap: PUG_VIEW_CID_CAP,
|
|
216
287
|
requested: foundCids.length,
|
|
217
288
|
fetching: viewCids.length,
|
|
218
289
|
});
|
|
@@ -251,12 +322,12 @@ export const getCompoundDetails = tool('pubchem_get_compound_details', {
|
|
|
251
322
|
return compound;
|
|
252
323
|
const allDescs = descMap?.get(cid);
|
|
253
324
|
if (allDescs && allDescs.length > 0) {
|
|
254
|
-
compound.descriptions = allDescs.slice(
|
|
325
|
+
compound.descriptions = allDescs.slice(input.descriptionOffset, input.descriptionOffset + input.maxDescriptions);
|
|
255
326
|
compound.descriptionsTotal = allDescs.length;
|
|
256
327
|
}
|
|
257
328
|
const syns = synMap?.get(cid);
|
|
258
329
|
if (syns) {
|
|
259
|
-
compound.synonyms = syns.slice(
|
|
330
|
+
compound.synonyms = syns.slice(input.synonymOffset, input.synonymOffset + input.maxSynonyms);
|
|
260
331
|
compound.synonymsTotal = syns.length;
|
|
261
332
|
}
|
|
262
333
|
if (input.includeDrugLikeness)
|
|
@@ -266,6 +337,40 @@ export const getCompoundDetails = tool('pubchem_get_compound_details', {
|
|
|
266
337
|
compound.classification = cls;
|
|
267
338
|
return compound;
|
|
268
339
|
});
|
|
340
|
+
const notices = [];
|
|
341
|
+
// #40 — the PUG View fan-out cap is otherwise invisible: a capped-out CID looks exactly
|
|
342
|
+
// like a compound PubChem has no description for.
|
|
343
|
+
if (viewCapEngaged) {
|
|
344
|
+
ctx.enrich({ enrichedCids: viewCids, skippedCids: skippedViewCids });
|
|
345
|
+
notices.push(`Descriptions and classification were fetched for the first ${viewCids.length} of ${foundCids.length} found CIDs (limit: ${PUG_VIEW_CID_CAP} per call). CID ${skippedViewCids.join(', ')} returned without them — re-request those CIDs in a follow-up call.`);
|
|
346
|
+
}
|
|
347
|
+
if (input.includeSynonyms) {
|
|
348
|
+
const page = listPage([...(synMap?.values() ?? [])].map((s) => s.length), input.synonymOffset, input.maxSynonyms);
|
|
349
|
+
ctx.enrich({ synonymOffset: input.synonymOffset });
|
|
350
|
+
if (page.hasMore)
|
|
351
|
+
ctx.enrich({ nextSynonymOffset: page.nextOffset });
|
|
352
|
+
if (page.allEmpty) {
|
|
353
|
+
notices.push(`synonymOffset ${input.synonymOffset} is past every compound in this batch — the longest synonym list has ${page.largestTotal} entries. Pass a synonymOffset below ${page.largestTotal}.`);
|
|
354
|
+
}
|
|
355
|
+
else if (page.hasMore) {
|
|
356
|
+
notices.push(`More synonyms remain — pass synonymOffset=${page.nextOffset} to continue.`);
|
|
357
|
+
}
|
|
358
|
+
}
|
|
359
|
+
if (input.includeDescription) {
|
|
360
|
+
const page = listPage([...(descMap?.values() ?? [])].map((d) => d.length), input.descriptionOffset, input.maxDescriptions);
|
|
361
|
+
ctx.enrich({ descriptionOffset: input.descriptionOffset });
|
|
362
|
+
if (page.hasMore)
|
|
363
|
+
ctx.enrich({ nextDescriptionOffset: page.nextOffset });
|
|
364
|
+
if (page.allEmpty) {
|
|
365
|
+
notices.push(`descriptionOffset ${input.descriptionOffset} is past every compound in this batch — the longest description list has ${page.largestTotal} entries. Pass a descriptionOffset below ${page.largestTotal}.`);
|
|
366
|
+
}
|
|
367
|
+
else if (page.hasMore) {
|
|
368
|
+
notices.push(`More descriptions remain — pass descriptionOffset=${page.nextOffset} to continue.`);
|
|
369
|
+
}
|
|
370
|
+
}
|
|
371
|
+
// One notice field, so the sources are composed rather than overwriting one another.
|
|
372
|
+
if (notices.length > 0)
|
|
373
|
+
ctx.enrich.notice(notices.join(' '));
|
|
269
374
|
return { compounds };
|
|
270
375
|
},
|
|
271
376
|
format(result) {
|
|
@@ -391,7 +496,12 @@ export const getCompoundDetails = tool('pubchem_get_compound_details', {
|
|
|
391
496
|
}
|
|
392
497
|
blocks.push(lines.join('\n'));
|
|
393
498
|
}
|
|
394
|
-
//
|
|
499
|
+
// An empty list with a non-zero total means the offset ran past this compound —
|
|
500
|
+
// distinct from having no descriptions at all, which omits the field entirely.
|
|
501
|
+
if (c.descriptions?.length === 0) {
|
|
502
|
+
blocks.push(`\n**Descriptions** (${c.descriptionsTotal ?? 0} total): none at this descriptionOffset`);
|
|
503
|
+
}
|
|
504
|
+
// Descriptions (with source attribution; windowed by descriptionOffset/maxDescriptions)
|
|
395
505
|
if (c.descriptions && c.descriptions.length > 0) {
|
|
396
506
|
const total = c.descriptionsTotal ?? c.descriptions.length;
|
|
397
507
|
const shown = c.descriptions.length;
|
|
@@ -409,15 +519,18 @@ export const getCompoundDetails = tool('pubchem_get_compound_details', {
|
|
|
409
519
|
}
|
|
410
520
|
const more = total - shown;
|
|
411
521
|
if (more > 0) {
|
|
412
|
-
descLines.push(`_+${more} more description${more === 1 ? '' : 's'} from other sources —
|
|
522
|
+
descLines.push(`_+${more} more description${more === 1 ? '' : 's'} from other sources — raise maxDescriptions or page with descriptionOffset to see them._`);
|
|
413
523
|
}
|
|
414
524
|
blocks.push(descLines.join('\n\n'));
|
|
415
525
|
}
|
|
416
|
-
|
|
526
|
+
if (c.synonyms?.length === 0) {
|
|
527
|
+
blocks.push(`\n**Synonyms** (${c.synonymsTotal ?? 0} total): none at this synonymOffset`);
|
|
528
|
+
}
|
|
529
|
+
// Synonyms (windowed by synonymOffset/maxSynonyms in the handler; total reported)
|
|
417
530
|
if (c.synonyms && c.synonyms.length > 0) {
|
|
418
531
|
const total = c.synonymsTotal ?? c.synonyms.length;
|
|
419
532
|
const more = total - c.synonyms.length;
|
|
420
|
-
const suffix = more > 0 ? ` (+${more} more)` : '';
|
|
533
|
+
const suffix = more > 0 ? ` (+${more} more not on this page)` : '';
|
|
421
534
|
/**
|
|
422
535
|
* Pipe-separated: CAS-style inverted names ("Benzoic acid, 2-(acetyloxy)-") carry
|
|
423
536
|
* their own ", ", which would split one synonym into two. " | " is this formatter's
|
|
@@ -434,6 +547,19 @@ export const getCompoundDetails = tool('pubchem_get_compound_details', {
|
|
|
434
547
|
return [{ type: 'text', text: blocks.join('\n') }];
|
|
435
548
|
},
|
|
436
549
|
});
|
|
550
|
+
/**
|
|
551
|
+
* Batch-wide page state for one of the per-compound lists. `totals` holds each compound's
|
|
552
|
+
* full list length; a page is windowed at the same offset and cap for every compound.
|
|
553
|
+
*/
|
|
554
|
+
function listPage(totals, offset, cap) {
|
|
555
|
+
const largestTotal = totals.reduce((max, t) => Math.max(max, t), 0);
|
|
556
|
+
return {
|
|
557
|
+
allEmpty: largestTotal > 0 && totals.every((t) => t <= offset),
|
|
558
|
+
hasMore: totals.some((t) => t > offset + cap),
|
|
559
|
+
largestTotal,
|
|
560
|
+
nextOffset: offset + cap,
|
|
561
|
+
};
|
|
562
|
+
}
|
|
437
563
|
function formatRules(rules) {
|
|
438
564
|
return rules
|
|
439
565
|
.map(([label, r]) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-compound-details.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/get-compound-details.tool.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"get-compound-details.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/get-compound-details.tool.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,7 @@ export declare const getCompoundXrefs: import("@cyanheads/mcp-ts-core").ToolDefi
|
|
|
8
8
|
xrefTypes: z.ZodArray<z.ZodEnum<{
|
|
9
9
|
[x: string]: string;
|
|
10
10
|
}>>;
|
|
11
|
+
offset: z.ZodDefault<z.ZodNumber>;
|
|
11
12
|
maxPerType: z.ZodDefault<z.ZodNumber>;
|
|
12
13
|
}, z.core.$strip>, z.ZodObject<{
|
|
13
14
|
cid: z.ZodNumber;
|
|
@@ -18,6 +19,8 @@ export declare const getCompoundXrefs: import("@cyanheads/mcp-ts-core").ToolDefi
|
|
|
18
19
|
truncated: z.ZodBoolean;
|
|
19
20
|
}, z.core.$strip>>;
|
|
20
21
|
}, z.core.$strip>, undefined, {
|
|
22
|
+
readonly offset: z.ZodNumber;
|
|
23
|
+
readonly nextOffset: z.ZodOptional<z.ZodNumber>;
|
|
21
24
|
readonly notice: z.ZodOptional<z.ZodString>;
|
|
22
25
|
}>;
|
|
23
26
|
//# sourceMappingURL=get-compound-xrefs.tool.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-compound-xrefs.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/get-compound-xrefs.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AAMjD,eAAO,MAAM,gBAAgB
|
|
1
|
+
{"version":3,"file":"get-compound-xrefs.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/get-compound-xrefs.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AAMjD,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;EAwL3B,CAAC"}
|
|
@@ -8,7 +8,7 @@ import { XREF_TYPES } from '../../../services/pubchem/types.js';
|
|
|
8
8
|
const xrefTypeEnum = z.enum(XREF_TYPES);
|
|
9
9
|
export const getCompoundXrefs = tool('pubchem_get_compound_xrefs', {
|
|
10
10
|
title: 'Get Compound Cross-References',
|
|
11
|
-
description: 'Get external database cross-references for a compound: PubMed citations, patent IDs, gene/protein associations, registry numbers, and taxonomy IDs. Results are
|
|
11
|
+
description: 'Get external database cross-references for a compound: PubMed citations, patent IDs, gene/protein associations, registry numbers, and taxonomy IDs. Results are paged per type — capped at maxPerType with the total count reported; reach the IDs past a page with offset.',
|
|
12
12
|
annotations: {
|
|
13
13
|
readOnlyHint: true,
|
|
14
14
|
idempotentHint: true,
|
|
@@ -24,12 +24,18 @@ export const getCompoundXrefs = tool('pubchem_get_compound_xrefs', {
|
|
|
24
24
|
.array(xrefTypeEnum)
|
|
25
25
|
.min(1)
|
|
26
26
|
.describe('Cross-reference types to retrieve. String IDs: RegistryID (DSSTox/EPA registry numbers), RN (CAS numbers), PatentID. Numeric IDs: PubMedID, GeneID (NCBI Gene), ProteinGI (legacy NCBI Protein GI), TaxonomyID.'),
|
|
27
|
+
offset: z
|
|
28
|
+
.number()
|
|
29
|
+
.int()
|
|
30
|
+
.min(0)
|
|
31
|
+
.default(0)
|
|
32
|
+
.describe('Zero-based index of the first ID to return within each xref type. The same offset is applied to every requested type. Pass the nextOffset from a previous call to read the following page. Default: 0.'),
|
|
27
33
|
maxPerType: z
|
|
28
34
|
.number()
|
|
29
35
|
.min(1)
|
|
30
36
|
.max(500)
|
|
31
37
|
.default(50)
|
|
32
|
-
.describe('Max IDs to return per xref type (1-500). A compound may have thousands of PubMed references. Total count always reported. Default: 50.'),
|
|
38
|
+
.describe('Max IDs to return per xref type per page (1-500). A compound may have thousands of PubMed references; use offset to reach the ones past this page. Total count always reported. Default: 50.'),
|
|
33
39
|
}),
|
|
34
40
|
output: z.object({
|
|
35
41
|
cid: z.number().describe('PubChem Compound ID.'),
|
|
@@ -48,21 +54,31 @@ export const getCompoundXrefs = tool('pubchem_get_compound_xrefs', {
|
|
|
48
54
|
z.number().describe('Numeric cross-reference ID (e.g. PubMed ID, Gene ID).'),
|
|
49
55
|
])
|
|
50
56
|
.describe('Cross-reference identifier — string or number depending on type.'))
|
|
51
|
-
.describe('Cross-reference IDs (
|
|
52
|
-
totalAvailable: z
|
|
53
|
-
|
|
57
|
+
.describe('Cross-reference IDs on this page (window of offset + maxPerType).'),
|
|
58
|
+
totalAvailable: z
|
|
59
|
+
.number()
|
|
60
|
+
.describe('Total IDs available for this type, across all pages.'),
|
|
61
|
+
truncated: z
|
|
62
|
+
.boolean()
|
|
63
|
+
.describe('True when IDs for this type remain past the current page.'),
|
|
54
64
|
})
|
|
55
65
|
.describe('Cross-reference group for one type.'))
|
|
56
66
|
.describe('Cross-references grouped by type.'),
|
|
57
67
|
}),
|
|
58
|
-
// Agent-facing context —
|
|
59
|
-
// real compound that simply has none of the
|
|
60
|
-
// and content[]; keys disjoint from output
|
|
68
|
+
// Agent-facing context — the page boundary shared by every requested type, plus a notice
|
|
69
|
+
// distinguishing a nonexistent CID from a real compound that simply has none of the
|
|
70
|
+
// requested xref types. Reaches structuredContent and content[]; keys disjoint from output
|
|
71
|
+
// (cid/xrefs live there).
|
|
61
72
|
enrichment: {
|
|
73
|
+
offset: z.number().describe('Zero-based index of the first ID returned within each type.'),
|
|
74
|
+
nextOffset: z
|
|
75
|
+
.number()
|
|
76
|
+
.optional()
|
|
77
|
+
.describe('Offset to pass on the next call to continue past this page. Omitted when no requested type has further IDs.'),
|
|
62
78
|
notice: z
|
|
63
79
|
.string()
|
|
64
80
|
.optional()
|
|
65
|
-
.describe('Recovery guidance when every requested xref type returned zero IDs
|
|
81
|
+
.describe('Recovery guidance when every requested xref type returned zero IDs, when the offset runs past every type, or when further pages remain. Absent when this page is complete and non-empty.'),
|
|
66
82
|
},
|
|
67
83
|
async handler(input, ctx) {
|
|
68
84
|
const client = getPubChemClient();
|
|
@@ -71,32 +87,60 @@ export const getCompoundXrefs = tool('pubchem_get_compound_xrefs', {
|
|
|
71
87
|
for (const xrefType of input.xrefTypes) {
|
|
72
88
|
const allIds = await client.getXrefs(input.cid, xrefType);
|
|
73
89
|
const totalAvailable = allIds.length;
|
|
74
|
-
|
|
90
|
+
// Offset is applied client-side: PubChem's xref endpoint returns the whole list for a
|
|
91
|
+
// type in one response, so getXrefs already holds every ID.
|
|
92
|
+
const ids = allIds.slice(input.offset, input.offset + input.maxPerType);
|
|
75
93
|
xrefs.push({
|
|
76
94
|
type: xrefType,
|
|
77
95
|
ids,
|
|
78
96
|
totalAvailable,
|
|
79
|
-
truncated:
|
|
97
|
+
truncated: input.offset + ids.length < totalAvailable,
|
|
80
98
|
});
|
|
81
99
|
}
|
|
82
100
|
ctx.log.info('Xrefs fetched', {
|
|
83
101
|
cid: input.cid,
|
|
84
102
|
types: input.xrefTypes,
|
|
103
|
+
offset: input.offset,
|
|
85
104
|
totalIds: xrefs.reduce((sum, x) => sum + x.ids.length, 0),
|
|
86
105
|
});
|
|
106
|
+
// Any type whose page is full has more behind it, and every full page is the same length —
|
|
107
|
+
// so a single nextOffset covers every type that still has IDs left. The stride comes from a
|
|
108
|
+
// returned page rather than maxPerType, which accepts a fractional value that would make
|
|
109
|
+
// nextOffset non-integer and so rejected by this tool's own offset input.
|
|
110
|
+
const remainingTypes = xrefs.filter((x) => x.truncated);
|
|
111
|
+
const hasMore = remainingTypes.length > 0;
|
|
112
|
+
const nextOffset = input.offset + (remainingTypes[0]?.ids.length ?? 0);
|
|
113
|
+
const largestTotal = Math.max(...xrefs.map((x) => x.totalAvailable));
|
|
114
|
+
ctx.enrich({ offset: input.offset });
|
|
115
|
+
if (hasMore)
|
|
116
|
+
ctx.enrich({ nextOffset });
|
|
87
117
|
// Empty-result signal (#30): every requested type came back empty — either the CID
|
|
88
118
|
// doesn't exist or it genuinely has none of these xref types. Point at CID verification.
|
|
89
|
-
if (
|
|
119
|
+
if (largestTotal === 0) {
|
|
90
120
|
ctx.enrich.notice(`No cross-references found for CID ${input.cid} across the requested type(s): ${input.xrefTypes.join(', ')}. The compound may have none of these xref types, or verify the CID with pubchem_search_compounds.`);
|
|
91
121
|
}
|
|
122
|
+
else if (xrefs.every((x) => x.ids.length === 0)) {
|
|
123
|
+
ctx.enrich.notice(`offset ${input.offset} is past every requested type — the largest has ${largestTotal} ID(s). Pass an offset below ${largestTotal}.`);
|
|
124
|
+
}
|
|
125
|
+
else if (hasMore) {
|
|
126
|
+
const remaining = remainingTypes
|
|
127
|
+
.map((x) => `${x.type} (${x.totalAvailable} total)`)
|
|
128
|
+
.join(', ');
|
|
129
|
+
ctx.enrich.notice(`More IDs remain for: ${remaining}. Pass offset=${nextOffset} for the next page.`);
|
|
130
|
+
}
|
|
92
131
|
return { cid: input.cid, xrefs };
|
|
93
132
|
},
|
|
94
133
|
format(result) {
|
|
95
134
|
const lines = [`Cross-references for CID ${result.cid}`, ''];
|
|
96
135
|
for (const xref of result.xrefs) {
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
136
|
+
// A page shorter than the total is disclosed as a window; "truncated" additionally
|
|
137
|
+
// marks that IDs remain *after* it (an offset can also leave IDs before it).
|
|
138
|
+
let countInfo = `${xref.totalAvailable} total`;
|
|
139
|
+
if (xref.ids.length !== xref.totalAvailable) {
|
|
140
|
+
countInfo = `${xref.ids.length} of ${xref.totalAvailable} total`;
|
|
141
|
+
if (xref.truncated)
|
|
142
|
+
countInfo += ' — truncated';
|
|
143
|
+
}
|
|
100
144
|
lines.push(`**${xref.type}** (${countInfo})`);
|
|
101
145
|
if (xref.ids.length > 0) {
|
|
102
146
|
// Rendered in full: the handler already capped ids at maxPerType and the header
|
|
@@ -104,7 +148,7 @@ export const getCompoundXrefs = tool('pubchem_get_compound_xrefs', {
|
|
|
104
148
|
lines.push(` ${xref.ids.join(', ')}`);
|
|
105
149
|
}
|
|
106
150
|
else {
|
|
107
|
-
lines.push(' None found');
|
|
151
|
+
lines.push(xref.totalAvailable > 0 ? ' None on this page' : ' None found');
|
|
108
152
|
}
|
|
109
153
|
lines.push('');
|
|
110
154
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-compound-xrefs.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/get-compound-xrefs.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AACxE,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAEzD,MAAM,YAAY,GAAG,CAAC,CAAC,IAAI,CAAC,UAA8C,CAAC,CAAC;AAE5E,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,CAAC,4BAA4B,EAAE;IACjE,KAAK,EAAE,+BAA+B;IACtC,WAAW,EACT,
|
|
1
|
+
{"version":3,"file":"get-compound-xrefs.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/get-compound-xrefs.tool.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,8 +8,10 @@ export declare const allToolDefinitions: (import("@cyanheads/mcp-ts-core").ToolD
|
|
|
8
8
|
[x: string]: string;
|
|
9
9
|
}>>>;
|
|
10
10
|
includeDescription: import("zod").ZodDefault<import("zod").ZodBoolean>;
|
|
11
|
+
descriptionOffset: import("zod").ZodDefault<import("zod").ZodNumber>;
|
|
11
12
|
maxDescriptions: import("zod").ZodDefault<import("zod").ZodNumber>;
|
|
12
13
|
includeSynonyms: import("zod").ZodDefault<import("zod").ZodBoolean>;
|
|
14
|
+
synonymOffset: import("zod").ZodDefault<import("zod").ZodNumber>;
|
|
13
15
|
maxSynonyms: import("zod").ZodDefault<import("zod").ZodNumber>;
|
|
14
16
|
includeDrugLikeness: import("zod").ZodDefault<import("zod").ZodBoolean>;
|
|
15
17
|
includeClassification: import("zod").ZodDefault<import("zod").ZodBoolean>;
|
|
@@ -74,11 +76,20 @@ export declare const allToolDefinitions: (import("@cyanheads/mcp-ts-core").ToolD
|
|
|
74
76
|
meshClasses: import("zod").ZodArray<import("zod").ZodString>;
|
|
75
77
|
}, import("zod/v4/core").$strip>>;
|
|
76
78
|
}, import("zod/v4/core").$strip>>;
|
|
77
|
-
}, import("zod/v4/core").$strip>, undefined,
|
|
79
|
+
}, import("zod/v4/core").$strip>, undefined, {
|
|
80
|
+
readonly enrichedCids: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodNumber>>;
|
|
81
|
+
readonly skippedCids: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodNumber>>;
|
|
82
|
+
readonly synonymOffset: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
83
|
+
readonly nextSynonymOffset: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
84
|
+
readonly descriptionOffset: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
85
|
+
readonly nextDescriptionOffset: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
86
|
+
readonly notice: import("zod").ZodOptional<import("zod").ZodString>;
|
|
87
|
+
}> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
|
|
78
88
|
cid: import("zod").ZodNumber;
|
|
79
89
|
xrefTypes: import("zod").ZodArray<import("zod").ZodEnum<{
|
|
80
90
|
[x: string]: string;
|
|
81
91
|
}>>;
|
|
92
|
+
offset: import("zod").ZodDefault<import("zod").ZodNumber>;
|
|
82
93
|
maxPerType: import("zod").ZodDefault<import("zod").ZodNumber>;
|
|
83
94
|
}, import("zod/v4/core").$strip>, import("zod").ZodObject<{
|
|
84
95
|
cid: import("zod").ZodNumber;
|
|
@@ -89,6 +100,8 @@ export declare const allToolDefinitions: (import("@cyanheads/mcp-ts-core").ToolD
|
|
|
89
100
|
truncated: import("zod").ZodBoolean;
|
|
90
101
|
}, import("zod/v4/core").$strip>>;
|
|
91
102
|
}, import("zod/v4/core").$strip>, undefined, {
|
|
103
|
+
readonly offset: import("zod").ZodNumber;
|
|
104
|
+
readonly nextOffset: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
92
105
|
readonly notice: import("zod").ZodOptional<import("zod").ZodString>;
|
|
93
106
|
}> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
|
|
94
107
|
searchType: import("zod").ZodEnum<{
|
|
@@ -311,6 +324,7 @@ export declare const allToolDefinitions: (import("@cyanheads/mcp-ts-core").ToolD
|
|
|
311
324
|
proteinname: "proteinname";
|
|
312
325
|
}>;
|
|
313
326
|
targetQuery: import("zod").ZodString;
|
|
327
|
+
offset: import("zod").ZodDefault<import("zod").ZodNumber>;
|
|
314
328
|
maxResults: import("zod").ZodDefault<import("zod").ZodNumber>;
|
|
315
329
|
}, import("zod/v4/core").$strip>, import("zod").ZodObject<{
|
|
316
330
|
aids: import("zod").ZodArray<import("zod").ZodNumber>;
|
|
@@ -328,6 +342,8 @@ export declare const allToolDefinitions: (import("@cyanheads/mcp-ts-core").ToolD
|
|
|
328
342
|
readonly targetType: import("zod").ZodString;
|
|
329
343
|
readonly targetQuery: import("zod").ZodString;
|
|
330
344
|
readonly totalFound: import("zod").ZodNumber;
|
|
345
|
+
readonly offset: import("zod").ZodNumber;
|
|
346
|
+
readonly nextOffset: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
331
347
|
readonly truncated: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
332
348
|
readonly shown: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
333
349
|
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
|
|
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"}
|
|
@@ -13,6 +13,7 @@ export declare const searchAssays: import("@cyanheads/mcp-ts-core").ToolDefiniti
|
|
|
13
13
|
proteinname: "proteinname";
|
|
14
14
|
}>;
|
|
15
15
|
targetQuery: z.ZodString;
|
|
16
|
+
offset: z.ZodDefault<z.ZodNumber>;
|
|
16
17
|
maxResults: z.ZodDefault<z.ZodNumber>;
|
|
17
18
|
}, z.core.$strip>, z.ZodObject<{
|
|
18
19
|
aids: z.ZodArray<z.ZodNumber>;
|
|
@@ -30,6 +31,8 @@ export declare const searchAssays: import("@cyanheads/mcp-ts-core").ToolDefiniti
|
|
|
30
31
|
readonly targetType: z.ZodString;
|
|
31
32
|
readonly targetQuery: z.ZodString;
|
|
32
33
|
readonly totalFound: z.ZodNumber;
|
|
34
|
+
readonly offset: z.ZodNumber;
|
|
35
|
+
readonly nextOffset: z.ZodOptional<z.ZodNumber>;
|
|
33
36
|
readonly truncated: z.ZodOptional<z.ZodBoolean>;
|
|
34
37
|
readonly shown: z.ZodOptional<z.ZodNumber>;
|
|
35
38
|
readonly cap: z.ZodOptional<z.ZodNumber>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search-assays.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/search-assays.tool.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAGjE,eAAO,MAAM,YAAY
|
|
1
|
+
{"version":3,"file":"search-assays.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/search-assays.tool.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAGjE,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwJvB,CAAC"}
|
|
@@ -8,7 +8,7 @@ import { JsonRpcErrorCode } from '@cyanheads/mcp-ts-core/errors';
|
|
|
8
8
|
import { getPubChemClient } from '../../../services/pubchem/pubchem-client.js';
|
|
9
9
|
export const searchAssays = tool('pubchem_search_assays', {
|
|
10
10
|
title: 'Search Assays',
|
|
11
|
-
description: 'Find PubChem bioassays associated with a biological target. Search by gene symbol (e.g. "EGFR"), protein name, NCBI Gene ID, or UniProt accession. Returns assay IDs (AIDs) which can be explored further with pubchem_get_summary.',
|
|
11
|
+
description: 'Find PubChem bioassays associated with a biological target. Search by gene symbol (e.g. "EGFR"), protein name, NCBI Gene ID, or UniProt accession. Returns a page of assay IDs (AIDs) — page past maxResults with offset — which can be explored further with pubchem_get_summary.',
|
|
12
12
|
annotations: {
|
|
13
13
|
readOnlyHint: true,
|
|
14
14
|
idempotentHint: true,
|
|
@@ -21,34 +21,43 @@ export const searchAssays = tool('pubchem_search_assays', {
|
|
|
21
21
|
targetQuery: z
|
|
22
22
|
.string()
|
|
23
23
|
.describe('Target identifier. Examples: "EGFR" (genesymbol), "Epidermal growth factor receptor" (proteinname), "1956" (geneid), "P00533" (proteinaccession).'),
|
|
24
|
+
offset: z
|
|
25
|
+
.number()
|
|
26
|
+
.int()
|
|
27
|
+
.min(0)
|
|
28
|
+
.default(0)
|
|
29
|
+
.describe('Zero-based index of the first AID to return. Pass the nextOffset from a previous call to read the following page. Default: 0.'),
|
|
24
30
|
maxResults: z
|
|
25
31
|
.number()
|
|
26
32
|
.min(1)
|
|
27
33
|
.max(200)
|
|
28
34
|
.default(50)
|
|
29
|
-
.describe('Max AIDs to return (1-200). Popular targets may have thousands of assays. Default: 50.'),
|
|
35
|
+
.describe('Max AIDs to return per page (1-200). Popular targets may have thousands of assays; use offset to reach the ones past this page. Default: 50.'),
|
|
30
36
|
}),
|
|
31
37
|
output: z.object({
|
|
32
38
|
aids: z.array(z.number()).describe('PubChem Assay IDs.'),
|
|
33
39
|
}),
|
|
34
|
-
// Agent-facing context — target echo, total
|
|
40
|
+
// Agent-facing context — target echo, the total across all pages, the page boundary, and a
|
|
41
|
+
// notice distinguishing "no match" from "offset past the end".
|
|
35
42
|
// Reaches structuredContent and content[] automatically; not in the domain return.
|
|
36
43
|
enrichment: {
|
|
37
44
|
targetType: z
|
|
38
45
|
.string()
|
|
39
46
|
.describe('Target identifier type used: genesymbol, proteinname, geneid, or proteinaccession.'),
|
|
40
47
|
targetQuery: z.string().describe('Target identifier searched.'),
|
|
41
|
-
totalFound: z.number().describe('Total AIDs found
|
|
42
|
-
|
|
43
|
-
|
|
48
|
+
totalFound: z.number().describe('Total AIDs found for this target, across all pages.'),
|
|
49
|
+
offset: z.number().describe('Zero-based index of the first AID returned.'),
|
|
50
|
+
nextOffset: z
|
|
51
|
+
.number()
|
|
44
52
|
.optional()
|
|
45
|
-
.describe('
|
|
46
|
-
|
|
53
|
+
.describe('Offset to pass on the next call to continue past this page. Omitted when no further AIDs match.'),
|
|
54
|
+
truncated: z.boolean().optional().describe('True when matching AIDs remain past this page.'),
|
|
55
|
+
shown: z.number().optional().describe('AIDs returned on this page.'),
|
|
47
56
|
cap: z.number().optional().describe('The maxResults cap that was applied.'),
|
|
48
57
|
notice: z
|
|
49
58
|
.string()
|
|
50
59
|
.optional()
|
|
51
|
-
.describe('Recovery guidance when no assays matched
|
|
60
|
+
.describe('Recovery guidance when no assays matched, when the offset runs past the result set, or when further pages remain. Absent when this page is complete and non-empty.'),
|
|
52
61
|
},
|
|
53
62
|
errors: [
|
|
54
63
|
{
|
|
@@ -80,20 +89,34 @@ export const searchAssays = tool('pubchem_search_assays', {
|
|
|
80
89
|
}
|
|
81
90
|
const allAids = await client.searchAssaysByTarget(input.targetType, targetQuery);
|
|
82
91
|
const totalFound = allAids.length;
|
|
83
|
-
|
|
92
|
+
// Offset is applied client-side: PubChem's target-to-AID endpoint returns the whole AID
|
|
93
|
+
// list in one response, so searchAssaysByTarget already holds every match.
|
|
94
|
+
const aids = allAids.slice(input.offset, input.offset + input.maxResults);
|
|
95
|
+
const nextOffset = input.offset + aids.length;
|
|
96
|
+
const hasMore = nextOffset < totalFound;
|
|
84
97
|
ctx.log.info('Assay search completed', {
|
|
85
98
|
targetType: input.targetType,
|
|
86
99
|
targetQuery,
|
|
87
100
|
totalFound,
|
|
101
|
+
offset: input.offset,
|
|
88
102
|
returned: aids.length,
|
|
89
103
|
});
|
|
90
|
-
// Agent-facing context: target echo, total, and
|
|
91
|
-
ctx.enrich({ targetType: input.targetType, targetQuery, totalFound });
|
|
92
|
-
if (
|
|
104
|
+
// Agent-facing context: target echo, total, page boundary, and recovery notices.
|
|
105
|
+
ctx.enrich({ targetType: input.targetType, targetQuery, totalFound, offset: input.offset });
|
|
106
|
+
if (hasMore)
|
|
107
|
+
ctx.enrich({ nextOffset });
|
|
108
|
+
if (totalFound === 0) {
|
|
93
109
|
ctx.enrich.notice(`No assays found for "${targetQuery}" (${input.targetType}). Try a different targetType (e.g. switch from proteinname to genesymbol), verify the identifier spelling, or use pubchem_get_summary for gene/protein entity lookups.`);
|
|
94
110
|
}
|
|
95
|
-
else if (
|
|
96
|
-
ctx.enrich.
|
|
111
|
+
else if (aids.length === 0) {
|
|
112
|
+
ctx.enrich.notice(`offset ${input.offset} is past the ${totalFound} AID(s) found for "${targetQuery}". Pass an offset below ${totalFound}.`);
|
|
113
|
+
}
|
|
114
|
+
else if (hasMore) {
|
|
115
|
+
ctx.enrich.truncated({
|
|
116
|
+
shown: aids.length,
|
|
117
|
+
cap: input.maxResults,
|
|
118
|
+
guidance: `Showing AIDs ${input.offset + 1}-${nextOffset} of ${totalFound}. Pass offset=${nextOffset} for the next page.`,
|
|
119
|
+
});
|
|
97
120
|
}
|
|
98
121
|
return { aids };
|
|
99
122
|
},
|
|
@@ -101,7 +124,9 @@ export const searchAssays = tool('pubchem_search_assays', {
|
|
|
101
124
|
if (result.aids.length > 0) {
|
|
102
125
|
return [{ type: 'text', text: `AIDs: ${result.aids.join(', ')}` }];
|
|
103
126
|
}
|
|
104
|
-
|
|
127
|
+
// Neutral wording: an empty page is either "no match" or "offset past the end" — the
|
|
128
|
+
// enrichment trailer's notice says which.
|
|
129
|
+
return [{ type: 'text', text: 'No assays returned.' }];
|
|
105
130
|
},
|
|
106
131
|
});
|
|
107
132
|
//# sourceMappingURL=search-assays.tool.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search-assays.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/search-assays.tool.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AAExE,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,CAAC,uBAAuB,EAAE;IACxD,KAAK,EAAE,eAAe;IACtB,WAAW,EACT,
|
|
1
|
+
{"version":3,"file":"search-assays.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/search-assays.tool.ts"],"names":[],"mappings":"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"}
|
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.5.
|
|
4
|
+
"version": "0.5.1",
|
|
5
5
|
"description": "Search the PubChem chemical database for compounds, properties, safety data, bioactivity, cross-references, and entity summaries via MCP. STDIO or Streamable HTTP.",
|
|
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.5.
|
|
3
|
+
"version": "0.5.1",
|
|
4
4
|
"description": "Search the PubChem chemical database for compounds, properties, safety data, bioactivity, cross-references, and entity summaries via MCP. STDIO or Streamable HTTP.",
|
|
5
5
|
"mcpName": "io.github.cyanheads/pubchem-mcp-server",
|
|
6
6
|
"type": "module",
|
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.5.
|
|
9
|
+
"version": "0.5.1",
|
|
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.5.
|
|
22
|
+
"version": "0.5.1",
|
|
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.5.
|
|
45
|
+
"version": "0.5.1",
|
|
46
46
|
"packageArguments": [
|
|
47
47
|
{ "type": "positional", "value": "run" },
|
|
48
48
|
{ "type": "positional", "value": "start:http" }
|