mongodb-mcp-server 1.1.0 → 1.3.0-pre.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (506) hide show
  1. package/README.md +64 -28
  2. package/dist/cjs/common/atlas/accessListUtils.js +1 -1
  3. package/dist/cjs/common/atlas/accessListUtils.js.map +1 -1
  4. package/dist/cjs/common/atlas/apiClient.d.ts +30 -26
  5. package/dist/cjs/common/atlas/apiClient.d.ts.map +1 -1
  6. package/dist/cjs/common/atlas/apiClient.js +12 -12
  7. package/dist/cjs/common/atlas/apiClient.js.map +1 -1
  8. package/dist/cjs/common/atlas/cluster.d.ts +7 -2
  9. package/dist/cjs/common/atlas/cluster.d.ts.map +1 -1
  10. package/dist/cjs/common/atlas/cluster.js +18 -4
  11. package/dist/cjs/common/atlas/cluster.js.map +1 -1
  12. package/dist/cjs/common/atlas/performanceAdvisorUtils.js +2 -2
  13. package/dist/cjs/common/atlas/performanceAdvisorUtils.js.map +1 -1
  14. package/dist/cjs/common/atlas/roles.d.ts +1 -1
  15. package/dist/cjs/common/atlas/roles.d.ts.map +1 -1
  16. package/dist/cjs/common/atlasLocal.d.ts +4 -0
  17. package/dist/cjs/common/atlasLocal.d.ts.map +1 -0
  18. package/dist/cjs/common/atlasLocal.js +57 -0
  19. package/dist/cjs/common/atlasLocal.js.map +1 -0
  20. package/dist/cjs/common/config/argsParserOptions.d.ts +12 -0
  21. package/dist/cjs/common/config/argsParserOptions.d.ts.map +1 -0
  22. package/dist/cjs/common/config/argsParserOptions.js +103 -0
  23. package/dist/cjs/common/config/argsParserOptions.js.map +1 -0
  24. package/dist/cjs/common/config/configOverrides.d.ts +30 -0
  25. package/dist/cjs/common/config/configOverrides.d.ts.map +1 -0
  26. package/dist/cjs/common/config/configOverrides.js +145 -0
  27. package/dist/cjs/common/config/configOverrides.js.map +1 -0
  28. package/dist/cjs/common/config/configUtils.d.ts +43 -0
  29. package/dist/cjs/common/config/configUtils.d.ts.map +1 -0
  30. package/dist/cjs/common/config/configUtils.js +178 -0
  31. package/dist/cjs/common/config/configUtils.js.map +1 -0
  32. package/dist/cjs/common/config/createUserConfig.d.ts +10 -0
  33. package/dist/cjs/common/config/createUserConfig.d.ts.map +1 -0
  34. package/dist/cjs/common/config/createUserConfig.js +156 -0
  35. package/dist/cjs/common/config/createUserConfig.js.map +1 -0
  36. package/dist/cjs/common/config/userConfig.d.ts +54 -0
  37. package/dist/cjs/common/config/userConfig.d.ts.map +1 -0
  38. package/dist/cjs/common/config/userConfig.js +180 -0
  39. package/dist/cjs/common/config/userConfig.js.map +1 -0
  40. package/dist/cjs/common/connectionErrorHandler.d.ts.map +1 -1
  41. package/dist/cjs/common/connectionErrorHandler.js +15 -6
  42. package/dist/cjs/common/connectionErrorHandler.js.map +1 -1
  43. package/dist/cjs/common/connectionManager.d.ts +6 -5
  44. package/dist/cjs/common/connectionManager.d.ts.map +1 -1
  45. package/dist/cjs/common/connectionManager.js +29 -19
  46. package/dist/cjs/common/connectionManager.js.map +1 -1
  47. package/dist/cjs/common/errors.d.ts +6 -1
  48. package/dist/cjs/common/errors.d.ts.map +1 -1
  49. package/dist/cjs/common/errors.js +5 -0
  50. package/dist/cjs/common/errors.js.map +1 -1
  51. package/dist/cjs/common/exportsManager.d.ts +1 -1
  52. package/dist/cjs/common/exportsManager.d.ts.map +1 -1
  53. package/dist/cjs/common/logger.d.ts +2 -0
  54. package/dist/cjs/common/logger.d.ts.map +1 -1
  55. package/dist/cjs/common/logger.js +2 -0
  56. package/dist/cjs/common/logger.js.map +1 -1
  57. package/dist/cjs/common/packageInfo.js +1 -1
  58. package/dist/cjs/common/packageInfo.js.map +1 -1
  59. package/dist/cjs/common/schemas.d.ts +5 -0
  60. package/dist/cjs/common/schemas.d.ts.map +1 -0
  61. package/dist/cjs/common/schemas.js +6 -0
  62. package/dist/cjs/common/schemas.js.map +1 -0
  63. package/dist/cjs/common/search/embeddingsProvider.d.ts +10 -0
  64. package/dist/cjs/common/search/embeddingsProvider.d.ts.map +1 -0
  65. package/dist/cjs/common/search/embeddingsProvider.js +45 -0
  66. package/dist/cjs/common/search/embeddingsProvider.js.map +1 -0
  67. package/dist/cjs/common/search/vectorSearchEmbeddingsManager.d.ts +67 -0
  68. package/dist/cjs/common/search/vectorSearchEmbeddingsManager.d.ts.map +1 -0
  69. package/dist/cjs/common/search/vectorSearchEmbeddingsManager.js +188 -0
  70. package/dist/cjs/common/search/vectorSearchEmbeddingsManager.js.map +1 -0
  71. package/dist/cjs/common/session.d.ts +14 -5
  72. package/dist/cjs/common/session.d.ts.map +1 -1
  73. package/dist/cjs/common/session.js +28 -8
  74. package/dist/cjs/common/session.js.map +1 -1
  75. package/dist/cjs/helpers/assertVectorSearchFilterFieldsAreIndexed.d.ts +27 -0
  76. package/dist/cjs/helpers/assertVectorSearchFilterFieldsAreIndexed.d.ts.map +1 -0
  77. package/dist/cjs/helpers/assertVectorSearchFilterFieldsAreIndexed.js +58 -0
  78. package/dist/cjs/helpers/assertVectorSearchFilterFieldsAreIndexed.js.map +1 -0
  79. package/dist/cjs/index.d.ts +2 -1
  80. package/dist/cjs/index.d.ts.map +1 -1
  81. package/dist/cjs/index.js +44 -16
  82. package/dist/cjs/index.js.map +1 -1
  83. package/dist/cjs/lib.d.ts +6 -2
  84. package/dist/cjs/lib.d.ts.map +1 -1
  85. package/dist/cjs/lib.js +10 -4
  86. package/dist/cjs/lib.js.map +1 -1
  87. package/dist/cjs/resources/common/config.d.ts +1 -1
  88. package/dist/cjs/resources/common/config.d.ts.map +1 -1
  89. package/dist/cjs/resources/common/config.js +4 -3
  90. package/dist/cjs/resources/common/config.js.map +1 -1
  91. package/dist/cjs/resources/resource.d.ts +1 -1
  92. package/dist/cjs/resources/resource.d.ts.map +1 -1
  93. package/dist/cjs/server.d.ts +26 -5
  94. package/dist/cjs/server.d.ts.map +1 -1
  95. package/dist/cjs/server.js +7 -23
  96. package/dist/cjs/server.js.map +1 -1
  97. package/dist/cjs/telemetry/telemetry.d.ts +1 -1
  98. package/dist/cjs/telemetry/telemetry.d.ts.map +1 -1
  99. package/dist/cjs/telemetry/types.d.ts +22 -4
  100. package/dist/cjs/telemetry/types.d.ts.map +1 -1
  101. package/dist/cjs/tools/args.d.ts +1 -0
  102. package/dist/cjs/tools/args.d.ts.map +1 -1
  103. package/dist/cjs/tools/args.js +1 -0
  104. package/dist/cjs/tools/args.js.map +1 -1
  105. package/dist/cjs/tools/atlas/atlasTool.d.ts +3 -2
  106. package/dist/cjs/tools/atlas/atlasTool.d.ts.map +1 -1
  107. package/dist/cjs/tools/atlas/atlasTool.js +3 -3
  108. package/dist/cjs/tools/atlas/atlasTool.js.map +1 -1
  109. package/dist/cjs/tools/atlas/connect/connectCluster.d.ts +6 -1
  110. package/dist/cjs/tools/atlas/connect/connectCluster.d.ts.map +1 -1
  111. package/dist/cjs/tools/atlas/connect/connectCluster.js +46 -21
  112. package/dist/cjs/tools/atlas/connect/connectCluster.js.map +1 -1
  113. package/dist/cjs/tools/atlas/create/createAccessList.js +1 -1
  114. package/dist/cjs/tools/atlas/create/createAccessList.js.map +1 -1
  115. package/dist/cjs/tools/atlas/create/createProject.d.ts +0 -4
  116. package/dist/cjs/tools/atlas/create/createProject.d.ts.map +1 -1
  117. package/dist/cjs/tools/atlas/create/createProject.js +5 -8
  118. package/dist/cjs/tools/atlas/create/createProject.js.map +1 -1
  119. package/dist/cjs/tools/atlas/read/getPerformanceAdvisor.d.ts +4 -1
  120. package/dist/cjs/tools/atlas/read/getPerformanceAdvisor.d.ts.map +1 -1
  121. package/dist/cjs/tools/atlas/read/getPerformanceAdvisor.js +7 -1
  122. package/dist/cjs/tools/atlas/read/getPerformanceAdvisor.js.map +1 -1
  123. package/dist/cjs/tools/atlas/read/inspectAccessList.d.ts.map +1 -1
  124. package/dist/cjs/tools/atlas/read/inspectAccessList.js +7 -8
  125. package/dist/cjs/tools/atlas/read/inspectAccessList.js.map +1 -1
  126. package/dist/cjs/tools/atlas/read/inspectCluster.d.ts.map +1 -1
  127. package/dist/cjs/tools/atlas/read/inspectCluster.js +9 -3
  128. package/dist/cjs/tools/atlas/read/inspectCluster.js.map +1 -1
  129. package/dist/cjs/tools/atlas/read/listAlerts.d.ts.map +1 -1
  130. package/dist/cjs/tools/atlas/read/listAlerts.js +9 -13
  131. package/dist/cjs/tools/atlas/read/listAlerts.js.map +1 -1
  132. package/dist/cjs/tools/atlas/read/listClusters.d.ts.map +1 -1
  133. package/dist/cjs/tools/atlas/read/listClusters.js +9 -25
  134. package/dist/cjs/tools/atlas/read/listClusters.js.map +1 -1
  135. package/dist/cjs/tools/atlas/read/listDBUsers.d.ts.map +1 -1
  136. package/dist/cjs/tools/atlas/read/listDBUsers.js +13 -23
  137. package/dist/cjs/tools/atlas/read/listDBUsers.js.map +1 -1
  138. package/dist/cjs/tools/atlas/read/listOrgs.d.ts.map +1 -1
  139. package/dist/cjs/tools/atlas/read/listOrgs.js +6 -11
  140. package/dist/cjs/tools/atlas/read/listOrgs.js.map +1 -1
  141. package/dist/cjs/tools/atlas/read/listProjects.d.ts +0 -3
  142. package/dist/cjs/tools/atlas/read/listProjects.d.ts.map +1 -1
  143. package/dist/cjs/tools/atlas/read/listProjects.js +18 -23
  144. package/dist/cjs/tools/atlas/read/listProjects.js.map +1 -1
  145. package/dist/cjs/tools/atlasLocal/atlasLocalTool.d.ts +20 -0
  146. package/dist/cjs/tools/atlasLocal/atlasLocalTool.d.ts.map +1 -0
  147. package/dist/cjs/tools/atlasLocal/atlasLocalTool.js +109 -0
  148. package/dist/cjs/tools/atlasLocal/atlasLocalTool.js.map +1 -0
  149. package/dist/cjs/tools/atlasLocal/connect/connectDeployment.d.ts +16 -0
  150. package/dist/cjs/tools/atlasLocal/connect/connectDeployment.d.ts.map +1 -0
  151. package/dist/cjs/tools/atlasLocal/connect/connectDeployment.js +38 -0
  152. package/dist/cjs/tools/atlasLocal/connect/connectDeployment.js.map +1 -0
  153. package/dist/cjs/tools/atlasLocal/create/createDeployment.d.ts +14 -0
  154. package/dist/cjs/tools/atlasLocal/create/createDeployment.d.ts.map +1 -0
  155. package/dist/cjs/tools/atlasLocal/create/createDeployment.js +41 -0
  156. package/dist/cjs/tools/atlasLocal/create/createDeployment.js.map +1 -0
  157. package/dist/cjs/tools/atlasLocal/delete/deleteDeployment.d.ts +14 -0
  158. package/dist/cjs/tools/atlasLocal/delete/deleteDeployment.d.ts.map +1 -0
  159. package/dist/cjs/tools/atlasLocal/delete/deleteDeployment.js +32 -0
  160. package/dist/cjs/tools/atlasLocal/delete/deleteDeployment.js.map +1 -0
  161. package/dist/cjs/tools/atlasLocal/read/listDeployments.d.ts +13 -0
  162. package/dist/cjs/tools/atlasLocal/read/listDeployments.d.ts.map +1 -0
  163. package/dist/cjs/tools/atlasLocal/read/listDeployments.js +42 -0
  164. package/dist/cjs/tools/atlasLocal/read/listDeployments.js.map +1 -0
  165. package/dist/cjs/tools/atlasLocal/tools.d.ts +6 -0
  166. package/dist/cjs/tools/atlasLocal/tools.d.ts.map +1 -0
  167. package/dist/cjs/tools/atlasLocal/tools.js +9 -0
  168. package/dist/cjs/tools/atlasLocal/tools.js.map +1 -0
  169. package/dist/cjs/tools/index.d.ts +7 -0
  170. package/dist/cjs/tools/index.d.ts.map +1 -0
  171. package/dist/cjs/tools/index.js +14 -0
  172. package/dist/cjs/tools/index.js.map +1 -0
  173. package/dist/cjs/tools/mongodb/connect/connect.d.ts +4 -10
  174. package/dist/cjs/tools/mongodb/connect/connect.d.ts.map +1 -1
  175. package/dist/cjs/tools/mongodb/connect/connect.js +17 -70
  176. package/dist/cjs/tools/mongodb/connect/connect.js.map +1 -1
  177. package/dist/cjs/tools/mongodb/connect/switchConnection.d.ts +17 -0
  178. package/dist/cjs/tools/mongodb/connect/switchConnection.d.ts.map +1 -0
  179. package/dist/cjs/tools/mongodb/connect/switchConnection.js +52 -0
  180. package/dist/cjs/tools/mongodb/connect/switchConnection.js.map +1 -0
  181. package/dist/cjs/tools/mongodb/create/createIndex.d.ts +1 -1
  182. package/dist/cjs/tools/mongodb/create/createIndex.d.ts.map +1 -1
  183. package/dist/cjs/tools/mongodb/create/createIndex.js +9 -22
  184. package/dist/cjs/tools/mongodb/create/createIndex.js.map +1 -1
  185. package/dist/cjs/tools/mongodb/create/insertMany.d.ts +22 -2
  186. package/dist/cjs/tools/mongodb/create/insertMany.d.ts.map +1 -1
  187. package/dist/cjs/tools/mongodb/create/insertMany.js +88 -12
  188. package/dist/cjs/tools/mongodb/create/insertMany.js.map +1 -1
  189. package/dist/cjs/tools/mongodb/delete/dropIndex.d.ts +5 -2
  190. package/dist/cjs/tools/mongodb/delete/dropIndex.d.ts.map +1 -1
  191. package/dist/cjs/tools/mongodb/delete/dropIndex.js +36 -3
  192. package/dist/cjs/tools/mongodb/delete/dropIndex.js.map +1 -1
  193. package/dist/cjs/tools/mongodb/metadata/collectionIndexes.d.ts +15 -0
  194. package/dist/cjs/tools/mongodb/metadata/collectionIndexes.d.ts.map +1 -1
  195. package/dist/cjs/tools/mongodb/metadata/collectionIndexes.js +30 -5
  196. package/dist/cjs/tools/mongodb/metadata/collectionIndexes.js.map +1 -1
  197. package/dist/cjs/tools/mongodb/metadata/collectionSchema.js +1 -1
  198. package/dist/cjs/tools/mongodb/metadata/explain.d.ts +192 -10
  199. package/dist/cjs/tools/mongodb/metadata/explain.d.ts.map +1 -1
  200. package/dist/cjs/tools/mongodb/metadata/explain.js +1 -1
  201. package/dist/cjs/tools/mongodb/metadata/explain.js.map +1 -1
  202. package/dist/cjs/tools/mongodb/metadata/listDatabases.d.ts.map +1 -1
  203. package/dist/cjs/tools/mongodb/metadata/listDatabases.js +1 -3
  204. package/dist/cjs/tools/mongodb/metadata/listDatabases.js.map +1 -1
  205. package/dist/cjs/tools/mongodb/mongodbSchemas.d.ts +155 -0
  206. package/dist/cjs/tools/mongodb/mongodbSchemas.d.ts.map +1 -0
  207. package/dist/cjs/tools/mongodb/mongodbSchemas.js +69 -0
  208. package/dist/cjs/tools/mongodb/mongodbSchemas.js.map +1 -0
  209. package/dist/cjs/tools/mongodb/mongodbTool.d.ts +14 -3
  210. package/dist/cjs/tools/mongodb/mongodbTool.d.ts.map +1 -1
  211. package/dist/cjs/tools/mongodb/mongodbTool.js +31 -11
  212. package/dist/cjs/tools/mongodb/mongodbTool.js.map +1 -1
  213. package/dist/cjs/tools/mongodb/read/aggregate.d.ts +218 -4
  214. package/dist/cjs/tools/mongodb/read/aggregate.d.ts.map +1 -1
  215. package/dist/cjs/tools/mongodb/read/aggregate.js +125 -18
  216. package/dist/cjs/tools/mongodb/read/aggregate.js.map +1 -1
  217. package/dist/cjs/tools/mongodb/read/export.d.ts +192 -10
  218. package/dist/cjs/tools/mongodb/read/export.d.ts.map +1 -1
  219. package/dist/cjs/tools/mongodb/read/export.js +3 -1
  220. package/dist/cjs/tools/mongodb/read/export.js.map +1 -1
  221. package/dist/cjs/tools/mongodb/read/find.js +2 -2
  222. package/dist/cjs/tools/mongodb/read/find.js.map +1 -1
  223. package/dist/cjs/tools/mongodb/tools.d.ts +2 -2
  224. package/dist/cjs/tools/mongodb/tools.d.ts.map +1 -1
  225. package/dist/cjs/tools/mongodb/tools.js +2 -2
  226. package/dist/cjs/tools/mongodb/tools.js.map +1 -1
  227. package/dist/cjs/tools/tool.d.ts +14 -24
  228. package/dist/cjs/tools/tool.d.ts.map +1 -1
  229. package/dist/cjs/tools/tool.js +44 -54
  230. package/dist/cjs/tools/tool.js.map +1 -1
  231. package/dist/cjs/transports/base.d.ts +25 -3
  232. package/dist/cjs/transports/base.d.ts.map +1 -1
  233. package/dist/cjs/transports/base.js +41 -10
  234. package/dist/cjs/transports/base.js.map +1 -1
  235. package/dist/cjs/transports/dryModeRunner.d.ts +19 -0
  236. package/dist/cjs/transports/dryModeRunner.d.ts.map +1 -0
  237. package/dist/cjs/transports/dryModeRunner.js +37 -0
  238. package/dist/cjs/transports/dryModeRunner.js.map +1 -0
  239. package/dist/cjs/transports/inMemoryTransport.d.ts +18 -0
  240. package/dist/cjs/transports/inMemoryTransport.d.ts.map +1 -0
  241. package/dist/cjs/transports/inMemoryTransport.js +43 -0
  242. package/dist/cjs/transports/inMemoryTransport.js.map +1 -0
  243. package/dist/cjs/transports/streamableHttp.d.ts.map +1 -1
  244. package/dist/cjs/transports/streamableHttp.js +5 -1
  245. package/dist/cjs/transports/streamableHttp.js.map +1 -1
  246. package/dist/esm/common/atlas/accessListUtils.js +1 -1
  247. package/dist/esm/common/atlas/accessListUtils.js.map +1 -1
  248. package/dist/esm/common/atlas/apiClient.d.ts +30 -26
  249. package/dist/esm/common/atlas/apiClient.d.ts.map +1 -1
  250. package/dist/esm/common/atlas/apiClient.js +12 -12
  251. package/dist/esm/common/atlas/apiClient.js.map +1 -1
  252. package/dist/esm/common/atlas/cluster.d.ts +7 -2
  253. package/dist/esm/common/atlas/cluster.d.ts.map +1 -1
  254. package/dist/esm/common/atlas/cluster.js +17 -4
  255. package/dist/esm/common/atlas/cluster.js.map +1 -1
  256. package/dist/esm/common/atlas/performanceAdvisorUtils.js +2 -2
  257. package/dist/esm/common/atlas/performanceAdvisorUtils.js.map +1 -1
  258. package/dist/esm/common/atlas/roles.d.ts +1 -1
  259. package/dist/esm/common/atlas/roles.d.ts.map +1 -1
  260. package/dist/esm/common/atlasLocal.d.ts +4 -0
  261. package/dist/esm/common/atlasLocal.d.ts.map +1 -0
  262. package/dist/esm/common/atlasLocal.js +20 -0
  263. package/dist/esm/common/atlasLocal.js.map +1 -0
  264. package/dist/esm/common/config/argsParserOptions.d.ts +12 -0
  265. package/dist/esm/common/config/argsParserOptions.d.ts.map +1 -0
  266. package/dist/esm/common/config/argsParserOptions.js +100 -0
  267. package/dist/esm/common/config/argsParserOptions.js.map +1 -0
  268. package/dist/esm/common/config/configOverrides.d.ts +30 -0
  269. package/dist/esm/common/config/configOverrides.d.ts.map +1 -0
  270. package/dist/esm/common/config/configOverrides.js +139 -0
  271. package/dist/esm/common/config/configOverrides.js.map +1 -0
  272. package/dist/esm/common/config/configUtils.d.ts +43 -0
  273. package/dist/esm/common/config/configUtils.d.ts.map +1 -0
  274. package/dist/esm/common/config/configUtils.js +130 -0
  275. package/dist/esm/common/config/configUtils.js.map +1 -0
  276. package/dist/esm/common/config/createUserConfig.d.ts +10 -0
  277. package/dist/esm/common/config/createUserConfig.d.ts.map +1 -0
  278. package/dist/esm/common/config/createUserConfig.js +149 -0
  279. package/dist/esm/common/config/createUserConfig.js.map +1 -0
  280. package/dist/esm/common/config/userConfig.d.ts +54 -0
  281. package/dist/esm/common/config/userConfig.d.ts.map +1 -0
  282. package/dist/esm/common/config/userConfig.js +177 -0
  283. package/dist/esm/common/config/userConfig.js.map +1 -0
  284. package/dist/esm/common/connectionErrorHandler.d.ts.map +1 -1
  285. package/dist/esm/common/connectionErrorHandler.js +15 -6
  286. package/dist/esm/common/connectionErrorHandler.js.map +1 -1
  287. package/dist/esm/common/connectionManager.d.ts +6 -5
  288. package/dist/esm/common/connectionManager.d.ts.map +1 -1
  289. package/dist/esm/common/connectionManager.js +28 -18
  290. package/dist/esm/common/connectionManager.js.map +1 -1
  291. package/dist/esm/common/errors.d.ts +6 -1
  292. package/dist/esm/common/errors.d.ts.map +1 -1
  293. package/dist/esm/common/errors.js +5 -0
  294. package/dist/esm/common/errors.js.map +1 -1
  295. package/dist/esm/common/exportsManager.d.ts +1 -1
  296. package/dist/esm/common/exportsManager.d.ts.map +1 -1
  297. package/dist/esm/common/logger.d.ts +2 -0
  298. package/dist/esm/common/logger.d.ts.map +1 -1
  299. package/dist/esm/common/logger.js +2 -0
  300. package/dist/esm/common/logger.js.map +1 -1
  301. package/dist/esm/common/packageInfo.js +1 -1
  302. package/dist/esm/common/packageInfo.js.map +1 -1
  303. package/dist/esm/common/schemas.d.ts +5 -0
  304. package/dist/esm/common/schemas.d.ts.map +1 -0
  305. package/dist/esm/common/schemas.js +3 -0
  306. package/dist/esm/common/schemas.js.map +1 -0
  307. package/dist/esm/common/search/embeddingsProvider.d.ts +10 -0
  308. package/dist/esm/common/search/embeddingsProvider.d.ts.map +1 -0
  309. package/dist/esm/common/search/embeddingsProvider.js +39 -0
  310. package/dist/esm/common/search/embeddingsProvider.js.map +1 -0
  311. package/dist/esm/common/search/vectorSearchEmbeddingsManager.d.ts +67 -0
  312. package/dist/esm/common/search/vectorSearchEmbeddingsManager.d.ts.map +1 -0
  313. package/dist/esm/common/search/vectorSearchEmbeddingsManager.js +181 -0
  314. package/dist/esm/common/search/vectorSearchEmbeddingsManager.js.map +1 -0
  315. package/dist/esm/common/session.d.ts +14 -5
  316. package/dist/esm/common/session.d.ts.map +1 -1
  317. package/dist/esm/common/session.js +28 -8
  318. package/dist/esm/common/session.js.map +1 -1
  319. package/dist/esm/helpers/assertVectorSearchFilterFieldsAreIndexed.d.ts +27 -0
  320. package/dist/esm/helpers/assertVectorSearchFilterFieldsAreIndexed.d.ts.map +1 -0
  321. package/dist/esm/helpers/assertVectorSearchFilterFieldsAreIndexed.js +54 -0
  322. package/dist/esm/helpers/assertVectorSearchFilterFieldsAreIndexed.js.map +1 -0
  323. package/dist/esm/index.d.ts +2 -1
  324. package/dist/esm/index.d.ts.map +1 -1
  325. package/dist/esm/index.js +40 -13
  326. package/dist/esm/index.js.map +1 -1
  327. package/dist/esm/lib.d.ts +6 -2
  328. package/dist/esm/lib.d.ts.map +1 -1
  329. package/dist/esm/lib.js +5 -2
  330. package/dist/esm/lib.js.map +1 -1
  331. package/dist/esm/resources/common/config.d.ts +1 -1
  332. package/dist/esm/resources/common/config.d.ts.map +1 -1
  333. package/dist/esm/resources/common/config.js +4 -3
  334. package/dist/esm/resources/common/config.js.map +1 -1
  335. package/dist/esm/resources/resource.d.ts +1 -1
  336. package/dist/esm/resources/resource.d.ts.map +1 -1
  337. package/dist/esm/server.d.ts +26 -5
  338. package/dist/esm/server.d.ts.map +1 -1
  339. package/dist/esm/server.js +7 -23
  340. package/dist/esm/server.js.map +1 -1
  341. package/dist/esm/telemetry/telemetry.d.ts +1 -1
  342. package/dist/esm/telemetry/telemetry.d.ts.map +1 -1
  343. package/dist/esm/telemetry/types.d.ts +22 -4
  344. package/dist/esm/telemetry/types.d.ts.map +1 -1
  345. package/dist/esm/tools/args.d.ts +1 -0
  346. package/dist/esm/tools/args.d.ts.map +1 -1
  347. package/dist/esm/tools/args.js +1 -0
  348. package/dist/esm/tools/args.js.map +1 -1
  349. package/dist/esm/tools/atlas/atlasTool.d.ts +3 -2
  350. package/dist/esm/tools/atlas/atlasTool.d.ts.map +1 -1
  351. package/dist/esm/tools/atlas/atlasTool.js +3 -3
  352. package/dist/esm/tools/atlas/atlasTool.js.map +1 -1
  353. package/dist/esm/tools/atlas/connect/connectCluster.d.ts +6 -1
  354. package/dist/esm/tools/atlas/connect/connectCluster.d.ts.map +1 -1
  355. package/dist/esm/tools/atlas/connect/connectCluster.js +47 -22
  356. package/dist/esm/tools/atlas/connect/connectCluster.js.map +1 -1
  357. package/dist/esm/tools/atlas/create/createAccessList.js +1 -1
  358. package/dist/esm/tools/atlas/create/createAccessList.js.map +1 -1
  359. package/dist/esm/tools/atlas/create/createProject.d.ts +0 -4
  360. package/dist/esm/tools/atlas/create/createProject.d.ts.map +1 -1
  361. package/dist/esm/tools/atlas/create/createProject.js +4 -7
  362. package/dist/esm/tools/atlas/create/createProject.js.map +1 -1
  363. package/dist/esm/tools/atlas/read/getPerformanceAdvisor.d.ts +4 -1
  364. package/dist/esm/tools/atlas/read/getPerformanceAdvisor.d.ts.map +1 -1
  365. package/dist/esm/tools/atlas/read/getPerformanceAdvisor.js +7 -1
  366. package/dist/esm/tools/atlas/read/getPerformanceAdvisor.js.map +1 -1
  367. package/dist/esm/tools/atlas/read/inspectAccessList.d.ts.map +1 -1
  368. package/dist/esm/tools/atlas/read/inspectAccessList.js +7 -8
  369. package/dist/esm/tools/atlas/read/inspectAccessList.js.map +1 -1
  370. package/dist/esm/tools/atlas/read/inspectCluster.d.ts.map +1 -1
  371. package/dist/esm/tools/atlas/read/inspectCluster.js +9 -3
  372. package/dist/esm/tools/atlas/read/inspectCluster.js.map +1 -1
  373. package/dist/esm/tools/atlas/read/listAlerts.d.ts.map +1 -1
  374. package/dist/esm/tools/atlas/read/listAlerts.js +9 -13
  375. package/dist/esm/tools/atlas/read/listAlerts.js.map +1 -1
  376. package/dist/esm/tools/atlas/read/listClusters.d.ts.map +1 -1
  377. package/dist/esm/tools/atlas/read/listClusters.js +9 -25
  378. package/dist/esm/tools/atlas/read/listClusters.js.map +1 -1
  379. package/dist/esm/tools/atlas/read/listDBUsers.d.ts.map +1 -1
  380. package/dist/esm/tools/atlas/read/listDBUsers.js +13 -23
  381. package/dist/esm/tools/atlas/read/listDBUsers.js.map +1 -1
  382. package/dist/esm/tools/atlas/read/listOrgs.d.ts.map +1 -1
  383. package/dist/esm/tools/atlas/read/listOrgs.js +6 -11
  384. package/dist/esm/tools/atlas/read/listOrgs.js.map +1 -1
  385. package/dist/esm/tools/atlas/read/listProjects.d.ts +0 -3
  386. package/dist/esm/tools/atlas/read/listProjects.d.ts.map +1 -1
  387. package/dist/esm/tools/atlas/read/listProjects.js +17 -22
  388. package/dist/esm/tools/atlas/read/listProjects.js.map +1 -1
  389. package/dist/esm/tools/atlasLocal/atlasLocalTool.d.ts +20 -0
  390. package/dist/esm/tools/atlasLocal/atlasLocalTool.d.ts.map +1 -0
  391. package/dist/esm/tools/atlasLocal/atlasLocalTool.js +105 -0
  392. package/dist/esm/tools/atlasLocal/atlasLocalTool.js.map +1 -0
  393. package/dist/esm/tools/atlasLocal/connect/connectDeployment.d.ts +16 -0
  394. package/dist/esm/tools/atlasLocal/connect/connectDeployment.d.ts.map +1 -0
  395. package/dist/esm/tools/atlasLocal/connect/connectDeployment.js +34 -0
  396. package/dist/esm/tools/atlasLocal/connect/connectDeployment.js.map +1 -0
  397. package/dist/esm/tools/atlasLocal/create/createDeployment.d.ts +14 -0
  398. package/dist/esm/tools/atlasLocal/create/createDeployment.d.ts.map +1 -0
  399. package/dist/esm/tools/atlasLocal/create/createDeployment.js +37 -0
  400. package/dist/esm/tools/atlasLocal/create/createDeployment.js.map +1 -0
  401. package/dist/esm/tools/atlasLocal/delete/deleteDeployment.d.ts +14 -0
  402. package/dist/esm/tools/atlasLocal/delete/deleteDeployment.d.ts.map +1 -0
  403. package/dist/esm/tools/atlasLocal/delete/deleteDeployment.js +28 -0
  404. package/dist/esm/tools/atlasLocal/delete/deleteDeployment.js.map +1 -0
  405. package/dist/esm/tools/atlasLocal/read/listDeployments.d.ts +13 -0
  406. package/dist/esm/tools/atlasLocal/read/listDeployments.d.ts.map +1 -0
  407. package/dist/esm/tools/atlasLocal/read/listDeployments.js +38 -0
  408. package/dist/esm/tools/atlasLocal/read/listDeployments.js.map +1 -0
  409. package/dist/esm/tools/atlasLocal/tools.d.ts +6 -0
  410. package/dist/esm/tools/atlasLocal/tools.d.ts.map +1 -0
  411. package/dist/esm/tools/atlasLocal/tools.js +6 -0
  412. package/dist/esm/tools/atlasLocal/tools.js.map +1 -0
  413. package/dist/esm/tools/index.d.ts +7 -0
  414. package/dist/esm/tools/index.d.ts.map +1 -0
  415. package/dist/esm/tools/index.js +7 -0
  416. package/dist/esm/tools/index.js.map +1 -0
  417. package/dist/esm/tools/mongodb/connect/connect.d.ts +4 -10
  418. package/dist/esm/tools/mongodb/connect/connect.d.ts.map +1 -1
  419. package/dist/esm/tools/mongodb/connect/connect.js +17 -67
  420. package/dist/esm/tools/mongodb/connect/connect.js.map +1 -1
  421. package/dist/esm/tools/mongodb/connect/switchConnection.d.ts +17 -0
  422. package/dist/esm/tools/mongodb/connect/switchConnection.d.ts.map +1 -0
  423. package/dist/esm/tools/mongodb/connect/switchConnection.js +45 -0
  424. package/dist/esm/tools/mongodb/connect/switchConnection.js.map +1 -0
  425. package/dist/esm/tools/mongodb/create/createIndex.d.ts +1 -1
  426. package/dist/esm/tools/mongodb/create/createIndex.d.ts.map +1 -1
  427. package/dist/esm/tools/mongodb/create/createIndex.js +9 -22
  428. package/dist/esm/tools/mongodb/create/createIndex.js.map +1 -1
  429. package/dist/esm/tools/mongodb/create/insertMany.d.ts +22 -2
  430. package/dist/esm/tools/mongodb/create/insertMany.d.ts.map +1 -1
  431. package/dist/esm/tools/mongodb/create/insertMany.js +88 -12
  432. package/dist/esm/tools/mongodb/create/insertMany.js.map +1 -1
  433. package/dist/esm/tools/mongodb/delete/dropIndex.d.ts +5 -2
  434. package/dist/esm/tools/mongodb/delete/dropIndex.d.ts.map +1 -1
  435. package/dist/esm/tools/mongodb/delete/dropIndex.js +36 -3
  436. package/dist/esm/tools/mongodb/delete/dropIndex.js.map +1 -1
  437. package/dist/esm/tools/mongodb/metadata/collectionIndexes.d.ts +15 -0
  438. package/dist/esm/tools/mongodb/metadata/collectionIndexes.d.ts.map +1 -1
  439. package/dist/esm/tools/mongodb/metadata/collectionIndexes.js +30 -5
  440. package/dist/esm/tools/mongodb/metadata/collectionIndexes.js.map +1 -1
  441. package/dist/esm/tools/mongodb/metadata/collectionSchema.js +1 -1
  442. package/dist/esm/tools/mongodb/metadata/explain.d.ts +192 -10
  443. package/dist/esm/tools/mongodb/metadata/explain.d.ts.map +1 -1
  444. package/dist/esm/tools/mongodb/metadata/explain.js +2 -2
  445. package/dist/esm/tools/mongodb/metadata/explain.js.map +1 -1
  446. package/dist/esm/tools/mongodb/metadata/listDatabases.d.ts.map +1 -1
  447. package/dist/esm/tools/mongodb/metadata/listDatabases.js +1 -3
  448. package/dist/esm/tools/mongodb/metadata/listDatabases.js.map +1 -1
  449. package/dist/esm/tools/mongodb/mongodbSchemas.d.ts +155 -0
  450. package/dist/esm/tools/mongodb/mongodbSchemas.d.ts.map +1 -0
  451. package/dist/esm/tools/mongodb/mongodbSchemas.js +63 -0
  452. package/dist/esm/tools/mongodb/mongodbSchemas.js.map +1 -0
  453. package/dist/esm/tools/mongodb/mongodbTool.d.ts +14 -3
  454. package/dist/esm/tools/mongodb/mongodbTool.d.ts.map +1 -1
  455. package/dist/esm/tools/mongodb/mongodbTool.js +31 -11
  456. package/dist/esm/tools/mongodb/mongodbTool.js.map +1 -1
  457. package/dist/esm/tools/mongodb/read/aggregate.d.ts +218 -4
  458. package/dist/esm/tools/mongodb/read/aggregate.d.ts.map +1 -1
  459. package/dist/esm/tools/mongodb/read/aggregate.js +123 -17
  460. package/dist/esm/tools/mongodb/read/aggregate.js.map +1 -1
  461. package/dist/esm/tools/mongodb/read/export.d.ts +192 -10
  462. package/dist/esm/tools/mongodb/read/export.d.ts.map +1 -1
  463. package/dist/esm/tools/mongodb/read/export.js +4 -2
  464. package/dist/esm/tools/mongodb/read/export.js.map +1 -1
  465. package/dist/esm/tools/mongodb/read/find.js +2 -2
  466. package/dist/esm/tools/mongodb/read/find.js.map +1 -1
  467. package/dist/esm/tools/mongodb/tools.d.ts +2 -2
  468. package/dist/esm/tools/mongodb/tools.d.ts.map +1 -1
  469. package/dist/esm/tools/mongodb/tools.js +2 -2
  470. package/dist/esm/tools/mongodb/tools.js.map +1 -1
  471. package/dist/esm/tools/tool.d.ts +14 -24
  472. package/dist/esm/tools/tool.d.ts.map +1 -1
  473. package/dist/esm/tools/tool.js +44 -54
  474. package/dist/esm/tools/tool.js.map +1 -1
  475. package/dist/esm/transports/base.d.ts +25 -3
  476. package/dist/esm/transports/base.d.ts.map +1 -1
  477. package/dist/esm/transports/base.js +41 -10
  478. package/dist/esm/transports/base.js.map +1 -1
  479. package/dist/esm/transports/dryModeRunner.d.ts +19 -0
  480. package/dist/esm/transports/dryModeRunner.d.ts.map +1 -0
  481. package/dist/esm/transports/dryModeRunner.js +33 -0
  482. package/dist/esm/transports/dryModeRunner.js.map +1 -0
  483. package/dist/esm/transports/inMemoryTransport.d.ts +18 -0
  484. package/dist/esm/transports/inMemoryTransport.d.ts.map +1 -0
  485. package/dist/esm/transports/inMemoryTransport.js +39 -0
  486. package/dist/esm/transports/inMemoryTransport.js.map +1 -0
  487. package/dist/esm/transports/streamableHttp.d.ts.map +1 -1
  488. package/dist/esm/transports/streamableHttp.js +5 -1
  489. package/dist/esm/transports/streamableHttp.js.map +1 -1
  490. package/package.json +60 -39
  491. package/dist/cjs/common/config.d.ts +0 -53
  492. package/dist/cjs/common/config.d.ts.map +0 -1
  493. package/dist/cjs/common/config.js +0 -401
  494. package/dist/cjs/common/config.js.map +0 -1
  495. package/dist/cjs/tools/mongodb/search/listSearchIndexes.d.ts +0 -30
  496. package/dist/cjs/tools/mongodb/search/listSearchIndexes.d.ts.map +0 -1
  497. package/dist/cjs/tools/mongodb/search/listSearchIndexes.js +0 -65
  498. package/dist/cjs/tools/mongodb/search/listSearchIndexes.js.map +0 -1
  499. package/dist/esm/common/config.d.ts +0 -53
  500. package/dist/esm/common/config.d.ts.map +0 -1
  501. package/dist/esm/common/config.js +0 -390
  502. package/dist/esm/common/config.js.map +0 -1
  503. package/dist/esm/tools/mongodb/search/listSearchIndexes.d.ts +0 -30
  504. package/dist/esm/tools/mongodb/search/listSearchIndexes.d.ts.map +0 -1
  505. package/dist/esm/tools/mongodb/search/listSearchIndexes.js +0 -61
  506. package/dist/esm/tools/mongodb/search/listSearchIndexes.js.map +0 -1
@@ -18,7 +18,7 @@ export class MongoDBToolBase extends ToolBase {
18
18
  }
19
19
  if (this.config.connectionString) {
20
20
  try {
21
- await this.connectToMongoDB(this.config.connectionString);
21
+ await this.session.connectToConfiguredConnection();
22
22
  }
23
23
  catch (error) {
24
24
  this.session.logger.error({
@@ -35,6 +35,9 @@ export class MongoDBToolBase extends ToolBase {
35
35
  }
36
36
  return this.session.serviceProvider;
37
37
  }
38
+ ensureSearchIsSupported() {
39
+ return this.session.assertSearchSupported();
40
+ }
38
41
  register(server) {
39
42
  this.server = server;
40
43
  return super.register(server);
@@ -64,22 +67,39 @@ export class MongoDBToolBase extends ToolBase {
64
67
  ],
65
68
  isError: true,
66
69
  };
70
+ case ErrorCodes.AtlasSearchNotSupported: {
71
+ const CTA = this.server?.isToolCategoryAvailable("atlas-local")
72
+ ? "`atlas-local` tools"
73
+ : "Atlas CLI";
74
+ return {
75
+ content: [
76
+ {
77
+ 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.`,
78
+ type: "text",
79
+ },
80
+ ],
81
+ isError: true,
82
+ };
83
+ }
67
84
  }
68
85
  }
69
86
  return super.handleError(error, args);
70
87
  }
71
- connectToMongoDB(connectionString) {
72
- return this.session.connectToMongoDB({ connectionString });
73
- }
88
+ /**
89
+ * Resolves the tool metadata from the arguments passed to the mongoDB tools.
90
+ *
91
+ * Since MongoDB tools are executed against a MongoDB instance, the tool calls will always have the connection information.
92
+ *
93
+ * @param result - The result of the tool call.
94
+ * @param args - The arguments passed to the tool
95
+ * @returns The tool metadata
96
+ */
74
97
  resolveTelemetryMetadata(
75
98
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
76
- args) {
77
- const metadata = {};
78
- // Add projectId to the metadata if running a MongoDB operation to an Atlas cluster
79
- if (this.session.connectedAtlasCluster?.projectId) {
80
- metadata.projectId = this.session.connectedAtlasCluster.projectId;
81
- }
82
- return metadata;
99
+ _result,
100
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
101
+ _args) {
102
+ return this.getConnectionInfoMetadata();
83
103
  }
84
104
  }
85
105
  //# sourceMappingURL=mongodbTool.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mongodbTool.js","sourceRoot":"","sources":["../../../../src/tools/mongodb/mongodbTool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mongodbTool.js","sourceRoot":"","sources":["../../../../src/tools/mongodb/mongodbTool.ts"],"names":[],"mappings":"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"}
@@ -2,15 +2,227 @@ import { z } from "zod";
2
2
  import type { CallToolResult } from "@modelcontextprotocol/sdk/types.js";
3
3
  import { MongoDBToolBase } from "../mongodbTool.js";
4
4
  import type { ToolArgs, OperationType, ToolExecutionContext } from "../../tool.js";
5
- export declare const AggregateArgs: {
6
- pipeline: z.ZodArray<z.AnyZodObject, "many">;
7
- responseBytesLimit: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
5
+ export declare const getAggregateArgs: (vectorSearchEnabled: boolean) => {
6
+ readonly pipeline: z.ZodArray<z.AnyZodObject | z.ZodUnion<[z.AnyZodObject, z.ZodObject<{
7
+ $vectorSearch: z.ZodObject<{
8
+ exact: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
9
+ index: z.ZodString;
10
+ path: z.ZodString;
11
+ queryVector: z.ZodUnion<[z.ZodString, z.ZodArray<z.ZodNumber, "many">]>;
12
+ numCandidates: z.ZodOptional<z.ZodNumber>;
13
+ limit: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
14
+ filter: z.ZodOptional<z.AnyZodObject>;
15
+ embeddingParameters: z.ZodOptional<z.ZodObject<{
16
+ outputDimension: z.ZodOptional<z.ZodEffects<z.ZodDefault<z.ZodUnion<[z.ZodLiteral<"256">, z.ZodLiteral<"512">, z.ZodLiteral<"1024">, z.ZodLiteral<"2048">, z.ZodLiteral<"4096">]>>, number, "256" | "512" | "1024" | "2048" | "4096" | undefined>>;
17
+ outputDtype: z.ZodDefault<z.ZodOptional<z.ZodEnum<["float", "int8", "uint8", "binary", "ubinary"]>>>;
18
+ } & {
19
+ model: z.ZodDefault<z.ZodEnum<["voyage-3-large", "voyage-3.5", "voyage-3.5-lite", "voyage-code-3"]>>;
20
+ }, "strip", z.ZodTypeAny, {
21
+ outputDtype: "binary" | "float" | "int8" | "uint8" | "ubinary";
22
+ model: "voyage-3-large" | "voyage-3.5" | "voyage-3.5-lite" | "voyage-code-3";
23
+ outputDimension?: number | undefined;
24
+ }, {
25
+ outputDimension?: "256" | "512" | "1024" | "2048" | "4096" | undefined;
26
+ outputDtype?: "binary" | "float" | "int8" | "uint8" | "ubinary" | undefined;
27
+ model?: "voyage-3-large" | "voyage-3.5" | "voyage-3.5-lite" | "voyage-code-3" | undefined;
28
+ }>>;
29
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
30
+ exact: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
31
+ index: z.ZodString;
32
+ path: z.ZodString;
33
+ queryVector: z.ZodUnion<[z.ZodString, z.ZodArray<z.ZodNumber, "many">]>;
34
+ numCandidates: z.ZodOptional<z.ZodNumber>;
35
+ limit: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
36
+ filter: z.ZodOptional<z.AnyZodObject>;
37
+ embeddingParameters: z.ZodOptional<z.ZodObject<{
38
+ outputDimension: z.ZodOptional<z.ZodEffects<z.ZodDefault<z.ZodUnion<[z.ZodLiteral<"256">, z.ZodLiteral<"512">, z.ZodLiteral<"1024">, z.ZodLiteral<"2048">, z.ZodLiteral<"4096">]>>, number, "256" | "512" | "1024" | "2048" | "4096" | undefined>>;
39
+ outputDtype: z.ZodDefault<z.ZodOptional<z.ZodEnum<["float", "int8", "uint8", "binary", "ubinary"]>>>;
40
+ } & {
41
+ model: z.ZodDefault<z.ZodEnum<["voyage-3-large", "voyage-3.5", "voyage-3.5-lite", "voyage-code-3"]>>;
42
+ }, "strip", z.ZodTypeAny, {
43
+ outputDtype: "binary" | "float" | "int8" | "uint8" | "ubinary";
44
+ model: "voyage-3-large" | "voyage-3.5" | "voyage-3.5-lite" | "voyage-code-3";
45
+ outputDimension?: number | undefined;
46
+ }, {
47
+ outputDimension?: "256" | "512" | "1024" | "2048" | "4096" | undefined;
48
+ outputDtype?: "binary" | "float" | "int8" | "uint8" | "ubinary" | undefined;
49
+ model?: "voyage-3-large" | "voyage-3.5" | "voyage-3.5-lite" | "voyage-code-3" | undefined;
50
+ }>>;
51
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
52
+ exact: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
53
+ index: z.ZodString;
54
+ path: z.ZodString;
55
+ queryVector: z.ZodUnion<[z.ZodString, z.ZodArray<z.ZodNumber, "many">]>;
56
+ numCandidates: z.ZodOptional<z.ZodNumber>;
57
+ limit: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
58
+ filter: z.ZodOptional<z.AnyZodObject>;
59
+ embeddingParameters: z.ZodOptional<z.ZodObject<{
60
+ outputDimension: z.ZodOptional<z.ZodEffects<z.ZodDefault<z.ZodUnion<[z.ZodLiteral<"256">, z.ZodLiteral<"512">, z.ZodLiteral<"1024">, z.ZodLiteral<"2048">, z.ZodLiteral<"4096">]>>, number, "256" | "512" | "1024" | "2048" | "4096" | undefined>>;
61
+ outputDtype: z.ZodDefault<z.ZodOptional<z.ZodEnum<["float", "int8", "uint8", "binary", "ubinary"]>>>;
62
+ } & {
63
+ model: z.ZodDefault<z.ZodEnum<["voyage-3-large", "voyage-3.5", "voyage-3.5-lite", "voyage-code-3"]>>;
64
+ }, "strip", z.ZodTypeAny, {
65
+ outputDtype: "binary" | "float" | "int8" | "uint8" | "ubinary";
66
+ model: "voyage-3-large" | "voyage-3.5" | "voyage-3.5-lite" | "voyage-code-3";
67
+ outputDimension?: number | undefined;
68
+ }, {
69
+ outputDimension?: "256" | "512" | "1024" | "2048" | "4096" | undefined;
70
+ outputDtype?: "binary" | "float" | "int8" | "uint8" | "ubinary" | undefined;
71
+ model?: "voyage-3-large" | "voyage-3.5" | "voyage-3.5-lite" | "voyage-code-3" | undefined;
72
+ }>>;
73
+ }, z.ZodTypeAny, "passthrough">>;
74
+ }, "strip", z.ZodTypeAny, {
75
+ $vectorSearch: {
76
+ path: string;
77
+ exact: boolean;
78
+ index: string;
79
+ queryVector: string | number[];
80
+ limit: number;
81
+ filter?: {
82
+ [x: string]: any;
83
+ } | undefined;
84
+ numCandidates?: number | undefined;
85
+ embeddingParameters?: {
86
+ outputDtype: "binary" | "float" | "int8" | "uint8" | "ubinary";
87
+ model: "voyage-3-large" | "voyage-3.5" | "voyage-3.5-lite" | "voyage-code-3";
88
+ outputDimension?: number | undefined;
89
+ } | undefined;
90
+ } & {
91
+ [k: string]: unknown;
92
+ };
93
+ }, {
94
+ $vectorSearch: {
95
+ path: string;
96
+ index: string;
97
+ queryVector: string | number[];
98
+ exact?: boolean | undefined;
99
+ filter?: {
100
+ [x: string]: any;
101
+ } | undefined;
102
+ numCandidates?: number | undefined;
103
+ limit?: number | undefined;
104
+ embeddingParameters?: {
105
+ outputDimension?: "256" | "512" | "1024" | "2048" | "4096" | undefined;
106
+ outputDtype?: "binary" | "float" | "int8" | "uint8" | "ubinary" | undefined;
107
+ model?: "voyage-3-large" | "voyage-3.5" | "voyage-3.5-lite" | "voyage-code-3" | undefined;
108
+ } | undefined;
109
+ } & {
110
+ [k: string]: unknown;
111
+ };
112
+ }>]>, "many">;
113
+ readonly responseBytesLimit: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
8
114
  };
9
115
  export declare class AggregateTool extends MongoDBToolBase {
10
116
  name: string;
11
117
  protected description: string;
12
118
  protected argsShape: {
13
- pipeline: z.ZodArray<z.AnyZodObject, "many">;
119
+ pipeline: z.ZodArray<z.AnyZodObject | z.ZodUnion<[z.AnyZodObject, z.ZodObject<{
120
+ $vectorSearch: z.ZodObject<{
121
+ exact: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
122
+ index: z.ZodString;
123
+ path: z.ZodString;
124
+ queryVector: z.ZodUnion<[z.ZodString, z.ZodArray<z.ZodNumber, "many">]>;
125
+ numCandidates: z.ZodOptional<z.ZodNumber>;
126
+ limit: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
127
+ filter: z.ZodOptional<z.AnyZodObject>;
128
+ embeddingParameters: z.ZodOptional<z.ZodObject<{
129
+ outputDimension: z.ZodOptional<z.ZodEffects<z.ZodDefault<z.ZodUnion<[z.ZodLiteral<"256">, z.ZodLiteral<"512">, z.ZodLiteral<"1024">, z.ZodLiteral<"2048">, z.ZodLiteral<"4096">]>>, number, "256" | "512" | "1024" | "2048" | "4096" | undefined>>;
130
+ outputDtype: z.ZodDefault<z.ZodOptional<z.ZodEnum<["float", "int8", "uint8", "binary", "ubinary"]>>>;
131
+ } & {
132
+ model: z.ZodDefault<z.ZodEnum<["voyage-3-large", "voyage-3.5", "voyage-3.5-lite", "voyage-code-3"]>>;
133
+ }, "strip", z.ZodTypeAny, {
134
+ outputDtype: "binary" | "float" | "int8" | "uint8" | "ubinary";
135
+ model: "voyage-3-large" | "voyage-3.5" | "voyage-3.5-lite" | "voyage-code-3";
136
+ outputDimension?: number | undefined;
137
+ }, {
138
+ outputDimension?: "256" | "512" | "1024" | "2048" | "4096" | undefined;
139
+ outputDtype?: "binary" | "float" | "int8" | "uint8" | "ubinary" | undefined;
140
+ model?: "voyage-3-large" | "voyage-3.5" | "voyage-3.5-lite" | "voyage-code-3" | undefined;
141
+ }>>;
142
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
143
+ exact: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
144
+ index: z.ZodString;
145
+ path: z.ZodString;
146
+ queryVector: z.ZodUnion<[z.ZodString, z.ZodArray<z.ZodNumber, "many">]>;
147
+ numCandidates: z.ZodOptional<z.ZodNumber>;
148
+ limit: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
149
+ filter: z.ZodOptional<z.AnyZodObject>;
150
+ embeddingParameters: z.ZodOptional<z.ZodObject<{
151
+ outputDimension: z.ZodOptional<z.ZodEffects<z.ZodDefault<z.ZodUnion<[z.ZodLiteral<"256">, z.ZodLiteral<"512">, z.ZodLiteral<"1024">, z.ZodLiteral<"2048">, z.ZodLiteral<"4096">]>>, number, "256" | "512" | "1024" | "2048" | "4096" | undefined>>;
152
+ outputDtype: z.ZodDefault<z.ZodOptional<z.ZodEnum<["float", "int8", "uint8", "binary", "ubinary"]>>>;
153
+ } & {
154
+ model: z.ZodDefault<z.ZodEnum<["voyage-3-large", "voyage-3.5", "voyage-3.5-lite", "voyage-code-3"]>>;
155
+ }, "strip", z.ZodTypeAny, {
156
+ outputDtype: "binary" | "float" | "int8" | "uint8" | "ubinary";
157
+ model: "voyage-3-large" | "voyage-3.5" | "voyage-3.5-lite" | "voyage-code-3";
158
+ outputDimension?: number | undefined;
159
+ }, {
160
+ outputDimension?: "256" | "512" | "1024" | "2048" | "4096" | undefined;
161
+ outputDtype?: "binary" | "float" | "int8" | "uint8" | "ubinary" | undefined;
162
+ model?: "voyage-3-large" | "voyage-3.5" | "voyage-3.5-lite" | "voyage-code-3" | undefined;
163
+ }>>;
164
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
165
+ exact: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
166
+ index: z.ZodString;
167
+ path: z.ZodString;
168
+ queryVector: z.ZodUnion<[z.ZodString, z.ZodArray<z.ZodNumber, "many">]>;
169
+ numCandidates: z.ZodOptional<z.ZodNumber>;
170
+ limit: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
171
+ filter: z.ZodOptional<z.AnyZodObject>;
172
+ embeddingParameters: z.ZodOptional<z.ZodObject<{
173
+ outputDimension: z.ZodOptional<z.ZodEffects<z.ZodDefault<z.ZodUnion<[z.ZodLiteral<"256">, z.ZodLiteral<"512">, z.ZodLiteral<"1024">, z.ZodLiteral<"2048">, z.ZodLiteral<"4096">]>>, number, "256" | "512" | "1024" | "2048" | "4096" | undefined>>;
174
+ outputDtype: z.ZodDefault<z.ZodOptional<z.ZodEnum<["float", "int8", "uint8", "binary", "ubinary"]>>>;
175
+ } & {
176
+ model: z.ZodDefault<z.ZodEnum<["voyage-3-large", "voyage-3.5", "voyage-3.5-lite", "voyage-code-3"]>>;
177
+ }, "strip", z.ZodTypeAny, {
178
+ outputDtype: "binary" | "float" | "int8" | "uint8" | "ubinary";
179
+ model: "voyage-3-large" | "voyage-3.5" | "voyage-3.5-lite" | "voyage-code-3";
180
+ outputDimension?: number | undefined;
181
+ }, {
182
+ outputDimension?: "256" | "512" | "1024" | "2048" | "4096" | undefined;
183
+ outputDtype?: "binary" | "float" | "int8" | "uint8" | "ubinary" | undefined;
184
+ model?: "voyage-3-large" | "voyage-3.5" | "voyage-3.5-lite" | "voyage-code-3" | undefined;
185
+ }>>;
186
+ }, z.ZodTypeAny, "passthrough">>;
187
+ }, "strip", z.ZodTypeAny, {
188
+ $vectorSearch: {
189
+ path: string;
190
+ exact: boolean;
191
+ index: string;
192
+ queryVector: string | number[];
193
+ limit: number;
194
+ filter?: {
195
+ [x: string]: any;
196
+ } | undefined;
197
+ numCandidates?: number | undefined;
198
+ embeddingParameters?: {
199
+ outputDtype: "binary" | "float" | "int8" | "uint8" | "ubinary";
200
+ model: "voyage-3-large" | "voyage-3.5" | "voyage-3.5-lite" | "voyage-code-3";
201
+ outputDimension?: number | undefined;
202
+ } | undefined;
203
+ } & {
204
+ [k: string]: unknown;
205
+ };
206
+ }, {
207
+ $vectorSearch: {
208
+ path: string;
209
+ index: string;
210
+ queryVector: string | number[];
211
+ exact?: boolean | undefined;
212
+ filter?: {
213
+ [x: string]: any;
214
+ } | undefined;
215
+ numCandidates?: number | undefined;
216
+ limit?: number | undefined;
217
+ embeddingParameters?: {
218
+ outputDimension?: "256" | "512" | "1024" | "2048" | "4096" | undefined;
219
+ outputDtype?: "binary" | "float" | "int8" | "uint8" | "ubinary" | undefined;
220
+ model?: "voyage-3-large" | "voyage-3.5" | "voyage-3.5-lite" | "voyage-code-3" | undefined;
221
+ } | undefined;
222
+ } & {
223
+ [k: string]: unknown;
224
+ };
225
+ }>]>, "many">;
14
226
  responseBytesLimit: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
15
227
  database: z.ZodString;
16
228
  collection: z.ZodString;
@@ -20,6 +232,8 @@ export declare class AggregateTool extends MongoDBToolBase {
20
232
  private safeCloseCursor;
21
233
  private assertOnlyUsesPermittedStages;
22
234
  private countAggregationResultDocuments;
235
+ private replaceRawValuesWithEmbeddingsIfNecessary;
236
+ private isVectorSearchIndexUsed;
23
237
  private generateMessage;
24
238
  }
25
239
  //# sourceMappingURL=aggregate.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"aggregate.d.ts","sourceRoot":"","sources":["../../../../../src/tools/mongodb/read/aggregate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAEzE,OAAO,EAAmB,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAWnF,eAAO,MAAM,aAAa;;;CAMzB,CAAC;AAEF,qBAAa,aAAc,SAAQ,eAAe;IACvC,IAAI,SAAe;IAC1B,SAAS,CAAC,WAAW,SAAqD;IAC1E,SAAS,CAAC,SAAS;;;;;MAGjB;IACK,aAAa,EAAE,aAAa,CAAU;cAE7B,OAAO,CACnB,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,kBAAkB,EAAE,EAAE,QAAQ,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,EACvF,EAAE,MAAM,EAAE,EAAE,oBAAoB,GACjC,OAAO,CAAC,cAAc,CAAC;YA6DZ,eAAe;IAY7B,OAAO,CAAC,6BAA6B;YAsBvB,+BAA+B;IA+B7C,OAAO,CAAC,eAAe;CAqB1B"}
1
+ {"version":3,"file":"aggregate.d.ts","sourceRoot":"","sources":["../../../../../src/tools/mongodb/read/aggregate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAEzE,OAAO,EAAmB,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAiCnF,eAAO,MAAM,gBAAgB,GAAI,qBAAqB,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAS9C,CAAC;AAEhB,qBAAa,aAAc,SAAQ,eAAe;IACvC,IAAI,SAAe;IAC1B,SAAS,CAAC,WAAW,SAAqD;IAC1E,SAAS,CAAC,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAGjB;IACK,aAAa,EAAE,aAAa,CAAU;cAE7B,OAAO,CACnB,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,kBAAkB,EAAE,EAAE,QAAQ,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,EACvF,EAAE,MAAM,EAAE,EAAE,oBAAoB,GACjC,OAAO,CAAC,cAAc,CAAC;YAyFZ,eAAe;YAYf,6BAA6B;YAgC7B,+BAA+B;YA+B/B,yCAAyC;YA6DzC,uBAAuB;IAmCrC,OAAO,CAAC,eAAe;CAqB1B"}
@@ -7,15 +7,34 @@ import { ErrorCodes, MongoDBError } from "../../../common/errors.js";
7
7
  import { collectCursorUntilMaxBytesLimit } from "../../../helpers/collectCursorUntilMaxBytes.js";
8
8
  import { operationWithFallback } from "../../../helpers/operationWithFallback.js";
9
9
  import { AGG_COUNT_MAX_TIME_MS_CAP, ONE_MB, CURSOR_LIMITS_TO_LLM_TEXT } from "../../../helpers/constants.js";
10
- import { zEJSON } from "../../args.js";
11
10
  import { LogId } from "../../../common/logger.js";
12
- export const AggregateArgs = {
13
- pipeline: z.array(zEJSON()).describe("An array of aggregation stages to execute"),
11
+ import { AnyAggregateStage, VectorSearchStage } from "../mongodbSchemas.js";
12
+ import { assertVectorSearchFilterFieldsAreIndexed, } from "../../../helpers/assertVectorSearchFilterFieldsAreIndexed.js";
13
+ const pipelineDescriptionWithVectorSearch = `\
14
+ An array of aggregation stages to execute.
15
+ \`$vectorSearch\` **MUST** be the first stage of the pipeline, or the first stage of a \`$unionWith\` subpipeline.
16
+ ### Usage Rules for \`$vectorSearch\`
17
+ - **Unset embeddings:**
18
+ Unless the user explicitly requests the embeddings, add an \`$unset\` stage **at the end of the pipeline** to remove the embedding field and avoid context limits. **The $unset stage in this situation is mandatory**.
19
+ - **Pre-filtering:**
20
+ If the user requests additional filtering, include filters in \`$vectorSearch.filter\` only for pre-filter fields in the vector index.
21
+ NEVER include fields in $vectorSearch.filter that are not part of the vector index.
22
+ - **Post-filtering:**
23
+ For all remaining filters, add a $match stage after $vectorSearch.
24
+ ### Note to LLM
25
+ - If unsure which fields are filterable, use the collection-indexes tool to determine valid prefilter fields.
26
+ - If no requested filters are valid prefilters, omit the filter key from $vectorSearch.\
27
+ `;
28
+ const genericPipelineDescription = "An array of aggregation stages to execute.";
29
+ export const getAggregateArgs = (vectorSearchEnabled) => ({
30
+ pipeline: z
31
+ .array(vectorSearchEnabled ? z.union([AnyAggregateStage, VectorSearchStage]) : AnyAggregateStage)
32
+ .describe(vectorSearchEnabled ? pipelineDescriptionWithVectorSearch : genericPipelineDescription),
14
33
  responseBytesLimit: z.number().optional().default(ONE_MB).describe(`\
15
- The maximum number of bytes to return in the response. This value is capped by the servers configured maxBytesPerQuery and cannot be exceeded. \
34
+ The maximum number of bytes to return in the response. This value is capped by the server's configured maxBytesPerQuery and cannot be exceeded. \
16
35
  Note to LLM: If the entire aggregation result is required, use the "export" tool instead of increasing this limit.\
17
36
  `),
18
- };
37
+ });
19
38
  export class AggregateTool extends MongoDBToolBase {
20
39
  constructor() {
21
40
  super(...arguments);
@@ -23,7 +42,7 @@ export class AggregateTool extends MongoDBToolBase {
23
42
  this.description = "Run an aggregation against a MongoDB collection";
24
43
  this.argsShape = {
25
44
  ...DbOperationArgs,
26
- ...AggregateArgs,
45
+ ...getAggregateArgs(this.isFeatureEnabled("search")),
27
46
  };
28
47
  this.operationType = "read";
29
48
  }
@@ -31,15 +50,40 @@ export class AggregateTool extends MongoDBToolBase {
31
50
  let aggregationCursor = undefined;
32
51
  try {
33
52
  const provider = await this.ensureConnected();
34
- this.assertOnlyUsesPermittedStages(pipeline);
53
+ await this.assertOnlyUsesPermittedStages(pipeline);
54
+ if (await this.session.isSearchSupported()) {
55
+ assertVectorSearchFilterFieldsAreIndexed({
56
+ searchIndexes: (await provider.getSearchIndexes(database, collection)),
57
+ pipeline,
58
+ logger: this.session.logger,
59
+ });
60
+ }
35
61
  // Check if aggregate operation uses an index if enabled
36
62
  if (this.config.indexCheck) {
37
- await checkIndexUsage(provider, database, collection, "aggregate", async () => {
38
- return provider
39
- .aggregate(database, collection, pipeline, {}, { writeConcern: undefined })
40
- .explain("queryPlanner");
63
+ const [usesVectorSearchIndex, indexName] = await this.isVectorSearchIndexUsed({
64
+ database,
65
+ collection,
66
+ pipeline,
41
67
  });
68
+ switch (usesVectorSearchIndex) {
69
+ case "not-vector-search-query":
70
+ await checkIndexUsage(provider, database, collection, "aggregate", async () => {
71
+ return provider
72
+ .aggregate(database, collection, pipeline, {}, { writeConcern: undefined })
73
+ .explain("queryPlanner");
74
+ });
75
+ break;
76
+ case "non-existent-index":
77
+ throw new MongoDBError(ErrorCodes.AtlasVectorSearchIndexNotFound, `Could not find an index with name "${indexName}" in namespace "${database}.${collection}".`);
78
+ case "valid-index":
79
+ // nothing to do, everything is correct so ready to run the query
80
+ }
42
81
  }
82
+ pipeline = await this.replaceRawValuesWithEmbeddingsIfNecessary({
83
+ database,
84
+ collection,
85
+ pipeline,
86
+ });
43
87
  const cappedResultsPipeline = [...pipeline];
44
88
  if (this.config.maxDocumentsPerQuery > 0) {
45
89
  cappedResultsPipeline.push({ $limit: this.config.maxDocumentsPerQuery });
@@ -69,7 +113,7 @@ export class AggregateTool extends MongoDBToolBase {
69
113
  aggregationResultsCappedByMaxDocumentsLimit ? "config.maxDocumentsPerQuery" : undefined,
70
114
  cursorResults.cappedBy,
71
115
  ].filter((limit) => !!limit),
72
- }), cursorResults.documents.length > 0 ? EJSON.stringify(cursorResults.documents) : undefined),
116
+ }), ...(cursorResults.documents.length > 0 ? [EJSON.stringify(cursorResults.documents)] : [])),
73
117
  };
74
118
  }
75
119
  finally {
@@ -90,8 +134,9 @@ export class AggregateTool extends MongoDBToolBase {
90
134
  });
91
135
  }
92
136
  }
93
- assertOnlyUsesPermittedStages(pipeline) {
137
+ async assertOnlyUsesPermittedStages(pipeline) {
94
138
  const writeOperations = ["update", "create", "delete"];
139
+ const isSearchSupported = await this.session.isSearchSupported();
95
140
  let writeStageForbiddenError = "";
96
141
  if (this.config.readOnly) {
97
142
  writeStageForbiddenError = "In readOnly mode you can not run pipelines with $out or $merge stages.";
@@ -100,13 +145,18 @@ export class AggregateTool extends MongoDBToolBase {
100
145
  writeStageForbiddenError =
101
146
  "When 'create', 'update', or 'delete' operations are disabled, you can not run pipelines with $out or $merge stages.";
102
147
  }
103
- if (!writeStageForbiddenError) {
104
- return;
105
- }
106
148
  for (const stage of pipeline) {
107
- if (stage.$out || stage.$merge) {
149
+ // This validates that in readOnly mode or "write" operations are disabled, we can't use $out or $merge.
150
+ // This is really important because aggregates are the only "multi-faceted" tool in the MQL, where you
151
+ // can both read and write.
152
+ if ((stage.$out || stage.$merge) && writeStageForbiddenError) {
108
153
  throw new MongoDBError(ErrorCodes.ForbiddenWriteOperation, writeStageForbiddenError);
109
154
  }
155
+ // This ensure that you can't use $vectorSearch if the cluster does not support MongoDB Search
156
+ // either in Atlas or in a local cluster.
157
+ if (stage.$vectorSearch && !isSearchSupported) {
158
+ throw new MongoDBError(ErrorCodes.AtlasSearchNotSupported, "Atlas Search is not supported in this cluster.");
159
+ }
110
160
  }
111
161
  }
112
162
  async countAggregationResultDocuments({ provider, database, collection, pipeline, }) {
@@ -126,6 +176,62 @@ export class AggregateTool extends MongoDBToolBase {
126
176
  return totalDocuments;
127
177
  }, undefined);
128
178
  }
179
+ async replaceRawValuesWithEmbeddingsIfNecessary({ database, collection, pipeline, }) {
180
+ for (const stage of pipeline) {
181
+ if ("$vectorSearch" in stage) {
182
+ const { $vectorSearch: vectorSearchStage } = stage;
183
+ if (Array.isArray(vectorSearchStage.queryVector)) {
184
+ continue;
185
+ }
186
+ if (!vectorSearchStage.embeddingParameters) {
187
+ throw new MongoDBError(ErrorCodes.AtlasVectorSearchInvalidQuery, "embeddingModel is mandatory if queryVector is a raw string.");
188
+ }
189
+ const embeddingParameters = vectorSearchStage.embeddingParameters;
190
+ delete vectorSearchStage.embeddingParameters;
191
+ await this.session.vectorSearchEmbeddingsManager.assertVectorSearchIndexExists({
192
+ database,
193
+ collection,
194
+ path: vectorSearchStage.path,
195
+ });
196
+ const [embeddings] = await this.session.vectorSearchEmbeddingsManager.generateEmbeddings({
197
+ rawValues: [vectorSearchStage.queryVector],
198
+ embeddingParameters,
199
+ inputType: "query",
200
+ });
201
+ if (!embeddings) {
202
+ throw new MongoDBError(ErrorCodes.AtlasVectorSearchInvalidQuery, "Failed to generate embeddings for the query vector.");
203
+ }
204
+ // $vectorSearch.queryVector can be a BSON.Binary: that it's not either number or an array.
205
+ // It's not exactly valid from the LLM perspective (they can't provide binaries).
206
+ // That's why we overwrite the stage in an untyped way, as what we expose and what LLMs can use is different.
207
+ vectorSearchStage.queryVector = embeddings;
208
+ }
209
+ }
210
+ await this.session.vectorSearchEmbeddingsManager.assertFieldsHaveCorrectEmbeddings({ database, collection }, pipeline);
211
+ return pipeline;
212
+ }
213
+ async isVectorSearchIndexUsed({ database, collection, pipeline, }) {
214
+ // check if the pipeline contains a $vectorSearch stage
215
+ let usesVectorSearch = false;
216
+ let indexName = "default";
217
+ for (const stage of pipeline) {
218
+ if ("$vectorSearch" in stage) {
219
+ const { $vectorSearch: vectorSearchStage } = stage;
220
+ usesVectorSearch = true;
221
+ indexName = vectorSearchStage.index;
222
+ break;
223
+ }
224
+ }
225
+ if (!usesVectorSearch) {
226
+ return ["not-vector-search-query"];
227
+ }
228
+ const indexExists = await this.session.vectorSearchEmbeddingsManager.indexExists({
229
+ database,
230
+ collection,
231
+ indexName,
232
+ });
233
+ return [indexExists ? "valid-index" : "non-existent-index", indexName];
234
+ }
129
235
  generateMessage({ aggResultsCount, documents, appliedLimits, }) {
130
236
  const appliedLimitText = appliedLimits.length
131
237
  ? `\
@@ -1 +1 @@
1
- {"version":3,"file":"aggregate.js","sourceRoot":"","sources":["../../../../../src/tools/mongodb/read/aggregate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAErE,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAiB,KAAK,EAAE,MAAM,MAAM,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAE,+BAA+B,EAAE,MAAM,gDAAgD,CAAC;AACjG,OAAO,EAAE,qBAAqB,EAAE,MAAM,2CAA2C,CAAC;AAClF,OAAO,EAAE,yBAAyB,EAAE,MAAM,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAC7G,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAElD,MAAM,CAAC,MAAM,aAAa,GAAG;IACzB,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,2CAA2C,CAAC;IACjF,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC;;;CAGtE,CAAC;CACD,CAAC;AAEF,MAAM,OAAO,aAAc,SAAQ,eAAe;IAAlD;;QACW,SAAI,GAAG,WAAW,CAAC;QAChB,gBAAW,GAAG,iDAAiD,CAAC;QAChE,cAAS,GAAG;YAClB,GAAG,eAAe;YAClB,GAAG,aAAa;SACnB,CAAC;QACK,kBAAa,GAAkB,MAAM,CAAC;IAwJjD,CAAC;IAtJa,KAAK,CAAC,OAAO,CACnB,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,kBAAkB,EAAmC,EACvF,EAAE,MAAM,EAAwB;QAEhC,IAAI,iBAAiB,GAAkC,SAAS,CAAC;QACjE,IAAI,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;YAE9C,IAAI,CAAC,6BAA6B,CAAC,QAAQ,CAAC,CAAC;YAE7C,wDAAwD;YACxD,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;gBACzB,MAAM,eAAe,CAAC,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,KAAK,IAAI,EAAE;oBAC1E,OAAO,QAAQ;yBACV,SAAS,CAAC,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC;yBAC1E,OAAO,CAAC,cAAc,CAAC,CAAC;gBACjC,CAAC,CAAC,CAAC;YACP,CAAC;YAED,MAAM,qBAAqB,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC;YAC5C,IAAI,IAAI,CAAC,MAAM,CAAC,oBAAoB,GAAG,CAAC,EAAE,CAAC;gBACvC,qBAAqB,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,oBAAoB,EAAE,CAAC,CAAC;YAC7E,CAAC;YACD,iBAAiB,GAAG,QAAQ,CAAC,SAAS,CAAC,QAAQ,EAAE,UAAU,EAAE,qBAAqB,CAAC,CAAC;YAEpF,MAAM,CAAC,cAAc,EAAE,aAAa,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBACtD,IAAI,CAAC,+BAA+B,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC;gBAClF,+BAA+B,CAAC;oBAC5B,MAAM,EAAE,iBAAiB;oBACzB,0BAA0B,EAAE,IAAI,CAAC,MAAM,CAAC,gBAAgB;oBACxD,sBAAsB,EAAE,kBAAkB;oBAC1C,WAAW,EAAE,MAAM;iBACtB,CAAC;aACL,CAAC,CAAC;YAEH,iEAAiE;YACjE,mDAAmD;YACnD,mEAAmE;YACnE,UAAU;YACV,MAAM,2CAA2C,GAC7C,IAAI,CAAC,MAAM,CAAC,oBAAoB,GAAG,CAAC;gBACpC,CAAC,CAAC,cAAc;gBAChB,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC;YAEtD,OAAO;gBACH,OAAO,EAAE,mBAAmB,CACxB,IAAI,CAAC,eAAe,CAAC;oBACjB,eAAe,EAAE,cAAc;oBAC/B,SAAS,EAAE,aAAa,CAAC,SAAS;oBAClC,aAAa,EAAE;wBACX,2CAA2C,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC,SAAS;wBACvF,aAAa,CAAC,QAAQ;qBACzB,CAAC,MAAM,CAAC,CAAC,KAAK,EAAmD,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;iBAChF,CAAC,EACF,aAAa,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAC5F;aACJ,CAAC;QACN,CAAC;gBAAS,CAAC;YACP,IAAI,iBAAiB,EAAE,CAAC;gBACpB,KAAK,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,CAAC;YACjD,CAAC;QACL,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,eAAe,CAAC,MAAkC;QAC5D,IAAI,CAAC;YACD,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QACzB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC;gBACxB,EAAE,EAAE,KAAK,CAAC,uBAAuB;gBACjC,OAAO,EAAE,gBAAgB;gBACzB,OAAO,EAAE,mCAAmC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;aACvG,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IAEO,6BAA6B,CAAC,QAAmC;QACrE,MAAM,eAAe,GAAoB,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACxE,IAAI,wBAAwB,GAAG,EAAE,CAAC;QAElC,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YACvB,wBAAwB,GAAG,wEAAwE,CAAC;QACxG,CAAC;aAAM,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAkB,CAAC,CAAC,EAAE,CAAC;YAC7F,wBAAwB;gBACpB,qHAAqH,CAAC;QAC9H,CAAC;QAED,IAAI,CAAC,wBAAwB,EAAE,CAAC;YAC5B,OAAO;QACX,CAAC;QAED,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;YAC3B,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;gBAC7B,MAAM,IAAI,YAAY,CAAC,UAAU,CAAC,uBAAuB,EAAE,wBAAwB,CAAC,CAAC;YACzF,CAAC;QACL,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,+BAA+B,CAAC,EAC1C,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,QAAQ,GAMX;QACG,MAAM,uBAAuB,GAAG,CAAC,GAAG,QAAQ,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC,CAAC;QAC5E,OAAO,MAAM,qBAAqB,CAAC,KAAK,IAAiC,EAAE;YACvE,MAAM,kBAAkB,GAAG,MAAM,QAAQ;iBACpC,SAAS,CAAC,QAAQ,EAAE,UAAU,EAAE,uBAAuB,CAAC;iBACxD,SAAS,CAAC,yBAAyB,CAAC;iBACpC,OAAO,EAAE,CAAC;YAEf,MAAM,iBAAiB,GAAY,kBAAkB,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACvG,MAAM,cAAc,GAChB,iBAAiB;gBACjB,OAAO,iBAAiB,KAAK,QAAQ;gBACrC,gBAAgB,IAAI,iBAAiB;gBACrC,OAAO,iBAAiB,CAAC,cAAc,KAAK,QAAQ;gBAChD,CAAC,CAAC,iBAAiB,CAAC,cAAc;gBAClC,CAAC,CAAC,CAAC,CAAC;YAEZ,OAAO,cAAc,CAAC;QAC1B,CAAC,EAAE,SAAS,CAAC,CAAC;IAClB,CAAC;IAEO,eAAe,CAAC,EACpB,eAAe,EACf,SAAS,EACT,aAAa,GAKhB;QACG,MAAM,gBAAgB,GAAG,aAAa,CAAC,MAAM;YACzC,CAAC,CAAC;yCAC2B,aAAa,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,yBAAyB,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;CAEjH;YACW,CAAC,CAAC,EAAE,CAAC;QAET,OAAO;8BACe,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,eAAe;YAC9F,SAAS,CAAC,MAAM,aAAa,gBAAgB,CAAC,CAAC,CAAC,IAAI,gBAAgB,EAAE,CAAC,CAAC,CAAC,GAAG;CACvF,CAAC;IACE,CAAC;CACJ"}
1
+ {"version":3,"file":"aggregate.js","sourceRoot":"","sources":["../../../../../src/tools/mongodb/read/aggregate.ts"],"names":[],"mappings":"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"}