mongodb-mcp-server 2.0.1-alpha.4 → 2.0.1-alpha.5

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 (60) hide show
  1. package/README.md +5 -1
  2. package/dist/cjs/common/errors.d.ts +2 -1
  3. package/dist/cjs/common/errors.d.ts.map +1 -1
  4. package/dist/cjs/common/errors.js +1 -0
  5. package/dist/cjs/common/errors.js.map +1 -1
  6. package/dist/cjs/common/packageInfo.js +1 -1
  7. package/dist/cjs/helpers/mqlGuards.d.ts +28 -0
  8. package/dist/cjs/helpers/mqlGuards.d.ts.map +1 -1
  9. package/dist/cjs/helpers/mqlGuards.js +75 -1
  10. package/dist/cjs/helpers/mqlGuards.js.map +1 -1
  11. package/dist/cjs/helpers/writeStageConfirmation.d.ts +12 -0
  12. package/dist/cjs/helpers/writeStageConfirmation.d.ts.map +1 -0
  13. package/dist/cjs/helpers/writeStageConfirmation.js +30 -0
  14. package/dist/cjs/helpers/writeStageConfirmation.js.map +1 -0
  15. package/dist/cjs/tools/mongodb/mongodbTool.d.ts +7 -1
  16. package/dist/cjs/tools/mongodb/mongodbTool.d.ts.map +1 -1
  17. package/dist/cjs/tools/mongodb/mongodbTool.js +15 -0
  18. package/dist/cjs/tools/mongodb/mongodbTool.js.map +1 -1
  19. package/dist/cjs/tools/mongodb/read/aggregate.d.ts +1 -1
  20. package/dist/cjs/tools/mongodb/read/aggregate.d.ts.map +1 -1
  21. package/dist/cjs/tools/mongodb/read/aggregate.js +5 -2
  22. package/dist/cjs/tools/mongodb/read/aggregate.js.map +1 -1
  23. package/dist/cjs/tools/mongodb/read/aggregateDB.d.ts +1 -1
  24. package/dist/cjs/tools/mongodb/read/aggregateDB.d.ts.map +1 -1
  25. package/dist/cjs/tools/mongodb/read/aggregateDB.js +5 -2
  26. package/dist/cjs/tools/mongodb/read/aggregateDB.js.map +1 -1
  27. package/dist/cjs/tools/tool.d.ts +22 -11
  28. package/dist/cjs/tools/tool.d.ts.map +1 -1
  29. package/dist/cjs/tools/tool.js +50 -55
  30. package/dist/cjs/tools/tool.js.map +1 -1
  31. package/dist/esm/common/errors.d.ts +2 -1
  32. package/dist/esm/common/errors.d.ts.map +1 -1
  33. package/dist/esm/common/errors.js +1 -0
  34. package/dist/esm/common/errors.js.map +1 -1
  35. package/dist/esm/common/packageInfo.js +1 -1
  36. package/dist/esm/helpers/mqlGuards.d.ts +28 -0
  37. package/dist/esm/helpers/mqlGuards.d.ts.map +1 -1
  38. package/dist/esm/helpers/mqlGuards.js +74 -1
  39. package/dist/esm/helpers/mqlGuards.js.map +1 -1
  40. package/dist/esm/helpers/writeStageConfirmation.d.ts +12 -0
  41. package/dist/esm/helpers/writeStageConfirmation.d.ts.map +1 -0
  42. package/dist/esm/helpers/writeStageConfirmation.js +27 -0
  43. package/dist/esm/helpers/writeStageConfirmation.js.map +1 -0
  44. package/dist/esm/tools/mongodb/mongodbTool.d.ts +7 -1
  45. package/dist/esm/tools/mongodb/mongodbTool.d.ts.map +1 -1
  46. package/dist/esm/tools/mongodb/mongodbTool.js +15 -0
  47. package/dist/esm/tools/mongodb/mongodbTool.js.map +1 -1
  48. package/dist/esm/tools/mongodb/read/aggregate.d.ts +1 -1
  49. package/dist/esm/tools/mongodb/read/aggregate.d.ts.map +1 -1
  50. package/dist/esm/tools/mongodb/read/aggregate.js +6 -3
  51. package/dist/esm/tools/mongodb/read/aggregate.js.map +1 -1
  52. package/dist/esm/tools/mongodb/read/aggregateDB.d.ts +1 -1
  53. package/dist/esm/tools/mongodb/read/aggregateDB.d.ts.map +1 -1
  54. package/dist/esm/tools/mongodb/read/aggregateDB.js +6 -3
  55. package/dist/esm/tools/mongodb/read/aggregateDB.js.map +1 -1
  56. package/dist/esm/tools/tool.d.ts +22 -11
  57. package/dist/esm/tools/tool.d.ts.map +1 -1
  58. package/dist/esm/tools/tool.js +50 -55
  59. package/dist/esm/tools/tool.js.map +1 -1
  60. package/package.json +3 -3
@@ -172,31 +172,39 @@ class ToolBase {
172
172
  }
173
173
  /** This is used internally by the server to invoke the tool. It can also be run manually to call the tool directly. */
174
174
  async invoke(args, context) {
175
- let startTime = Date.now();
175
+ const startTime = Date.now();
176
+ /**
177
+ * Records the outcome of the call, emitting its telemetry event and
178
+ * observing its execution duration. `error` is passed when the call
179
+ * failed, and its type is reported alongside the metric.
180
+ */
181
+ const recordOutcome = (result, error) => {
182
+ // Time the user spent answering an elicitation is not time the tool
183
+ // spent working, so it counts towards neither duration below.
184
+ const executionStartTime = startTime + (context.elicitationDurationMs ?? 0);
185
+ this.emitToolEvent(args, { startTime: executionStartTime, result });
186
+ this.metrics.get("toolExecutionDuration").observe({
187
+ tool_name: this.name,
188
+ category: this.category,
189
+ status: error !== undefined || result.isError ? "error" : "success",
190
+ operation_type: this.operationType,
191
+ ...(error !== undefined ? { error_type: error instanceof Error ? error.name : "unknown" } : {}),
192
+ }, (Date.now() - executionStartTime) / 1000);
193
+ };
176
194
  try {
177
- if (this.requiresConfirmation()) {
178
- if (!(await this.verifyConfirmed(args, context))) {
179
- this.session.logger.debug({
180
- id: index_js_1.LogId.toolExecute,
181
- context: "tool",
182
- message: `User did not confirm the execution of the \`${this.name}\` tool so the operation was not performed.`,
183
- noRedaction: true,
184
- attributes: { ...(0, requestIdAttr_js_1.requestIdAttr)(context.requestInfo?.headers) },
185
- });
186
- return {
187
- content: [
188
- {
189
- type: "text",
190
- text: `User did not confirm the execution of the \`${this.name}\` tool so the operation was not performed.`,
191
- },
192
- ],
193
- isError: true,
194
- };
195
- }
196
- // We do not want to include the elicitation time in the tool execution time
197
- // so we reset the startTime to the current time. We may want to consider adding
198
- // a separate field for elicitation time in the future.
199
- startTime = Date.now();
195
+ if (this.requiresConfirmation() &&
196
+ !(await this.requestConfirmation(this.getConfirmationMessage(args), context))) {
197
+ const text = `User did not confirm the execution of the \`${this.name}\` tool so the operation was not performed.`;
198
+ this.session.logger.debug({
199
+ id: index_js_1.LogId.toolExecute,
200
+ context: "tool",
201
+ message: text,
202
+ noRedaction: true,
203
+ attributes: { ...(0, requestIdAttr_js_1.requestIdAttr)(context.requestInfo?.headers) },
204
+ });
205
+ const declined = { content: [{ type: "text", text }], isError: true };
206
+ recordOutcome(declined);
207
+ return declined;
200
208
  }
201
209
  this.session.logger.debug({
202
210
  id: index_js_1.LogId.toolExecute,
@@ -207,14 +215,7 @@ class ToolBase {
207
215
  });
208
216
  const toolCallResult = await this.execute(args, context);
209
217
  const result = await this.appendUIResource(toolCallResult);
210
- this.emitToolEvent(args, { startTime, result });
211
- const durationSeconds = (Date.now() - startTime) / 1000;
212
- this.metrics.get("toolExecutionDuration").observe({
213
- tool_name: this.name,
214
- category: this.category,
215
- status: result.isError ? "error" : "success",
216
- operation_type: this.operationType,
217
- }, durationSeconds);
218
+ recordOutcome(result);
218
219
  this.session.logger.debug({
219
220
  id: index_js_1.LogId.toolExecute,
220
221
  context: "tool",
@@ -232,15 +233,7 @@ class ToolBase {
232
233
  attributes: { ...(0, requestIdAttr_js_1.requestIdAttr)(context.requestInfo?.headers) },
233
234
  });
234
235
  const toolResult = await this.handleError(error, args);
235
- this.emitToolEvent(args, { startTime, result: toolResult });
236
- const durationSeconds = (Date.now() - startTime) / 1000;
237
- this.metrics.get("toolExecutionDuration").observe({
238
- tool_name: this.name,
239
- category: this.category,
240
- status: "error",
241
- operation_type: this.operationType,
242
- error_type: error instanceof Error ? error.name : "unknown",
243
- }, durationSeconds);
236
+ recordOutcome(toolResult, error);
244
237
  return toolResult;
245
238
  }
246
239
  }
@@ -270,23 +263,22 @@ class ToolBase {
270
263
  return this.config.confirmationRequiredTools.includes(this.name);
271
264
  }
272
265
  /**
273
- * Check if the user has confirmed the tool execution (if required by
274
- * configuration).
266
+ * Asks the user to confirm an operation, resolving to `true` when they
267
+ * accept and `false` when they decline.
275
268
  *
276
- * This method automatically checks if the tool name is in the
277
- * `confirmationRequiredTools` configuration list and requests user
278
- * confirmation via the elicitation service if needed.
269
+ * This is automatically called by `invoke` for confirmationRequired tools.
270
+ * Other tools can call it at any point of their execution, which matters when
271
+ * the decision depends on the arguments or needs to happen after some preliminary work.
279
272
  *
280
- * @param args - The tool arguments
273
+ * Resolves to `true` without prompting when the client does not support
274
+ * elicitation, matching how confirmation-required tools behave there.
275
+ *
276
+ * @param message - The message to display to the user.
281
277
  * @param context - The tool execution context, used to relate the
282
- * confirmation request to the in-flight tool call
283
- * @returns A promise resolving to `true` if confirmed or confirmation not
284
- * required, `false` otherwise
278
+ * confirmation request to the in-flight tool call and to record how long the
279
+ * user took to answer.
285
280
  */
286
- async verifyConfirmed(args, context) {
287
- if (!this.requiresConfirmation()) {
288
- return true;
289
- }
281
+ async requestConfirmation(message, context) {
290
282
  const relatedRequestId = this.elicitationRelatedRequestId(context);
291
283
  this.session.logger.info({
292
284
  id: index_js_1.LogId.toolConfirmationRequested,
@@ -319,7 +311,7 @@ class ToolBase {
319
311
  }
320
312
  const startedAt = Date.now();
321
313
  try {
322
- const confirmed = await this.elicitation.requestConfirmation(this.getConfirmationMessage(args), {
314
+ const confirmed = await this.elicitation.requestConfirmation(message, {
323
315
  relatedRequestId,
324
316
  progressToken: context._meta?.progressToken,
325
317
  sendNotification: context.sendNotification,
@@ -343,6 +335,9 @@ class ToolBase {
343
335
  });
344
336
  throw error;
345
337
  }
338
+ finally {
339
+ context.elicitationDurationMs = (context.elicitationDurationMs ?? 0) + (Date.now() - startedAt);
340
+ }
346
341
  }
347
342
  /**
348
343
  * Resolves the request id that elicitation requests should be related to.
@@ -1 +1 @@
1
- {"version":3,"file":"tool.js","sourceRoot":"","sources":["../../../src/tools/tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool.js","sourceRoot":"","sources":["../../../src/tools/tool.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,8 @@ export declare enum ErrorCodes {
8
8
  AtlasVectorSearchInvalidQuery = 1000007,
9
9
  InvalidPipeline = 1000008,
10
10
  ForbiddenServerSideJS = 1000009,
11
- UnknownConnectionId = 1000010
11
+ UnknownConnectionId = 1000010,
12
+ ConfirmationDeclined = 1000011
12
13
  }
13
14
  export declare class MongoDBError<ErrorCode extends ErrorCodes = ErrorCodes> extends Error {
14
15
  code: ErrorCode;
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/common/errors.ts"],"names":[],"mappings":"AAAA,oBAAY,UAAU;IAClB,qBAAqB,UAAY;IACjC,6BAA6B,UAAY;IACzC,iBAAiB,UAAY;IAC7B,uBAAuB,UAAY;IACnC,uBAAuB,UAAY;IACnC,8BAA8B,UAAY;IAC1C,6BAA6B,UAAY;IACzC,eAAe,UAAY;IAC3B,qBAAqB,UAAY;IACjC,mBAAmB,UAAY;CAClC;AAED,qBAAa,YAAY,CAAC,SAAS,SAAS,UAAU,GAAG,UAAU,CAAE,SAAQ,KAAK;IAEnE,IAAI,EAAE,SAAS;gBAAf,IAAI,EAAE,SAAS,EACtB,OAAO,EAAE,MAAM;CAItB"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/common/errors.ts"],"names":[],"mappings":"AAAA,oBAAY,UAAU;IAClB,qBAAqB,UAAY;IACjC,6BAA6B,UAAY;IACzC,iBAAiB,UAAY;IAC7B,uBAAuB,UAAY;IACnC,uBAAuB,UAAY;IACnC,8BAA8B,UAAY;IAC1C,6BAA6B,UAAY;IACzC,eAAe,UAAY;IAC3B,qBAAqB,UAAY;IACjC,mBAAmB,UAAY;IAC/B,oBAAoB,UAAY;CACnC;AAED,qBAAa,YAAY,CAAC,SAAS,SAAS,UAAU,GAAG,UAAU,CAAE,SAAQ,KAAK;IAEnE,IAAI,EAAE,SAAS;gBAAf,IAAI,EAAE,SAAS,EACtB,OAAO,EAAE,MAAM;CAItB"}
@@ -10,6 +10,7 @@ export var ErrorCodes;
10
10
  ErrorCodes[ErrorCodes["InvalidPipeline"] = 1000008] = "InvalidPipeline";
11
11
  ErrorCodes[ErrorCodes["ForbiddenServerSideJS"] = 1000009] = "ForbiddenServerSideJS";
12
12
  ErrorCodes[ErrorCodes["UnknownConnectionId"] = 1000010] = "UnknownConnectionId";
13
+ ErrorCodes[ErrorCodes["ConfirmationDeclined"] = 1000011] = "ConfirmationDeclined";
13
14
  })(ErrorCodes || (ErrorCodes = {}));
14
15
  export class MongoDBError extends Error {
15
16
  constructor(code, message) {
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/common/errors.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,UAWX;AAXD,WAAY,UAAU;IAClB,mFAAiC,CAAA;IACjC,mGAAyC,CAAA;IACzC,2EAA6B,CAAA;IAC7B,uFAAmC,CAAA;IACnC,uFAAmC,CAAA;IACnC,qGAA0C,CAAA;IAC1C,mGAAyC,CAAA;IACzC,uEAA2B,CAAA;IAC3B,mFAAiC,CAAA;IACjC,+EAA+B,CAAA;AACnC,CAAC,EAXW,UAAU,KAAV,UAAU,QAWrB;AAED,MAAM,OAAO,YAAwD,SAAQ,KAAK;IAC9E,YACW,IAAe,EACtB,OAAe;QAEf,KAAK,CAAC,OAAO,CAAC,CAAC;QAHR,SAAI,GAAJ,IAAI,CAAW;IAI1B,CAAC;CACJ"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/common/errors.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,UAYX;AAZD,WAAY,UAAU;IAClB,mFAAiC,CAAA;IACjC,mGAAyC,CAAA;IACzC,2EAA6B,CAAA;IAC7B,uFAAmC,CAAA;IACnC,uFAAmC,CAAA;IACnC,qGAA0C,CAAA;IAC1C,mGAAyC,CAAA;IACzC,uEAA2B,CAAA;IAC3B,mFAAiC,CAAA;IACjC,+EAA+B,CAAA;IAC/B,iFAAgC,CAAA;AACpC,CAAC,EAZW,UAAU,KAAV,UAAU,QAYrB;AAED,MAAM,OAAO,YAAwD,SAAQ,KAAK;IAC9E,YACW,IAAe,EACtB,OAAe;QAEf,KAAK,CAAC,OAAO,CAAC,CAAC;QAHR,SAAI,GAAJ,IAAI,CAAW;IAI1B,CAAC;CACJ"}
@@ -1,6 +1,6 @@
1
1
  // This file was generated by scripts/updatePackageVersion.ts - Do not edit it manually.
2
2
  export const packageInfo = {
3
- version: "2.0.1-alpha.4",
3
+ version: "2.0.1-alpha.5",
4
4
  mcpServerName: "MongoDB MCP Server",
5
5
  engines: {
6
6
  node: "^20.19.0 || ^22.13.0 || >= 24.0.0",
@@ -9,4 +9,32 @@ export declare function assertNoServerSideJS(value: unknown): void;
9
9
  * i.e. it is a `$out` or `$merge` stage.
10
10
  */
11
11
  export declare function isWriteStage(stage: Record<string, unknown>): boolean;
12
+ /** The collection a write stage targets, along with how it will write to it. */
13
+ export type WriteStageTarget = {
14
+ namespace: string | undefined;
15
+ } & ({
16
+ operator: "$out";
17
+ } | {
18
+ operator: "$merge";
19
+ /** The `whenMatched` mode, when the stage names one of the documented modes. */
20
+ whenMatched?: string;
21
+ /** The `whenNotMatched` mode, when the stage names one of the documented modes. */
22
+ whenNotMatched?: string;
23
+ });
24
+ /**
25
+ * Describes the collections that the write stages of a pipeline target, so that
26
+ * the user can be told what a `$out` or `$merge` is about to affect before it
27
+ * runs.
28
+ *
29
+ * Only top-level stages are inspected, matching {@link isWriteStage}: `$out` and
30
+ * `$merge` are not permitted inside sub-pipelines. MongoDB also requires them to
31
+ * be the last stage, so in practice at most one target is returned; the array
32
+ * shape means a malformed pipeline is still described in full rather than
33
+ * partially.
34
+ *
35
+ * @param pipeline - The aggregation pipeline to inspect.
36
+ * @param defaultDatabase - The database the aggregation runs against, used to
37
+ * qualify stages that name only a collection.
38
+ */
39
+ export declare function getWriteStageTargets(pipeline: Record<string, unknown>[], defaultDatabase: string): WriteStageTarget[];
12
40
  //# sourceMappingURL=mqlGuards.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mqlGuards.d.ts","sourceRoot":"","sources":["../../../src/helpers/mqlGuards.ts"],"names":[],"mappings":"AAsCA;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAUzD;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAEpE"}
1
+ {"version":3,"file":"mqlGuards.d.ts","sourceRoot":"","sources":["../../../src/helpers/mqlGuards.ts"],"names":[],"mappings":"AAsCA;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAUzD;AAkBD;;;GAGG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAEpE;AAED,gFAAgF;AAChF,MAAM,MAAM,gBAAgB,GAAG;IAAE,SAAS,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,GAAG,CAC7D;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,GACpB;IACI,QAAQ,EAAE,QAAQ,CAAC;IACnB,gFAAgF;IAChF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,mFAAmF;IACnF,cAAc,CAAC,EAAE,MAAM,CAAC;CAC3B,CACN,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAAE,eAAe,EAAE,MAAM,GAAG,gBAAgB,EAAE,CA4BrH"}
@@ -39,11 +39,84 @@ export function assertNoServerSideJS(value) {
39
39
  throw new MongoDBError(ErrorCodes.ForbiddenServerSideJS, `The use of server-side JavaScript operators (such as ${SERVER_SIDE_JS_OPERATORS.join(", ")}) is disabled. The "${operator}" operator is not allowed. To enable it, set the "disableServerSideJs" configuration option to false.`);
40
40
  }
41
41
  }
42
+ /**
43
+ * The write operator of an aggregation stage, or `undefined` when the stage
44
+ * does not write to a collection.
45
+ */
46
+ function writeStageOperator(stage) {
47
+ if ("$out" in stage) {
48
+ return "$out";
49
+ }
50
+ if ("$merge" in stage) {
51
+ return "$merge";
52
+ }
53
+ return undefined;
54
+ }
42
55
  /**
43
56
  * Returns true when the given aggregation stage writes data to a collection,
44
57
  * i.e. it is a `$out` or `$merge` stage.
45
58
  */
46
59
  export function isWriteStage(stage) {
47
- return "$out" in stage || "$merge" in stage;
60
+ return writeStageOperator(stage) !== undefined;
61
+ }
62
+ /**
63
+ * Describes the collections that the write stages of a pipeline target, so that
64
+ * the user can be told what a `$out` or `$merge` is about to affect before it
65
+ * runs.
66
+ *
67
+ * Only top-level stages are inspected, matching {@link isWriteStage}: `$out` and
68
+ * `$merge` are not permitted inside sub-pipelines. MongoDB also requires them to
69
+ * be the last stage, so in practice at most one target is returned; the array
70
+ * shape means a malformed pipeline is still described in full rather than
71
+ * partially.
72
+ *
73
+ * @param pipeline - The aggregation pipeline to inspect.
74
+ * @param defaultDatabase - The database the aggregation runs against, used to
75
+ * qualify stages that name only a collection.
76
+ */
77
+ export function getWriteStageTargets(pipeline, defaultDatabase) {
78
+ const targets = [];
79
+ for (const stage of pipeline) {
80
+ switch (writeStageOperator(stage)) {
81
+ case "$out":
82
+ targets.push({ operator: "$out", namespace: resolveNamespace(stage.$out, defaultDatabase) });
83
+ break;
84
+ case "$merge": {
85
+ // The stage is either the target itself (`$merge: "coll"`) or a
86
+ // document describing it. `whenMatched` also accepts a custom
87
+ // update pipeline, which has no concise description, so only the
88
+ // documented string modes are reported.
89
+ const spec = isRecord(stage.$merge) ? stage.$merge : undefined;
90
+ targets.push({
91
+ operator: "$merge",
92
+ namespace: resolveNamespace(spec ? spec.into : stage.$merge, defaultDatabase),
93
+ ...(typeof spec?.whenMatched === "string" ? { whenMatched: spec.whenMatched } : {}),
94
+ ...(typeof spec?.whenNotMatched === "string" ? { whenNotMatched: spec.whenNotMatched } : {}),
95
+ });
96
+ break;
97
+ }
98
+ case undefined:
99
+ break;
100
+ }
101
+ }
102
+ return targets;
103
+ }
104
+ /**
105
+ * Resolves the target of a `$out` stage or the `into` of a `$merge` stage to a
106
+ * fully qualified namespace. Returns `undefined` for any other shape, such as
107
+ * the `{ s3: ... }` target supported by Atlas Data Federation.
108
+ */
109
+ function resolveNamespace(target, defaultDatabase) {
110
+ if (typeof target === "string") {
111
+ return `${defaultDatabase}.${target}`;
112
+ }
113
+ if (isRecord(target) && typeof target.coll === "string") {
114
+ const database = typeof target.db === "string" ? target.db : defaultDatabase;
115
+ return `${database}.${target.coll}`;
116
+ }
117
+ return undefined;
118
+ }
119
+ function isRecord(value) {
120
+ return typeof value === "object" && value !== null && !Array.isArray(value);
48
121
  }
49
122
  //# sourceMappingURL=mqlGuards.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mqlGuards.js","sourceRoot":"","sources":["../../../src/helpers/mqlGuards.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAE/D;;;GAGG;AACH,MAAM,wBAAwB,GAAG,CAAC,QAAQ,EAAE,WAAW,EAAE,cAAc,CAAU,CAAC;AAIlF;;;;;;GAMG;AACH,SAAS,wBAAwB,CAAC,KAAc;IAC5C,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC;IAC1G,CAAC;IAED,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9C,KAAK,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAChD,IAAI,wBAAwB,CAAC,QAAQ,CAAC,GAA2B,CAAC,EAAE,CAAC;gBACjE,OAAO,GAA2B,CAAC;YACvC,CAAC;YAED,MAAM,KAAK,GAAG,wBAAwB,CAAC,MAAM,CAAC,CAAC;YAC/C,IAAI,KAAK,EAAE,CAAC;gBACR,OAAO,KAAK,CAAC;YACjB,CAAC;QACL,CAAC;IACL,CAAC;IAED,OAAO,SAAS,CAAC;AACrB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,KAAc;IAC/C,MAAM,QAAQ,GAAG,wBAAwB,CAAC,KAAK,CAAC,CAAC;IACjD,IAAI,QAAQ,EAAE,CAAC;QACX,MAAM,IAAI,YAAY,CAClB,UAAU,CAAC,qBAAqB,EAChC,wDAAwD,wBAAwB,CAAC,IAAI,CACjF,IAAI,CACP,uBAAuB,QAAQ,uGAAuG,CAC1I,CAAC;IACN,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,KAA8B;IACvD,OAAO,MAAM,IAAI,KAAK,IAAI,QAAQ,IAAI,KAAK,CAAC;AAChD,CAAC"}
1
+ {"version":3,"file":"mqlGuards.js","sourceRoot":"","sources":["../../../src/helpers/mqlGuards.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import type { WriteStageTarget } from "./mqlGuards.js";
2
+ /**
3
+ * Builds the message shown to the user before an aggregation containing a
4
+ * `$out` or `$merge` stage runs. The two operators differ in blast radius --
5
+ * `$out` replaces a collection wholesale while `$merge` modifies an existing
6
+ * one -- so each is described in its own terms, naming the affected namespace
7
+ * whenever it could be resolved.
8
+ *
9
+ * @param targets - The write stage targets, as returned by `getWriteStageTargets`.
10
+ */
11
+ export declare function buildWriteStageConfirmationMessage(targets: WriteStageTarget[]): string;
12
+ //# sourceMappingURL=writeStageConfirmation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"writeStageConfirmation.d.ts","sourceRoot":"","sources":["../../../src/helpers/writeStageConfirmation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAEvD;;;;;;;;GAQG;AACH,wBAAgB,kCAAkC,CAAC,OAAO,EAAE,gBAAgB,EAAE,GAAG,MAAM,CAEtF"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Builds the message shown to the user before an aggregation containing a
3
+ * `$out` or `$merge` stage runs. The two operators differ in blast radius --
4
+ * `$out` replaces a collection wholesale while `$merge` modifies an existing
5
+ * one -- so each is described in its own terms, naming the affected namespace
6
+ * whenever it could be resolved.
7
+ *
8
+ * @param targets - The write stage targets, as returned by `getWriteStageTargets`.
9
+ */
10
+ export function buildWriteStageConfirmationMessage(targets) {
11
+ return `This aggregation contains ${targets.map(describeTarget).join(" and ")}. Proceed?`;
12
+ }
13
+ function describeTarget(target) {
14
+ const collection = target.namespace ? `\`${target.namespace}\`` : "its target collection";
15
+ switch (target.operator) {
16
+ case "$out":
17
+ return `a \`$out\` stage that will replace the entire contents of ${collection} with the pipeline output, permanently discarding any documents already there`;
18
+ case "$merge": {
19
+ const modes = [
20
+ target.whenMatched !== undefined ? `whenMatched: ${target.whenMatched}` : undefined,
21
+ target.whenNotMatched !== undefined ? `whenNotMatched: ${target.whenNotMatched}` : undefined,
22
+ ].filter((mode) => mode !== undefined);
23
+ return `a \`$merge\` stage that will write the pipeline output into ${collection}, modifying data already in that collection${modes.length > 0 ? ` (${modes.join(", ")})` : ""}`;
24
+ }
25
+ }
26
+ }
27
+ //# sourceMappingURL=writeStageConfirmation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"writeStageConfirmation.js","sourceRoot":"","sources":["../../../src/helpers/writeStageConfirmation.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AACH,MAAM,UAAU,kCAAkC,CAAC,OAA2B;IAC1E,OAAO,6BAA6B,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;AAC9F,CAAC;AAED,SAAS,cAAc,CAAC,MAAwB;IAC5C,MAAM,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,uBAAuB,CAAC;IAE1F,QAAQ,MAAM,CAAC,QAAQ,EAAE,CAAC;QACtB,KAAK,MAAM;YACP,OAAO,6DAA6D,UAAU,+EAA+E,CAAC;QAClK,KAAK,QAAQ,CAAC,CAAC,CAAC;YACZ,MAAM,KAAK,GAAG;gBACV,MAAM,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,gBAAgB,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,SAAS;gBACnF,MAAM,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,mBAAmB,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,SAAS;aAC/F,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;YAEvC,OAAO,+DAA+D,UAAU,8CAA8C,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QACrL,CAAC;IACL,CAAC;AACL,CAAC"}
@@ -1,11 +1,12 @@
1
1
  import { z } from "zod";
2
- import type { ToolArgs, ToolCategory } from "../tool.js";
2
+ import type { ToolArgs, ToolCategory, ToolExecutionContext } from "../tool.js";
3
3
  import { ToolBase } from "../tool.js";
4
4
  import type { NodeDriverServiceProvider } from "@mongosh/service-provider-node-driver";
5
5
  import type { CallToolResult } from "@modelcontextprotocol/sdk/types.js";
6
6
  import type { ConnectionEntry } from "../../common/connectionRegistry.js";
7
7
  import type { Server } from "../../server.js";
8
8
  import type { ConnectionMetadata } from "../../telemetry/types.js";
9
+ import { type WriteStageTarget } from "../../helpers/mqlGuards.js";
9
10
  export declare const DBOperationArgs: {
10
11
  database: z.ZodString;
11
12
  };
@@ -57,6 +58,11 @@ export declare abstract class MongoDBToolBase extends ToolBase {
57
58
  * and projection for a find), since each is validated independently.
58
59
  */
59
60
  protected assertMqlIsAllowed(...values: (Record<string, unknown> | Record<string, unknown>[] | undefined)[]): void;
61
+ /**
62
+ * Asks the user to confirm the write stages of an aggregation pipeline,
63
+ * throwing when they decline so that the pipeline never runs.
64
+ */
65
+ protected confirmWriteStages(targets: WriteStageTarget[], context: ToolExecutionContext): Promise<void>;
60
66
  private assertSingleMqlValueIsAllowed;
61
67
  /**
62
68
  * The connectionId description varies by whether a connection string is
@@ -1 +1 @@
1
- {"version":3,"file":"mongodbTool.d.ts","sourceRoot":"","sources":["../../../../src/tools/mongodb/mongodbTool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAiB,QAAQ,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AACxE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,uCAAuC,CAAC;AACvF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAEzE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAInE,eAAO,MAAM,eAAe;;CAE3B,CAAC;AAEF,eAAO,MAAM,iBAAiB;;;CAG7B,CAAC;AASF,eAAO,MAAM,gBAAgB;;CAE5B,CAAC;AAQF,8BAAsB,eAAgB,SAAQ,QAAQ;IAClD,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAC1B,MAAM,CAAC,QAAQ,EAAE,YAAY,CAAa;IAE1C,SAAS,KAAK,qBAAqB,IAAI,OAAO,CAI7C;IAED;;;;OAIG;cACa,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,yBAAyB,CAAC;IAI3F,iGAAiG;cACjF,cAAc,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC;cAItF,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;cAKzD,qBAAqB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAS1E;;;OAGG;IACH,SAAS,CAAC,mBAAmB,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG;QAAE,MAAM,CAAC,EAAE,WAAW,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE;IAOjG;;;;;;;;;;;;;;;;;OAiBG;IACH,SAAS,CAAC,kBAAkB,CAAC,GAAG,MAAM,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,SAAS,CAAC,EAAE,GAAG,IAAI;IAMlH,OAAO,CAAC,6BAA6B;IAgCrC;;;OAGG;cACgB,gBAAgB,IAAI,MAAM;IAOtC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;cAaxB,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC;IAmD3G;;;;;;;;OAQG;cACa,wBAAwB,CACpC,IAAI,EAAE,QAAQ,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,EAErC,EAAE,MAAM,EAAE,EAAE;QAAE,MAAM,EAAE,cAAc,CAAA;KAAE,GACvC,OAAO,CAAC,kBAAkB,CAAC;CAOjC"}
1
+ {"version":3,"file":"mongodbTool.d.ts","sourceRoot":"","sources":["../../../../src/tools/mongodb/mongodbTool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAiB,QAAQ,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAC9F,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,uCAAuC,CAAC;AACvF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAEzE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAAsC,KAAK,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAIvG,eAAO,MAAM,eAAe;;CAE3B,CAAC;AAEF,eAAO,MAAM,iBAAiB;;;CAG7B,CAAC;AASF,eAAO,MAAM,gBAAgB;;CAE5B,CAAC;AAQF,8BAAsB,eAAgB,SAAQ,QAAQ;IAClD,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAC1B,MAAM,CAAC,QAAQ,EAAE,YAAY,CAAa;IAE1C,SAAS,KAAK,qBAAqB,IAAI,OAAO,CAI7C;IAED;;;;OAIG;cACa,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,yBAAyB,CAAC;IAI3F,iGAAiG;cACjF,cAAc,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC;cAItF,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;cAKzD,qBAAqB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAS1E;;;OAGG;IACH,SAAS,CAAC,mBAAmB,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG;QAAE,MAAM,CAAC,EAAE,WAAW,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE;IAOjG;;;;;;;;;;;;;;;;;OAiBG;IACH,SAAS,CAAC,kBAAkB,CAAC,GAAG,MAAM,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,SAAS,CAAC,EAAE,GAAG,IAAI;IAMlH;;;OAGG;cACa,kBAAkB,CAAC,OAAO,EAAE,gBAAgB,EAAE,EAAE,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAe7G,OAAO,CAAC,6BAA6B;IAgCrC;;;OAGG;cACgB,gBAAgB,IAAI,MAAM;IAOtC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;cAaxB,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC;IAoD3G;;;;;;;;OAQG;cACa,wBAAwB,CACpC,IAAI,EAAE,QAAQ,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,EAErC,EAAE,MAAM,EAAE,EAAE;QAAE,MAAM,EAAE,cAAc,CAAA;KAAE,GACvC,OAAO,CAAC,kBAAkB,CAAC;CAOjC"}
@@ -2,6 +2,7 @@ import { z } from "zod";
2
2
  import { ToolBase } from "../tool.js";
3
3
  import { ErrorCodes, MongoDBError } from "../../common/errors.js";
4
4
  import { assertNoServerSideJS, isWriteStage } from "../../helpers/mqlGuards.js";
5
+ import { buildWriteStageConfirmationMessage } from "../../helpers/writeStageConfirmation.js";
5
6
  import { EXPORT_TOOL_NAME } from "../../helpers/constants.js";
6
7
  export const DBOperationArgs = {
7
8
  database: z.string().describe("Database name"),
@@ -84,6 +85,19 @@ export class MongoDBToolBase extends ToolBase {
84
85
  this.assertSingleMqlValueIsAllowed(value);
85
86
  }
86
87
  }
88
+ /**
89
+ * Asks the user to confirm the write stages of an aggregation pipeline,
90
+ * throwing when they decline so that the pipeline never runs.
91
+ */
92
+ async confirmWriteStages(targets, context) {
93
+ if (this.requiresConfirmation()) {
94
+ return;
95
+ }
96
+ if (await this.requestConfirmation(buildWriteStageConfirmationMessage(targets), context)) {
97
+ return;
98
+ }
99
+ throw new MongoDBError(ErrorCodes.ConfirmationDeclined, "User did not confirm the write stages of the aggregation pipeline so the aggregation was not performed.");
100
+ }
87
101
  assertSingleMqlValueIsAllowed(value) {
88
102
  if (this.config.disableServerSideJs) {
89
103
  assertNoServerSideJS(value);
@@ -149,6 +163,7 @@ export class MongoDBToolBase extends ToolBase {
149
163
  }
150
164
  return super.handleError(error, args);
151
165
  }
166
+ case ErrorCodes.ConfirmationDeclined:
152
167
  case ErrorCodes.ForbiddenCollscan:
153
168
  return {
154
169
  content: [
@@ -1 +1 @@
1
- {"version":3,"file":"mongodbTool.js","sourceRoot":"","sources":["../../../../src/tools/mongodb/mongodbTool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mongodbTool.js","sourceRoot":"","sources":["../../../../src/tools/mongodb/mongodbTool.ts"],"names":[],"mappings":"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"}
@@ -77,7 +77,7 @@ export declare class AggregateTool extends MongoDBToolBase {
77
77
  "tool.responseBytesLimit": "tool.responseBytesLimit";
78
78
  }>>;
79
79
  };
80
- protected execute({ connectionId, database, collection, pipeline, responseBytesLimit }: ToolArgs<typeof this.argsShape>, { signal }: ToolExecutionContext): Promise<ToolResult<typeof this.outputSchema>>;
80
+ protected execute({ connectionId, database, collection, pipeline, responseBytesLimit }: ToolArgs<typeof this.argsShape>, context: ToolExecutionContext): Promise<ToolResult<typeof this.outputSchema>>;
81
81
  private safeCloseCursor;
82
82
  private assertOnlyUsesPermittedStages;
83
83
  private countAggregationResultDocuments;
@@ -1 +1 @@
1
- {"version":3,"file":"aggregate.d.ts","sourceRoot":"","sources":["../../../../../src/tools/mongodb/read/aggregate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAuC,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzF,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAuB/F,eAAO,MAAM,mCAAmC,kvKAiG/C,CAAC;AAWF,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAEzB,CAAC;AAEF,qBAAa,aAAc,SAAQ,eAAe;IAC9C,MAAM,CAAC,QAAQ,SAAe;IACvB,WAAW,SAAqD;IAChE,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAWd;IACF,MAAM,CAAC,aAAa,EAAE,aAAa,CAAU;IAE7B,YAAY;;;;;;;;MAAyB;cAErC,OAAO,CACnB,EAAE,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,kBAAkB,EAAE,EAAE,QAAQ,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,EACrG,EAAE,MAAM,EAAE,EAAE,oBAAoB,GACjC,OAAO,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC;YAqJlC,eAAe;IAY7B,OAAO,CAAC,6BAA6B;YAkBvB,+BAA+B;YAuC/B,uBAAuB;IA+CrC,OAAO,CAAC,eAAe;IA8BvB,OAAO,CAAC,aAAa;CAGxB"}
1
+ {"version":3,"file":"aggregate.d.ts","sourceRoot":"","sources":["../../../../../src/tools/mongodb/read/aggregate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAuC,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzF,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAuB/F,eAAO,MAAM,mCAAmC,kvKAiG/C,CAAC;AAWF,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAEzB,CAAC;AAEF,qBAAa,aAAc,SAAQ,eAAe;IAC9C,MAAM,CAAC,QAAQ,SAAe;IACvB,WAAW,SAAqD;IAChE,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAWd;IACF,MAAM,CAAC,aAAa,EAAE,aAAa,CAAU;IAE7B,YAAY;;;;;;;;MAAyB;cAErC,OAAO,CACnB,EAAE,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,kBAAkB,EAAE,EAAE,QAAQ,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,EACrG,OAAO,EAAE,oBAAoB,GAC9B,OAAO,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC;YAyJlC,eAAe;IAY7B,OAAO,CAAC,6BAA6B;YAkBvB,+BAA+B;YAuC/B,uBAAuB;IA+CrC,OAAO,CAAC,eAAe;IA8BvB,OAAO,CAAC,aAAa;CAGxB"}
@@ -9,7 +9,7 @@ import { AGG_COUNT_MAX_TIME_MS_CAP, ONE_MB, CURSOR_LIMITS_TO_LLM_TEXT, CURSOR_LI
9
9
  import { LogId } from "../../../common/logging/index.js";
10
10
  import { AnyAggregateStage, VectorSearchStage } from "../mongodbSchemas.js";
11
11
  import { assertVectorSearchFilterFieldsAreIndexed, } from "../../../helpers/assertVectorSearchFilterFieldsAreIndexed.js";
12
- import { isWriteStage } from "../../../helpers/mqlGuards.js";
12
+ import { getWriteStageTargets } from "../../../helpers/mqlGuards.js";
13
13
  import { bsonToJson } from "../../../helpers/bsonToJson.js";
14
14
  export const pipelineDescriptionWithVectorSearch = `\
15
15
  An array of aggregation stages to execute.
@@ -136,7 +136,8 @@ export class AggregateTool extends MongoDBToolBase {
136
136
  };
137
137
  this.outputSchema = AggregateOutputSchema;
138
138
  }
139
- async execute({ connectionId, database, collection, pipeline, responseBytesLimit }, { signal }) {
139
+ async execute({ connectionId, database, collection, pipeline, responseBytesLimit }, context) {
140
+ const { signal } = context;
140
141
  let aggregationCursor = undefined;
141
142
  try {
142
143
  const provider = await this.resolveConnection(connectionId);
@@ -196,7 +197,9 @@ export class AggregateTool extends MongoDBToolBase {
196
197
  let documents;
197
198
  let count;
198
199
  let appliedLimits = [];
199
- if (pipeline.some((stage) => isWriteStage(stage))) {
200
+ const writeStageTargets = getWriteStageTargets(pipeline, database);
201
+ if (writeStageTargets.length > 0) {
202
+ await this.confirmWriteStages(writeStageTargets, context);
200
203
  // This is a write pipeline, so special-case it and don't attempt to apply limits or caps
201
204
  aggregationCursor = provider.aggregate(database, collection, pipeline, {
202
205
  signal,