mongodb-mcp-server 1.0.3-prerelease.1 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (188) hide show
  1. package/README.md +2 -1
  2. package/dist/cjs/common/atlas/apiClient.d.ts +15 -0
  3. package/dist/cjs/common/atlas/apiClient.d.ts.map +1 -1
  4. package/dist/cjs/common/atlas/apiClient.js +32 -0
  5. package/dist/cjs/common/atlas/apiClient.js.map +1 -1
  6. package/dist/cjs/common/atlas/cluster.d.ts +2 -0
  7. package/dist/cjs/common/atlas/cluster.d.ts.map +1 -1
  8. package/dist/cjs/common/atlas/cluster.js +24 -2
  9. package/dist/cjs/common/atlas/cluster.js.map +1 -1
  10. package/dist/cjs/common/atlas/performanceAdvisorUtils.d.ts +24 -0
  11. package/dist/cjs/common/atlas/performanceAdvisorUtils.d.ts.map +1 -0
  12. package/dist/cjs/common/atlas/performanceAdvisorUtils.js +116 -0
  13. package/dist/cjs/common/atlas/performanceAdvisorUtils.js.map +1 -0
  14. package/dist/cjs/common/config.d.ts +3 -0
  15. package/dist/cjs/common/config.d.ts.map +1 -1
  16. package/dist/cjs/common/config.js +5 -0
  17. package/dist/cjs/common/config.js.map +1 -1
  18. package/dist/cjs/common/connectionManager.d.ts +7 -2
  19. package/dist/cjs/common/connectionManager.d.ts.map +1 -1
  20. package/dist/cjs/common/connectionManager.js +28 -12
  21. package/dist/cjs/common/connectionManager.js.map +1 -1
  22. package/dist/cjs/common/logger.d.ts +4 -0
  23. package/dist/cjs/common/logger.d.ts.map +1 -1
  24. package/dist/cjs/common/logger.js +4 -0
  25. package/dist/cjs/common/logger.js.map +1 -1
  26. package/dist/cjs/common/packageInfo.js +1 -1
  27. package/dist/cjs/common/packageInfo.js.map +1 -1
  28. package/dist/cjs/common/session.d.ts +1 -0
  29. package/dist/cjs/common/session.d.ts.map +1 -1
  30. package/dist/cjs/common/session.js +7 -0
  31. package/dist/cjs/common/session.js.map +1 -1
  32. package/dist/cjs/resources/common/debug.d.ts +1 -1
  33. package/dist/cjs/resources/common/debug.d.ts.map +1 -1
  34. package/dist/cjs/resources/common/debug.js +5 -3
  35. package/dist/cjs/resources/common/debug.js.map +1 -1
  36. package/dist/cjs/resources/resource.d.ts +1 -1
  37. package/dist/cjs/resources/resource.d.ts.map +1 -1
  38. package/dist/cjs/resources/resource.js +2 -2
  39. package/dist/cjs/resources/resource.js.map +1 -1
  40. package/dist/cjs/server.d.ts +4 -2
  41. package/dist/cjs/server.d.ts.map +1 -1
  42. package/dist/cjs/server.js +4 -3
  43. package/dist/cjs/server.js.map +1 -1
  44. package/dist/cjs/telemetry/telemetry.d.ts +2 -1
  45. package/dist/cjs/telemetry/telemetry.d.ts.map +1 -1
  46. package/dist/cjs/telemetry/telemetry.js +8 -3
  47. package/dist/cjs/telemetry/telemetry.js.map +1 -1
  48. package/dist/cjs/telemetry/types.d.ts +2 -2
  49. package/dist/cjs/telemetry/types.d.ts.map +1 -1
  50. package/dist/cjs/tools/atlas/atlasTool.d.ts.map +1 -1
  51. package/dist/cjs/tools/atlas/atlasTool.js +15 -1
  52. package/dist/cjs/tools/atlas/atlasTool.js.map +1 -1
  53. package/dist/cjs/tools/atlas/read/getPerformanceAdvisor.d.ts +18 -0
  54. package/dist/cjs/tools/atlas/read/getPerformanceAdvisor.d.ts.map +1 -0
  55. package/dist/cjs/tools/atlas/read/getPerformanceAdvisor.js +102 -0
  56. package/dist/cjs/tools/atlas/read/getPerformanceAdvisor.js.map +1 -0
  57. package/dist/cjs/tools/atlas/tools.d.ts +2 -1
  58. package/dist/cjs/tools/atlas/tools.d.ts.map +1 -1
  59. package/dist/cjs/tools/atlas/tools.js +2 -0
  60. package/dist/cjs/tools/atlas/tools.js.map +1 -1
  61. package/dist/cjs/tools/mongodb/create/createIndex.d.ts +121 -3
  62. package/dist/cjs/tools/mongodb/create/createIndex.d.ts.map +1 -1
  63. package/dist/cjs/tools/mongodb/create/createIndex.js +102 -9
  64. package/dist/cjs/tools/mongodb/create/createIndex.js.map +1 -1
  65. package/dist/cjs/tools/mongodb/delete/dropIndex.d.ts +17 -0
  66. package/dist/cjs/tools/mongodb/delete/dropIndex.d.ts.map +1 -0
  67. package/dist/cjs/tools/mongodb/delete/dropIndex.js +42 -0
  68. package/dist/cjs/tools/mongodb/delete/dropIndex.js.map +1 -0
  69. package/dist/cjs/tools/mongodb/metadata/collectionIndexes.d.ts.map +1 -0
  70. package/dist/cjs/tools/mongodb/{read → metadata}/collectionIndexes.js +2 -1
  71. package/dist/cjs/tools/mongodb/metadata/collectionIndexes.js.map +1 -0
  72. package/dist/cjs/tools/mongodb/metadata/collectionStorageSize.d.ts.map +1 -1
  73. package/dist/cjs/tools/mongodb/metadata/collectionStorageSize.js +1 -0
  74. package/dist/cjs/tools/mongodb/metadata/collectionStorageSize.js.map +1 -1
  75. package/dist/cjs/tools/mongodb/mongodbTool.d.ts +1 -1
  76. package/dist/cjs/tools/mongodb/mongodbTool.d.ts.map +1 -1
  77. package/dist/cjs/tools/mongodb/search/listSearchIndexes.d.ts +30 -0
  78. package/dist/cjs/tools/mongodb/search/listSearchIndexes.d.ts.map +1 -0
  79. package/dist/cjs/tools/mongodb/search/listSearchIndexes.js +65 -0
  80. package/dist/cjs/tools/mongodb/search/listSearchIndexes.js.map +1 -0
  81. package/dist/cjs/tools/mongodb/tools.d.ts +4 -2
  82. package/dist/cjs/tools/mongodb/tools.d.ts.map +1 -1
  83. package/dist/cjs/tools/mongodb/tools.js +5 -1
  84. package/dist/cjs/tools/mongodb/tools.js.map +1 -1
  85. package/dist/cjs/tools/mongodb/update/renameCollection.d.ts.map +1 -1
  86. package/dist/cjs/tools/mongodb/update/renameCollection.js +2 -0
  87. package/dist/cjs/tools/mongodb/update/renameCollection.js.map +1 -1
  88. package/dist/cjs/tools/tool.d.ts +36 -0
  89. package/dist/cjs/tools/tool.d.ts.map +1 -1
  90. package/dist/cjs/tools/tool.js +17 -0
  91. package/dist/cjs/tools/tool.js.map +1 -1
  92. package/dist/esm/common/atlas/apiClient.d.ts +15 -0
  93. package/dist/esm/common/atlas/apiClient.d.ts.map +1 -1
  94. package/dist/esm/common/atlas/apiClient.js +32 -0
  95. package/dist/esm/common/atlas/apiClient.js.map +1 -1
  96. package/dist/esm/common/atlas/cluster.d.ts +2 -0
  97. package/dist/esm/common/atlas/cluster.d.ts.map +1 -1
  98. package/dist/esm/common/atlas/cluster.js +23 -2
  99. package/dist/esm/common/atlas/cluster.js.map +1 -1
  100. package/dist/esm/common/atlas/performanceAdvisorUtils.d.ts +24 -0
  101. package/dist/esm/common/atlas/performanceAdvisorUtils.d.ts.map +1 -0
  102. package/dist/esm/common/atlas/performanceAdvisorUtils.js +109 -0
  103. package/dist/esm/common/atlas/performanceAdvisorUtils.js.map +1 -0
  104. package/dist/esm/common/config.d.ts +3 -0
  105. package/dist/esm/common/config.d.ts.map +1 -1
  106. package/dist/esm/common/config.js +5 -0
  107. package/dist/esm/common/config.js.map +1 -1
  108. package/dist/esm/common/connectionManager.d.ts +7 -2
  109. package/dist/esm/common/connectionManager.d.ts.map +1 -1
  110. package/dist/esm/common/connectionManager.js +26 -11
  111. package/dist/esm/common/connectionManager.js.map +1 -1
  112. package/dist/esm/common/logger.d.ts +4 -0
  113. package/dist/esm/common/logger.d.ts.map +1 -1
  114. package/dist/esm/common/logger.js +4 -0
  115. package/dist/esm/common/logger.js.map +1 -1
  116. package/dist/esm/common/packageInfo.js +1 -1
  117. package/dist/esm/common/packageInfo.js.map +1 -1
  118. package/dist/esm/common/session.d.ts +1 -0
  119. package/dist/esm/common/session.d.ts.map +1 -1
  120. package/dist/esm/common/session.js +7 -0
  121. package/dist/esm/common/session.js.map +1 -1
  122. package/dist/esm/resources/common/debug.d.ts +1 -1
  123. package/dist/esm/resources/common/debug.d.ts.map +1 -1
  124. package/dist/esm/resources/common/debug.js +5 -3
  125. package/dist/esm/resources/common/debug.js.map +1 -1
  126. package/dist/esm/resources/resource.d.ts +1 -1
  127. package/dist/esm/resources/resource.d.ts.map +1 -1
  128. package/dist/esm/resources/resource.js +2 -2
  129. package/dist/esm/resources/resource.js.map +1 -1
  130. package/dist/esm/server.d.ts +4 -2
  131. package/dist/esm/server.d.ts.map +1 -1
  132. package/dist/esm/server.js +4 -3
  133. package/dist/esm/server.js.map +1 -1
  134. package/dist/esm/telemetry/telemetry.d.ts +2 -1
  135. package/dist/esm/telemetry/telemetry.d.ts.map +1 -1
  136. package/dist/esm/telemetry/telemetry.js +8 -3
  137. package/dist/esm/telemetry/telemetry.js.map +1 -1
  138. package/dist/esm/telemetry/types.d.ts +2 -2
  139. package/dist/esm/telemetry/types.d.ts.map +1 -1
  140. package/dist/esm/tools/atlas/atlasTool.d.ts.map +1 -1
  141. package/dist/esm/tools/atlas/atlasTool.js +15 -1
  142. package/dist/esm/tools/atlas/atlasTool.js.map +1 -1
  143. package/dist/esm/tools/atlas/read/getPerformanceAdvisor.d.ts +18 -0
  144. package/dist/esm/tools/atlas/read/getPerformanceAdvisor.d.ts.map +1 -0
  145. package/dist/esm/tools/atlas/read/getPerformanceAdvisor.js +98 -0
  146. package/dist/esm/tools/atlas/read/getPerformanceAdvisor.js.map +1 -0
  147. package/dist/esm/tools/atlas/tools.d.ts +2 -1
  148. package/dist/esm/tools/atlas/tools.d.ts.map +1 -1
  149. package/dist/esm/tools/atlas/tools.js +2 -0
  150. package/dist/esm/tools/atlas/tools.js.map +1 -1
  151. package/dist/esm/tools/mongodb/create/createIndex.d.ts +121 -3
  152. package/dist/esm/tools/mongodb/create/createIndex.d.ts.map +1 -1
  153. package/dist/esm/tools/mongodb/create/createIndex.js +102 -9
  154. package/dist/esm/tools/mongodb/create/createIndex.js.map +1 -1
  155. package/dist/esm/tools/mongodb/delete/dropIndex.d.ts +17 -0
  156. package/dist/esm/tools/mongodb/delete/dropIndex.d.ts.map +1 -0
  157. package/dist/esm/tools/mongodb/delete/dropIndex.js +35 -0
  158. package/dist/esm/tools/mongodb/delete/dropIndex.js.map +1 -0
  159. package/dist/esm/tools/mongodb/metadata/collectionIndexes.d.ts.map +1 -0
  160. package/dist/esm/tools/mongodb/{read → metadata}/collectionIndexes.js +2 -1
  161. package/dist/esm/tools/mongodb/metadata/collectionIndexes.js.map +1 -0
  162. package/dist/esm/tools/mongodb/metadata/collectionStorageSize.d.ts.map +1 -1
  163. package/dist/esm/tools/mongodb/metadata/collectionStorageSize.js +1 -0
  164. package/dist/esm/tools/mongodb/metadata/collectionStorageSize.js.map +1 -1
  165. package/dist/esm/tools/mongodb/mongodbTool.d.ts +1 -1
  166. package/dist/esm/tools/mongodb/mongodbTool.d.ts.map +1 -1
  167. package/dist/esm/tools/mongodb/search/listSearchIndexes.d.ts +30 -0
  168. package/dist/esm/tools/mongodb/search/listSearchIndexes.d.ts.map +1 -0
  169. package/dist/esm/tools/mongodb/search/listSearchIndexes.js +61 -0
  170. package/dist/esm/tools/mongodb/search/listSearchIndexes.js.map +1 -0
  171. package/dist/esm/tools/mongodb/tools.d.ts +4 -2
  172. package/dist/esm/tools/mongodb/tools.d.ts.map +1 -1
  173. package/dist/esm/tools/mongodb/tools.js +5 -1
  174. package/dist/esm/tools/mongodb/tools.js.map +1 -1
  175. package/dist/esm/tools/mongodb/update/renameCollection.d.ts.map +1 -1
  176. package/dist/esm/tools/mongodb/update/renameCollection.js +2 -0
  177. package/dist/esm/tools/mongodb/update/renameCollection.js.map +1 -1
  178. package/dist/esm/tools/tool.d.ts +36 -0
  179. package/dist/esm/tools/tool.d.ts.map +1 -1
  180. package/dist/esm/tools/tool.js +17 -0
  181. package/dist/esm/tools/tool.js.map +1 -1
  182. package/package.json +2 -1
  183. package/dist/cjs/tools/mongodb/read/collectionIndexes.d.ts.map +0 -1
  184. package/dist/cjs/tools/mongodb/read/collectionIndexes.js.map +0 -1
  185. package/dist/esm/tools/mongodb/read/collectionIndexes.d.ts.map +0 -1
  186. package/dist/esm/tools/mongodb/read/collectionIndexes.js.map +0 -1
  187. /package/dist/cjs/tools/mongodb/{read → metadata}/collectionIndexes.d.ts +0 -0
  188. /package/dist/esm/tools/mongodb/{read → metadata}/collectionIndexes.d.ts +0 -0
@@ -1,18 +1,136 @@
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, type OperationType } from "../../tool.js";
5
5
  import type { IndexDirection } from "mongodb";
6
6
  export declare class CreateIndexTool extends MongoDBToolBase {
7
+ private vectorSearchIndexDefinition;
7
8
  name: string;
8
9
  protected description: string;
9
10
  protected argsShape: {
10
- keys: z.ZodObject<{}, "strip", z.ZodType<IndexDirection, z.ZodTypeDef, IndexDirection>, {}, {}>;
11
11
  name: z.ZodOptional<z.ZodString>;
12
+ definition: z.ZodArray<z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
13
+ type: z.ZodLiteral<"classic">;
14
+ keys: z.ZodObject<{}, "strip", z.ZodType<IndexDirection, z.ZodTypeDef, IndexDirection>, {}, {}>;
15
+ }, "strip", z.ZodTypeAny, {
16
+ keys: {};
17
+ type: "classic";
18
+ }, {
19
+ keys: {};
20
+ type: "classic";
21
+ }>, ...z.ZodObject<{
22
+ type: z.ZodLiteral<"vectorSearch">;
23
+ fields: z.ZodEffects<z.ZodArray<z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
24
+ type: z.ZodLiteral<"filter">;
25
+ path: z.ZodString;
26
+ }, "strict", z.ZodTypeAny, {
27
+ path: string;
28
+ type: "filter";
29
+ }, {
30
+ path: string;
31
+ type: "filter";
32
+ }>, z.ZodObject<{
33
+ type: z.ZodLiteral<"vector">;
34
+ path: z.ZodString;
35
+ numDimensions: z.ZodDefault<z.ZodNumber>;
36
+ similarity: z.ZodDefault<z.ZodEnum<["cosine", "euclidean", "dotProduct"]>>;
37
+ quantization: z.ZodDefault<z.ZodOptional<z.ZodEnum<["none", "scalar", "binary"]>>>;
38
+ }, "strict", z.ZodTypeAny, {
39
+ path: string;
40
+ type: "vector";
41
+ numDimensions: number;
42
+ similarity: "cosine" | "euclidean" | "dotProduct";
43
+ quantization: "binary" | "none" | "scalar";
44
+ }, {
45
+ path: string;
46
+ type: "vector";
47
+ numDimensions?: number | undefined;
48
+ similarity?: "cosine" | "euclidean" | "dotProduct" | undefined;
49
+ quantization?: "binary" | "none" | "scalar" | undefined;
50
+ }>]>, "atleastone">, [{
51
+ path: string;
52
+ type: "filter";
53
+ } | {
54
+ path: string;
55
+ type: "vector";
56
+ numDimensions: number;
57
+ similarity: "cosine" | "euclidean" | "dotProduct";
58
+ quantization: "binary" | "none" | "scalar";
59
+ }, ...({
60
+ path: string;
61
+ type: "filter";
62
+ } | {
63
+ path: string;
64
+ type: "vector";
65
+ numDimensions: number;
66
+ similarity: "cosine" | "euclidean" | "dotProduct";
67
+ quantization: "binary" | "none" | "scalar";
68
+ })[]], [{
69
+ path: string;
70
+ type: "filter";
71
+ } | {
72
+ path: string;
73
+ type: "vector";
74
+ numDimensions?: number | undefined;
75
+ similarity?: "cosine" | "euclidean" | "dotProduct" | undefined;
76
+ quantization?: "binary" | "none" | "scalar" | undefined;
77
+ }, ...({
78
+ path: string;
79
+ type: "filter";
80
+ } | {
81
+ path: string;
82
+ type: "vector";
83
+ numDimensions?: number | undefined;
84
+ similarity?: "cosine" | "euclidean" | "dotProduct" | undefined;
85
+ quantization?: "binary" | "none" | "scalar" | undefined;
86
+ })[]]>;
87
+ }, "strip", z.ZodTypeAny, {
88
+ type: "vectorSearch";
89
+ fields: [{
90
+ path: string;
91
+ type: "filter";
92
+ } | {
93
+ path: string;
94
+ type: "vector";
95
+ numDimensions: number;
96
+ similarity: "cosine" | "euclidean" | "dotProduct";
97
+ quantization: "binary" | "none" | "scalar";
98
+ }, ...({
99
+ path: string;
100
+ type: "filter";
101
+ } | {
102
+ path: string;
103
+ type: "vector";
104
+ numDimensions: number;
105
+ similarity: "cosine" | "euclidean" | "dotProduct";
106
+ quantization: "binary" | "none" | "scalar";
107
+ })[]];
108
+ }, {
109
+ type: "vectorSearch";
110
+ fields: [{
111
+ path: string;
112
+ type: "filter";
113
+ } | {
114
+ path: string;
115
+ type: "vector";
116
+ numDimensions?: number | undefined;
117
+ similarity?: "cosine" | "euclidean" | "dotProduct" | undefined;
118
+ quantization?: "binary" | "none" | "scalar" | undefined;
119
+ }, ...({
120
+ path: string;
121
+ type: "filter";
122
+ } | {
123
+ path: string;
124
+ type: "vector";
125
+ numDimensions?: number | undefined;
126
+ similarity?: "cosine" | "euclidean" | "dotProduct" | undefined;
127
+ quantization?: "binary" | "none" | "scalar" | undefined;
128
+ })[]];
129
+ }>[]]>, "many">;
12
130
  database: z.ZodString;
13
131
  collection: z.ZodString;
14
132
  };
15
133
  operationType: OperationType;
16
- protected execute({ database, collection, keys, name, }: ToolArgs<typeof this.argsShape>): Promise<CallToolResult>;
134
+ protected execute({ database, collection, name, definition: definitions, }: ToolArgs<typeof this.argsShape>): Promise<CallToolResult>;
17
135
  }
18
136
  //# sourceMappingURL=createIndex.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"createIndex.d.ts","sourceRoot":"","sources":["../../../../../src/tools/mongodb/create/createIndex.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;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE9C,qBAAa,eAAgB,SAAQ,eAAe;IACzC,IAAI,SAAkB;IAC7B,SAAS,CAAC,WAAW,SAAsC;IAC3D,SAAS,CAAC,SAAS;;;;;MAIjB;IAEK,aAAa,EAAE,aAAa,CAAY;cAE/B,OAAO,CAAC,EACpB,QAAQ,EACR,UAAU,EACV,IAAI,EACJ,IAAI,GACP,EAAE,QAAQ,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC;CAkB/D"}
1
+ {"version":3,"file":"createIndex.d.ts","sourceRoot":"","sources":["../../../../../src/tools/mongodb/create/createIndex.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;AAErE,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,aAAa,EAAgB,MAAM,eAAe,CAAC;AAChF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE9C,qBAAa,eAAgB,SAAQ,eAAe;IAChD,OAAO,CAAC,2BAA2B,CAyDhC;IAEI,IAAI,SAAkB;IAC7B,SAAS,CAAC,WAAW,SAAsC;IAC3D,SAAS,CAAC,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAgBjB;IAEK,aAAa,EAAE,aAAa,CAAY;cAE/B,OAAO,CAAC,EACpB,QAAQ,EACR,UAAU,EACV,IAAI,EACJ,UAAU,EAAE,WAAW,GAC1B,EAAE,QAAQ,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC;CAkE/D"}
@@ -3,27 +3,120 @@ import { DbOperationArgs, MongoDBToolBase } from "../mongodbTool.js";
3
3
  export class CreateIndexTool extends MongoDBToolBase {
4
4
  constructor() {
5
5
  super(...arguments);
6
+ this.vectorSearchIndexDefinition = z.object({
7
+ type: z.literal("vectorSearch"),
8
+ fields: z
9
+ .array(z.discriminatedUnion("type", [
10
+ z
11
+ .object({
12
+ type: z.literal("filter"),
13
+ path: z
14
+ .string()
15
+ .describe("Name of the field to index. For nested fields, use dot notation to specify path to embedded fields"),
16
+ })
17
+ .strict()
18
+ .describe("Definition for a field that will be used for pre-filtering results."),
19
+ z
20
+ .object({
21
+ type: z.literal("vector"),
22
+ path: z
23
+ .string()
24
+ .describe("Name of the field to index. For nested fields, use dot notation to specify path to embedded fields"),
25
+ numDimensions: z
26
+ .number()
27
+ .min(1)
28
+ .max(8192)
29
+ .default(this.config.vectorSearchDimensions)
30
+ .describe("Number of vector dimensions that MongoDB Vector Search enforces at index-time and query-time"),
31
+ similarity: z
32
+ .enum(["cosine", "euclidean", "dotProduct"])
33
+ .default(this.config.vectorSearchSimilarityFunction)
34
+ .describe("Vector similarity function to use to search for top K-nearest neighbors. You can set this field only for vector-type fields."),
35
+ quantization: z
36
+ .enum(["none", "scalar", "binary"])
37
+ .optional()
38
+ .default("none")
39
+ .describe("Type of automatic vector quantization for your vectors. Use this setting only if your embeddings are float or double vectors."),
40
+ })
41
+ .strict()
42
+ .describe("Definition for a field that contains vector embeddings."),
43
+ ]))
44
+ .nonempty()
45
+ .refine((fields) => fields.some((f) => f.type === "vector"), {
46
+ message: "At least one vector field must be defined",
47
+ })
48
+ .describe("Definitions for the vector and filter fields to index, one definition per document. You must specify `vector` for fields that contain vector embeddings and `filter` for additional fields to filter on. At least one vector-type field definition is required."),
49
+ });
6
50
  this.name = "create-index";
7
51
  this.description = "Create an index for a collection";
8
52
  this.argsShape = {
9
53
  ...DbOperationArgs,
10
- keys: z.object({}).catchall(z.custom()).describe("The index definition"),
11
54
  name: z.string().optional().describe("The name of the index"),
55
+ definition: z
56
+ .array(z.discriminatedUnion("type", [
57
+ z.object({
58
+ type: z.literal("classic"),
59
+ keys: z.object({}).catchall(z.custom()).describe("The index definition"),
60
+ }),
61
+ ...(this.isFeatureFlagEnabled("vectorSearch" /* FeatureFlags.VectorSearch */) ? [this.vectorSearchIndexDefinition] : []),
62
+ ]))
63
+ .describe("The index definition. Use 'classic' for standard indexes and 'vectorSearch' for vector search indexes"),
12
64
  };
13
65
  this.operationType = "create";
14
66
  }
15
- async execute({ database, collection, keys, name, }) {
67
+ async execute({ database, collection, name, definition: definitions, }) {
16
68
  const provider = await this.ensureConnected();
17
- const indexes = await provider.createIndexes(database, collection, [
18
- {
19
- key: keys,
20
- name,
21
- },
22
- ]);
69
+ let indexes = [];
70
+ const definition = definitions[0];
71
+ if (!definition) {
72
+ throw new Error("Index definition not provided. Expected one of the following: `classic`, `vectorSearch`");
73
+ }
74
+ let responseClarification = "";
75
+ switch (definition.type) {
76
+ case "classic":
77
+ indexes = await provider.createIndexes(database, collection, [
78
+ {
79
+ key: definition.keys,
80
+ name,
81
+ },
82
+ ]);
83
+ break;
84
+ case "vectorSearch":
85
+ {
86
+ const isVectorSearchSupported = await this.session.isSearchSupported();
87
+ if (!isVectorSearchSupported) {
88
+ // TODO: remove hacky casts once we merge the local dev tools
89
+ const isLocalAtlasAvailable = (this.server?.tools.filter((t) => t.category === "atlas-local")
90
+ .length ?? 0) > 0;
91
+ const CTA = isLocalAtlasAvailable ? "`atlas-local` tools" : "Atlas CLI";
92
+ return {
93
+ content: [
94
+ {
95
+ text: `The connected MongoDB deployment does not support vector search indexes. Either connect to a MongoDB Atlas cluster or use the ${CTA} to create and manage a local Atlas deployment.`,
96
+ type: "text",
97
+ },
98
+ ],
99
+ isError: true,
100
+ };
101
+ }
102
+ indexes = await provider.createSearchIndexes(database, collection, [
103
+ {
104
+ name,
105
+ definition: {
106
+ fields: definition.fields,
107
+ },
108
+ type: "vectorSearch",
109
+ },
110
+ ]);
111
+ responseClarification =
112
+ " Since this is a vector search index, it may take a while for the index to build. Use the `list-indexes` tool to check the index status.";
113
+ }
114
+ break;
115
+ }
23
116
  return {
24
117
  content: [
25
118
  {
26
- text: `Created the index "${indexes[0]}" on collection "${collection}" in database "${database}"`,
119
+ text: `Created the index "${indexes[0]}" on collection "${collection}" in database "${database}".${responseClarification}`,
27
120
  type: "text",
28
121
  },
29
122
  ],
@@ -1 +1 @@
1
- {"version":3,"file":"createIndex.js","sourceRoot":"","sources":["../../../../../src/tools/mongodb/create/createIndex.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAIrE,MAAM,OAAO,eAAgB,SAAQ,eAAe;IAApD;;QACW,SAAI,GAAG,cAAc,CAAC;QACnB,gBAAW,GAAG,kCAAkC,CAAC;QACjD,cAAS,GAAG;YAClB,GAAG,eAAe;YAClB,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAkB,CAAC,CAAC,QAAQ,CAAC,sBAAsB,CAAC;YACxF,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;SAChE,CAAC;QAEK,kBAAa,GAAkB,QAAQ,CAAC;IAyBnD,CAAC;IAvBa,KAAK,CAAC,OAAO,CAAC,EACpB,QAAQ,EACR,UAAU,EACV,IAAI,EACJ,IAAI,GAC0B;QAC9B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAC9C,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,aAAa,CAAC,QAAQ,EAAE,UAAU,EAAE;YAC/D;gBACI,GAAG,EAAE,IAAI;gBACT,IAAI;aACP;SACJ,CAAC,CAAC;QAEH,OAAO;YACH,OAAO,EAAE;gBACL;oBACI,IAAI,EAAE,sBAAsB,OAAO,CAAC,CAAC,CAAC,oBAAoB,UAAU,kBAAkB,QAAQ,GAAG;oBACjG,IAAI,EAAE,MAAM;iBACf;aACJ;SACJ,CAAC;IACN,CAAC;CACJ"}
1
+ {"version":3,"file":"createIndex.js","sourceRoot":"","sources":["../../../../../src/tools/mongodb/create/createIndex.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import z from "zod";
2
+ import type { CallToolResult } from "@modelcontextprotocol/sdk/types.js";
3
+ import { MongoDBToolBase } from "../mongodbTool.js";
4
+ import { type ToolArgs, type OperationType } from "../../tool.js";
5
+ export declare class DropIndexTool extends MongoDBToolBase {
6
+ name: string;
7
+ protected description: string;
8
+ protected argsShape: {
9
+ indexName: z.ZodString;
10
+ database: z.ZodString;
11
+ collection: z.ZodString;
12
+ };
13
+ operationType: OperationType;
14
+ protected execute({ database, collection, indexName, }: ToolArgs<typeof this.argsShape>): Promise<CallToolResult>;
15
+ protected getConfirmationMessage({ database, collection, indexName }: ToolArgs<typeof this.argsShape>): string;
16
+ }
17
+ //# sourceMappingURL=dropIndex.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dropIndex.d.ts","sourceRoot":"","sources":["../../../../../src/tools/mongodb/delete/dropIndex.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAC;AACpB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAmB,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,aAAa,EAAuB,MAAM,eAAe,CAAC;AAEvF,qBAAa,aAAc,SAAQ,eAAe;IACvC,IAAI,SAAgB;IAC3B,SAAS,CAAC,WAAW,SAA6D;IAClF,SAAS,CAAC,SAAS;;;;MAGjB;IACK,aAAa,EAAE,aAAa,CAAY;cAE/B,OAAO,CAAC,EACpB,QAAQ,EACR,UAAU,EACV,SAAS,GACZ,EAAE,QAAQ,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC;IAmB5D,SAAS,CAAC,sBAAsB,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,QAAQ,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,MAAM;CAOjH"}
@@ -0,0 +1,35 @@
1
+ import z from "zod";
2
+ import { DbOperationArgs, MongoDBToolBase } from "../mongodbTool.js";
3
+ import { formatUntrustedData } from "../../tool.js";
4
+ export class DropIndexTool extends MongoDBToolBase {
5
+ constructor() {
6
+ super(...arguments);
7
+ this.name = "drop-index";
8
+ this.description = "Drop an index for the provided database and collection.";
9
+ this.argsShape = {
10
+ ...DbOperationArgs,
11
+ indexName: z.string().nonempty().describe("The name of the index to be dropped."),
12
+ };
13
+ this.operationType = "delete";
14
+ }
15
+ async execute({ database, collection, indexName, }) {
16
+ const provider = await this.ensureConnected();
17
+ const result = await provider.runCommand(database, {
18
+ dropIndexes: collection,
19
+ index: indexName,
20
+ });
21
+ return {
22
+ content: formatUntrustedData(`${result.ok ? "Successfully dropped" : "Failed to drop"} the index from the provided namespace.`, JSON.stringify({
23
+ indexName,
24
+ namespace: `${database}.${collection}`,
25
+ })),
26
+ isError: result.ok ? undefined : true,
27
+ };
28
+ }
29
+ getConfirmationMessage({ database, collection, indexName }) {
30
+ return (`You are about to drop the \`${indexName}\` index from the \`${database}.${collection}\` namespace:\n\n` +
31
+ "This operation will permanently remove the index and might affect the performance of queries relying on this index.\n\n" +
32
+ "**Do you confirm the execution of the action?**");
33
+ }
34
+ }
35
+ //# sourceMappingURL=dropIndex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dropIndex.js","sourceRoot":"","sources":["../../../../../src/tools/mongodb/delete/dropIndex.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAC;AAEpB,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,EAAqC,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEvF,MAAM,OAAO,aAAc,SAAQ,eAAe;IAAlD;;QACW,SAAI,GAAG,YAAY,CAAC;QACjB,gBAAW,GAAG,yDAAyD,CAAC;QACxE,cAAS,GAAG;YAClB,GAAG,eAAe;YAClB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;SACpF,CAAC;QACK,kBAAa,GAAkB,QAAQ,CAAC;IAgCnD,CAAC;IA9Ba,KAAK,CAAC,OAAO,CAAC,EACpB,QAAQ,EACR,UAAU,EACV,SAAS,GACqB;QAC9B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAC9C,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,UAAU,CAAC,QAAQ,EAAE;YAC/C,WAAW,EAAE,UAAU;YACvB,KAAK,EAAE,SAAS;SACnB,CAAC,CAAC;QAEH,OAAO;YACH,OAAO,EAAE,mBAAmB,CACxB,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,gBAAgB,yCAAyC,EACjG,IAAI,CAAC,SAAS,CAAC;gBACX,SAAS;gBACT,SAAS,EAAE,GAAG,QAAQ,IAAI,UAAU,EAAE;aACzC,CAAC,CACL;YACD,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI;SACxC,CAAC;IACN,CAAC;IAES,sBAAsB,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAmC;QACjG,OAAO,CACH,+BAA+B,SAAS,uBAAuB,QAAQ,IAAI,UAAU,mBAAmB;YACxG,yHAAyH;YACzH,iDAAiD,CACpD,CAAC;IACN,CAAC;CACJ"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collectionIndexes.d.ts","sourceRoot":"","sources":["../../../../../src/tools/mongodb/metadata/collectionIndexes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAG7D,qBAAa,qBAAsB,SAAQ,eAAe;IAC/C,IAAI,SAAwB;IACnC,SAAS,CAAC,WAAW,SAA2C;IAChE,SAAS,CAAC,SAAS;;;MAAmB;IAC/B,aAAa,EAAE,aAAa,CAAc;cAEjC,OAAO,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,QAAQ,CAAC,OAAO,eAAe,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC;IAgB5G,SAAS,CAAC,WAAW,CACjB,KAAK,EAAE,OAAO,EACd,IAAI,EAAE,QAAQ,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,GACtC,OAAO,CAAC,cAAc,CAAC,GAAG,cAAc;CAe9C"}
@@ -6,7 +6,7 @@ export class CollectionIndexesTool extends MongoDBToolBase {
6
6
  this.name = "collection-indexes";
7
7
  this.description = "Describe the indexes for a collection";
8
8
  this.argsShape = DbOperationArgs;
9
- this.operationType = "read";
9
+ this.operationType = "metadata";
10
10
  }
11
11
  async execute({ database, collection }) {
12
12
  const provider = await this.ensureConnected();
@@ -28,6 +28,7 @@ export class CollectionIndexesTool extends MongoDBToolBase {
28
28
  type: "text",
29
29
  },
30
30
  ],
31
+ isError: true,
31
32
  };
32
33
  }
33
34
  return super.handleError(error, args);
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collectionIndexes.js","sourceRoot":"","sources":["../../../../../src/tools/mongodb/metadata/collectionIndexes.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAErE,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEpD,MAAM,OAAO,qBAAsB,SAAQ,eAAe;IAA1D;;QACW,SAAI,GAAG,oBAAoB,CAAC;QACzB,gBAAW,GAAG,uCAAuC,CAAC;QACtD,cAAS,GAAG,eAAe,CAAC;QAC/B,kBAAa,GAAkB,UAAU,CAAC;IAoCrD,CAAC;IAlCa,KAAK,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAoC;QAC9E,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAC9C,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAEhE,OAAO;YACH,OAAO,EAAE,mBAAmB,CACxB,SAAS,OAAO,CAAC,MAAM,+BAA+B,UAAU,IAAI,EACpE,OAAO,CAAC,MAAM,GAAG,CAAC;gBACd,CAAC,CAAC,OAAO;qBACF,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,UAAU,KAAK,CAAC,IAAI,kBAAkB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;qBACjF,IAAI,CAAC,IAAI,CAAC;gBACjB,CAAC,CAAC,SAAS,CAClB;SACJ,CAAC;IACN,CAAC;IAES,WAAW,CACjB,KAAc,EACd,IAAqC;QAErC,IAAI,KAAK,YAAY,KAAK,IAAI,UAAU,IAAI,KAAK,IAAI,KAAK,CAAC,QAAQ,KAAK,mBAAmB,EAAE,CAAC;YAC1F,OAAO;gBACH,OAAO,EAAE;oBACL;wBACI,IAAI,EAAE,oBAAoB,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,UAAU,+DAA+D;wBACzH,IAAI,EAAE,MAAM;qBACf;iBACJ;gBACD,OAAO,EAAE,IAAI;aAChB,CAAC;QACN,CAAC;QAED,OAAO,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC1C,CAAC;CACJ"}
@@ -1 +1 @@
1
- {"version":3,"file":"collectionStorageSize.d.ts","sourceRoot":"","sources":["../../../../../src/tools/mongodb/metadata/collectionStorageSize.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE7D,qBAAa,yBAA0B,SAAQ,eAAe;IACnD,IAAI,SAA6B;IACxC,SAAS,CAAC,WAAW,SAAqC;IAC1D,SAAS,CAAC,SAAS;;;MAAmB;IAE/B,aAAa,EAAE,aAAa,CAAc;cAEjC,OAAO,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,QAAQ,CAAC,OAAO,eAAe,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC;IAqB5G,SAAS,CAAC,WAAW,CACjB,KAAK,EAAE,OAAO,EACd,IAAI,EAAE,QAAQ,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,GACtC,OAAO,CAAC,cAAc,CAAC,GAAG,cAAc;IAe3C,OAAO,CAAC,MAAM,CAAC,QAAQ;CAiB1B"}
1
+ {"version":3,"file":"collectionStorageSize.d.ts","sourceRoot":"","sources":["../../../../../src/tools/mongodb/metadata/collectionStorageSize.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE7D,qBAAa,yBAA0B,SAAQ,eAAe;IACnD,IAAI,SAA6B;IACxC,SAAS,CAAC,WAAW,SAAqC;IAC1D,SAAS,CAAC,SAAS;;;MAAmB;IAE/B,aAAa,EAAE,aAAa,CAAc;cAEjC,OAAO,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,QAAQ,CAAC,OAAO,eAAe,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC;IAqB5G,SAAS,CAAC,WAAW,CACjB,KAAK,EAAE,OAAO,EACd,IAAI,EAAE,QAAQ,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,GACtC,OAAO,CAAC,cAAc,CAAC,GAAG,cAAc;IAgB3C,OAAO,CAAC,MAAM,CAAC,QAAQ;CAiB1B"}
@@ -34,6 +34,7 @@ export class CollectionStorageSizeTool extends MongoDBToolBase {
34
34
  type: "text",
35
35
  },
36
36
  ],
37
+ isError: true,
37
38
  };
38
39
  }
39
40
  return super.handleError(error, args);
@@ -1 +1 @@
1
- {"version":3,"file":"collectionStorageSize.js","sourceRoot":"","sources":["../../../../../src/tools/mongodb/metadata/collectionStorageSize.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGrE,MAAM,OAAO,yBAA0B,SAAQ,eAAe;IAA9D;;QACW,SAAI,GAAG,yBAAyB,CAAC;QAC9B,gBAAW,GAAG,iCAAiC,CAAC;QAChD,cAAS,GAAG,eAAe,CAAC;QAE/B,kBAAa,GAAkB,UAAU,CAAC;IA0DrD,CAAC;IAxDa,KAAK,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAoC;QAC9E,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAC9C,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,MAAM,QAAQ;aAC9B,SAAS,CAAC,QAAQ,EAAE,UAAU,EAAE;YAC7B,EAAE,UAAU,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,EAAE;YACpC,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,EAAE,EAAE;SACnE,CAAC;aACD,OAAO,EAAE,CAAwB,CAAC;QAEvC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,yBAAyB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAEhF,OAAO;YACH,OAAO,EAAE;gBACL;oBACI,IAAI,EAAE,gBAAgB,QAAQ,IAAI,UAAU,UAAU,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI;oBACzF,IAAI,EAAE,MAAM;iBACf;aACJ;SACJ,CAAC;IACN,CAAC;IAES,WAAW,CACjB,KAAc,EACd,IAAqC;QAErC,IAAI,KAAK,YAAY,KAAK,IAAI,UAAU,IAAI,KAAK,IAAI,KAAK,CAAC,QAAQ,KAAK,mBAAmB,EAAE,CAAC;YAC1F,OAAO;gBACH,OAAO,EAAE;oBACL;wBACI,IAAI,EAAE,gBAAgB,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,UAAU,+DAA+D;wBACrH,IAAI,EAAE,MAAM;qBACf;iBACJ;aACJ,CAAC;QACN,CAAC;QAED,OAAO,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC1C,CAAC;IAEO,MAAM,CAAC,QAAQ,CAAC,KAAa;QACjC,MAAM,EAAE,GAAG,IAAI,CAAC;QAChB,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QACrB,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QAErB,IAAI,KAAK,GAAG,EAAE,EAAE,CAAC;YACb,OAAO,EAAE,KAAK,EAAE,KAAK,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QAC9C,CAAC;QAED,IAAI,KAAK,GAAG,EAAE,EAAE,CAAC;YACb,OAAO,EAAE,KAAK,EAAE,KAAK,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QAC9C,CAAC;QACD,IAAI,KAAK,GAAG,EAAE,EAAE,CAAC;YACb,OAAO,EAAE,KAAK,EAAE,KAAK,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QAC9C,CAAC;QACD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;IACrC,CAAC;CACJ"}
1
+ {"version":3,"file":"collectionStorageSize.js","sourceRoot":"","sources":["../../../../../src/tools/mongodb/metadata/collectionStorageSize.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGrE,MAAM,OAAO,yBAA0B,SAAQ,eAAe;IAA9D;;QACW,SAAI,GAAG,yBAAyB,CAAC;QAC9B,gBAAW,GAAG,iCAAiC,CAAC;QAChD,cAAS,GAAG,eAAe,CAAC;QAE/B,kBAAa,GAAkB,UAAU,CAAC;IA2DrD,CAAC;IAzDa,KAAK,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAoC;QAC9E,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAC9C,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,MAAM,QAAQ;aAC9B,SAAS,CAAC,QAAQ,EAAE,UAAU,EAAE;YAC7B,EAAE,UAAU,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,EAAE;YACpC,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,EAAE,EAAE;SACnE,CAAC;aACD,OAAO,EAAE,CAAwB,CAAC;QAEvC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,yBAAyB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAEhF,OAAO;YACH,OAAO,EAAE;gBACL;oBACI,IAAI,EAAE,gBAAgB,QAAQ,IAAI,UAAU,UAAU,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI;oBACzF,IAAI,EAAE,MAAM;iBACf;aACJ;SACJ,CAAC;IACN,CAAC;IAES,WAAW,CACjB,KAAc,EACd,IAAqC;QAErC,IAAI,KAAK,YAAY,KAAK,IAAI,UAAU,IAAI,KAAK,IAAI,KAAK,CAAC,QAAQ,KAAK,mBAAmB,EAAE,CAAC;YAC1F,OAAO;gBACH,OAAO,EAAE;oBACL;wBACI,IAAI,EAAE,gBAAgB,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,UAAU,+DAA+D;wBACrH,IAAI,EAAE,MAAM;qBACf;iBACJ;gBACD,OAAO,EAAE,IAAI;aAChB,CAAC;QACN,CAAC;QAED,OAAO,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC1C,CAAC;IAEO,MAAM,CAAC,QAAQ,CAAC,KAAa;QACjC,MAAM,EAAE,GAAG,IAAI,CAAC;QAChB,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QACrB,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QAErB,IAAI,KAAK,GAAG,EAAE,EAAE,CAAC;YACb,OAAO,EAAE,KAAK,EAAE,KAAK,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QAC9C,CAAC;QAED,IAAI,KAAK,GAAG,EAAE,EAAE,CAAC;YACb,OAAO,EAAE,KAAK,EAAE,KAAK,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QAC9C,CAAC;QACD,IAAI,KAAK,GAAG,EAAE,EAAE,CAAC;YACb,OAAO,EAAE,KAAK,EAAE,KAAK,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QAC9C,CAAC;QACD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;IACrC,CAAC;CACJ"}
@@ -9,7 +9,7 @@ export declare const DbOperationArgs: {
9
9
  collection: z.ZodString;
10
10
  };
11
11
  export declare abstract class MongoDBToolBase extends ToolBase {
12
- private server?;
12
+ protected server?: Server;
13
13
  category: ToolCategory;
14
14
  protected ensureConnected(): Promise<NodeDriverServiceProvider>;
15
15
  register(server: Server): boolean;
@@ -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,EAAE,QAAQ,EAAE,YAAY,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAChF,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;AAGzE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAE9C,eAAO,MAAM,eAAe;;;CAG3B,CAAC;AAEF,8BAAsB,eAAgB,SAAQ,QAAQ;IAClD,OAAO,CAAC,MAAM,CAAC,CAAS;IACjB,QAAQ,EAAE,YAAY,CAAa;cAE1B,eAAe,IAAI,OAAO,CAAC,yBAAyB,CAAC;IA8B9D,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAKxC,SAAS,CAAC,WAAW,CACjB,KAAK,EAAE,OAAO,EACd,IAAI,EAAE,QAAQ,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,GACtC,OAAO,CAAC,cAAc,CAAC,GAAG,cAAc;IAkC3C,SAAS,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAInE,SAAS,CAAC,wBAAwB,CAE9B,IAAI,EAAE,QAAQ,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,GACtC,qBAAqB;CAU3B"}
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,EAAE,QAAQ,EAAE,YAAY,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAChF,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;AAGzE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAE9C,eAAO,MAAM,eAAe;;;CAG3B,CAAC;AAEF,8BAAsB,eAAgB,SAAQ,QAAQ;IAClD,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,YAAY,CAAa;cAE1B,eAAe,IAAI,OAAO,CAAC,yBAAyB,CAAC;IA8B9D,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAKxC,SAAS,CAAC,WAAW,CACjB,KAAK,EAAE,OAAO,EACd,IAAI,EAAE,QAAQ,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,GACtC,OAAO,CAAC,cAAc,CAAC,GAAG,cAAc;IAkC3C,SAAS,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAInE,SAAS,CAAC,wBAAwB,CAE9B,IAAI,EAAE,QAAQ,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,GACtC,qBAAqB;CAU3B"}
@@ -0,0 +1,30 @@
1
+ import type { CallToolResult } from "@modelcontextprotocol/sdk/types.js";
2
+ import type { ToolArgs, OperationType } from "../../tool.js";
3
+ import { DbOperationArgs, MongoDBToolBase } from "../mongodbTool.js";
4
+ export type SearchIndexStatus = {
5
+ name: string;
6
+ type: string;
7
+ status: string;
8
+ queryable: boolean;
9
+ latestDefinition: Document;
10
+ };
11
+ export declare class ListSearchIndexesTool extends MongoDBToolBase {
12
+ name: string;
13
+ protected description: string;
14
+ protected argsShape: {
15
+ database: import("zod").ZodString;
16
+ collection: import("zod").ZodString;
17
+ };
18
+ operationType: OperationType;
19
+ protected execute({ database, collection }: ToolArgs<typeof DbOperationArgs>): Promise<CallToolResult>;
20
+ protected verifyAllowed(): boolean;
21
+ /**
22
+ * Atlas Search index status contains a lot of information that is not relevant for the agent at this stage.
23
+ * Like for example, the status on each of the dedicated nodes. We only care about the main status, if it's
24
+ * queryable and the index name. We are also picking the index definition as it can be used by the agent to
25
+ * understand which fields are available for searching.
26
+ **/
27
+ protected pickRelevantInformation(indexes: Record<string, unknown>[]): SearchIndexStatus[];
28
+ protected handleError(error: unknown, args: ToolArgs<typeof DbOperationArgs>): Promise<CallToolResult> | CallToolResult;
29
+ }
30
+ //# sourceMappingURL=listSearchIndexes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"listSearchIndexes.d.ts","sourceRoot":"","sources":["../../../../../src/tools/mongodb/search/listSearchIndexes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAIrE,MAAM,MAAM,iBAAiB,GAAG;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;IACnB,gBAAgB,EAAE,QAAQ,CAAC;CAC9B,CAAC;AAEF,qBAAa,qBAAsB,SAAQ,eAAe;IAC/C,IAAI,SAAyB;IACpC,SAAS,CAAC,WAAW,SAA4E;IACjG,SAAS,CAAC,SAAS;;;MAAmB;IAC/B,aAAa,EAAE,aAAa,CAAc;cAEjC,OAAO,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,QAAQ,CAAC,OAAO,eAAe,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC;IAsB5G,SAAS,CAAC,aAAa,IAAI,OAAO;IAKlC;;;;;QAKI;IACJ,SAAS,CAAC,uBAAuB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,iBAAiB,EAAE;IAU1F,SAAS,CAAC,WAAW,CACjB,KAAK,EAAE,OAAO,EACd,IAAI,EAAE,QAAQ,CAAC,OAAO,eAAe,CAAC,GACvC,OAAO,CAAC,cAAc,CAAC,GAAG,cAAc;CAc9C"}
@@ -0,0 +1,61 @@
1
+ import { DbOperationArgs, MongoDBToolBase } from "../mongodbTool.js";
2
+ import { formatUntrustedData } from "../../tool.js";
3
+ import { EJSON } from "bson";
4
+ export class ListSearchIndexesTool extends MongoDBToolBase {
5
+ constructor() {
6
+ super(...arguments);
7
+ this.name = "list-search-indexes";
8
+ this.description = "Describes the search and vector search indexes for a single collection";
9
+ this.argsShape = DbOperationArgs;
10
+ this.operationType = "metadata";
11
+ }
12
+ async execute({ database, collection }) {
13
+ const provider = await this.ensureConnected();
14
+ const indexes = await provider.getSearchIndexes(database, collection);
15
+ const trimmedIndexDefinitions = this.pickRelevantInformation(indexes);
16
+ if (trimmedIndexDefinitions.length > 0) {
17
+ return {
18
+ content: formatUntrustedData(`Found ${trimmedIndexDefinitions.length} search and vector search indexes in ${database}.${collection}`, trimmedIndexDefinitions.map((index) => EJSON.stringify(index)).join("\n")),
19
+ };
20
+ }
21
+ else {
22
+ return {
23
+ content: formatUntrustedData("Could not retrieve search indexes", `There are no search or vector search indexes in ${database}.${collection}`),
24
+ };
25
+ }
26
+ }
27
+ verifyAllowed() {
28
+ // Only enable this on tests for now.
29
+ return process.env.VITEST === "true";
30
+ }
31
+ /**
32
+ * Atlas Search index status contains a lot of information that is not relevant for the agent at this stage.
33
+ * Like for example, the status on each of the dedicated nodes. We only care about the main status, if it's
34
+ * queryable and the index name. We are also picking the index definition as it can be used by the agent to
35
+ * understand which fields are available for searching.
36
+ **/
37
+ pickRelevantInformation(indexes) {
38
+ return indexes.map((index) => ({
39
+ name: (index["name"] ?? "default"),
40
+ type: (index["type"] ?? "UNKNOWN"),
41
+ status: (index["status"] ?? "UNKNOWN"),
42
+ queryable: (index["queryable"] ?? false),
43
+ latestDefinition: index["latestDefinition"],
44
+ }));
45
+ }
46
+ handleError(error, args) {
47
+ if (error instanceof Error && "codeName" in error && error.codeName === "SearchNotEnabled") {
48
+ return {
49
+ content: [
50
+ {
51
+ text: "This MongoDB cluster does not support Search Indexes. Make sure you are using an Atlas Cluster, either remotely in Atlas or using the Atlas Local image, or your cluster supports MongoDB Search.",
52
+ type: "text",
53
+ isError: true,
54
+ },
55
+ ],
56
+ };
57
+ }
58
+ return super.handleError(error, args);
59
+ }
60
+ }
61
+ //# sourceMappingURL=listSearchIndexes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"listSearchIndexes.js","sourceRoot":"","sources":["../../../../../src/tools/mongodb/search/listSearchIndexes.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,KAAK,EAAE,MAAM,MAAM,CAAC;AAU7B,MAAM,OAAO,qBAAsB,SAAQ,eAAe;IAA1D;;QACW,SAAI,GAAG,qBAAqB,CAAC;QAC1B,gBAAW,GAAG,wEAAwE,CAAC;QACvF,cAAS,GAAG,eAAe,CAAC;QAC/B,kBAAa,GAAkB,UAAU,CAAC;IA8DrD,CAAC;IA5Da,KAAK,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAoC;QAC9E,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAC9C,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QACtE,MAAM,uBAAuB,GAAG,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC;QAEtE,IAAI,uBAAuB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrC,OAAO;gBACH,OAAO,EAAE,mBAAmB,CACxB,SAAS,uBAAuB,CAAC,MAAM,wCAAwC,QAAQ,IAAI,UAAU,EAAE,EACvG,uBAAuB,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAC5E;aACJ,CAAC;QACN,CAAC;aAAM,CAAC;YACJ,OAAO;gBACH,OAAO,EAAE,mBAAmB,CACxB,mCAAmC,EACnC,mDAAmD,QAAQ,IAAI,UAAU,EAAE,CAC9E;aACJ,CAAC;QACN,CAAC;IACL,CAAC;IAES,aAAa;QACnB,qCAAqC;QACrC,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,KAAK,MAAM,CAAC;IACzC,CAAC;IAED;;;;;QAKI;IACM,uBAAuB,CAAC,OAAkC;QAChE,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAC3B,IAAI,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,SAAS,CAAW;YAC5C,IAAI,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,SAAS,CAAW;YAC5C,MAAM,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,SAAS,CAAW;YAChD,SAAS,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,KAAK,CAAY;YACnD,gBAAgB,EAAE,KAAK,CAAC,kBAAkB,CAAa;SAC1D,CAAC,CAAC,CAAC;IACR,CAAC;IAES,WAAW,CACjB,KAAc,EACd,IAAsC;QAEtC,IAAI,KAAK,YAAY,KAAK,IAAI,UAAU,IAAI,KAAK,IAAI,KAAK,CAAC,QAAQ,KAAK,kBAAkB,EAAE,CAAC;YACzF,OAAO;gBACH,OAAO,EAAE;oBACL;wBACI,IAAI,EAAE,mMAAmM;wBACzM,IAAI,EAAE,MAAM;wBACZ,OAAO,EAAE,IAAI;qBAChB;iBACJ;aACJ,CAAC;QACN,CAAC;QACD,OAAO,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC1C,CAAC;CACJ"}
@@ -1,6 +1,6 @@
1
1
  import { ConnectTool } from "./connect/connect.js";
2
2
  import { ListCollectionsTool } from "./metadata/listCollections.js";
3
- import { CollectionIndexesTool } from "./read/collectionIndexes.js";
3
+ import { CollectionIndexesTool } from "./metadata/collectionIndexes.js";
4
4
  import { ListDatabasesTool } from "./metadata/listDatabases.js";
5
5
  import { CreateIndexTool } from "./create/createIndex.js";
6
6
  import { CollectionSchemaTool } from "./metadata/collectionSchema.js";
@@ -19,5 +19,7 @@ import { ExplainTool } from "./metadata/explain.js";
19
19
  import { CreateCollectionTool } from "./create/createCollection.js";
20
20
  import { LogsTool } from "./metadata/logs.js";
21
21
  import { ExportTool } from "./read/export.js";
22
- export declare const MongoDbTools: (typeof ConnectTool | typeof ListCollectionsTool | typeof CollectionIndexesTool | typeof ListDatabasesTool | typeof CreateIndexTool | typeof CollectionSchemaTool | typeof FindTool | typeof InsertManyTool | typeof DeleteManyTool | typeof CollectionStorageSizeTool | typeof CountTool | typeof DbStatsTool | typeof AggregateTool | typeof UpdateManyTool | typeof RenameCollectionTool | typeof DropDatabaseTool | typeof DropCollectionTool | typeof ExplainTool | typeof CreateCollectionTool | typeof LogsTool | typeof ExportTool)[];
22
+ import { ListSearchIndexesTool } from "./search/listSearchIndexes.js";
23
+ import { DropIndexTool } from "./delete/dropIndex.js";
24
+ export declare const MongoDbTools: (typeof ConnectTool | typeof ListCollectionsTool | typeof CollectionIndexesTool | typeof ListDatabasesTool | typeof CreateIndexTool | typeof CollectionSchemaTool | typeof FindTool | typeof InsertManyTool | typeof DeleteManyTool | typeof CollectionStorageSizeTool | typeof CountTool | typeof DbStatsTool | typeof AggregateTool | typeof UpdateManyTool | typeof RenameCollectionTool | typeof DropDatabaseTool | typeof DropCollectionTool | typeof ExplainTool | typeof CreateCollectionTool | typeof LogsTool | typeof ExportTool | typeof ListSearchIndexesTool | typeof DropIndexTool)[];
23
25
  //# sourceMappingURL=tools.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../../../src/tools/mongodb/tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,yBAAyB,EAAE,MAAM,qCAAqC,CAAC;AAChF,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,eAAO,MAAM,YAAY,+gBAsBxB,CAAC"}
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../../../src/tools/mongodb/tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,yBAAyB,EAAE,MAAM,qCAAqC,CAAC;AAChF,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtD,eAAO,MAAM,YAAY,qkBAwBxB,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { ConnectTool } from "./connect/connect.js";
2
2
  import { ListCollectionsTool } from "./metadata/listCollections.js";
3
- import { CollectionIndexesTool } from "./read/collectionIndexes.js";
3
+ import { CollectionIndexesTool } from "./metadata/collectionIndexes.js";
4
4
  import { ListDatabasesTool } from "./metadata/listDatabases.js";
5
5
  import { CreateIndexTool } from "./create/createIndex.js";
6
6
  import { CollectionSchemaTool } from "./metadata/collectionSchema.js";
@@ -19,11 +19,14 @@ import { ExplainTool } from "./metadata/explain.js";
19
19
  import { CreateCollectionTool } from "./create/createCollection.js";
20
20
  import { LogsTool } from "./metadata/logs.js";
21
21
  import { ExportTool } from "./read/export.js";
22
+ import { ListSearchIndexesTool } from "./search/listSearchIndexes.js";
23
+ import { DropIndexTool } from "./delete/dropIndex.js";
22
24
  export const MongoDbTools = [
23
25
  ConnectTool,
24
26
  ListCollectionsTool,
25
27
  ListDatabasesTool,
26
28
  CollectionIndexesTool,
29
+ DropIndexTool,
27
30
  CreateIndexTool,
28
31
  CollectionSchemaTool,
29
32
  FindTool,
@@ -41,5 +44,6 @@ export const MongoDbTools = [
41
44
  CreateCollectionTool,
42
45
  LogsTool,
43
46
  ExportTool,
47
+ ListSearchIndexesTool,
44
48
  ];
45
49
  //# sourceMappingURL=tools.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../../src/tools/mongodb/tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,yBAAyB,EAAE,MAAM,qCAAqC,CAAC;AAChF,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,MAAM,CAAC,MAAM,YAAY,GAAG;IACxB,WAAW;IACX,mBAAmB;IACnB,iBAAiB;IACjB,qBAAqB;IACrB,eAAe;IACf,oBAAoB;IACpB,QAAQ;IACR,cAAc;IACd,cAAc;IACd,yBAAyB;IACzB,SAAS;IACT,WAAW;IACX,aAAa;IACb,cAAc;IACd,oBAAoB;IACpB,gBAAgB;IAChB,kBAAkB;IAClB,WAAW;IACX,oBAAoB;IACpB,QAAQ;IACR,UAAU;CACb,CAAC"}
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../../src/tools/mongodb/tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,yBAAyB,EAAE,MAAM,qCAAqC,CAAC;AAChF,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtD,MAAM,CAAC,MAAM,YAAY,GAAG;IACxB,WAAW;IACX,mBAAmB;IACnB,iBAAiB;IACjB,qBAAqB;IACrB,aAAa;IACb,eAAe;IACf,oBAAoB;IACpB,QAAQ;IACR,cAAc;IACd,cAAc;IACd,yBAAyB;IACzB,SAAS;IACT,WAAW;IACX,aAAa;IACb,cAAc;IACd,oBAAoB;IACpB,gBAAgB;IAChB,kBAAkB;IAClB,WAAW;IACX,oBAAoB;IACpB,QAAQ;IACR,UAAU;IACV,qBAAqB;CACxB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"renameCollection.d.ts","sourceRoot":"","sources":["../../../../../src/tools/mongodb/update/renameCollection.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,qBAAa,oBAAqB,SAAQ,eAAe;IAC9C,IAAI,SAAuB;IAClC,SAAS,CAAC,WAAW,SAAgD;IACrE,SAAS,CAAC,SAAS;;;;;MAIjB;IACK,aAAa,EAAE,aAAa,CAAY;cAE/B,OAAO,CAAC,EACpB,QAAQ,EACR,UAAU,EACV,OAAO,EACP,UAAU,GACb,EAAE,QAAQ,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC;IAgB5D,SAAS,CAAC,WAAW,CACjB,KAAK,EAAE,OAAO,EACd,IAAI,EAAE,QAAQ,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,GACtC,OAAO,CAAC,cAAc,CAAC,GAAG,cAAc;CA0B9C"}
1
+ {"version":3,"file":"renameCollection.d.ts","sourceRoot":"","sources":["../../../../../src/tools/mongodb/update/renameCollection.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,qBAAa,oBAAqB,SAAQ,eAAe;IAC9C,IAAI,SAAuB;IAClC,SAAS,CAAC,WAAW,SAAgD;IACrE,SAAS,CAAC,SAAS;;;;;MAIjB;IACK,aAAa,EAAE,aAAa,CAAY;cAE/B,OAAO,CAAC,EACpB,QAAQ,EACR,UAAU,EACV,OAAO,EACP,UAAU,GACb,EAAE,QAAQ,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC;IAgB5D,SAAS,CAAC,WAAW,CACjB,KAAK,EAAE,OAAO,EACd,IAAI,EAAE,QAAQ,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,GACtC,OAAO,CAAC,cAAc,CAAC,GAAG,cAAc;CA4B9C"}
@@ -37,6 +37,7 @@ export class RenameCollectionTool extends MongoDBToolBase {
37
37
  type: "text",
38
38
  },
39
39
  ],
40
+ isError: true,
40
41
  };
41
42
  case "NamespaceExists":
42
43
  return {
@@ -46,6 +47,7 @@ export class RenameCollectionTool extends MongoDBToolBase {
46
47
  type: "text",
47
48
  },
48
49
  ],
50
+ isError: true,
49
51
  };
50
52
  }
51
53
  }