mongodb-mcp-server 1.0.0 → 1.0.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.
Files changed (148) hide show
  1. package/README.md +25 -23
  2. package/dist/cjs/common/config.d.ts +2 -0
  3. package/dist/cjs/common/config.d.ts.map +1 -1
  4. package/dist/cjs/common/config.js +4 -0
  5. package/dist/cjs/common/config.js.map +1 -1
  6. package/dist/cjs/common/logger.d.ts +1 -0
  7. package/dist/cjs/common/logger.d.ts.map +1 -1
  8. package/dist/cjs/common/logger.js +1 -0
  9. package/dist/cjs/common/logger.js.map +1 -1
  10. package/dist/cjs/common/packageInfo.js +1 -1
  11. package/dist/cjs/helpers/collectCursorUntilMaxBytes.d.ts +24 -0
  12. package/dist/cjs/helpers/collectCursorUntilMaxBytes.d.ts.map +1 -0
  13. package/dist/cjs/helpers/collectCursorUntilMaxBytes.js +75 -0
  14. package/dist/cjs/helpers/collectCursorUntilMaxBytes.js.map +1 -0
  15. package/dist/cjs/helpers/constants.d.ts +24 -0
  16. package/dist/cjs/helpers/constants.d.ts.map +1 -0
  17. package/dist/cjs/helpers/constants.js +27 -0
  18. package/dist/cjs/helpers/constants.js.map +1 -0
  19. package/dist/cjs/helpers/isObjectEmpty.d.ts +6 -0
  20. package/dist/cjs/helpers/isObjectEmpty.d.ts.map +1 -0
  21. package/dist/cjs/helpers/isObjectEmpty.js +15 -0
  22. package/dist/cjs/helpers/isObjectEmpty.js.map +1 -0
  23. package/dist/cjs/helpers/operationWithFallback.d.ts +4 -0
  24. package/dist/cjs/helpers/operationWithFallback.d.ts.map +1 -0
  25. package/dist/cjs/helpers/operationWithFallback.js +12 -0
  26. package/dist/cjs/helpers/operationWithFallback.js.map +1 -0
  27. package/dist/cjs/server.d.ts.map +1 -1
  28. package/dist/cjs/server.js +5 -0
  29. package/dist/cjs/server.js.map +1 -1
  30. package/dist/cjs/tools/args.d.ts +1 -0
  31. package/dist/cjs/tools/args.d.ts.map +1 -1
  32. package/dist/cjs/tools/args.js +11 -0
  33. package/dist/cjs/tools/args.js.map +1 -1
  34. package/dist/cjs/tools/mongodb/create/insertMany.d.ts +1 -1
  35. package/dist/cjs/tools/mongodb/create/insertMany.d.ts.map +1 -1
  36. package/dist/cjs/tools/mongodb/create/insertMany.js +2 -1
  37. package/dist/cjs/tools/mongodb/create/insertMany.js.map +1 -1
  38. package/dist/cjs/tools/mongodb/delete/deleteMany.d.ts +3 -4
  39. package/dist/cjs/tools/mongodb/delete/deleteMany.d.ts.map +1 -1
  40. package/dist/cjs/tools/mongodb/delete/deleteMany.js +2 -4
  41. package/dist/cjs/tools/mongodb/delete/deleteMany.js.map +1 -1
  42. package/dist/cjs/tools/mongodb/metadata/collectionSchema.d.ts +8 -5
  43. package/dist/cjs/tools/mongodb/metadata/collectionSchema.d.ts.map +1 -1
  44. package/dist/cjs/tools/mongodb/metadata/collectionSchema.js +34 -6
  45. package/dist/cjs/tools/mongodb/metadata/collectionSchema.js.map +1 -1
  46. package/dist/cjs/tools/mongodb/metadata/explain.d.ts +51 -17
  47. package/dist/cjs/tools/mongodb/metadata/explain.d.ts.map +1 -1
  48. package/dist/cjs/tools/mongodb/metadata/explain.js +10 -9
  49. package/dist/cjs/tools/mongodb/metadata/explain.js.map +1 -1
  50. package/dist/cjs/tools/mongodb/read/aggregate.d.ts +9 -4
  51. package/dist/cjs/tools/mongodb/read/aggregate.d.ts.map +1 -1
  52. package/dist/cjs/tools/mongodb/read/aggregate.js +99 -14
  53. package/dist/cjs/tools/mongodb/read/aggregate.js.map +1 -1
  54. package/dist/cjs/tools/mongodb/read/count.d.ts +4 -5
  55. package/dist/cjs/tools/mongodb/read/count.d.ts.map +1 -1
  56. package/dist/cjs/tools/mongodb/read/count.js +2 -4
  57. package/dist/cjs/tools/mongodb/read/count.js.map +1 -1
  58. package/dist/cjs/tools/mongodb/read/export.d.ts +36 -10
  59. package/dist/cjs/tools/mongodb/read/export.d.ts.map +1 -1
  60. package/dist/cjs/tools/mongodb/read/find.d.ts +9 -4
  61. package/dist/cjs/tools/mongodb/read/find.d.ts.map +1 -1
  62. package/dist/cjs/tools/mongodb/read/find.js +95 -11
  63. package/dist/cjs/tools/mongodb/read/find.js.map +1 -1
  64. package/dist/cjs/tools/mongodb/update/updateMany.d.ts +2 -2
  65. package/dist/cjs/tools/mongodb/update/updateMany.d.ts.map +1 -1
  66. package/dist/cjs/tools/mongodb/update/updateMany.js +3 -7
  67. package/dist/cjs/tools/mongodb/update/updateMany.js.map +1 -1
  68. package/dist/cjs/tools/tool.d.ts +1 -0
  69. package/dist/cjs/tools/tool.d.ts.map +1 -1
  70. package/dist/cjs/tools/tool.js.map +1 -1
  71. package/dist/cjs/transports/stdio.d.ts +0 -9
  72. package/dist/cjs/transports/stdio.d.ts.map +1 -1
  73. package/dist/cjs/transports/stdio.js +2 -40
  74. package/dist/cjs/transports/stdio.js.map +1 -1
  75. package/dist/esm/common/config.d.ts +2 -0
  76. package/dist/esm/common/config.d.ts.map +1 -1
  77. package/dist/esm/common/config.js +4 -0
  78. package/dist/esm/common/config.js.map +1 -1
  79. package/dist/esm/common/logger.d.ts +1 -0
  80. package/dist/esm/common/logger.d.ts.map +1 -1
  81. package/dist/esm/common/logger.js +1 -0
  82. package/dist/esm/common/logger.js.map +1 -1
  83. package/dist/esm/common/packageInfo.js +1 -1
  84. package/dist/esm/helpers/collectCursorUntilMaxBytes.d.ts +24 -0
  85. package/dist/esm/helpers/collectCursorUntilMaxBytes.d.ts.map +1 -0
  86. package/dist/esm/helpers/collectCursorUntilMaxBytes.js +71 -0
  87. package/dist/esm/helpers/collectCursorUntilMaxBytes.js.map +1 -0
  88. package/dist/esm/helpers/constants.d.ts +24 -0
  89. package/dist/esm/helpers/constants.d.ts.map +1 -0
  90. package/dist/esm/helpers/constants.js +24 -0
  91. package/dist/esm/helpers/constants.js.map +1 -0
  92. package/dist/esm/helpers/isObjectEmpty.d.ts +6 -0
  93. package/dist/esm/helpers/isObjectEmpty.d.ts.map +1 -0
  94. package/dist/esm/helpers/isObjectEmpty.js +12 -0
  95. package/dist/esm/helpers/isObjectEmpty.js.map +1 -0
  96. package/dist/esm/helpers/operationWithFallback.d.ts +4 -0
  97. package/dist/esm/helpers/operationWithFallback.d.ts.map +1 -0
  98. package/dist/esm/helpers/operationWithFallback.js +9 -0
  99. package/dist/esm/helpers/operationWithFallback.js.map +1 -0
  100. package/dist/esm/server.d.ts.map +1 -1
  101. package/dist/esm/server.js +5 -0
  102. package/dist/esm/server.js.map +1 -1
  103. package/dist/esm/tools/args.d.ts +1 -0
  104. package/dist/esm/tools/args.d.ts.map +1 -1
  105. package/dist/esm/tools/args.js +10 -0
  106. package/dist/esm/tools/args.js.map +1 -1
  107. package/dist/esm/tools/mongodb/create/insertMany.d.ts +1 -1
  108. package/dist/esm/tools/mongodb/create/insertMany.d.ts.map +1 -1
  109. package/dist/esm/tools/mongodb/create/insertMany.js +2 -1
  110. package/dist/esm/tools/mongodb/create/insertMany.js.map +1 -1
  111. package/dist/esm/tools/mongodb/delete/deleteMany.d.ts +3 -4
  112. package/dist/esm/tools/mongodb/delete/deleteMany.d.ts.map +1 -1
  113. package/dist/esm/tools/mongodb/delete/deleteMany.js +2 -4
  114. package/dist/esm/tools/mongodb/delete/deleteMany.js.map +1 -1
  115. package/dist/esm/tools/mongodb/metadata/collectionSchema.d.ts +8 -5
  116. package/dist/esm/tools/mongodb/metadata/collectionSchema.d.ts.map +1 -1
  117. package/dist/esm/tools/mongodb/metadata/collectionSchema.js +31 -6
  118. package/dist/esm/tools/mongodb/metadata/collectionSchema.js.map +1 -1
  119. package/dist/esm/tools/mongodb/metadata/explain.d.ts +51 -17
  120. package/dist/esm/tools/mongodb/metadata/explain.d.ts.map +1 -1
  121. package/dist/esm/tools/mongodb/metadata/explain.js +10 -9
  122. package/dist/esm/tools/mongodb/metadata/explain.js.map +1 -1
  123. package/dist/esm/tools/mongodb/read/aggregate.d.ts +9 -4
  124. package/dist/esm/tools/mongodb/read/aggregate.d.ts.map +1 -1
  125. package/dist/esm/tools/mongodb/read/aggregate.js +99 -14
  126. package/dist/esm/tools/mongodb/read/aggregate.js.map +1 -1
  127. package/dist/esm/tools/mongodb/read/count.d.ts +4 -5
  128. package/dist/esm/tools/mongodb/read/count.d.ts.map +1 -1
  129. package/dist/esm/tools/mongodb/read/count.js +2 -4
  130. package/dist/esm/tools/mongodb/read/count.js.map +1 -1
  131. package/dist/esm/tools/mongodb/read/export.d.ts +36 -10
  132. package/dist/esm/tools/mongodb/read/export.d.ts.map +1 -1
  133. package/dist/esm/tools/mongodb/read/find.d.ts +9 -4
  134. package/dist/esm/tools/mongodb/read/find.d.ts.map +1 -1
  135. package/dist/esm/tools/mongodb/read/find.js +95 -11
  136. package/dist/esm/tools/mongodb/read/find.js.map +1 -1
  137. package/dist/esm/tools/mongodb/update/updateMany.d.ts +2 -2
  138. package/dist/esm/tools/mongodb/update/updateMany.d.ts.map +1 -1
  139. package/dist/esm/tools/mongodb/update/updateMany.js +3 -7
  140. package/dist/esm/tools/mongodb/update/updateMany.js.map +1 -1
  141. package/dist/esm/tools/tool.d.ts +1 -0
  142. package/dist/esm/tools/tool.d.ts.map +1 -1
  143. package/dist/esm/tools/tool.js.map +1 -1
  144. package/dist/esm/transports/stdio.d.ts +0 -9
  145. package/dist/esm/transports/stdio.d.ts.map +1 -1
  146. package/dist/esm/transports/stdio.js +1 -37
  147. package/dist/esm/transports/stdio.js.map +1 -1
  148. package/package.json +1 -1
@@ -7,8 +7,17 @@ const tool_js_1 = require("../../tool.js");
7
7
  const indexCheck_js_1 = require("../../../helpers/indexCheck.js");
8
8
  const bson_1 = require("bson");
9
9
  const errors_js_1 = require("../../../common/errors.js");
10
+ const collectCursorUntilMaxBytes_js_1 = require("../../../helpers/collectCursorUntilMaxBytes.js");
11
+ const operationWithFallback_js_1 = require("../../../helpers/operationWithFallback.js");
12
+ const constants_js_1 = require("../../../helpers/constants.js");
13
+ const args_js_1 = require("../../args.js");
14
+ const logger_js_1 = require("../../../common/logger.js");
10
15
  exports.AggregateArgs = {
11
- pipeline: zod_1.z.array(zod_1.z.object({}).passthrough()).describe("An array of aggregation stages to execute"),
16
+ pipeline: zod_1.z.array((0, args_js_1.zEJSON)()).describe("An array of aggregation stages to execute"),
17
+ responseBytesLimit: zod_1.z.number().optional().default(constants_js_1.ONE_MB).describe(`\
18
+ The maximum number of bytes to return in the response. This value is capped by the server’s configured maxBytesPerQuery and cannot be exceeded. \
19
+ Note to LLM: If the entire aggregation result is required, use the "export" tool instead of increasing this limit.\
20
+ `),
12
21
  };
13
22
  class AggregateTool extends mongodbTool_js_1.MongoDBToolBase {
14
23
  constructor() {
@@ -21,21 +30,68 @@ class AggregateTool extends mongodbTool_js_1.MongoDBToolBase {
21
30
  };
22
31
  this.operationType = "read";
23
32
  }
24
- async execute({ database, collection, pipeline, }) {
25
- const provider = await this.ensureConnected();
26
- this.assertOnlyUsesPermittedStages(pipeline);
27
- // Check if aggregate operation uses an index if enabled
28
- if (this.config.indexCheck) {
29
- await (0, indexCheck_js_1.checkIndexUsage)(provider, database, collection, "aggregate", async () => {
30
- return provider
31
- .aggregate(database, collection, pipeline, {}, { writeConcern: undefined })
32
- .explain("queryPlanner");
33
+ async execute({ database, collection, pipeline, responseBytesLimit }, { signal }) {
34
+ let aggregationCursor = undefined;
35
+ try {
36
+ const provider = await this.ensureConnected();
37
+ this.assertOnlyUsesPermittedStages(pipeline);
38
+ // Check if aggregate operation uses an index if enabled
39
+ if (this.config.indexCheck) {
40
+ await (0, indexCheck_js_1.checkIndexUsage)(provider, database, collection, "aggregate", async () => {
41
+ return provider
42
+ .aggregate(database, collection, pipeline, {}, { writeConcern: undefined })
43
+ .explain("queryPlanner");
44
+ });
45
+ }
46
+ const cappedResultsPipeline = [...pipeline];
47
+ if (this.config.maxDocumentsPerQuery > 0) {
48
+ cappedResultsPipeline.push({ $limit: this.config.maxDocumentsPerQuery });
49
+ }
50
+ aggregationCursor = provider.aggregate(database, collection, cappedResultsPipeline);
51
+ const [totalDocuments, cursorResults] = await Promise.all([
52
+ this.countAggregationResultDocuments({ provider, database, collection, pipeline }),
53
+ (0, collectCursorUntilMaxBytes_js_1.collectCursorUntilMaxBytesLimit)({
54
+ cursor: aggregationCursor,
55
+ configuredMaxBytesPerQuery: this.config.maxBytesPerQuery,
56
+ toolResponseBytesLimit: responseBytesLimit,
57
+ abortSignal: signal,
58
+ }),
59
+ ]);
60
+ // If the total number of documents that the aggregation would've
61
+ // resulted in would be greater than the configured
62
+ // maxDocumentsPerQuery then we know for sure that the results were
63
+ // capped.
64
+ const aggregationResultsCappedByMaxDocumentsLimit = this.config.maxDocumentsPerQuery > 0 &&
65
+ !!totalDocuments &&
66
+ totalDocuments > this.config.maxDocumentsPerQuery;
67
+ return {
68
+ content: (0, tool_js_1.formatUntrustedData)(this.generateMessage({
69
+ aggResultsCount: totalDocuments,
70
+ documents: cursorResults.documents,
71
+ appliedLimits: [
72
+ aggregationResultsCappedByMaxDocumentsLimit ? "config.maxDocumentsPerQuery" : undefined,
73
+ cursorResults.cappedBy,
74
+ ].filter((limit) => !!limit),
75
+ }), cursorResults.documents.length > 0 ? bson_1.EJSON.stringify(cursorResults.documents) : undefined),
76
+ };
77
+ }
78
+ finally {
79
+ if (aggregationCursor) {
80
+ void this.safeCloseCursor(aggregationCursor);
81
+ }
82
+ }
83
+ }
84
+ async safeCloseCursor(cursor) {
85
+ try {
86
+ await cursor.close();
87
+ }
88
+ catch (error) {
89
+ this.session.logger.warning({
90
+ id: logger_js_1.LogId.mongodbCursorCloseError,
91
+ context: "aggregate tool",
92
+ message: `Error when closing the cursor - ${error instanceof Error ? error.message : String(error)}`,
33
93
  });
34
94
  }
35
- const documents = await provider.aggregate(database, collection, pipeline).toArray();
36
- return {
37
- content: (0, tool_js_1.formatUntrustedData)(`The aggregation resulted in ${documents.length} documents.`, documents.length > 0 ? bson_1.EJSON.stringify(documents) : undefined),
38
- };
39
95
  }
40
96
  assertOnlyUsesPermittedStages(pipeline) {
41
97
  const writeOperations = ["update", "create", "delete"];
@@ -56,6 +112,35 @@ class AggregateTool extends mongodbTool_js_1.MongoDBToolBase {
56
112
  }
57
113
  }
58
114
  }
115
+ async countAggregationResultDocuments({ provider, database, collection, pipeline, }) {
116
+ const resultsCountAggregation = [...pipeline, { $count: "totalDocuments" }];
117
+ return await (0, operationWithFallback_js_1.operationWithFallback)(async () => {
118
+ const aggregationResults = await provider
119
+ .aggregate(database, collection, resultsCountAggregation)
120
+ .maxTimeMS(constants_js_1.AGG_COUNT_MAX_TIME_MS_CAP)
121
+ .toArray();
122
+ const documentWithCount = aggregationResults.length === 1 ? aggregationResults[0] : undefined;
123
+ const totalDocuments = documentWithCount &&
124
+ typeof documentWithCount === "object" &&
125
+ "totalDocuments" in documentWithCount &&
126
+ typeof documentWithCount.totalDocuments === "number"
127
+ ? documentWithCount.totalDocuments
128
+ : 0;
129
+ return totalDocuments;
130
+ }, undefined);
131
+ }
132
+ generateMessage({ aggResultsCount, documents, appliedLimits, }) {
133
+ const appliedLimitText = appliedLimits.length
134
+ ? `\
135
+ while respecting the applied limits of ${appliedLimits.map((limit) => constants_js_1.CURSOR_LIMITS_TO_LLM_TEXT[limit]).join(", ")}. \
136
+ Note to LLM: If the entire query result is required then use "export" tool to export the query results.\
137
+ `
138
+ : "";
139
+ return `\
140
+ The aggregation resulted in ${aggResultsCount === undefined ? "indeterminable number of" : aggResultsCount} documents. \
141
+ Returning ${documents.length} documents${appliedLimitText ? ` ${appliedLimitText}` : "."}\
142
+ `;
143
+ }
59
144
  }
60
145
  exports.AggregateTool = AggregateTool;
61
146
  //# sourceMappingURL=aggregate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"aggregate.js","sourceRoot":"","sources":["../../../../../src/tools/mongodb/read/aggregate.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AAExB,sDAAqE;AAErE,2CAAoD;AACpD,kEAAiE;AACjE,+BAA6B;AAC7B,yDAAqE;AAExD,QAAA,aAAa,GAAG;IACzB,QAAQ,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,QAAQ,CAAC,2CAA2C,CAAC;CACtG,CAAC;AAEF,MAAa,aAAc,SAAQ,gCAAe;IAAlD;;QACW,SAAI,GAAG,WAAW,CAAC;QAChB,gBAAW,GAAG,iDAAiD,CAAC;QAChE,cAAS,GAAG;YAClB,GAAG,gCAAe;YAClB,GAAG,qBAAa;SACnB,CAAC;QACK,kBAAa,GAAkB,MAAM,CAAC;IAmDjD,CAAC;IAjDa,KAAK,CAAC,OAAO,CAAC,EACpB,QAAQ,EACR,UAAU,EACV,QAAQ,GACsB;QAC9B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAE9C,IAAI,CAAC,6BAA6B,CAAC,QAAQ,CAAC,CAAC;QAE7C,wDAAwD;QACxD,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;YACzB,MAAM,IAAA,+BAAe,EAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,KAAK,IAAI,EAAE;gBAC1E,OAAO,QAAQ;qBACV,SAAS,CAAC,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC;qBAC1E,OAAO,CAAC,cAAc,CAAC,CAAC;YACjC,CAAC,CAAC,CAAC;QACP,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,SAAS,CAAC,QAAQ,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC;QAErF,OAAO;YACH,OAAO,EAAE,IAAA,6BAAmB,EACxB,+BAA+B,SAAS,CAAC,MAAM,aAAa,EAC5D,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,YAAK,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAChE;SACJ,CAAC;IACN,CAAC;IAEO,6BAA6B,CAAC,QAAmC;QACrE,MAAM,eAAe,GAAoB,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACxE,IAAI,wBAAwB,GAAG,EAAE,CAAC;QAElC,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YACvB,wBAAwB,GAAG,wEAAwE,CAAC;QACxG,CAAC;aAAM,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAkB,CAAC,CAAC,EAAE,CAAC;YAC7F,wBAAwB;gBACpB,qHAAqH,CAAC;QAC9H,CAAC;QAED,IAAI,CAAC,wBAAwB,EAAE,CAAC;YAC5B,OAAO;QACX,CAAC;QAED,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;YAC3B,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;gBAC7B,MAAM,IAAI,wBAAY,CAAC,sBAAU,CAAC,uBAAuB,EAAE,wBAAwB,CAAC,CAAC;YACzF,CAAC;QACL,CAAC;IACL,CAAC;CACJ;AA1DD,sCA0DC"}
1
+ {"version":3,"file":"aggregate.js","sourceRoot":"","sources":["../../../../../src/tools/mongodb/read/aggregate.ts"],"names":[],"mappings":"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"}
@@ -1,17 +1,16 @@
1
1
  import type { CallToolResult } from "@modelcontextprotocol/sdk/types.js";
2
2
  import { MongoDBToolBase } from "../mongodbTool.js";
3
3
  import type { ToolArgs, OperationType } from "../../tool.js";
4
- import { z } from "zod";
5
4
  export declare const CountArgs: {
6
- query: z.ZodOptional<z.ZodObject<{}, "passthrough", z.ZodTypeAny, z.objectOutputType<{}, z.ZodTypeAny, "passthrough">, z.objectInputType<{}, z.ZodTypeAny, "passthrough">>>;
5
+ query: import("zod").ZodOptional<import("zod").AnyZodObject>;
7
6
  };
8
7
  export declare class CountTool extends MongoDBToolBase {
9
8
  name: string;
10
9
  protected description: string;
11
10
  protected argsShape: {
12
- query: z.ZodOptional<z.ZodObject<{}, "passthrough", z.ZodTypeAny, z.objectOutputType<{}, z.ZodTypeAny, "passthrough">, z.objectInputType<{}, z.ZodTypeAny, "passthrough">>>;
13
- database: z.ZodString;
14
- collection: z.ZodString;
11
+ query: import("zod").ZodOptional<import("zod").AnyZodObject>;
12
+ database: import("zod").ZodString;
13
+ collection: import("zod").ZodString;
15
14
  };
16
15
  operationType: OperationType;
17
16
  protected execute({ database, collection, query }: ToolArgs<typeof this.argsShape>): Promise<CallToolResult>;
@@ -1 +1 @@
1
- {"version":3,"file":"count.d.ts","sourceRoot":"","sources":["../../../../../src/tools/mongodb/read/count.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAmB,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,SAAS;;CAQrB,CAAC;AAEF,qBAAa,SAAU,SAAQ,eAAe;IACnC,IAAI,SAAW;IACtB,SAAS,CAAC,WAAW,SAC4G;IACjI,SAAS,CAAC,SAAS;;;;MAGjB;IAEK,aAAa,EAAE,aAAa,CAAU;cAE7B,OAAO,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,QAAQ,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC;CA2BrH"}
1
+ {"version":3,"file":"count.d.ts","sourceRoot":"","sources":["../../../../../src/tools/mongodb/read/count.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAmB,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAI7D,eAAO,MAAM,SAAS;;CAMrB,CAAC;AAEF,qBAAa,SAAU,SAAQ,eAAe;IACnC,IAAI,SAAW;IACtB,SAAS,CAAC,WAAW,SAC4G;IACjI,SAAS,CAAC,SAAS;;;;MAGjB;IAEK,aAAa,EAAE,aAAa,CAAU;cAE7B,OAAO,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,QAAQ,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC;CA2BrH"}
@@ -2,12 +2,10 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.CountTool = exports.CountArgs = void 0;
4
4
  const mongodbTool_js_1 = require("../mongodbTool.js");
5
- const zod_1 = require("zod");
6
5
  const indexCheck_js_1 = require("../../../helpers/indexCheck.js");
6
+ const args_js_1 = require("../../args.js");
7
7
  exports.CountArgs = {
8
- query: zod_1.z
9
- .object({})
10
- .passthrough()
8
+ query: (0, args_js_1.zEJSON)()
11
9
  .optional()
12
10
  .describe("A filter/query parameter. Allows users to filter the documents to count. Matches the syntax of the filter argument of db.collection.count()."),
13
11
  };
@@ -1 +1 @@
1
- {"version":3,"file":"count.js","sourceRoot":"","sources":["../../../../../src/tools/mongodb/read/count.ts"],"names":[],"mappings":";;;AACA,sDAAqE;AAErE,6BAAwB;AACxB,kEAAiE;AAEpD,QAAA,SAAS,GAAG;IACrB,KAAK,EAAE,OAAC;SACH,MAAM,CAAC,EAAE,CAAC;SACV,WAAW,EAAE;SACb,QAAQ,EAAE;SACV,QAAQ,CACL,8IAA8I,CACjJ;CACR,CAAC;AAEF,MAAa,SAAU,SAAQ,gCAAe;IAA9C;;QACW,SAAI,GAAG,OAAO,CAAC;QACZ,gBAAW,GACjB,4HAA4H,CAAC;QACvH,cAAS,GAAG;YAClB,GAAG,gCAAe;YAClB,GAAG,iBAAS;SACf,CAAC;QAEK,kBAAa,GAAkB,MAAM,CAAC;IA6BjD,CAAC;IA3Ba,KAAK,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAmC;QACpF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAE9C,oDAAoD;QACpD,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;YACzB,MAAM,IAAA,+BAAe,EAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,IAAI,EAAE;gBACtE,OAAO,QAAQ,CAAC,mBAAmB,CAAC,QAAQ,EAAE;oBAC1C,OAAO,EAAE;wBACL,KAAK,EAAE,UAAU;wBACjB,KAAK;qBACR;oBACD,SAAS,EAAE,cAAc;iBAC5B,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;QACP,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;QAEhE,OAAO;YACH,OAAO,EAAE;gBACL;oBACI,IAAI,EAAE,SAAS,KAAK,iCAAiC,UAAU,GAAG;oBAClE,IAAI,EAAE,MAAM;iBACf;aACJ;SACJ,CAAC;IACN,CAAC;CACJ;AAtCD,8BAsCC"}
1
+ {"version":3,"file":"count.js","sourceRoot":"","sources":["../../../../../src/tools/mongodb/read/count.ts"],"names":[],"mappings":";;;AACA,sDAAqE;AAErE,kEAAiE;AACjE,2CAAuC;AAE1B,QAAA,SAAS,GAAG;IACrB,KAAK,EAAE,IAAA,gBAAM,GAAE;SACV,QAAQ,EAAE;SACV,QAAQ,CACL,8IAA8I,CACjJ;CACR,CAAC;AAEF,MAAa,SAAU,SAAQ,gCAAe;IAA9C;;QACW,SAAI,GAAG,OAAO,CAAC;QACZ,gBAAW,GACjB,4HAA4H,CAAC;QACvH,cAAS,GAAG;YAClB,GAAG,gCAAe;YAClB,GAAG,iBAAS;SACf,CAAC;QAEK,kBAAa,GAAkB,MAAM,CAAC;IA6BjD,CAAC;IA3Ba,KAAK,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAmC;QACpF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAE9C,oDAAoD;QACpD,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;YACzB,MAAM,IAAA,+BAAe,EAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,IAAI,EAAE;gBACtE,OAAO,QAAQ,CAAC,mBAAmB,CAAC,QAAQ,EAAE;oBAC1C,OAAO,EAAE;wBACL,KAAK,EAAE,UAAU;wBACjB,KAAK;qBACR;oBACD,SAAS,EAAE,cAAc;iBAC5B,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;QACP,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;QAEhE,OAAO;YACH,OAAO,EAAE;gBACL;oBACI,IAAI,EAAE,SAAS,KAAK,iCAAiC,UAAU,GAAG;oBAClE,IAAI,EAAE,MAAM;iBACf;aACJ;SACJ,CAAC;IACN,CAAC;CACJ;AAtCD,8BAsCC"}
@@ -11,25 +11,35 @@ export declare class ExportTool extends MongoDBToolBase {
11
11
  name: z.ZodLiteral<"find">;
12
12
  arguments: z.ZodObject<{
13
13
  limit: z.ZodOptional<z.ZodNumber>;
14
- filter: z.ZodOptional<z.ZodObject<{}, "passthrough", z.ZodTypeAny, z.objectOutputType<{}, z.ZodTypeAny, "passthrough">, z.objectInputType<{}, z.ZodTypeAny, "passthrough">>>;
14
+ filter: z.ZodOptional<z.AnyZodObject>;
15
15
  projection: z.ZodOptional<z.ZodObject<{}, "passthrough", z.ZodTypeAny, z.objectOutputType<{}, z.ZodTypeAny, "passthrough">, z.objectInputType<{}, z.ZodTypeAny, "passthrough">>>;
16
16
  sort: z.ZodOptional<z.ZodObject<{}, "strip", z.ZodType<import("mongodb").SortDirection, z.ZodTypeDef, import("mongodb").SortDirection>, {}, {}>>;
17
+ responseBytesLimit: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
17
18
  }, "strip", z.ZodTypeAny, {
19
+ responseBytesLimit: number;
18
20
  sort?: {} | undefined;
19
- filter?: z.objectOutputType<{}, z.ZodTypeAny, "passthrough"> | undefined;
21
+ filter?: {
22
+ [x: string]: any;
23
+ } | undefined;
20
24
  limit?: number | undefined;
21
25
  projection?: z.objectOutputType<{}, z.ZodTypeAny, "passthrough"> | undefined;
22
26
  }, {
23
27
  sort?: {} | undefined;
24
- filter?: z.objectInputType<{}, z.ZodTypeAny, "passthrough"> | undefined;
28
+ filter?: {
29
+ [x: string]: any;
30
+ } | undefined;
25
31
  limit?: number | undefined;
32
+ responseBytesLimit?: number | undefined;
26
33
  projection?: z.objectInputType<{}, z.ZodTypeAny, "passthrough"> | undefined;
27
34
  }>;
28
35
  }, "strip", z.ZodTypeAny, {
29
36
  name: "find";
30
37
  arguments: {
38
+ responseBytesLimit: number;
31
39
  sort?: {} | undefined;
32
- filter?: z.objectOutputType<{}, z.ZodTypeAny, "passthrough"> | undefined;
40
+ filter?: {
41
+ [x: string]: any;
42
+ } | undefined;
33
43
  limit?: number | undefined;
34
44
  projection?: z.objectOutputType<{}, z.ZodTypeAny, "passthrough"> | undefined;
35
45
  };
@@ -37,28 +47,44 @@ export declare class ExportTool extends MongoDBToolBase {
37
47
  name: "find";
38
48
  arguments: {
39
49
  sort?: {} | undefined;
40
- filter?: z.objectInputType<{}, z.ZodTypeAny, "passthrough"> | undefined;
50
+ filter?: {
51
+ [x: string]: any;
52
+ } | undefined;
41
53
  limit?: number | undefined;
54
+ responseBytesLimit?: number | undefined;
42
55
  projection?: z.objectInputType<{}, z.ZodTypeAny, "passthrough"> | undefined;
43
56
  };
44
57
  }>, z.ZodObject<{
45
58
  name: z.ZodLiteral<"aggregate">;
46
59
  arguments: z.ZodObject<{
47
- pipeline: z.ZodArray<z.ZodObject<{}, "passthrough", z.ZodTypeAny, z.objectOutputType<{}, z.ZodTypeAny, "passthrough">, z.objectInputType<{}, z.ZodTypeAny, "passthrough">>, "many">;
60
+ pipeline: z.ZodArray<z.AnyZodObject, "many">;
61
+ responseBytesLimit: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
48
62
  }, "strip", z.ZodTypeAny, {
49
- pipeline: z.objectOutputType<{}, z.ZodTypeAny, "passthrough">[];
63
+ responseBytesLimit: number;
64
+ pipeline: {
65
+ [x: string]: any;
66
+ }[];
50
67
  }, {
51
- pipeline: z.objectInputType<{}, z.ZodTypeAny, "passthrough">[];
68
+ pipeline: {
69
+ [x: string]: any;
70
+ }[];
71
+ responseBytesLimit?: number | undefined;
52
72
  }>;
53
73
  }, "strip", z.ZodTypeAny, {
54
74
  name: "aggregate";
55
75
  arguments: {
56
- pipeline: z.objectOutputType<{}, z.ZodTypeAny, "passthrough">[];
76
+ responseBytesLimit: number;
77
+ pipeline: {
78
+ [x: string]: any;
79
+ }[];
57
80
  };
58
81
  }, {
59
82
  name: "aggregate";
60
83
  arguments: {
61
- pipeline: z.objectInputType<{}, z.ZodTypeAny, "passthrough">[];
84
+ pipeline: {
85
+ [x: string]: any;
86
+ }[];
87
+ responseBytesLimit?: number | undefined;
62
88
  };
63
89
  }>]>, "many">;
64
90
  jsonExportFormat: z.ZodDefault<z.ZodEnum<["relaxed", "canonical"]>>;
@@ -1 +1 @@
1
- {"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../../../../../src/tools/mongodb/read/export.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAC;AAGpB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EAAmB,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAKrE,qBAAa,UAAW,SAAQ,eAAe;IACpC,IAAI,SAAY;IACvB,SAAS,CAAC,WAAW,SAA0E;IAC/F,SAAS,CAAC,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAmCjB;IACK,aAAa,EAAE,aAAa,CAAU;cAE7B,OAAO,CAAC,EACpB,QAAQ,EACR,UAAU,EACV,gBAAgB,EAChB,WAAW,EACX,YAAY,EAAE,MAAM,GACvB,EAAE,QAAQ,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC;IAoE5D,OAAO,CAAC,sBAAsB;CAGjC"}
1
+ {"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../../../../../src/tools/mongodb/read/export.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAC;AAGpB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EAAmB,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAKrE,qBAAa,UAAW,SAAQ,eAAe;IACpC,IAAI,SAAY;IACvB,SAAS,CAAC,WAAW,SAA0E;IAC/F,SAAS,CAAC,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAmCjB;IACK,aAAa,EAAE,aAAa,CAAU;cAE7B,OAAO,CAAC,EACpB,QAAQ,EACR,UAAU,EACV,gBAAgB,EAChB,WAAW,EACX,YAAY,EAAE,MAAM,GACvB,EAAE,QAAQ,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC;IAoE5D,OAAO,CAAC,sBAAsB;CAGjC"}
@@ -1,26 +1,31 @@
1
1
  import { z } from "zod";
2
2
  import type { CallToolResult } from "@modelcontextprotocol/sdk/types.js";
3
3
  import { MongoDBToolBase } from "../mongodbTool.js";
4
- import type { ToolArgs, OperationType } from "../../tool.js";
4
+ import type { ToolArgs, OperationType, ToolExecutionContext } from "../../tool.js";
5
5
  import type { SortDirection } from "mongodb";
6
6
  export declare const FindArgs: {
7
- filter: z.ZodOptional<z.ZodObject<{}, "passthrough", z.ZodTypeAny, z.objectOutputType<{}, z.ZodTypeAny, "passthrough">, z.objectInputType<{}, z.ZodTypeAny, "passthrough">>>;
7
+ filter: z.ZodOptional<z.AnyZodObject>;
8
8
  projection: z.ZodOptional<z.ZodObject<{}, "passthrough", z.ZodTypeAny, z.objectOutputType<{}, z.ZodTypeAny, "passthrough">, z.objectInputType<{}, z.ZodTypeAny, "passthrough">>>;
9
9
  limit: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
10
10
  sort: z.ZodOptional<z.ZodObject<{}, "strip", z.ZodType<SortDirection, z.ZodTypeDef, SortDirection>, {}, {}>>;
11
+ responseBytesLimit: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
11
12
  };
12
13
  export declare class FindTool extends MongoDBToolBase {
13
14
  name: string;
14
15
  protected description: string;
15
16
  protected argsShape: {
16
- filter: z.ZodOptional<z.ZodObject<{}, "passthrough", z.ZodTypeAny, z.objectOutputType<{}, z.ZodTypeAny, "passthrough">, z.objectInputType<{}, z.ZodTypeAny, "passthrough">>>;
17
+ filter: z.ZodOptional<z.AnyZodObject>;
17
18
  projection: z.ZodOptional<z.ZodObject<{}, "passthrough", z.ZodTypeAny, z.objectOutputType<{}, z.ZodTypeAny, "passthrough">, z.objectInputType<{}, z.ZodTypeAny, "passthrough">>>;
18
19
  limit: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
19
20
  sort: z.ZodOptional<z.ZodObject<{}, "strip", z.ZodType<SortDirection, z.ZodTypeDef, SortDirection>, {}, {}>>;
21
+ responseBytesLimit: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
20
22
  database: z.ZodString;
21
23
  collection: z.ZodString;
22
24
  };
23
25
  operationType: OperationType;
24
- protected execute({ database, collection, filter, projection, limit, sort, }: ToolArgs<typeof this.argsShape>): Promise<CallToolResult>;
26
+ protected execute({ database, collection, filter, projection, limit, sort, responseBytesLimit }: ToolArgs<typeof this.argsShape>, { signal }: ToolExecutionContext): Promise<CallToolResult>;
27
+ private safeCloseCursor;
28
+ private generateMessage;
29
+ private getLimitForFindCursor;
25
30
  }
26
31
  //# sourceMappingURL=find.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"find.d.ts","sourceRoot":"","sources":["../../../../../src/tools/mongodb/read/find.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAmB,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAI7C,eAAO,MAAM,QAAQ;;;;;CAmBpB,CAAC;AAEF,qBAAa,QAAS,SAAQ,eAAe;IAClC,IAAI,SAAU;IACrB,SAAS,CAAC,WAAW,SAAmD;IACxE,SAAS,CAAC,SAAS;;;;;;;MAGjB;IACK,aAAa,EAAE,aAAa,CAAU;cAE7B,OAAO,CAAC,EACpB,QAAQ,EACR,UAAU,EACV,MAAM,EACN,UAAU,EACV,KAAK,EACL,IAAI,GACP,EAAE,QAAQ,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC;CAmB/D"}
1
+ {"version":3,"file":"find.d.ts","sourceRoot":"","sources":["../../../../../src/tools/mongodb/read/find.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAmB,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAEnF,OAAO,KAAK,EAAc,aAAa,EAAE,MAAM,SAAS,CAAC;AASzD,eAAO,MAAM,QAAQ;;;;;;CAqBpB,CAAC;AAEF,qBAAa,QAAS,SAAQ,eAAe;IAClC,IAAI,SAAU;IACrB,SAAS,CAAC,WAAW,SAAmD;IACxE,SAAS,CAAC,SAAS;;;;;;;;MAGjB;IACK,aAAa,EAAE,aAAa,CAAU;cAE7B,OAAO,CACnB,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,kBAAkB,EAAE,EAAE,QAAQ,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,EAC9G,EAAE,MAAM,EAAE,EAAE,oBAAoB,GACjC,OAAO,CAAC,cAAc,CAAC;YA6DZ,eAAe;IAY7B,OAAO,CAAC,eAAe;IAwBvB,OAAO,CAAC,qBAAqB;CAuBhC"}
@@ -6,10 +6,13 @@ const mongodbTool_js_1 = require("../mongodbTool.js");
6
6
  const tool_js_1 = require("../../tool.js");
7
7
  const indexCheck_js_1 = require("../../../helpers/indexCheck.js");
8
8
  const bson_1 = require("bson");
9
+ const collectCursorUntilMaxBytes_js_1 = require("../../../helpers/collectCursorUntilMaxBytes.js");
10
+ const operationWithFallback_js_1 = require("../../../helpers/operationWithFallback.js");
11
+ const constants_js_1 = require("../../../helpers/constants.js");
12
+ const args_js_1 = require("../../args.js");
13
+ const logger_js_1 = require("../../../common/logger.js");
9
14
  exports.FindArgs = {
10
- filter: zod_1.z
11
- .object({})
12
- .passthrough()
15
+ filter: (0, args_js_1.zEJSON)()
13
16
  .optional()
14
17
  .describe("The query filter, matching the syntax of the query argument of db.collection.find()"),
15
18
  projection: zod_1.z
@@ -23,6 +26,10 @@ exports.FindArgs = {
23
26
  .catchall(zod_1.z.custom())
24
27
  .optional()
25
28
  .describe("A document, describing the sort order, matching the syntax of the sort argument of cursor.sort(). The keys of the object are the fields to sort on, while the values are the sort directions (1 for ascending, -1 for descending)."),
29
+ responseBytesLimit: zod_1.z.number().optional().default(constants_js_1.ONE_MB).describe(`\
30
+ The maximum number of bytes to return in the response. This value is capped by the server’s configured maxBytesPerQuery and cannot be exceeded. \
31
+ Note to LLM: If the entire query result is required, use the "export" tool instead of increasing this limit.\
32
+ `),
26
33
  };
27
34
  class FindTool extends mongodbTool_js_1.MongoDBToolBase {
28
35
  constructor() {
@@ -35,17 +42,94 @@ class FindTool extends mongodbTool_js_1.MongoDBToolBase {
35
42
  };
36
43
  this.operationType = "read";
37
44
  }
38
- async execute({ database, collection, filter, projection, limit, sort, }) {
39
- const provider = await this.ensureConnected();
40
- // Check if find operation uses an index if enabled
41
- if (this.config.indexCheck) {
42
- await (0, indexCheck_js_1.checkIndexUsage)(provider, database, collection, "find", async () => {
43
- return provider.find(database, collection, filter, { projection, limit, sort }).explain("queryPlanner");
45
+ async execute({ database, collection, filter, projection, limit, sort, responseBytesLimit }, { signal }) {
46
+ let findCursor = undefined;
47
+ try {
48
+ const provider = await this.ensureConnected();
49
+ // Check if find operation uses an index if enabled
50
+ if (this.config.indexCheck) {
51
+ await (0, indexCheck_js_1.checkIndexUsage)(provider, database, collection, "find", async () => {
52
+ return provider
53
+ .find(database, collection, filter, { projection, limit, sort })
54
+ .explain("queryPlanner");
55
+ });
56
+ }
57
+ const limitOnFindCursor = this.getLimitForFindCursor(limit);
58
+ findCursor = provider.find(database, collection, filter, {
59
+ projection,
60
+ limit: limitOnFindCursor.limit,
61
+ sort,
44
62
  });
63
+ const [queryResultsCount, cursorResults] = await Promise.all([
64
+ (0, operationWithFallback_js_1.operationWithFallback)(() => provider.countDocuments(database, collection, filter, {
65
+ // We should be counting documents that the original
66
+ // query would have yielded which is why we don't
67
+ // use `limitOnFindCursor` calculated above, only
68
+ // the limit provided to the tool.
69
+ limit,
70
+ maxTimeMS: constants_js_1.QUERY_COUNT_MAX_TIME_MS_CAP,
71
+ }), undefined),
72
+ (0, collectCursorUntilMaxBytes_js_1.collectCursorUntilMaxBytesLimit)({
73
+ cursor: findCursor,
74
+ configuredMaxBytesPerQuery: this.config.maxBytesPerQuery,
75
+ toolResponseBytesLimit: responseBytesLimit,
76
+ abortSignal: signal,
77
+ }),
78
+ ]);
79
+ return {
80
+ content: (0, tool_js_1.formatUntrustedData)(this.generateMessage({
81
+ collection,
82
+ queryResultsCount,
83
+ documents: cursorResults.documents,
84
+ appliedLimits: [limitOnFindCursor.cappedBy, cursorResults.cappedBy].filter((limit) => !!limit),
85
+ }), cursorResults.documents.length > 0 ? bson_1.EJSON.stringify(cursorResults.documents) : undefined),
86
+ };
87
+ }
88
+ finally {
89
+ if (findCursor) {
90
+ void this.safeCloseCursor(findCursor);
91
+ }
92
+ }
93
+ }
94
+ async safeCloseCursor(cursor) {
95
+ try {
96
+ await cursor.close();
97
+ }
98
+ catch (error) {
99
+ this.session.logger.warning({
100
+ id: logger_js_1.LogId.mongodbCursorCloseError,
101
+ context: "find tool",
102
+ message: `Error when closing the cursor - ${error instanceof Error ? error.message : String(error)}`,
103
+ });
104
+ }
105
+ }
106
+ generateMessage({ collection, queryResultsCount, documents, appliedLimits, }) {
107
+ const appliedLimitsText = appliedLimits.length
108
+ ? `\
109
+ while respecting the applied limits of ${appliedLimits.map((limit) => constants_js_1.CURSOR_LIMITS_TO_LLM_TEXT[limit]).join(", ")}. \
110
+ Note to LLM: If the entire query result is required then use "export" tool to export the query results.\
111
+ `
112
+ : "";
113
+ return `\
114
+ Query on collection "${collection}" resulted in ${queryResultsCount === undefined ? "indeterminable number of" : queryResultsCount} documents. \
115
+ Returning ${documents.length} documents${appliedLimitsText ? ` ${appliedLimitsText}` : "."}\
116
+ `;
117
+ }
118
+ getLimitForFindCursor(providedLimit) {
119
+ const configuredLimit = parseInt(String(this.config.maxDocumentsPerQuery), 10);
120
+ // Setting configured maxDocumentsPerQuery to negative, zero or nullish
121
+ // is equivalent to disabling the max limit applied on documents
122
+ const configuredLimitIsNotApplicable = Number.isNaN(configuredLimit) || configuredLimit <= 0;
123
+ if (configuredLimitIsNotApplicable) {
124
+ return { cappedBy: undefined, limit: providedLimit ?? undefined };
125
+ }
126
+ const providedLimitIsNotApplicable = providedLimit === null || providedLimit === undefined;
127
+ if (providedLimitIsNotApplicable) {
128
+ return { cappedBy: "config.maxDocumentsPerQuery", limit: configuredLimit };
45
129
  }
46
- const documents = await provider.find(database, collection, filter, { projection, limit, sort }).toArray();
47
130
  return {
48
- content: (0, tool_js_1.formatUntrustedData)(`Found ${documents.length} documents in the collection "${collection}".`, documents.length > 0 ? bson_1.EJSON.stringify(documents) : undefined),
131
+ cappedBy: configuredLimit < providedLimit ? "config.maxDocumentsPerQuery" : undefined,
132
+ limit: Math.min(providedLimit, configuredLimit),
49
133
  };
50
134
  }
51
135
  }
@@ -1 +1 @@
1
- {"version":3,"file":"find.js","sourceRoot":"","sources":["../../../../../src/tools/mongodb/read/find.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AAExB,sDAAqE;AAErE,2CAAoD;AAEpD,kEAAiE;AACjE,+BAA6B;AAEhB,QAAA,QAAQ,GAAG;IACpB,MAAM,EAAE,OAAC;SACJ,MAAM,CAAC,EAAE,CAAC;SACV,WAAW,EAAE;SACb,QAAQ,EAAE;SACV,QAAQ,CAAC,qFAAqF,CAAC;IACpG,UAAU,EAAE,OAAC;SACR,MAAM,CAAC,EAAE,CAAC;SACV,WAAW,EAAE;SACb,QAAQ,EAAE;SACV,QAAQ,CAAC,wFAAwF,CAAC;IACvG,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,2CAA2C,CAAC;IAC9F,IAAI,EAAE,OAAC;SACF,MAAM,CAAC,EAAE,CAAC;SACV,QAAQ,CAAC,OAAC,CAAC,MAAM,EAAiB,CAAC;SACnC,QAAQ,EAAE;SACV,QAAQ,CACL,oOAAoO,CACvO;CACR,CAAC;AAEF,MAAa,QAAS,SAAQ,gCAAe;IAA7C;;QACW,SAAI,GAAG,MAAM,CAAC;QACX,gBAAW,GAAG,+CAA+C,CAAC;QAC9D,cAAS,GAAG;YAClB,GAAG,gCAAe;YAClB,GAAG,gBAAQ;SACd,CAAC;QACK,kBAAa,GAAkB,MAAM,CAAC;IA4BjD,CAAC;IA1Ba,KAAK,CAAC,OAAO,CAAC,EACpB,QAAQ,EACR,UAAU,EACV,MAAM,EACN,UAAU,EACV,KAAK,EACL,IAAI,GAC0B;QAC9B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAE9C,mDAAmD;QACnD,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;YACzB,MAAM,IAAA,+BAAe,EAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,IAAI,EAAE;gBACrE,OAAO,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;YAC5G,CAAC,CAAC,CAAC;QACP,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;QAE3G,OAAO;YACH,OAAO,EAAE,IAAA,6BAAmB,EACxB,SAAS,SAAS,CAAC,MAAM,iCAAiC,UAAU,IAAI,EACxE,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,YAAK,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAChE;SACJ,CAAC;IACN,CAAC;CACJ;AAnCD,4BAmCC"}
1
+ {"version":3,"file":"find.js","sourceRoot":"","sources":["../../../../../src/tools/mongodb/read/find.ts"],"names":[],"mappings":"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"}
@@ -6,8 +6,8 @@ export declare class UpdateManyTool extends MongoDBToolBase {
6
6
  name: string;
7
7
  protected description: string;
8
8
  protected argsShape: {
9
- filter: z.ZodOptional<z.ZodObject<{}, "passthrough", z.ZodTypeAny, z.objectOutputType<{}, z.ZodTypeAny, "passthrough">, z.objectInputType<{}, z.ZodTypeAny, "passthrough">>>;
10
- update: z.ZodObject<{}, "passthrough", z.ZodTypeAny, z.objectOutputType<{}, z.ZodTypeAny, "passthrough">, z.objectInputType<{}, z.ZodTypeAny, "passthrough">>;
9
+ filter: z.ZodOptional<z.AnyZodObject>;
10
+ update: z.AnyZodObject;
11
11
  upsert: z.ZodOptional<z.ZodBoolean>;
12
12
  database: z.ZodString;
13
13
  collection: z.ZodString;
@@ -1 +1 @@
1
- {"version":3,"file":"updateMany.d.ts","sourceRoot":"","sources":["../../../../../src/tools/mongodb/update/updateMany.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAmB,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAG7D,qBAAa,cAAe,SAAQ,eAAe;IACxC,IAAI,SAAiB;IAC5B,SAAS,CAAC,WAAW,SAA4E;IACjG,SAAS,CAAC,SAAS;;;;;;MAiBjB;IACK,aAAa,EAAE,aAAa,CAAY;cAE/B,OAAO,CAAC,EACpB,QAAQ,EACR,UAAU,EACV,MAAM,EACN,MAAM,EACN,MAAM,GACT,EAAE,QAAQ,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC;CAiD/D"}
1
+ {"version":3,"file":"updateMany.d.ts","sourceRoot":"","sources":["../../../../../src/tools/mongodb/update/updateMany.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAmB,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAI7D,qBAAa,cAAe,SAAQ,eAAe;IACxC,IAAI,SAAiB;IAC5B,SAAS,CAAC,WAAW,SAA4E;IACjG,SAAS,CAAC,SAAS;;;;;;MAcjB;IACK,aAAa,EAAE,aAAa,CAAY;cAE/B,OAAO,CAAC,EACpB,QAAQ,EACR,UAAU,EACV,MAAM,EACN,MAAM,EACN,MAAM,GACT,EAAE,QAAQ,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC;CAiD/D"}
@@ -4,6 +4,7 @@ exports.UpdateManyTool = void 0;
4
4
  const zod_1 = require("zod");
5
5
  const mongodbTool_js_1 = require("../mongodbTool.js");
6
6
  const indexCheck_js_1 = require("../../../helpers/indexCheck.js");
7
+ const args_js_1 = require("../../args.js");
7
8
  class UpdateManyTool extends mongodbTool_js_1.MongoDBToolBase {
8
9
  constructor() {
9
10
  super(...arguments);
@@ -11,15 +12,10 @@ class UpdateManyTool extends mongodbTool_js_1.MongoDBToolBase {
11
12
  this.description = "Updates all documents that match the specified filter for a collection";
12
13
  this.argsShape = {
13
14
  ...mongodbTool_js_1.DbOperationArgs,
14
- filter: zod_1.z
15
- .object({})
16
- .passthrough()
15
+ filter: (0, args_js_1.zEJSON)()
17
16
  .optional()
18
17
  .describe("The selection criteria for the update, matching the syntax of the filter argument of db.collection.updateOne()"),
19
- update: zod_1.z
20
- .object({})
21
- .passthrough()
22
- .describe("An update document describing the modifications to apply using update operator expressions"),
18
+ update: (0, args_js_1.zEJSON)().describe("An update document describing the modifications to apply using update operator expressions"),
23
19
  upsert: zod_1.z
24
20
  .boolean()
25
21
  .optional()
@@ -1 +1 @@
1
- {"version":3,"file":"updateMany.js","sourceRoot":"","sources":["../../../../../src/tools/mongodb/update/updateMany.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AAExB,sDAAqE;AAErE,kEAAiE;AAEjE,MAAa,cAAe,SAAQ,gCAAe;IAAnD;;QACW,SAAI,GAAG,aAAa,CAAC;QAClB,gBAAW,GAAG,wEAAwE,CAAC;QACvF,cAAS,GAAG;YAClB,GAAG,gCAAe;YAClB,MAAM,EAAE,OAAC;iBACJ,MAAM,CAAC,EAAE,CAAC;iBACV,WAAW,EAAE;iBACb,QAAQ,EAAE;iBACV,QAAQ,CACL,gHAAgH,CACnH;YACL,MAAM,EAAE,OAAC;iBACJ,MAAM,CAAC,EAAE,CAAC;iBACV,WAAW,EAAE;iBACb,QAAQ,CAAC,4FAA4F,CAAC;YAC3G,MAAM,EAAE,OAAC;iBACJ,OAAO,EAAE;iBACT,QAAQ,EAAE;iBACV,QAAQ,CAAC,4EAA4E,CAAC;SAC9F,CAAC;QACK,kBAAa,GAAkB,QAAQ,CAAC;IAyDnD,CAAC;IAvDa,KAAK,CAAC,OAAO,CAAC,EACpB,QAAQ,EACR,UAAU,EACV,MAAM,EACN,MAAM,EACN,MAAM,GACwB;QAC9B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAE9C,qDAAqD;QACrD,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;YACzB,MAAM,IAAA,+BAAe,EAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,YAAY,EAAE,KAAK,IAAI,EAAE;gBAC3E,OAAO,QAAQ,CAAC,mBAAmB,CAAC,QAAQ,EAAE;oBAC1C,OAAO,EAAE;wBACL,MAAM,EAAE,UAAU;wBAClB,OAAO,EAAE;4BACL;gCACI,CAAC,EAAE,MAAM,IAAI,EAAE;gCACf,CAAC,EAAE,MAAM;gCACT,MAAM,EAAE,MAAM,IAAI,KAAK;gCACvB,KAAK,EAAE,IAAI;6BACd;yBACJ;qBACJ;oBACD,SAAS,EAAE,cAAc;iBAC5B,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;QACP,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,UAAU,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE;YAC3E,MAAM;SACT,CAAC,CAAC;QAEH,IAAI,OAAO,GAAG,EAAE,CAAC;QACjB,IAAI,MAAM,CAAC,YAAY,KAAK,CAAC,IAAI,MAAM,CAAC,aAAa,KAAK,CAAC,IAAI,MAAM,CAAC,aAAa,KAAK,CAAC,EAAE,CAAC;YACxF,OAAO,GAAG,kCAAkC,CAAC;QACjD,CAAC;aAAM,CAAC;YACJ,OAAO,GAAG,WAAW,MAAM,CAAC,YAAY,eAAe,CAAC;YACxD,IAAI,MAAM,CAAC,aAAa,GAAG,CAAC,EAAE,CAAC;gBAC3B,OAAO,IAAI,aAAa,MAAM,CAAC,aAAa,eAAe,CAAC;YAChE,CAAC;YACD,IAAI,MAAM,CAAC,aAAa,GAAG,CAAC,EAAE,CAAC;gBAC3B,OAAO,IAAI,aAAa,MAAM,CAAC,aAAa,sBAAsB,MAAM,CAAC,UAAU,EAAE,QAAQ,EAAE,GAAG,CAAC;YACvG,CAAC;QACL,CAAC;QAED,OAAO;YACH,OAAO,EAAE;gBACL;oBACI,IAAI,EAAE,OAAO;oBACb,IAAI,EAAE,MAAM;iBACf;aACJ;SACJ,CAAC;IACN,CAAC;CACJ;AA9ED,wCA8EC"}
1
+ {"version":3,"file":"updateMany.js","sourceRoot":"","sources":["../../../../../src/tools/mongodb/update/updateMany.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AAExB,sDAAqE;AAErE,kEAAiE;AACjE,2CAAuC;AAEvC,MAAa,cAAe,SAAQ,gCAAe;IAAnD;;QACW,SAAI,GAAG,aAAa,CAAC;QAClB,gBAAW,GAAG,wEAAwE,CAAC;QACvF,cAAS,GAAG;YAClB,GAAG,gCAAe;YAClB,MAAM,EAAE,IAAA,gBAAM,GAAE;iBACX,QAAQ,EAAE;iBACV,QAAQ,CACL,gHAAgH,CACnH;YACL,MAAM,EAAE,IAAA,gBAAM,GAAE,CAAC,QAAQ,CACrB,4FAA4F,CAC/F;YACD,MAAM,EAAE,OAAC;iBACJ,OAAO,EAAE;iBACT,QAAQ,EAAE;iBACV,QAAQ,CAAC,4EAA4E,CAAC;SAC9F,CAAC;QACK,kBAAa,GAAkB,QAAQ,CAAC;IAyDnD,CAAC;IAvDa,KAAK,CAAC,OAAO,CAAC,EACpB,QAAQ,EACR,UAAU,EACV,MAAM,EACN,MAAM,EACN,MAAM,GACwB;QAC9B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAE9C,qDAAqD;QACrD,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;YACzB,MAAM,IAAA,+BAAe,EAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,YAAY,EAAE,KAAK,IAAI,EAAE;gBAC3E,OAAO,QAAQ,CAAC,mBAAmB,CAAC,QAAQ,EAAE;oBAC1C,OAAO,EAAE;wBACL,MAAM,EAAE,UAAU;wBAClB,OAAO,EAAE;4BACL;gCACI,CAAC,EAAE,MAAM,IAAI,EAAE;gCACf,CAAC,EAAE,MAAM;gCACT,MAAM,EAAE,MAAM,IAAI,KAAK;gCACvB,KAAK,EAAE,IAAI;6BACd;yBACJ;qBACJ;oBACD,SAAS,EAAE,cAAc;iBAC5B,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;QACP,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,UAAU,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE;YAC3E,MAAM;SACT,CAAC,CAAC;QAEH,IAAI,OAAO,GAAG,EAAE,CAAC;QACjB,IAAI,MAAM,CAAC,YAAY,KAAK,CAAC,IAAI,MAAM,CAAC,aAAa,KAAK,CAAC,IAAI,MAAM,CAAC,aAAa,KAAK,CAAC,EAAE,CAAC;YACxF,OAAO,GAAG,kCAAkC,CAAC;QACjD,CAAC;aAAM,CAAC;YACJ,OAAO,GAAG,WAAW,MAAM,CAAC,YAAY,eAAe,CAAC;YACxD,IAAI,MAAM,CAAC,aAAa,GAAG,CAAC,EAAE,CAAC;gBAC3B,OAAO,IAAI,aAAa,MAAM,CAAC,aAAa,eAAe,CAAC;YAChE,CAAC;YACD,IAAI,MAAM,CAAC,aAAa,GAAG,CAAC,EAAE,CAAC;gBAC3B,OAAO,IAAI,aAAa,MAAM,CAAC,aAAa,sBAAsB,MAAM,CAAC,UAAU,EAAE,QAAQ,EAAE,GAAG,CAAC;YACvG,CAAC;QACL,CAAC;QAED,OAAO;YACH,OAAO,EAAE;gBACL;oBACI,IAAI,EAAE,OAAO;oBACb,IAAI,EAAE,MAAM;iBACf;aACJ;SACJ,CAAC;IACN,CAAC;CACJ;AA3ED,wCA2EC"}
@@ -9,6 +9,7 @@ import type { Server } from "../server.js";
9
9
  import type { Elicitation } from "../elicitation.js";
10
10
  export type ToolArgs<Args extends ZodRawShape> = z.objectOutputType<Args, ZodNever>;
11
11
  export type ToolCallbackArgs<Args extends ZodRawShape> = Parameters<ToolCallback<Args>>;
12
+ export type ToolExecutionContext<Args extends ZodRawShape = ZodRawShape> = Parameters<ToolCallback<Args>>[1];
12
13
  export type OperationType = "metadata" | "read" | "create" | "delete" | "update" | "connect";
13
14
  export type ToolCategory = "mongodb" | "atlas";
14
15
  export type TelemetryToolMetadata = {
@@ -1 +1 @@
1
- {"version":3,"file":"tool.d.ts","sourceRoot":"","sources":["../../../src/tools/tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool.d.ts","sourceRoot":"","sources":["../../../src/tools/tool.ts"],"names":[],"mappings":"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"}