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.
- package/README.md +25 -23
- package/dist/cjs/common/config.d.ts +2 -0
- package/dist/cjs/common/config.d.ts.map +1 -1
- package/dist/cjs/common/config.js +4 -0
- package/dist/cjs/common/config.js.map +1 -1
- package/dist/cjs/common/logger.d.ts +1 -0
- package/dist/cjs/common/logger.d.ts.map +1 -1
- package/dist/cjs/common/logger.js +1 -0
- package/dist/cjs/common/logger.js.map +1 -1
- package/dist/cjs/common/packageInfo.js +1 -1
- package/dist/cjs/helpers/collectCursorUntilMaxBytes.d.ts +24 -0
- package/dist/cjs/helpers/collectCursorUntilMaxBytes.d.ts.map +1 -0
- package/dist/cjs/helpers/collectCursorUntilMaxBytes.js +75 -0
- package/dist/cjs/helpers/collectCursorUntilMaxBytes.js.map +1 -0
- package/dist/cjs/helpers/constants.d.ts +24 -0
- package/dist/cjs/helpers/constants.d.ts.map +1 -0
- package/dist/cjs/helpers/constants.js +27 -0
- package/dist/cjs/helpers/constants.js.map +1 -0
- package/dist/cjs/helpers/isObjectEmpty.d.ts +6 -0
- package/dist/cjs/helpers/isObjectEmpty.d.ts.map +1 -0
- package/dist/cjs/helpers/isObjectEmpty.js +15 -0
- package/dist/cjs/helpers/isObjectEmpty.js.map +1 -0
- package/dist/cjs/helpers/operationWithFallback.d.ts +4 -0
- package/dist/cjs/helpers/operationWithFallback.d.ts.map +1 -0
- package/dist/cjs/helpers/operationWithFallback.js +12 -0
- package/dist/cjs/helpers/operationWithFallback.js.map +1 -0
- package/dist/cjs/server.d.ts.map +1 -1
- package/dist/cjs/server.js +5 -0
- package/dist/cjs/server.js.map +1 -1
- package/dist/cjs/tools/args.d.ts +1 -0
- package/dist/cjs/tools/args.d.ts.map +1 -1
- package/dist/cjs/tools/args.js +11 -0
- package/dist/cjs/tools/args.js.map +1 -1
- package/dist/cjs/tools/mongodb/create/insertMany.d.ts +1 -1
- package/dist/cjs/tools/mongodb/create/insertMany.d.ts.map +1 -1
- package/dist/cjs/tools/mongodb/create/insertMany.js +2 -1
- package/dist/cjs/tools/mongodb/create/insertMany.js.map +1 -1
- package/dist/cjs/tools/mongodb/delete/deleteMany.d.ts +3 -4
- package/dist/cjs/tools/mongodb/delete/deleteMany.d.ts.map +1 -1
- package/dist/cjs/tools/mongodb/delete/deleteMany.js +2 -4
- package/dist/cjs/tools/mongodb/delete/deleteMany.js.map +1 -1
- package/dist/cjs/tools/mongodb/metadata/collectionSchema.d.ts +8 -5
- package/dist/cjs/tools/mongodb/metadata/collectionSchema.d.ts.map +1 -1
- package/dist/cjs/tools/mongodb/metadata/collectionSchema.js +34 -6
- package/dist/cjs/tools/mongodb/metadata/collectionSchema.js.map +1 -1
- package/dist/cjs/tools/mongodb/metadata/explain.d.ts +51 -17
- package/dist/cjs/tools/mongodb/metadata/explain.d.ts.map +1 -1
- package/dist/cjs/tools/mongodb/metadata/explain.js +10 -9
- package/dist/cjs/tools/mongodb/metadata/explain.js.map +1 -1
- package/dist/cjs/tools/mongodb/read/aggregate.d.ts +9 -4
- package/dist/cjs/tools/mongodb/read/aggregate.d.ts.map +1 -1
- package/dist/cjs/tools/mongodb/read/aggregate.js +99 -14
- package/dist/cjs/tools/mongodb/read/aggregate.js.map +1 -1
- package/dist/cjs/tools/mongodb/read/count.d.ts +4 -5
- package/dist/cjs/tools/mongodb/read/count.d.ts.map +1 -1
- package/dist/cjs/tools/mongodb/read/count.js +2 -4
- package/dist/cjs/tools/mongodb/read/count.js.map +1 -1
- package/dist/cjs/tools/mongodb/read/export.d.ts +36 -10
- package/dist/cjs/tools/mongodb/read/export.d.ts.map +1 -1
- package/dist/cjs/tools/mongodb/read/find.d.ts +9 -4
- package/dist/cjs/tools/mongodb/read/find.d.ts.map +1 -1
- package/dist/cjs/tools/mongodb/read/find.js +95 -11
- package/dist/cjs/tools/mongodb/read/find.js.map +1 -1
- package/dist/cjs/tools/mongodb/update/updateMany.d.ts +2 -2
- package/dist/cjs/tools/mongodb/update/updateMany.d.ts.map +1 -1
- package/dist/cjs/tools/mongodb/update/updateMany.js +3 -7
- package/dist/cjs/tools/mongodb/update/updateMany.js.map +1 -1
- package/dist/cjs/tools/tool.d.ts +1 -0
- package/dist/cjs/tools/tool.d.ts.map +1 -1
- package/dist/cjs/tools/tool.js.map +1 -1
- package/dist/cjs/transports/stdio.d.ts +0 -9
- package/dist/cjs/transports/stdio.d.ts.map +1 -1
- package/dist/cjs/transports/stdio.js +2 -40
- package/dist/cjs/transports/stdio.js.map +1 -1
- package/dist/esm/common/config.d.ts +2 -0
- package/dist/esm/common/config.d.ts.map +1 -1
- package/dist/esm/common/config.js +4 -0
- package/dist/esm/common/config.js.map +1 -1
- package/dist/esm/common/logger.d.ts +1 -0
- package/dist/esm/common/logger.d.ts.map +1 -1
- package/dist/esm/common/logger.js +1 -0
- package/dist/esm/common/logger.js.map +1 -1
- package/dist/esm/common/packageInfo.js +1 -1
- package/dist/esm/helpers/collectCursorUntilMaxBytes.d.ts +24 -0
- package/dist/esm/helpers/collectCursorUntilMaxBytes.d.ts.map +1 -0
- package/dist/esm/helpers/collectCursorUntilMaxBytes.js +71 -0
- package/dist/esm/helpers/collectCursorUntilMaxBytes.js.map +1 -0
- package/dist/esm/helpers/constants.d.ts +24 -0
- package/dist/esm/helpers/constants.d.ts.map +1 -0
- package/dist/esm/helpers/constants.js +24 -0
- package/dist/esm/helpers/constants.js.map +1 -0
- package/dist/esm/helpers/isObjectEmpty.d.ts +6 -0
- package/dist/esm/helpers/isObjectEmpty.d.ts.map +1 -0
- package/dist/esm/helpers/isObjectEmpty.js +12 -0
- package/dist/esm/helpers/isObjectEmpty.js.map +1 -0
- package/dist/esm/helpers/operationWithFallback.d.ts +4 -0
- package/dist/esm/helpers/operationWithFallback.d.ts.map +1 -0
- package/dist/esm/helpers/operationWithFallback.js +9 -0
- package/dist/esm/helpers/operationWithFallback.js.map +1 -0
- package/dist/esm/server.d.ts.map +1 -1
- package/dist/esm/server.js +5 -0
- package/dist/esm/server.js.map +1 -1
- package/dist/esm/tools/args.d.ts +1 -0
- package/dist/esm/tools/args.d.ts.map +1 -1
- package/dist/esm/tools/args.js +10 -0
- package/dist/esm/tools/args.js.map +1 -1
- package/dist/esm/tools/mongodb/create/insertMany.d.ts +1 -1
- package/dist/esm/tools/mongodb/create/insertMany.d.ts.map +1 -1
- package/dist/esm/tools/mongodb/create/insertMany.js +2 -1
- package/dist/esm/tools/mongodb/create/insertMany.js.map +1 -1
- package/dist/esm/tools/mongodb/delete/deleteMany.d.ts +3 -4
- package/dist/esm/tools/mongodb/delete/deleteMany.d.ts.map +1 -1
- package/dist/esm/tools/mongodb/delete/deleteMany.js +2 -4
- package/dist/esm/tools/mongodb/delete/deleteMany.js.map +1 -1
- package/dist/esm/tools/mongodb/metadata/collectionSchema.d.ts +8 -5
- package/dist/esm/tools/mongodb/metadata/collectionSchema.d.ts.map +1 -1
- package/dist/esm/tools/mongodb/metadata/collectionSchema.js +31 -6
- package/dist/esm/tools/mongodb/metadata/collectionSchema.js.map +1 -1
- package/dist/esm/tools/mongodb/metadata/explain.d.ts +51 -17
- package/dist/esm/tools/mongodb/metadata/explain.d.ts.map +1 -1
- package/dist/esm/tools/mongodb/metadata/explain.js +10 -9
- package/dist/esm/tools/mongodb/metadata/explain.js.map +1 -1
- package/dist/esm/tools/mongodb/read/aggregate.d.ts +9 -4
- package/dist/esm/tools/mongodb/read/aggregate.d.ts.map +1 -1
- package/dist/esm/tools/mongodb/read/aggregate.js +99 -14
- package/dist/esm/tools/mongodb/read/aggregate.js.map +1 -1
- package/dist/esm/tools/mongodb/read/count.d.ts +4 -5
- package/dist/esm/tools/mongodb/read/count.d.ts.map +1 -1
- package/dist/esm/tools/mongodb/read/count.js +2 -4
- package/dist/esm/tools/mongodb/read/count.js.map +1 -1
- package/dist/esm/tools/mongodb/read/export.d.ts +36 -10
- package/dist/esm/tools/mongodb/read/export.d.ts.map +1 -1
- package/dist/esm/tools/mongodb/read/find.d.ts +9 -4
- package/dist/esm/tools/mongodb/read/find.d.ts.map +1 -1
- package/dist/esm/tools/mongodb/read/find.js +95 -11
- package/dist/esm/tools/mongodb/read/find.js.map +1 -1
- package/dist/esm/tools/mongodb/update/updateMany.d.ts +2 -2
- package/dist/esm/tools/mongodb/update/updateMany.d.ts.map +1 -1
- package/dist/esm/tools/mongodb/update/updateMany.js +3 -7
- package/dist/esm/tools/mongodb/update/updateMany.js.map +1 -1
- package/dist/esm/tools/tool.d.ts +1 -0
- package/dist/esm/tools/tool.d.ts.map +1 -1
- package/dist/esm/tools/tool.js.map +1 -1
- package/dist/esm/transports/stdio.d.ts +0 -9
- package/dist/esm/transports/stdio.d.ts.map +1 -1
- package/dist/esm/transports/stdio.js +1 -37
- package/dist/esm/transports/stdio.js.map +1 -1
- 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(
|
|
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
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
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;
|
|
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:
|
|
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:
|
|
13
|
-
database:
|
|
14
|
-
collection:
|
|
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;
|
|
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:
|
|
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,
|
|
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.
|
|
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?:
|
|
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?:
|
|
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?:
|
|
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?:
|
|
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.
|
|
60
|
+
pipeline: z.ZodArray<z.AnyZodObject, "many">;
|
|
61
|
+
responseBytesLimit: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
48
62
|
}, "strip", z.ZodTypeAny, {
|
|
49
|
-
|
|
63
|
+
responseBytesLimit: number;
|
|
64
|
+
pipeline: {
|
|
65
|
+
[x: string]: any;
|
|
66
|
+
}[];
|
|
50
67
|
}, {
|
|
51
|
-
pipeline:
|
|
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
|
-
|
|
76
|
+
responseBytesLimit: number;
|
|
77
|
+
pipeline: {
|
|
78
|
+
[x: string]: any;
|
|
79
|
+
}[];
|
|
57
80
|
};
|
|
58
81
|
}, {
|
|
59
82
|
name: "aggregate";
|
|
60
83
|
arguments: {
|
|
61
|
-
pipeline:
|
|
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
|
|
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.
|
|
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.
|
|
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
|
|
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;
|
|
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:
|
|
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
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
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
|
-
|
|
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;
|
|
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.
|
|
10
|
-
update: z.
|
|
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;
|
|
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:
|
|
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:
|
|
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;
|
|
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"}
|
package/dist/cjs/tools/tool.d.ts
CHANGED
|
@@ -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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"}
|