@himanshusinghs/mongodb-mcp-server 1.8.0 → 1.11.0-prerelease.3

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 (716) hide show
  1. package/README.md +106 -50
  2. package/dist/cjs/common/atlas/apiClient.d.ts +97 -214
  3. package/dist/cjs/common/atlas/apiClient.d.ts.map +1 -1
  4. package/dist/cjs/common/atlas/apiClient.js +286 -36
  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 +8 -1
  9. package/dist/cjs/common/atlas/cluster.js.map +1 -1
  10. package/dist/cjs/common/atlas/performanceAdvisorUtils.d.ts.map +1 -1
  11. package/dist/cjs/common/atlas/performanceAdvisorUtils.js +12 -4
  12. package/dist/cjs/common/atlas/performanceAdvisorUtils.js.map +1 -1
  13. package/dist/cjs/common/config/configOverrides.d.ts +3 -0
  14. package/dist/cjs/common/config/configOverrides.d.ts.map +1 -1
  15. package/dist/cjs/common/config/configOverrides.js +15 -11
  16. package/dist/cjs/common/config/configOverrides.js.map +1 -1
  17. package/dist/cjs/common/config/configUtils.d.ts +5 -1
  18. package/dist/cjs/common/config/configUtils.d.ts.map +1 -1
  19. package/dist/cjs/common/config/configUtils.js +21 -51
  20. package/dist/cjs/common/config/configUtils.js.map +1 -1
  21. package/dist/cjs/common/config/parseUserConfig.d.ts +2 -2
  22. package/dist/cjs/common/config/parseUserConfig.d.ts.map +1 -1
  23. package/dist/cjs/common/config/parseUserConfig.js +52 -18
  24. package/dist/cjs/common/config/parseUserConfig.js.map +1 -1
  25. package/dist/cjs/common/config/userConfig.d.ts +125 -116
  26. package/dist/cjs/common/config/userConfig.d.ts.map +1 -1
  27. package/dist/cjs/common/config/userConfig.js +85 -63
  28. package/dist/cjs/common/config/userConfig.js.map +1 -1
  29. package/dist/cjs/common/connectionInfo.d.ts +4 -2
  30. package/dist/cjs/common/connectionInfo.d.ts.map +1 -1
  31. package/dist/cjs/common/connectionInfo.js.map +1 -1
  32. package/dist/cjs/common/connectionManager.d.ts +11 -3
  33. package/dist/cjs/common/connectionManager.d.ts.map +1 -1
  34. package/dist/cjs/common/connectionManager.js +82 -11
  35. package/dist/cjs/common/connectionManager.js.map +1 -1
  36. package/dist/cjs/common/errors.d.ts +1 -2
  37. package/dist/cjs/common/errors.d.ts.map +1 -1
  38. package/dist/cjs/common/errors.js +1 -2
  39. package/dist/cjs/common/errors.js.map +1 -1
  40. package/dist/cjs/common/exportsManager.d.ts +9 -7
  41. package/dist/cjs/common/exportsManager.d.ts.map +1 -1
  42. package/dist/cjs/common/logging/consoleLogger.js +3 -3
  43. package/dist/cjs/common/logging/consoleLogger.js.map +1 -1
  44. package/dist/cjs/common/logging/index.d.ts +2 -0
  45. package/dist/cjs/common/logging/index.d.ts.map +1 -1
  46. package/dist/cjs/common/logging/index.js +5 -1
  47. package/dist/cjs/common/logging/index.js.map +1 -1
  48. package/dist/cjs/common/logging/loggerBase.d.ts +2 -1
  49. package/dist/cjs/common/logging/loggerBase.d.ts.map +1 -1
  50. package/dist/cjs/common/logging/loggerBase.js +11 -0
  51. package/dist/cjs/common/logging/loggerBase.js.map +1 -1
  52. package/dist/cjs/common/logging/loggingDefinitions.d.ts +4 -0
  53. package/dist/cjs/common/logging/loggingDefinitions.d.ts.map +1 -1
  54. package/dist/cjs/common/logging/loggingDefinitions.js +4 -0
  55. package/dist/cjs/common/logging/loggingDefinitions.js.map +1 -1
  56. package/dist/cjs/common/logging/loggingTypes.d.ts +3 -2
  57. package/dist/cjs/common/logging/loggingTypes.d.ts.map +1 -1
  58. package/dist/cjs/common/logging/loggingTypes.js +3 -0
  59. package/dist/cjs/common/logging/loggingTypes.js.map +1 -1
  60. package/dist/cjs/common/logging/mcpLogger.d.ts +1 -2
  61. package/dist/cjs/common/logging/mcpLogger.d.ts.map +1 -1
  62. package/dist/cjs/common/logging/mcpLogger.js +3 -12
  63. package/dist/cjs/common/logging/mcpLogger.js.map +1 -1
  64. package/dist/cjs/common/logging/nullLogger.d.ts +8 -0
  65. package/dist/cjs/common/logging/nullLogger.d.ts.map +1 -0
  66. package/dist/cjs/common/logging/nullLogger.js +14 -0
  67. package/dist/cjs/common/logging/nullLogger.js.map +1 -0
  68. package/dist/cjs/common/metrics/index.d.ts +5 -0
  69. package/dist/cjs/common/metrics/index.d.ts.map +1 -0
  70. package/dist/cjs/common/metrics/index.js +8 -0
  71. package/dist/cjs/common/metrics/index.js.map +1 -0
  72. package/dist/cjs/common/metrics/metricDefinitions.d.ts +15 -0
  73. package/dist/cjs/common/metrics/metricDefinitions.d.ts.map +1 -0
  74. package/dist/cjs/common/metrics/metricDefinitions.js +35 -0
  75. package/dist/cjs/common/metrics/metricDefinitions.js.map +1 -0
  76. package/dist/cjs/common/metrics/metricsTypes.d.ts +15 -0
  77. package/dist/cjs/common/metrics/metricsTypes.d.ts.map +1 -0
  78. package/dist/cjs/common/metrics/metricsTypes.js +3 -0
  79. package/dist/cjs/common/metrics/metricsTypes.js.map +1 -0
  80. package/dist/cjs/common/metrics/prometheusMetrics.d.ts +15 -0
  81. package/dist/cjs/common/metrics/prometheusMetrics.d.ts.map +1 -0
  82. package/dist/cjs/common/metrics/prometheusMetrics.js +25 -0
  83. package/dist/cjs/common/metrics/prometheusMetrics.js.map +1 -0
  84. package/dist/cjs/common/packageInfo.d.ts +3 -0
  85. package/dist/cjs/common/packageInfo.d.ts.map +1 -1
  86. package/dist/cjs/common/packageInfo.js +4 -1
  87. package/dist/cjs/common/packageInfo.js.map +1 -1
  88. package/dist/cjs/common/schemas.d.ts +3 -3
  89. package/dist/cjs/common/schemas.d.ts.map +1 -1
  90. package/dist/cjs/common/schemas.js +3 -3
  91. package/dist/cjs/common/schemas.js.map +1 -1
  92. package/dist/cjs/common/session.d.ts +4 -7
  93. package/dist/cjs/common/session.d.ts.map +1 -1
  94. package/dist/cjs/common/session.js +2 -3
  95. package/dist/cjs/common/session.js.map +1 -1
  96. package/dist/cjs/common/sessionStore.d.ts +57 -16
  97. package/dist/cjs/common/sessionStore.d.ts.map +1 -1
  98. package/dist/cjs/common/sessionStore.js +33 -17
  99. package/dist/cjs/common/sessionStore.js.map +1 -1
  100. package/dist/cjs/elicitation.d.ts +18 -0
  101. package/dist/cjs/elicitation.d.ts.map +1 -1
  102. package/dist/cjs/elicitation.js +31 -1
  103. package/dist/cjs/elicitation.js.map +1 -1
  104. package/dist/cjs/helpers/connectionOptions.d.ts +2 -5
  105. package/dist/cjs/helpers/connectionOptions.d.ts.map +1 -1
  106. package/dist/cjs/helpers/connectionOptions.js +1 -1
  107. package/dist/cjs/helpers/connectionOptions.js.map +1 -1
  108. package/dist/cjs/helpers/deviceId.d.ts +2 -1
  109. package/dist/cjs/helpers/deviceId.d.ts.map +1 -1
  110. package/dist/cjs/helpers/deviceId.js.map +1 -1
  111. package/dist/cjs/index.d.ts.map +1 -1
  112. package/dist/cjs/index.js +12 -3
  113. package/dist/cjs/index.js.map +1 -1
  114. package/dist/cjs/lib.d.ts +20 -12
  115. package/dist/cjs/lib.d.ts.map +1 -1
  116. package/dist/cjs/lib.js +42 -3
  117. package/dist/cjs/lib.js.map +1 -1
  118. package/dist/cjs/server.d.ts +11 -8
  119. package/dist/cjs/server.d.ts.map +1 -1
  120. package/dist/cjs/server.js +15 -9
  121. package/dist/cjs/server.js.map +1 -1
  122. package/dist/cjs/setup/aiTool.d.ts +46 -0
  123. package/dist/cjs/setup/aiTool.d.ts.map +1 -0
  124. package/dist/cjs/setup/aiTool.js +391 -0
  125. package/dist/cjs/setup/aiTool.js.map +1 -0
  126. package/dist/cjs/setup/installSkills.d.ts +42 -0
  127. package/dist/cjs/setup/installSkills.d.ts.map +1 -0
  128. package/dist/cjs/setup/installSkills.js +122 -0
  129. package/dist/cjs/setup/installSkills.js.map +1 -0
  130. package/dist/cjs/setup/setupAiToolsUtils.d.ts +4 -0
  131. package/dist/cjs/setup/setupAiToolsUtils.d.ts.map +1 -0
  132. package/dist/cjs/setup/setupAiToolsUtils.js +28 -0
  133. package/dist/cjs/setup/setupAiToolsUtils.js.map +1 -0
  134. package/dist/cjs/setup/setupMcpServer.d.ts +8 -0
  135. package/dist/cjs/setup/setupMcpServer.d.ts.map +1 -0
  136. package/dist/cjs/setup/setupMcpServer.js +391 -0
  137. package/dist/cjs/setup/setupMcpServer.js.map +1 -0
  138. package/dist/cjs/setup/setupTelemetry.d.ts +99 -0
  139. package/dist/cjs/setup/setupTelemetry.d.ts.map +1 -0
  140. package/dist/cjs/setup/setupTelemetry.js +202 -0
  141. package/dist/cjs/setup/setupTelemetry.js.map +1 -0
  142. package/dist/cjs/telemetry/constants.js +4 -4
  143. package/dist/cjs/telemetry/constants.js.map +1 -1
  144. package/dist/cjs/telemetry/eventCache.d.ts +19 -3
  145. package/dist/cjs/telemetry/eventCache.d.ts.map +1 -1
  146. package/dist/cjs/telemetry/eventCache.js +48 -3
  147. package/dist/cjs/telemetry/eventCache.js.map +1 -1
  148. package/dist/cjs/telemetry/telemetry.d.ts +106 -25
  149. package/dist/cjs/telemetry/telemetry.d.ts.map +1 -1
  150. package/dist/cjs/telemetry/telemetry.js +168 -113
  151. package/dist/cjs/telemetry/telemetry.js.map +1 -1
  152. package/dist/cjs/telemetry/timer.d.ts +12 -0
  153. package/dist/cjs/telemetry/timer.d.ts.map +1 -0
  154. package/dist/cjs/telemetry/timer.js +28 -0
  155. package/dist/cjs/telemetry/timer.js.map +1 -0
  156. package/dist/cjs/telemetry/types.d.ts +69 -11
  157. package/dist/cjs/telemetry/types.d.ts.map +1 -1
  158. package/dist/cjs/tools/args.d.ts +7 -2
  159. package/dist/cjs/tools/args.d.ts.map +1 -1
  160. package/dist/cjs/tools/args.js +6 -3
  161. package/dist/cjs/tools/args.js.map +1 -1
  162. package/dist/cjs/tools/assistant/searchKnowledge.d.ts +2 -14
  163. package/dist/cjs/tools/assistant/searchKnowledge.d.ts.map +1 -1
  164. package/dist/cjs/tools/atlas/connect/connectCluster.d.ts +10 -2
  165. package/dist/cjs/tools/atlas/connect/connectCluster.d.ts.map +1 -1
  166. package/dist/cjs/tools/atlas/connect/connectCluster.js +3 -0
  167. package/dist/cjs/tools/atlas/connect/connectCluster.js.map +1 -1
  168. package/dist/cjs/tools/atlas/create/createAccessList.d.ts +4 -4
  169. package/dist/cjs/tools/atlas/create/createDBUser.d.ts +4 -20
  170. package/dist/cjs/tools/atlas/create/createDBUser.d.ts.map +1 -1
  171. package/dist/cjs/tools/atlas/read/getPerformanceAdvisor.d.ts +7 -2
  172. package/dist/cjs/tools/atlas/read/getPerformanceAdvisor.d.ts.map +1 -1
  173. package/dist/cjs/tools/atlas/read/listAlerts.d.ts +18 -3
  174. package/dist/cjs/tools/atlas/read/listAlerts.d.ts.map +1 -1
  175. package/dist/cjs/tools/atlas/read/listAlerts.js +21 -3
  176. package/dist/cjs/tools/atlas/read/listAlerts.js.map +1 -1
  177. package/dist/cjs/tools/atlas/read/listProjects.d.ts.map +1 -1
  178. package/dist/cjs/tools/atlas/read/listProjects.js +10 -1
  179. package/dist/cjs/tools/atlas/read/listProjects.js.map +1 -1
  180. package/dist/cjs/tools/atlas/streams/build.d.ts +149 -0
  181. package/dist/cjs/tools/atlas/streams/build.d.ts.map +1 -0
  182. package/dist/cjs/tools/atlas/streams/build.js +671 -0
  183. package/dist/cjs/tools/atlas/streams/build.js.map +1 -0
  184. package/dist/cjs/tools/atlas/streams/discover.d.ts +44 -0
  185. package/dist/cjs/tools/atlas/streams/discover.d.ts.map +1 -0
  186. package/dist/cjs/tools/atlas/streams/discover.js +345 -0
  187. package/dist/cjs/tools/atlas/streams/discover.js.map +1 -0
  188. package/dist/cjs/tools/atlas/streams/manage.d.ts +111 -0
  189. package/dist/cjs/tools/atlas/streams/manage.d.ts.map +1 -0
  190. package/dist/cjs/tools/atlas/streams/manage.js +471 -0
  191. package/dist/cjs/tools/atlas/streams/manage.js.map +1 -0
  192. package/dist/cjs/tools/atlas/streams/streamsArgs.d.ts +74 -0
  193. package/dist/cjs/tools/atlas/streams/streamsArgs.d.ts.map +1 -0
  194. package/dist/cjs/tools/atlas/streams/streamsArgs.js +146 -0
  195. package/dist/cjs/tools/atlas/streams/streamsArgs.js.map +1 -0
  196. package/dist/cjs/tools/atlas/streams/streamsToolBase.d.ts +12 -0
  197. package/dist/cjs/tools/atlas/streams/streamsToolBase.d.ts.map +1 -0
  198. package/dist/cjs/tools/atlas/streams/streamsToolBase.js +163 -0
  199. package/dist/cjs/tools/atlas/streams/streamsToolBase.js.map +1 -0
  200. package/dist/cjs/tools/atlas/streams/teardown.d.ts +31 -0
  201. package/dist/cjs/tools/atlas/streams/teardown.d.ts.map +1 -0
  202. package/dist/cjs/tools/atlas/streams/teardown.js +236 -0
  203. package/dist/cjs/tools/atlas/streams/teardown.js.map +1 -0
  204. package/dist/cjs/tools/atlas/tools.d.ts +5 -0
  205. package/dist/cjs/tools/atlas/tools.d.ts.map +1 -1
  206. package/dist/cjs/tools/atlas/tools.js +11 -1
  207. package/dist/cjs/tools/atlas/tools.js.map +1 -1
  208. package/dist/cjs/tools/atlas/update/upgradeCluster.d.ts +28 -0
  209. package/dist/cjs/tools/atlas/update/upgradeCluster.d.ts.map +1 -0
  210. package/dist/cjs/tools/atlas/update/upgradeCluster.js +231 -0
  211. package/dist/cjs/tools/atlas/update/upgradeCluster.js.map +1 -0
  212. package/dist/cjs/tools/index.d.ts +1 -0
  213. package/dist/cjs/tools/index.d.ts.map +1 -1
  214. package/dist/cjs/tools/index.js +3 -1
  215. package/dist/cjs/tools/index.js.map +1 -1
  216. package/dist/cjs/tools/mongodb/create/createCollection.d.ts +1 -1
  217. package/dist/cjs/tools/mongodb/create/createCollection.d.ts.map +1 -1
  218. package/dist/cjs/tools/mongodb/create/createCollection.js +1 -1
  219. package/dist/cjs/tools/mongodb/create/createCollection.js.map +1 -1
  220. package/dist/cjs/tools/mongodb/create/createIndex.d.ts +56 -218
  221. package/dist/cjs/tools/mongodb/create/createIndex.d.ts.map +1 -1
  222. package/dist/cjs/tools/mongodb/create/createIndex.js +12 -14
  223. package/dist/cjs/tools/mongodb/create/createIndex.js.map +1 -1
  224. package/dist/cjs/tools/mongodb/create/insertMany.d.ts +5 -32
  225. package/dist/cjs/tools/mongodb/create/insertMany.d.ts.map +1 -1
  226. package/dist/cjs/tools/mongodb/create/insertMany.js +7 -91
  227. package/dist/cjs/tools/mongodb/create/insertMany.js.map +1 -1
  228. package/dist/cjs/tools/mongodb/delete/deleteMany.d.ts +2 -2
  229. package/dist/cjs/tools/mongodb/delete/deleteMany.d.ts.map +1 -1
  230. package/dist/cjs/tools/mongodb/delete/deleteMany.js +2 -1
  231. package/dist/cjs/tools/mongodb/delete/deleteMany.js.map +1 -1
  232. package/dist/cjs/tools/mongodb/delete/dropCollection.d.ts +1 -1
  233. package/dist/cjs/tools/mongodb/delete/dropCollection.d.ts.map +1 -1
  234. package/dist/cjs/tools/mongodb/delete/dropCollection.js +1 -1
  235. package/dist/cjs/tools/mongodb/delete/dropCollection.js.map +1 -1
  236. package/dist/cjs/tools/mongodb/delete/dropDatabase.d.ts.map +1 -1
  237. package/dist/cjs/tools/mongodb/delete/dropDatabase.js +1 -3
  238. package/dist/cjs/tools/mongodb/delete/dropDatabase.js.map +1 -1
  239. package/dist/cjs/tools/mongodb/delete/dropIndex.d.ts +5 -2
  240. package/dist/cjs/tools/mongodb/delete/dropIndex.d.ts.map +1 -1
  241. package/dist/cjs/tools/mongodb/delete/dropIndex.js +4 -9
  242. package/dist/cjs/tools/mongodb/delete/dropIndex.js.map +1 -1
  243. package/dist/cjs/tools/mongodb/metadata/collectionIndexes.d.ts +13 -43
  244. package/dist/cjs/tools/mongodb/metadata/collectionIndexes.d.ts.map +1 -1
  245. package/dist/cjs/tools/mongodb/metadata/collectionIndexes.js +41 -5
  246. package/dist/cjs/tools/mongodb/metadata/collectionIndexes.js.map +1 -1
  247. package/dist/cjs/tools/mongodb/metadata/collectionSchema.d.ts +1 -1
  248. package/dist/cjs/tools/mongodb/metadata/collectionSchema.d.ts.map +1 -1
  249. package/dist/cjs/tools/mongodb/metadata/collectionSchema.js +3 -3
  250. package/dist/cjs/tools/mongodb/metadata/collectionSchema.js.map +1 -1
  251. package/dist/cjs/tools/mongodb/metadata/collectionStorageSize.d.ts +3 -3
  252. package/dist/cjs/tools/mongodb/metadata/collectionStorageSize.d.ts.map +1 -1
  253. package/dist/cjs/tools/mongodb/metadata/collectionStorageSize.js +2 -2
  254. package/dist/cjs/tools/mongodb/metadata/collectionStorageSize.js.map +1 -1
  255. package/dist/cjs/tools/mongodb/metadata/dbStats.d.ts.map +1 -1
  256. package/dist/cjs/tools/mongodb/metadata/dbStats.js +3 -4
  257. package/dist/cjs/tools/mongodb/metadata/dbStats.js.map +1 -1
  258. package/dist/cjs/tools/mongodb/metadata/explain.d.ts +35 -357
  259. package/dist/cjs/tools/mongodb/metadata/explain.d.ts.map +1 -1
  260. package/dist/cjs/tools/mongodb/metadata/explain.js +5 -5
  261. package/dist/cjs/tools/mongodb/metadata/explain.js.map +1 -1
  262. package/dist/cjs/tools/mongodb/metadata/listCollections.d.ts +2 -10
  263. package/dist/cjs/tools/mongodb/metadata/listCollections.d.ts.map +1 -1
  264. package/dist/cjs/tools/mongodb/metadata/listCollections.js +1 -3
  265. package/dist/cjs/tools/mongodb/metadata/listCollections.js.map +1 -1
  266. package/dist/cjs/tools/mongodb/metadata/listDatabases.d.ts +3 -16
  267. package/dist/cjs/tools/mongodb/metadata/listDatabases.d.ts.map +1 -1
  268. package/dist/cjs/tools/mongodb/metadata/listDatabases.js +3 -3
  269. package/dist/cjs/tools/mongodb/metadata/listDatabases.js.map +1 -1
  270. package/dist/cjs/tools/mongodb/metadata/logs.d.ts +6 -3
  271. package/dist/cjs/tools/mongodb/metadata/logs.d.ts.map +1 -1
  272. package/dist/cjs/tools/mongodb/metadata/logs.js +1 -0
  273. package/dist/cjs/tools/mongodb/metadata/logs.js.map +1 -1
  274. package/dist/cjs/tools/mongodb/mongodbSchemas.d.ts +20 -191
  275. package/dist/cjs/tools/mongodb/mongodbSchemas.d.ts.map +1 -1
  276. package/dist/cjs/tools/mongodb/mongodbSchemas.js +34 -34
  277. package/dist/cjs/tools/mongodb/mongodbSchemas.js.map +1 -1
  278. package/dist/cjs/tools/mongodb/mongodbTool.d.ts +12 -1
  279. package/dist/cjs/tools/mongodb/mongodbTool.d.ts.map +1 -1
  280. package/dist/cjs/tools/mongodb/mongodbTool.js +15 -2
  281. package/dist/cjs/tools/mongodb/mongodbTool.js.map +1 -1
  282. package/dist/cjs/tools/mongodb/read/aggregate.d.ts +33 -300
  283. package/dist/cjs/tools/mongodb/read/aggregate.d.ts.map +1 -1
  284. package/dist/cjs/tools/mongodb/read/aggregate.js +21 -92
  285. package/dist/cjs/tools/mongodb/read/aggregate.js.map +1 -1
  286. package/dist/cjs/tools/mongodb/read/aggregateDB.d.ts +24 -0
  287. package/dist/cjs/tools/mongodb/read/aggregateDB.d.ts.map +1 -0
  288. package/dist/cjs/tools/mongodb/read/aggregateDB.js +173 -0
  289. package/dist/cjs/tools/mongodb/read/aggregateDB.js.map +1 -0
  290. package/dist/cjs/tools/mongodb/read/count.d.ts +3 -3
  291. package/dist/cjs/tools/mongodb/read/count.d.ts.map +1 -1
  292. package/dist/cjs/tools/mongodb/read/count.js +3 -2
  293. package/dist/cjs/tools/mongodb/read/count.js.map +1 -1
  294. package/dist/cjs/tools/mongodb/read/export.d.ts +30 -332
  295. package/dist/cjs/tools/mongodb/read/export.d.ts.map +1 -1
  296. package/dist/cjs/tools/mongodb/read/export.js +4 -6
  297. package/dist/cjs/tools/mongodb/read/export.js.map +1 -1
  298. package/dist/cjs/tools/mongodb/read/find.d.ts +11 -8
  299. package/dist/cjs/tools/mongodb/read/find.d.ts.map +1 -1
  300. package/dist/cjs/tools/mongodb/read/find.js +8 -6
  301. package/dist/cjs/tools/mongodb/read/find.js.map +1 -1
  302. package/dist/cjs/tools/mongodb/tools.d.ts +1 -0
  303. package/dist/cjs/tools/mongodb/tools.d.ts.map +1 -1
  304. package/dist/cjs/tools/mongodb/tools.js +3 -1
  305. package/dist/cjs/tools/mongodb/tools.js.map +1 -1
  306. package/dist/cjs/tools/mongodb/update/renameCollection.d.ts +1 -1
  307. package/dist/cjs/tools/mongodb/update/renameCollection.d.ts.map +1 -1
  308. package/dist/cjs/tools/mongodb/update/renameCollection.js +1 -1
  309. package/dist/cjs/tools/mongodb/update/renameCollection.js.map +1 -1
  310. package/dist/cjs/tools/mongodb/update/updateMany.d.ts +3 -3
  311. package/dist/cjs/tools/mongodb/update/updateMany.d.ts.map +1 -1
  312. package/dist/cjs/tools/mongodb/update/updateMany.js +3 -2
  313. package/dist/cjs/tools/mongodb/update/updateMany.js.map +1 -1
  314. package/dist/cjs/tools/tool.d.ts +21 -9
  315. package/dist/cjs/tools/tool.d.ts.map +1 -1
  316. package/dist/cjs/tools/tool.js +21 -2
  317. package/dist/cjs/tools/tool.js.map +1 -1
  318. package/dist/cjs/transports/base.d.ts +43 -18
  319. package/dist/cjs/transports/base.d.ts.map +1 -1
  320. package/dist/cjs/transports/base.js +31 -14
  321. package/dist/cjs/transports/base.js.map +1 -1
  322. package/dist/cjs/transports/expressBasedHttpServer.d.ts +24 -0
  323. package/dist/cjs/transports/expressBasedHttpServer.d.ts.map +1 -0
  324. package/dist/cjs/transports/expressBasedHttpServer.js +82 -0
  325. package/dist/cjs/transports/expressBasedHttpServer.js.map +1 -0
  326. package/dist/cjs/transports/jsonRpcErrorCodes.d.ts +12 -0
  327. package/dist/cjs/transports/jsonRpcErrorCodes.d.ts.map +1 -0
  328. package/dist/cjs/transports/jsonRpcErrorCodes.js +15 -0
  329. package/dist/cjs/transports/jsonRpcErrorCodes.js.map +1 -0
  330. package/dist/cjs/transports/mcpHttpServer.d.ts +61 -0
  331. package/dist/cjs/transports/mcpHttpServer.d.ts.map +1 -0
  332. package/dist/cjs/transports/mcpHttpServer.js +374 -0
  333. package/dist/cjs/transports/mcpHttpServer.js.map +1 -0
  334. package/dist/cjs/transports/monitoringServer.d.ts +29 -0
  335. package/dist/cjs/transports/monitoringServer.d.ts.map +1 -0
  336. package/dist/cjs/transports/monitoringServer.js +53 -0
  337. package/dist/cjs/transports/monitoringServer.js.map +1 -0
  338. package/dist/cjs/transports/stdio.d.ts +3 -2
  339. package/dist/cjs/transports/stdio.d.ts.map +1 -1
  340. package/dist/cjs/transports/stdio.js +3 -14
  341. package/dist/cjs/transports/stdio.js.map +1 -1
  342. package/dist/cjs/transports/streamableHttp.d.ts +66 -5
  343. package/dist/cjs/transports/streamableHttp.d.ts.map +1 -1
  344. package/dist/cjs/transports/streamableHttp.js +53 -402
  345. package/dist/cjs/transports/streamableHttp.js.map +1 -1
  346. package/dist/cjs/ui/components/ListDatabases/ListDatabases.d.ts +3 -0
  347. package/dist/cjs/ui/components/ListDatabases/ListDatabases.d.ts.map +1 -1
  348. package/dist/cjs/ui/components/ListDatabases/ListDatabases.js.map +1 -1
  349. package/dist/cjs/ui/index.d.ts +0 -1
  350. package/dist/cjs/ui/index.d.ts.map +1 -1
  351. package/dist/cjs/ui/lib/tools/list-databases.d.ts +1 -1
  352. package/dist/cjs/ui/lib/tools/list-databases.d.ts.map +1 -1
  353. package/dist/cjs/ui/lib/tools/list-databases.js +1 -1
  354. package/dist/cjs/ui/lib/tools/list-databases.js.map +1 -1
  355. package/dist/cjs/web.d.ts +31 -2
  356. package/dist/cjs/web.d.ts.map +1 -1
  357. package/dist/cjs/web.js +37 -1
  358. package/dist/cjs/web.js.map +1 -1
  359. package/dist/esm/common/atlas/apiClient.d.ts +97 -214
  360. package/dist/esm/common/atlas/apiClient.d.ts.map +1 -1
  361. package/dist/esm/common/atlas/apiClient.js +286 -36
  362. package/dist/esm/common/atlas/apiClient.js.map +1 -1
  363. package/dist/esm/common/atlas/cluster.d.ts +2 -0
  364. package/dist/esm/common/atlas/cluster.d.ts.map +1 -1
  365. package/dist/esm/common/atlas/cluster.js +8 -1
  366. package/dist/esm/common/atlas/cluster.js.map +1 -1
  367. package/dist/esm/common/atlas/performanceAdvisorUtils.d.ts.map +1 -1
  368. package/dist/esm/common/atlas/performanceAdvisorUtils.js +12 -4
  369. package/dist/esm/common/atlas/performanceAdvisorUtils.js.map +1 -1
  370. package/dist/esm/common/config/configOverrides.d.ts +3 -0
  371. package/dist/esm/common/config/configOverrides.d.ts.map +1 -1
  372. package/dist/esm/common/config/configOverrides.js +13 -10
  373. package/dist/esm/common/config/configOverrides.js.map +1 -1
  374. package/dist/esm/common/config/configUtils.d.ts +5 -1
  375. package/dist/esm/common/config/configUtils.d.ts.map +1 -1
  376. package/dist/esm/common/config/configUtils.js +20 -17
  377. package/dist/esm/common/config/configUtils.js.map +1 -1
  378. package/dist/esm/common/config/parseUserConfig.d.ts +2 -2
  379. package/dist/esm/common/config/parseUserConfig.d.ts.map +1 -1
  380. package/dist/esm/common/config/parseUserConfig.js +19 -18
  381. package/dist/esm/common/config/parseUserConfig.js.map +1 -1
  382. package/dist/esm/common/config/userConfig.d.ts +125 -116
  383. package/dist/esm/common/config/userConfig.d.ts.map +1 -1
  384. package/dist/esm/common/config/userConfig.js +88 -66
  385. package/dist/esm/common/config/userConfig.js.map +1 -1
  386. package/dist/esm/common/connectionInfo.d.ts +4 -2
  387. package/dist/esm/common/connectionInfo.d.ts.map +1 -1
  388. package/dist/esm/common/connectionInfo.js.map +1 -1
  389. package/dist/esm/common/connectionManager.d.ts +11 -3
  390. package/dist/esm/common/connectionManager.d.ts.map +1 -1
  391. package/dist/esm/common/connectionManager.js +82 -11
  392. package/dist/esm/common/connectionManager.js.map +1 -1
  393. package/dist/esm/common/errors.d.ts +1 -2
  394. package/dist/esm/common/errors.d.ts.map +1 -1
  395. package/dist/esm/common/errors.js +1 -2
  396. package/dist/esm/common/errors.js.map +1 -1
  397. package/dist/esm/common/exportsManager.d.ts +9 -7
  398. package/dist/esm/common/exportsManager.d.ts.map +1 -1
  399. package/dist/esm/common/logging/consoleLogger.js +3 -3
  400. package/dist/esm/common/logging/consoleLogger.js.map +1 -1
  401. package/dist/esm/common/logging/index.d.ts +2 -0
  402. package/dist/esm/common/logging/index.d.ts.map +1 -1
  403. package/dist/esm/common/logging/index.js +2 -0
  404. package/dist/esm/common/logging/index.js.map +1 -1
  405. package/dist/esm/common/logging/loggerBase.d.ts +2 -1
  406. package/dist/esm/common/logging/loggerBase.d.ts.map +1 -1
  407. package/dist/esm/common/logging/loggerBase.js +11 -0
  408. package/dist/esm/common/logging/loggerBase.js.map +1 -1
  409. package/dist/esm/common/logging/loggingDefinitions.d.ts +4 -0
  410. package/dist/esm/common/logging/loggingDefinitions.d.ts.map +1 -1
  411. package/dist/esm/common/logging/loggingDefinitions.js +4 -0
  412. package/dist/esm/common/logging/loggingDefinitions.js.map +1 -1
  413. package/dist/esm/common/logging/loggingTypes.d.ts +3 -2
  414. package/dist/esm/common/logging/loggingTypes.d.ts.map +1 -1
  415. package/dist/esm/common/logging/loggingTypes.js +2 -1
  416. package/dist/esm/common/logging/loggingTypes.js.map +1 -1
  417. package/dist/esm/common/logging/mcpLogger.d.ts +1 -2
  418. package/dist/esm/common/logging/mcpLogger.d.ts.map +1 -1
  419. package/dist/esm/common/logging/mcpLogger.js +3 -12
  420. package/dist/esm/common/logging/mcpLogger.js.map +1 -1
  421. package/dist/esm/common/logging/nullLogger.d.ts +8 -0
  422. package/dist/esm/common/logging/nullLogger.d.ts.map +1 -0
  423. package/dist/esm/common/logging/nullLogger.js +10 -0
  424. package/dist/esm/common/logging/nullLogger.js.map +1 -0
  425. package/dist/esm/common/metrics/index.d.ts +5 -0
  426. package/dist/esm/common/metrics/index.d.ts.map +1 -0
  427. package/dist/esm/common/metrics/index.js +3 -0
  428. package/dist/esm/common/metrics/index.js.map +1 -0
  429. package/dist/esm/common/metrics/metricDefinitions.d.ts +15 -0
  430. package/dist/esm/common/metrics/metricDefinitions.d.ts.map +1 -0
  431. package/dist/esm/common/metrics/metricDefinitions.js +32 -0
  432. package/dist/esm/common/metrics/metricDefinitions.js.map +1 -0
  433. package/dist/esm/common/metrics/metricsTypes.d.ts +15 -0
  434. package/dist/esm/common/metrics/metricsTypes.d.ts.map +1 -0
  435. package/dist/esm/common/metrics/metricsTypes.js +2 -0
  436. package/dist/esm/common/metrics/metricsTypes.js.map +1 -0
  437. package/dist/esm/common/metrics/prometheusMetrics.d.ts +15 -0
  438. package/dist/esm/common/metrics/prometheusMetrics.d.ts.map +1 -0
  439. package/dist/esm/common/metrics/prometheusMetrics.js +21 -0
  440. package/dist/esm/common/metrics/prometheusMetrics.js.map +1 -0
  441. package/dist/esm/common/packageInfo.d.ts +3 -0
  442. package/dist/esm/common/packageInfo.d.ts.map +1 -1
  443. package/dist/esm/common/packageInfo.js +4 -1
  444. package/dist/esm/common/packageInfo.js.map +1 -1
  445. package/dist/esm/common/schemas.d.ts +3 -3
  446. package/dist/esm/common/schemas.d.ts.map +1 -1
  447. package/dist/esm/common/schemas.js +2 -2
  448. package/dist/esm/common/schemas.js.map +1 -1
  449. package/dist/esm/common/session.d.ts +4 -7
  450. package/dist/esm/common/session.d.ts.map +1 -1
  451. package/dist/esm/common/session.js +2 -3
  452. package/dist/esm/common/session.js.map +1 -1
  453. package/dist/esm/common/sessionStore.d.ts +57 -16
  454. package/dist/esm/common/sessionStore.d.ts.map +1 -1
  455. package/dist/esm/common/sessionStore.js +32 -17
  456. package/dist/esm/common/sessionStore.js.map +1 -1
  457. package/dist/esm/elicitation.d.ts +18 -0
  458. package/dist/esm/elicitation.d.ts.map +1 -1
  459. package/dist/esm/elicitation.js +31 -1
  460. package/dist/esm/elicitation.js.map +1 -1
  461. package/dist/esm/helpers/connectionOptions.d.ts +2 -5
  462. package/dist/esm/helpers/connectionOptions.d.ts.map +1 -1
  463. package/dist/esm/helpers/connectionOptions.js +1 -1
  464. package/dist/esm/helpers/connectionOptions.js.map +1 -1
  465. package/dist/esm/helpers/deviceId.d.ts +2 -1
  466. package/dist/esm/helpers/deviceId.d.ts.map +1 -1
  467. package/dist/esm/helpers/deviceId.js.map +1 -1
  468. package/dist/esm/index.d.ts.map +1 -1
  469. package/dist/esm/index.js +11 -2
  470. package/dist/esm/index.js.map +1 -1
  471. package/dist/esm/lib.d.ts +20 -12
  472. package/dist/esm/lib.d.ts.map +1 -1
  473. package/dist/esm/lib.js +12 -6
  474. package/dist/esm/lib.js.map +1 -1
  475. package/dist/esm/server.d.ts +11 -8
  476. package/dist/esm/server.d.ts.map +1 -1
  477. package/dist/esm/server.js +16 -10
  478. package/dist/esm/server.js.map +1 -1
  479. package/dist/esm/setup/aiTool.d.ts +46 -0
  480. package/dist/esm/setup/aiTool.d.ts.map +1 -0
  481. package/dist/esm/setup/aiTool.js +383 -0
  482. package/dist/esm/setup/aiTool.js.map +1 -0
  483. package/dist/esm/setup/installSkills.d.ts +42 -0
  484. package/dist/esm/setup/installSkills.d.ts.map +1 -0
  485. package/dist/esm/setup/installSkills.js +113 -0
  486. package/dist/esm/setup/installSkills.js.map +1 -0
  487. package/dist/esm/setup/setupAiToolsUtils.d.ts +4 -0
  488. package/dist/esm/setup/setupAiToolsUtils.d.ts.map +1 -0
  489. package/dist/esm/setup/setupAiToolsUtils.js +20 -0
  490. package/dist/esm/setup/setupAiToolsUtils.js.map +1 -0
  491. package/dist/esm/setup/setupMcpServer.d.ts +8 -0
  492. package/dist/esm/setup/setupMcpServer.d.ts.map +1 -0
  493. package/dist/esm/setup/setupMcpServer.js +384 -0
  494. package/dist/esm/setup/setupMcpServer.js.map +1 -0
  495. package/dist/esm/setup/setupTelemetry.d.ts +99 -0
  496. package/dist/esm/setup/setupTelemetry.d.ts.map +1 -0
  497. package/dist/esm/setup/setupTelemetry.js +197 -0
  498. package/dist/esm/setup/setupTelemetry.js.map +1 -0
  499. package/dist/esm/telemetry/constants.js +4 -4
  500. package/dist/esm/telemetry/constants.js.map +1 -1
  501. package/dist/esm/telemetry/eventCache.d.ts +19 -3
  502. package/dist/esm/telemetry/eventCache.d.ts.map +1 -1
  503. package/dist/esm/telemetry/eventCache.js +48 -3
  504. package/dist/esm/telemetry/eventCache.js.map +1 -1
  505. package/dist/esm/telemetry/telemetry.d.ts +106 -25
  506. package/dist/esm/telemetry/telemetry.d.ts.map +1 -1
  507. package/dist/esm/telemetry/telemetry.js +166 -112
  508. package/dist/esm/telemetry/telemetry.js.map +1 -1
  509. package/dist/esm/telemetry/timer.d.ts +12 -0
  510. package/dist/esm/telemetry/timer.d.ts.map +1 -0
  511. package/dist/esm/telemetry/timer.js +24 -0
  512. package/dist/esm/telemetry/timer.js.map +1 -0
  513. package/dist/esm/telemetry/types.d.ts +69 -11
  514. package/dist/esm/telemetry/types.d.ts.map +1 -1
  515. package/dist/esm/tools/args.d.ts +7 -2
  516. package/dist/esm/tools/args.d.ts.map +1 -1
  517. package/dist/esm/tools/args.js +6 -4
  518. package/dist/esm/tools/args.js.map +1 -1
  519. package/dist/esm/tools/assistant/searchKnowledge.d.ts +2 -14
  520. package/dist/esm/tools/assistant/searchKnowledge.d.ts.map +1 -1
  521. package/dist/esm/tools/atlas/connect/connectCluster.d.ts +10 -2
  522. package/dist/esm/tools/atlas/connect/connectCluster.d.ts.map +1 -1
  523. package/dist/esm/tools/atlas/connect/connectCluster.js +3 -0
  524. package/dist/esm/tools/atlas/connect/connectCluster.js.map +1 -1
  525. package/dist/esm/tools/atlas/create/createAccessList.d.ts +4 -4
  526. package/dist/esm/tools/atlas/create/createDBUser.d.ts +4 -20
  527. package/dist/esm/tools/atlas/create/createDBUser.d.ts.map +1 -1
  528. package/dist/esm/tools/atlas/read/getPerformanceAdvisor.d.ts +7 -2
  529. package/dist/esm/tools/atlas/read/getPerformanceAdvisor.d.ts.map +1 -1
  530. package/dist/esm/tools/atlas/read/listAlerts.d.ts +18 -3
  531. package/dist/esm/tools/atlas/read/listAlerts.d.ts.map +1 -1
  532. package/dist/esm/tools/atlas/read/listAlerts.js +21 -3
  533. package/dist/esm/tools/atlas/read/listAlerts.js.map +1 -1
  534. package/dist/esm/tools/atlas/read/listProjects.d.ts.map +1 -1
  535. package/dist/esm/tools/atlas/read/listProjects.js +10 -1
  536. package/dist/esm/tools/atlas/read/listProjects.js.map +1 -1
  537. package/dist/esm/tools/atlas/streams/build.d.ts +149 -0
  538. package/dist/esm/tools/atlas/streams/build.d.ts.map +1 -0
  539. package/dist/esm/tools/atlas/streams/build.js +667 -0
  540. package/dist/esm/tools/atlas/streams/build.js.map +1 -0
  541. package/dist/esm/tools/atlas/streams/discover.d.ts +44 -0
  542. package/dist/esm/tools/atlas/streams/discover.d.ts.map +1 -0
  543. package/dist/esm/tools/atlas/streams/discover.js +341 -0
  544. package/dist/esm/tools/atlas/streams/discover.js.map +1 -0
  545. package/dist/esm/tools/atlas/streams/manage.d.ts +111 -0
  546. package/dist/esm/tools/atlas/streams/manage.d.ts.map +1 -0
  547. package/dist/esm/tools/atlas/streams/manage.js +467 -0
  548. package/dist/esm/tools/atlas/streams/manage.js.map +1 -0
  549. package/dist/esm/tools/atlas/streams/streamsArgs.d.ts +74 -0
  550. package/dist/esm/tools/atlas/streams/streamsArgs.d.ts.map +1 -0
  551. package/dist/esm/tools/atlas/streams/streamsArgs.js +143 -0
  552. package/dist/esm/tools/atlas/streams/streamsArgs.js.map +1 -0
  553. package/dist/esm/tools/atlas/streams/streamsToolBase.d.ts +12 -0
  554. package/dist/esm/tools/atlas/streams/streamsToolBase.d.ts.map +1 -0
  555. package/dist/esm/tools/atlas/streams/streamsToolBase.js +159 -0
  556. package/dist/esm/tools/atlas/streams/streamsToolBase.js.map +1 -0
  557. package/dist/esm/tools/atlas/streams/teardown.d.ts +31 -0
  558. package/dist/esm/tools/atlas/streams/teardown.d.ts.map +1 -0
  559. package/dist/esm/tools/atlas/streams/teardown.js +232 -0
  560. package/dist/esm/tools/atlas/streams/teardown.js.map +1 -0
  561. package/dist/esm/tools/atlas/tools.d.ts +5 -0
  562. package/dist/esm/tools/atlas/tools.d.ts.map +1 -1
  563. package/dist/esm/tools/atlas/tools.js +5 -0
  564. package/dist/esm/tools/atlas/tools.js.map +1 -1
  565. package/dist/esm/tools/atlas/update/upgradeCluster.d.ts +28 -0
  566. package/dist/esm/tools/atlas/update/upgradeCluster.d.ts.map +1 -0
  567. package/dist/esm/tools/atlas/update/upgradeCluster.js +227 -0
  568. package/dist/esm/tools/atlas/update/upgradeCluster.js.map +1 -0
  569. package/dist/esm/tools/index.d.ts +1 -0
  570. package/dist/esm/tools/index.d.ts.map +1 -1
  571. package/dist/esm/tools/index.js +1 -0
  572. package/dist/esm/tools/index.js.map +1 -1
  573. package/dist/esm/tools/mongodb/create/createCollection.d.ts +1 -1
  574. package/dist/esm/tools/mongodb/create/createCollection.d.ts.map +1 -1
  575. package/dist/esm/tools/mongodb/create/createCollection.js +2 -2
  576. package/dist/esm/tools/mongodb/create/createCollection.js.map +1 -1
  577. package/dist/esm/tools/mongodb/create/createIndex.d.ts +56 -218
  578. package/dist/esm/tools/mongodb/create/createIndex.d.ts.map +1 -1
  579. package/dist/esm/tools/mongodb/create/createIndex.js +14 -16
  580. package/dist/esm/tools/mongodb/create/createIndex.js.map +1 -1
  581. package/dist/esm/tools/mongodb/create/insertMany.d.ts +5 -32
  582. package/dist/esm/tools/mongodb/create/insertMany.d.ts.map +1 -1
  583. package/dist/esm/tools/mongodb/create/insertMany.js +8 -92
  584. package/dist/esm/tools/mongodb/create/insertMany.js.map +1 -1
  585. package/dist/esm/tools/mongodb/delete/deleteMany.d.ts +2 -2
  586. package/dist/esm/tools/mongodb/delete/deleteMany.d.ts.map +1 -1
  587. package/dist/esm/tools/mongodb/delete/deleteMany.js +3 -2
  588. package/dist/esm/tools/mongodb/delete/deleteMany.js.map +1 -1
  589. package/dist/esm/tools/mongodb/delete/dropCollection.d.ts +1 -1
  590. package/dist/esm/tools/mongodb/delete/dropCollection.d.ts.map +1 -1
  591. package/dist/esm/tools/mongodb/delete/dropCollection.js +2 -2
  592. package/dist/esm/tools/mongodb/delete/dropCollection.js.map +1 -1
  593. package/dist/esm/tools/mongodb/delete/dropDatabase.d.ts.map +1 -1
  594. package/dist/esm/tools/mongodb/delete/dropDatabase.js +2 -4
  595. package/dist/esm/tools/mongodb/delete/dropDatabase.js.map +1 -1
  596. package/dist/esm/tools/mongodb/delete/dropIndex.d.ts +5 -2
  597. package/dist/esm/tools/mongodb/delete/dropIndex.d.ts.map +1 -1
  598. package/dist/esm/tools/mongodb/delete/dropIndex.js +5 -10
  599. package/dist/esm/tools/mongodb/delete/dropIndex.js.map +1 -1
  600. package/dist/esm/tools/mongodb/metadata/collectionIndexes.d.ts +13 -43
  601. package/dist/esm/tools/mongodb/metadata/collectionIndexes.d.ts.map +1 -1
  602. package/dist/esm/tools/mongodb/metadata/collectionIndexes.js +42 -6
  603. package/dist/esm/tools/mongodb/metadata/collectionIndexes.js.map +1 -1
  604. package/dist/esm/tools/mongodb/metadata/collectionSchema.d.ts +1 -1
  605. package/dist/esm/tools/mongodb/metadata/collectionSchema.d.ts.map +1 -1
  606. package/dist/esm/tools/mongodb/metadata/collectionSchema.js +4 -4
  607. package/dist/esm/tools/mongodb/metadata/collectionSchema.js.map +1 -1
  608. package/dist/esm/tools/mongodb/metadata/collectionStorageSize.d.ts +3 -3
  609. package/dist/esm/tools/mongodb/metadata/collectionStorageSize.d.ts.map +1 -1
  610. package/dist/esm/tools/mongodb/metadata/collectionStorageSize.js +3 -3
  611. package/dist/esm/tools/mongodb/metadata/collectionStorageSize.js.map +1 -1
  612. package/dist/esm/tools/mongodb/metadata/dbStats.d.ts.map +1 -1
  613. package/dist/esm/tools/mongodb/metadata/dbStats.js +4 -5
  614. package/dist/esm/tools/mongodb/metadata/dbStats.js.map +1 -1
  615. package/dist/esm/tools/mongodb/metadata/explain.d.ts +35 -357
  616. package/dist/esm/tools/mongodb/metadata/explain.d.ts.map +1 -1
  617. package/dist/esm/tools/mongodb/metadata/explain.js +7 -7
  618. package/dist/esm/tools/mongodb/metadata/explain.js.map +1 -1
  619. package/dist/esm/tools/mongodb/metadata/listCollections.d.ts +2 -10
  620. package/dist/esm/tools/mongodb/metadata/listCollections.d.ts.map +1 -1
  621. package/dist/esm/tools/mongodb/metadata/listCollections.js +2 -4
  622. package/dist/esm/tools/mongodb/metadata/listCollections.js.map +1 -1
  623. package/dist/esm/tools/mongodb/metadata/listDatabases.d.ts +3 -16
  624. package/dist/esm/tools/mongodb/metadata/listDatabases.d.ts.map +1 -1
  625. package/dist/esm/tools/mongodb/metadata/listDatabases.js +1 -1
  626. package/dist/esm/tools/mongodb/metadata/listDatabases.js.map +1 -1
  627. package/dist/esm/tools/mongodb/metadata/logs.d.ts +6 -3
  628. package/dist/esm/tools/mongodb/metadata/logs.d.ts.map +1 -1
  629. package/dist/esm/tools/mongodb/metadata/logs.js +1 -0
  630. package/dist/esm/tools/mongodb/metadata/logs.js.map +1 -1
  631. package/dist/esm/tools/mongodb/mongodbSchemas.d.ts +20 -191
  632. package/dist/esm/tools/mongodb/mongodbSchemas.d.ts.map +1 -1
  633. package/dist/esm/tools/mongodb/mongodbSchemas.js +33 -33
  634. package/dist/esm/tools/mongodb/mongodbSchemas.js.map +1 -1
  635. package/dist/esm/tools/mongodb/mongodbTool.d.ts +12 -1
  636. package/dist/esm/tools/mongodb/mongodbTool.d.ts.map +1 -1
  637. package/dist/esm/tools/mongodb/mongodbTool.js +14 -1
  638. package/dist/esm/tools/mongodb/mongodbTool.js.map +1 -1
  639. package/dist/esm/tools/mongodb/read/aggregate.d.ts +33 -300
  640. package/dist/esm/tools/mongodb/read/aggregate.d.ts.map +1 -1
  641. package/dist/esm/tools/mongodb/read/aggregate.js +21 -91
  642. package/dist/esm/tools/mongodb/read/aggregate.js.map +1 -1
  643. package/dist/esm/tools/mongodb/read/aggregateDB.d.ts +24 -0
  644. package/dist/esm/tools/mongodb/read/aggregateDB.d.ts.map +1 -0
  645. package/dist/esm/tools/mongodb/read/aggregateDB.js +169 -0
  646. package/dist/esm/tools/mongodb/read/aggregateDB.js.map +1 -0
  647. package/dist/esm/tools/mongodb/read/count.d.ts +3 -3
  648. package/dist/esm/tools/mongodb/read/count.d.ts.map +1 -1
  649. package/dist/esm/tools/mongodb/read/count.js +4 -3
  650. package/dist/esm/tools/mongodb/read/count.js.map +1 -1
  651. package/dist/esm/tools/mongodb/read/export.d.ts +30 -332
  652. package/dist/esm/tools/mongodb/read/export.d.ts.map +1 -1
  653. package/dist/esm/tools/mongodb/read/export.js +6 -8
  654. package/dist/esm/tools/mongodb/read/export.js.map +1 -1
  655. package/dist/esm/tools/mongodb/read/find.d.ts +11 -8
  656. package/dist/esm/tools/mongodb/read/find.d.ts.map +1 -1
  657. package/dist/esm/tools/mongodb/read/find.js +9 -7
  658. package/dist/esm/tools/mongodb/read/find.js.map +1 -1
  659. package/dist/esm/tools/mongodb/tools.d.ts +1 -0
  660. package/dist/esm/tools/mongodb/tools.d.ts.map +1 -1
  661. package/dist/esm/tools/mongodb/tools.js +1 -0
  662. package/dist/esm/tools/mongodb/tools.js.map +1 -1
  663. package/dist/esm/tools/mongodb/update/renameCollection.d.ts +1 -1
  664. package/dist/esm/tools/mongodb/update/renameCollection.d.ts.map +1 -1
  665. package/dist/esm/tools/mongodb/update/renameCollection.js +2 -2
  666. package/dist/esm/tools/mongodb/update/renameCollection.js.map +1 -1
  667. package/dist/esm/tools/mongodb/update/updateMany.d.ts +3 -3
  668. package/dist/esm/tools/mongodb/update/updateMany.d.ts.map +1 -1
  669. package/dist/esm/tools/mongodb/update/updateMany.js +4 -3
  670. package/dist/esm/tools/mongodb/update/updateMany.js.map +1 -1
  671. package/dist/esm/tools/tool.d.ts +21 -9
  672. package/dist/esm/tools/tool.d.ts.map +1 -1
  673. package/dist/esm/tools/tool.js +21 -2
  674. package/dist/esm/tools/tool.js.map +1 -1
  675. package/dist/esm/transports/base.d.ts +43 -18
  676. package/dist/esm/transports/base.d.ts.map +1 -1
  677. package/dist/esm/transports/base.js +31 -14
  678. package/dist/esm/transports/base.js.map +1 -1
  679. package/dist/esm/transports/expressBasedHttpServer.d.ts +24 -0
  680. package/dist/esm/transports/expressBasedHttpServer.d.ts.map +1 -0
  681. package/dist/esm/transports/expressBasedHttpServer.js +75 -0
  682. package/dist/esm/transports/expressBasedHttpServer.js.map +1 -0
  683. package/dist/esm/transports/jsonRpcErrorCodes.d.ts +12 -0
  684. package/dist/esm/transports/jsonRpcErrorCodes.d.ts.map +1 -0
  685. package/dist/esm/transports/jsonRpcErrorCodes.js +12 -0
  686. package/dist/esm/transports/jsonRpcErrorCodes.js.map +1 -0
  687. package/dist/esm/transports/mcpHttpServer.d.ts +61 -0
  688. package/dist/esm/transports/mcpHttpServer.d.ts.map +1 -0
  689. package/dist/esm/transports/mcpHttpServer.js +333 -0
  690. package/dist/esm/transports/mcpHttpServer.js.map +1 -0
  691. package/dist/esm/transports/monitoringServer.d.ts +29 -0
  692. package/dist/esm/transports/monitoringServer.d.ts.map +1 -0
  693. package/dist/esm/transports/monitoringServer.js +48 -0
  694. package/dist/esm/transports/monitoringServer.js.map +1 -0
  695. package/dist/esm/transports/stdio.d.ts +3 -2
  696. package/dist/esm/transports/stdio.d.ts.map +1 -1
  697. package/dist/esm/transports/stdio.js +3 -14
  698. package/dist/esm/transports/stdio.js.map +1 -1
  699. package/dist/esm/transports/streamableHttp.d.ts +66 -5
  700. package/dist/esm/transports/streamableHttp.d.ts.map +1 -1
  701. package/dist/esm/transports/streamableHttp.js +44 -366
  702. package/dist/esm/transports/streamableHttp.js.map +1 -1
  703. package/dist/esm/ui/components/ListDatabases/ListDatabases.d.ts +3 -0
  704. package/dist/esm/ui/components/ListDatabases/ListDatabases.d.ts.map +1 -1
  705. package/dist/esm/ui/components/ListDatabases/ListDatabases.js.map +1 -1
  706. package/dist/esm/ui/index.d.ts +0 -1
  707. package/dist/esm/ui/index.d.ts.map +1 -1
  708. package/dist/esm/ui/lib/tools/list-databases.d.ts +1 -1
  709. package/dist/esm/ui/lib/tools/list-databases.d.ts.map +1 -1
  710. package/dist/esm/ui/lib/tools/list-databases.js +1 -1
  711. package/dist/esm/ui/lib/tools/list-databases.js.map +1 -1
  712. package/dist/esm/web.d.ts +31 -2
  713. package/dist/esm/web.d.ts.map +1 -1
  714. package/dist/esm/web.js +17 -1
  715. package/dist/esm/web.js.map +1 -1
  716. package/package.json +88 -65
@@ -0,0 +1,113 @@
1
+ /* eslint-disable no-console */
2
+ import { spawn } from "node:child_process";
3
+ import chalk from "chalk";
4
+ import { confirm } from "@inquirer/prompts";
5
+ import { AI_TOOL_REGISTRY } from "./aiTool.js";
6
+ const SKILLS_REPO = "mongodb/agent-skills";
7
+ const SKILLS_REPO_URL = `https://github.com/${SKILLS_REPO}`;
8
+ export const NO_SKILLS_MESSAGE = `We're unable to install the MongoDB Agent Skills for this tool.\n` +
9
+ `\n` +
10
+ `See the MongoDB Agent Skills repo for manual install instructions:\n` +
11
+ `\n` +
12
+ ` ${SKILLS_REPO_URL}`;
13
+ const SKILLS_PACKAGE_VERSION = "1";
14
+ const SKILLS_CLI_PIN = `skills@${SKILLS_PACKAGE_VERSION}`;
15
+ /**
16
+ * Assemble the args for `npx` to invoke the pinned skills CLI. Skills are
17
+ * always installed globally (`-g`) so they're available across the user's
18
+ * projects, matching how the MCP server itself is installed.
19
+ */
20
+ export function buildSkillsAddArgs(agentId) {
21
+ return ["--yes", SKILLS_CLI_PIN, "add", SKILLS_REPO, "--agent", agentId, "-y", "-g"];
22
+ }
23
+ /**
24
+ * Shell out to `skills add`.
25
+ * Non-zero exit is reported to the user but does not throw
26
+ * since setup has already succeeded by this point.
27
+ */
28
+ export async function installSkills(opts) {
29
+ const args = buildSkillsAddArgs(opts.agentId);
30
+ const exitCode = await runSkillsAdd(args, opts.cwd);
31
+ if (exitCode === 0) {
32
+ return { status: "installed" };
33
+ }
34
+ printInstallFailure(exitCode, args);
35
+ return { status: "failed", exitCode };
36
+ }
37
+ // Sentinel exit code used when `spawn` itself fails before the process runs
38
+ // (e.g. `npx` not on PATH). Real exit codes are 0–255, so -1 is unambiguous.
39
+ const SPAWN_ERROR_EXIT_CODE = -1;
40
+ function runSkillsAdd(args, cwd) {
41
+ return new Promise((resolve) => {
42
+ // `shell: true` is required on Windows so `npx` (a `.cmd` shim) resolves
43
+ // through PATHEXT. Our args are controlled and contain no shell
44
+ // metacharacters, so there's no injection risk.
45
+ const child = spawn("npx", args, { stdio: "inherit", cwd, shell: true });
46
+ child.on("close", (code, signal) => {
47
+ if (signal !== null) {
48
+ // Killed by a signal (Ctrl+C, OOM, etc.). `code` is null in this
49
+ // case, so falling through to `code ?? 0` would mis-report the
50
+ // install as successful. Surface it as a non-zero sentinel.
51
+ console.error(chalk.red(`The skills CLI was terminated by signal ${signal}.`));
52
+ resolve(SPAWN_ERROR_EXIT_CODE);
53
+ return;
54
+ }
55
+ resolve(code ?? 0);
56
+ });
57
+ child.on("error", (err) => {
58
+ // Spawn-level error (npx missing, etc.). Print the message ourselves
59
+ // — nothing streamed to stderr because the process never started —
60
+ // then surface as a non-zero exit so the graceful-failure path runs.
61
+ console.error(chalk.red(`Failed to spawn the skills CLI: ${err.message}`));
62
+ resolve(SPAWN_ERROR_EXIT_CODE);
63
+ });
64
+ });
65
+ }
66
+ function printInstallFailure(exitCode, args) {
67
+ console.log("");
68
+ console.log(chalk.red(`Agent skills install failed (exit ${exitCode}). Setup completed, but skills were not installed. See the CLI output above for details.`));
69
+ console.log("");
70
+ console.log("You can retry manually:");
71
+ console.log(` npx ${args.join(" ")}`);
72
+ console.log("");
73
+ console.log(`Skills repo: ${SKILLS_REPO_URL}`);
74
+ console.log("");
75
+ }
76
+ /**
77
+ * Prompt the user for whether to install skills and call `installSkills`.
78
+ * Null-agent tools (Claude Desktop) skip prompts entirely.
79
+ *
80
+ * Never throws — except `ExitPromptError`, which is re-thrown so `runSetup`'s
81
+ * outer Ctrl+C handler can print "Setup cancelled". All other errors
82
+ * (unexpected prompt failure, etc.) are logged as warnings and converted to a
83
+ * `failed` outcome so setup can still print its success summary.
84
+ */
85
+ export async function promptAndInstallSkills(opts) {
86
+ try {
87
+ const tool = AI_TOOL_REGISTRY[opts.tool];
88
+ const agentId = tool.skillsAgentId;
89
+ if (agentId === null) {
90
+ console.log(NO_SKILLS_MESSAGE);
91
+ return { status: "skipped", reason: "no-agent-id" };
92
+ }
93
+ const shouldInstall = await confirm({
94
+ message: `Install the MongoDB Agent Skills for ${tool.name}?`,
95
+ default: true,
96
+ });
97
+ if (!shouldInstall) {
98
+ return { status: "skipped", reason: "user-declined" };
99
+ }
100
+ return await installSkills({ agentId, cwd: opts.cwd });
101
+ }
102
+ catch (error) {
103
+ // Ctrl+C: inquirer throws ExitPromptError. Let it propagate so the
104
+ // top-level runSetup handler can exit cleanly.
105
+ if (error && typeof error === "object" && "name" in error && error.name === "ExitPromptError") {
106
+ throw error;
107
+ }
108
+ const message = error instanceof Error ? error.message : String(error);
109
+ console.warn(chalk.yellow(`\nWarning: skills install step failed: ${message}`));
110
+ return { status: "failed", exitCode: SPAWN_ERROR_EXIT_CODE };
111
+ }
112
+ }
113
+ //# sourceMappingURL=installSkills.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"installSkills.js","sourceRoot":"","sources":["../../../src/setup/installSkills.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export type Platform = "mac" | "windows" | "linux";
2
+ export declare const getPlatform: () => Platform | null;
3
+ export declare const formatError: (error: unknown) => string;
4
+ //# sourceMappingURL=setupAiToolsUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setupAiToolsUtils.d.ts","sourceRoot":"","sources":["../../../src/setup/setupAiToolsUtils.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,QAAQ,GAAG,KAAK,GAAG,SAAS,GAAG,OAAO,CAAC;AACnD,eAAO,MAAM,WAAW,QAAO,QAAQ,GAAG,IAWzC,CAAC;AAEF,eAAO,MAAM,WAAW,GAAI,OAAO,OAAO,KAAG,MAG5C,CAAC"}
@@ -0,0 +1,20 @@
1
+ import os from "os";
2
+ import { Keychain } from "../common/keychain.js";
3
+ import { redact } from "mongodb-redact";
4
+ export const getPlatform = () => {
5
+ switch (os.platform()) {
6
+ case "win32":
7
+ return "windows";
8
+ case "darwin":
9
+ return "mac";
10
+ case "linux":
11
+ return "linux";
12
+ default:
13
+ return null;
14
+ }
15
+ };
16
+ export const formatError = (error) => {
17
+ const message = error instanceof Error ? error.message : String(error);
18
+ return redact(message, Keychain.root.allSecrets);
19
+ };
20
+ //# sourceMappingURL=setupAiToolsUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setupAiToolsUtils.js","sourceRoot":"","sources":["../../../src/setup/setupAiToolsUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAGxC,MAAM,CAAC,MAAM,WAAW,GAAG,GAAoB,EAAE;IAC7C,QAAQ,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC;QACpB,KAAK,OAAO;YACR,OAAO,SAAS,CAAC;QACrB,KAAK,QAAQ;YACT,OAAO,KAAK,CAAC;QACjB,KAAK,OAAO;YACR,OAAO,OAAO,CAAC;QACnB;YACI,OAAO,IAAI,CAAC;IACpB,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,KAAc,EAAU,EAAE;IAClD,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvE,OAAO,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AACrD,CAAC,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { type UserConfig } from "../common/config/userConfig.js";
2
+ /**
3
+ * Runs the interactive setup wizard. When `setupTelemetry` is provided, each
4
+ * logical step emits a telemetry event so we can track both overall completion
5
+ * rates and per-step drop-off.
6
+ */
7
+ export declare const runSetup: (config: UserConfig) => Promise<never>;
8
+ //# sourceMappingURL=setupMcpServer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setupMcpServer.d.ts","sourceRoot":"","sources":["../../../src/setup/setupMcpServer.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAuYjE;;;;GAIG;AACH,eAAO,MAAM,QAAQ,GAAU,QAAQ,UAAU,KAAG,OAAO,CAAC,KAAK,CAoHhE,CAAC"}
@@ -0,0 +1,384 @@
1
+ /* eslint-disable no-console */
2
+ import select from "@inquirer/select";
3
+ import { input, confirm, password } from "@inquirer/prompts";
4
+ import path from "path";
5
+ import chalk from "chalk";
6
+ import semver from "semver";
7
+ import { NodeDriverServiceProvider } from "@mongosh/service-provider-node-driver";
8
+ import { AI_TOOL_REGISTRY, openConfigSettings, TOOLS_WITHOUT_EDITORS } from "./aiTool.js";
9
+ import { formatError, getPlatform } from "./setupAiToolsUtils.js";
10
+ import { packageInfo } from "../common/packageInfo.js";
11
+ import { getAuthType } from "../common/connectionInfo.js";
12
+ import { defaultCreateAtlasLocalClient } from "../common/atlasLocal.js";
13
+ import { NullLogger } from "../common/logging/index.js";
14
+ import { SetupTelemetry } from "./setupTelemetry.js";
15
+ import { Keychain, registerGlobalSecretToRedact } from "../common/keychain.js";
16
+ import { promptAndInstallSkills } from "./installSkills.js";
17
+ const buildEnvObject = (connectionString, serviceWorkerId, serviceWorkerSecret) => {
18
+ const env = {};
19
+ if (connectionString) {
20
+ env.MDB_MCP_CONNECTION_STRING = connectionString;
21
+ }
22
+ if (serviceWorkerId) {
23
+ env.MDB_MCP_API_CLIENT_ID = serviceWorkerId;
24
+ }
25
+ if (serviceWorkerSecret) {
26
+ env.MDB_MCP_API_CLIENT_SECRET = serviceWorkerSecret;
27
+ }
28
+ return env;
29
+ };
30
+ const testConnectionString = async (connectionString) => {
31
+ let attempts = 0;
32
+ while (true) {
33
+ attempts += 1;
34
+ console.log("\nTesting connection...");
35
+ let serviceProvider;
36
+ try {
37
+ serviceProvider = await NodeDriverServiceProvider.connect(connectionString, {
38
+ productDocsLink: "https://github.com/mongodb-js/mongodb-mcp-server/",
39
+ productName: "MongoDB MCP",
40
+ serverSelectionTimeoutMS: 10000,
41
+ });
42
+ await serviceProvider.runCommand("admin", { ping: 1 });
43
+ console.log(chalk.green("✓ Connection successful!"));
44
+ return { connectionString, testResult: "success", attempts };
45
+ }
46
+ catch (error) {
47
+ console.log(chalk.red("\n✗ Connection failed: " + formatError(error)));
48
+ console.log(chalk.yellow("\nPlease check:"));
49
+ console.log(chalk.yellow(" • Your database user credentials are correct"));
50
+ console.log(chalk.yellow(" • Your IP address is allowed in Network Access"));
51
+ console.log(chalk.yellow(" • The cluster is running and accessible"));
52
+ const retry = await confirm({
53
+ message: "\nWould you like to enter a new connection string and try again?",
54
+ default: true,
55
+ });
56
+ if (retry) {
57
+ connectionString = await password({ message: "Enter your MongoDB connection string:", mask: true });
58
+ }
59
+ else {
60
+ console.log(chalk.yellow("\nYou might be proceeding with a potentially invalid connection string."));
61
+ return { connectionString, testResult: "failure", attempts };
62
+ }
63
+ }
64
+ finally {
65
+ try {
66
+ await serviceProvider?.close();
67
+ }
68
+ catch {
69
+ // Ignore close errors
70
+ }
71
+ }
72
+ }
73
+ };
74
+ const configureEditor = async (tool, connectionString, serviceWorkerId, serviceWorkerSecret, isReadOnly) => {
75
+ const { name: displayName, configFileName } = AI_TOOL_REGISTRY[tool];
76
+ let { configPath } = AI_TOOL_REGISTRY[tool];
77
+ // Confirm the config path with the user
78
+ const useDetectedPath = await confirm({
79
+ message: `Is this the correct path for your ${displayName} config?\n ${configPath}`,
80
+ default: true,
81
+ });
82
+ if (!useDetectedPath) {
83
+ configPath = await input({
84
+ message: `Enter the correct path to your ${displayName} ${configFileName} file:`,
85
+ default: configPath,
86
+ });
87
+ }
88
+ // Resolve to absolute path and trim so we always write to the intended file
89
+ configPath = path.resolve(configPath.trim());
90
+ const env = buildEnvObject(connectionString, serviceWorkerId, serviceWorkerSecret);
91
+ try {
92
+ AI_TOOL_REGISTRY[tool].updateConfig(configPath, env, isReadOnly);
93
+ console.log(`\nConfiguration saved to ${configPath}`);
94
+ return { usedDefaultConfigPath: useDetectedPath, result: "success" };
95
+ }
96
+ catch (error) {
97
+ console.log(chalk.red(`\nFailed to save configuration: ${formatError(error)}`));
98
+ return { usedDefaultConfigPath: useDetectedPath, result: "failure", error };
99
+ }
100
+ };
101
+ const printNewLine = () => {
102
+ console.log("\n");
103
+ };
104
+ const printLogo = () => {
105
+ // Unicode block character banner with MongoDB leaf logo
106
+ const banner = `
107
+ ▄▄
108
+ ▟██▙ █▀▄▀█ █▀█ █▄ █ █▀▀ █▀█ █▀▄ █▄▄ █▀▄▀█ █▀▀ █▀█ █▀ █▀▀ █▀█ █ █ █▀▀ █▀█
109
+ ▟████▙ █ ▀ █ █▄█ █ ▀█ █▄█ █▄█ █▄▀ █▄█ █ ▀ █ █▄▄ █▀▀ ▄█ ██▄ █▀▄ ▀▄▀ ██▄ █▀▄
110
+ ▜████▛
111
+ ▜██▛ █▀ █▀▀ ▀█▀ █ █ █▀█
112
+ ▐▌ ▄█ ██▄ █ █▄█ █▀▀
113
+ `;
114
+ console.log(chalk.hex("#00ED64")(banner));
115
+ printNewLine();
116
+ };
117
+ const validateNodeVersion = () => {
118
+ const nodeVersion = process.versions.node;
119
+ const requiredNodeRange = packageInfo.engines.node;
120
+ if (!nodeVersion || !semver.satisfies(nodeVersion, requiredNodeRange)) {
121
+ console.log(chalk.red(`Node version satisfying "${requiredNodeRange}" is required for the MongoDB Local MCP Server. Current version: ${nodeVersion ?? "unknown"}. Please install or activate a compatible version.`));
122
+ printNewLine();
123
+ return false;
124
+ }
125
+ return true;
126
+ };
127
+ const validateDocker = async () => {
128
+ const client = await defaultCreateAtlasLocalClient({ logger: new NullLogger() });
129
+ if (client) {
130
+ try {
131
+ // Use the client to confirm docker is available and running
132
+ await client.listDeployments();
133
+ return true;
134
+ }
135
+ catch {
136
+ // Can't connect to docker daemon, treat as if docker isn't available and return false
137
+ }
138
+ }
139
+ return false;
140
+ };
141
+ const printInstructions = () => {
142
+ console.log("To install a Local MCP Server configuration, you will need at least ONE of the following:");
143
+ console.log("1. A MongoDB connection string (requires a cluster or local MongoDB instance)");
144
+ console.log("2. Your Atlas project's Service Account credentials\n");
145
+ console.log("It's best to have this information at hand. We will not store any data or credentials in this process.");
146
+ printNewLine();
147
+ };
148
+ const promptForAITool = async (platform) => {
149
+ return await select({
150
+ message: "What tool would you like to use the MongoDB MCP Server with?",
151
+ choices: [
152
+ { value: "cursor", name: "Cursor" },
153
+ { value: "vscode", name: "VS Code" },
154
+ // Claude Desktop is only supported on macOS and Windows
155
+ ...(platform !== "linux" ? [{ value: "claudeDesktop", name: "Claude Desktop" }] : []),
156
+ { value: "claudeCode", name: "Claude Code" },
157
+ { value: "opencode", name: "Open Code" },
158
+ { value: "windsurf", name: "Windsurf" },
159
+ ],
160
+ });
161
+ };
162
+ const promptForReadonly = async () => {
163
+ return await confirm({ message: "Install MCP server as Read-only?", default: false });
164
+ };
165
+ const promptForConnectionString = async (config) => {
166
+ console.log("Providing a connection string allows the MCP server to read and write data to your MongoDB cluster.");
167
+ const connectionString = await password({
168
+ message: "Enter your MongoDB connection string (press enter to skip):",
169
+ mask: true,
170
+ });
171
+ if (!connectionString) {
172
+ return { connectionString: "", provided: false, tested: false, attempts: 0 };
173
+ }
174
+ registerGlobalSecretToRedact(connectionString, "mongodb uri");
175
+ try {
176
+ const auth = getAuthType(config, connectionString);
177
+ if (auth === "scram") {
178
+ const shouldTest = await confirm({ message: "Test your connection string?", default: true });
179
+ if (shouldTest) {
180
+ const outcome = await testConnectionString(connectionString);
181
+ return {
182
+ connectionString: outcome.connectionString,
183
+ provided: true,
184
+ tested: true,
185
+ attempts: outcome.attempts,
186
+ testResult: outcome.testResult,
187
+ };
188
+ }
189
+ }
190
+ return { connectionString, provided: true, tested: false, attempts: 0 };
191
+ }
192
+ catch {
193
+ // If auth type detection failed but user provided a connection string, preserve it
194
+ return { connectionString, provided: true, tested: false, attempts: 0 };
195
+ }
196
+ };
197
+ const promptForServiceAccountId = async () => {
198
+ console.log("\nService Accounts allow the MCP Server to access Atlas tools and perform actions on your behalf.");
199
+ return await input({ message: "Enter your Atlas Service Account Client ID (press enter to skip):" });
200
+ };
201
+ const promptForServiceAccountSecret = async () => {
202
+ const secret = await password({
203
+ message: "Enter your Atlas Service Account Secret (press enter to skip):",
204
+ mask: true,
205
+ });
206
+ if (secret.trim()) {
207
+ registerGlobalSecretToRedact(secret, "private key");
208
+ }
209
+ return secret;
210
+ };
211
+ const validateCredentials = (connectionString, serviceAccountId, serviceAccountSecret, hasDocker) => {
212
+ // If either the connection string is missing or one of the service account credentials, throw error
213
+ if (!connectionString && (!serviceAccountId || !serviceAccountSecret)) {
214
+ console.log(chalk.yellow("No credentials have been provided, so the MCP Server will not be able to access your MongoDB data or Atlas project."));
215
+ if (hasDocker) {
216
+ console.log(chalk.yellow("Since you have Docker running, you can still use the MCP server with a local Atlas instance running in a container."));
217
+ }
218
+ else {
219
+ console.log(chalk.red("Since you don't have Docker running, you can only connect to a MongoDB instance dynamically, " +
220
+ chalk.bold(chalk.red("which is strongly discouraged as it will expose your connection string to the LLM."))));
221
+ }
222
+ printNewLine();
223
+ }
224
+ };
225
+ const getAvailablePrompts = (connectionString, serviceAccountId, serviceAccountSecret, hasDocker) => {
226
+ const availablePrompts = [];
227
+ if (connectionString) {
228
+ availablePrompts.push('\t"List the collections in my MongoDB instance"');
229
+ availablePrompts.push('\t"Show me some db stats about my Atlas cluster"');
230
+ }
231
+ if (serviceAccountId && serviceAccountSecret) {
232
+ availablePrompts.push('\t"What are the clusters in my project?"');
233
+ availablePrompts.push('\t"Does my project have any active alerts?"');
234
+ }
235
+ if (hasDocker) {
236
+ availablePrompts.push('\t"Create a local Atlas deployment and connect to it"');
237
+ availablePrompts.push('\t"How many databases are there in my local Atlas instance?"');
238
+ }
239
+ if (availablePrompts.length === 0) {
240
+ availablePrompts.push("\t[strongly discouraged] Connect to a MongoDB instance at mongodb://localhost:27017 and list the databases");
241
+ }
242
+ return availablePrompts;
243
+ };
244
+ const promptToOpenConfigFile = async (displayName, tool) => {
245
+ let openConfigMessage = `Would you like to open the config file in ${displayName}?`;
246
+ if (TOOLS_WITHOUT_EDITORS.includes(tool)) {
247
+ openConfigMessage = `Would you like to open the config file in your default editor?`;
248
+ }
249
+ const openConfig = await confirm({
250
+ message: openConfigMessage,
251
+ default: true,
252
+ });
253
+ if (!openConfig) {
254
+ return { opened: false, result: "success" };
255
+ }
256
+ try {
257
+ await openConfigSettings(tool);
258
+ return { opened: true, result: "success" };
259
+ }
260
+ catch (error) {
261
+ console.log(chalk.red(`Failed to open config file: ${formatError(error)}`));
262
+ return { opened: true, result: "failure", error };
263
+ }
264
+ };
265
+ const formatSkillsResult = (result) => {
266
+ switch (result.status) {
267
+ case "installed":
268
+ return chalk.green("✓ Agent skills installed.");
269
+ case "skipped":
270
+ return chalk.dim("○ Agent skills skipped.");
271
+ case "failed":
272
+ return chalk.red(`✗ Agent skills install failed (exit ${result.exitCode}).`);
273
+ }
274
+ };
275
+ const guideUserWithSetupSuccess = (displayName, availablePrompts, skillsResult) => {
276
+ printNewLine();
277
+ console.log(chalk.green(`Setup complete! You can now use the MongoDB MCP Server in ${displayName}. You will probably need to restart your application to see the changes.\n`));
278
+ console.log(formatSkillsResult(skillsResult));
279
+ printNewLine();
280
+ console.log("Try a query to get started:\n");
281
+ console.log(availablePrompts.join("\n"));
282
+ printNewLine();
283
+ };
284
+ class UnsupportedPlatformError extends Error {
285
+ constructor() {
286
+ super("Unsupported platform. Only macOS, Windows and Linux are supported.");
287
+ this.name = "UnsupportedPlatformError";
288
+ }
289
+ }
290
+ /**
291
+ * Runs the interactive setup wizard. When `setupTelemetry` is provided, each
292
+ * logical step emits a telemetry event so we can track both overall completion
293
+ * rates and per-step drop-off.
294
+ */
295
+ export const runSetup = async (config) => {
296
+ const setupTelemetry = SetupTelemetry.create(config, Keychain.root);
297
+ // Ensure hard cancellations (SIGINT/SIGTERM outside of an Inquirer prompt)
298
+ // are still captured. Inquirer itself converts Ctrl+C during prompts into
299
+ // an ExitPromptError which runSetup already handles.
300
+ let interrupted = false;
301
+ const onInterrupt = () => {
302
+ if (interrupted) {
303
+ return;
304
+ }
305
+ interrupted = true;
306
+ setupTelemetry.emitCancelled();
307
+ setupTelemetry
308
+ .flush()
309
+ .catch(() => undefined)
310
+ .finally(() => process.exit(0));
311
+ };
312
+ process.on("SIGINT", onInterrupt);
313
+ process.on("SIGTERM", onInterrupt);
314
+ let exitCode = 0;
315
+ try {
316
+ printLogo();
317
+ setupTelemetry.emitStarted();
318
+ const nodeVersionOk = validateNodeVersion();
319
+ const platform = getPlatform();
320
+ const platformSupported = platform !== null;
321
+ if (!platformSupported) {
322
+ console.log(chalk.red("Unsupported platform. Only macOS, Windows and Linux are supported."));
323
+ printNewLine();
324
+ throw new UnsupportedPlatformError();
325
+ }
326
+ printInstructions();
327
+ const hasDocker = await validateDocker();
328
+ setupTelemetry.emitPrerequisitesChecked({ nodeVersionOk, hasDocker });
329
+ const tool = await promptForAITool(platform);
330
+ const displayName = AI_TOOL_REGISTRY[tool].name;
331
+ setupTelemetry.emitAiToolSelected(tool);
332
+ printNewLine();
333
+ const isReadOnly = await promptForReadonly();
334
+ setupTelemetry.emitReadOnlySelected(isReadOnly);
335
+ printNewLine();
336
+ const connectionOutcome = await promptForConnectionString(config);
337
+ setupTelemetry.emitConnectionStringEntered({
338
+ provided: connectionOutcome.provided,
339
+ tested: connectionOutcome.tested,
340
+ attempts: connectionOutcome.attempts,
341
+ testResult: connectionOutcome.testResult,
342
+ });
343
+ const serviceAccountId = await promptForServiceAccountId();
344
+ setupTelemetry.emitServiceAccountIdEntered(Boolean(serviceAccountId));
345
+ const serviceAccountSecret = await promptForServiceAccountSecret();
346
+ setupTelemetry.emitServiceAccountSecretEntered(Boolean(serviceAccountSecret));
347
+ printNewLine();
348
+ validateCredentials(connectionOutcome.connectionString, serviceAccountId, serviceAccountSecret, hasDocker);
349
+ setupTelemetry.emitCredentialsValidated();
350
+ const editorOutcome = await configureEditor(tool, connectionOutcome.connectionString, serviceAccountId, serviceAccountSecret, isReadOnly);
351
+ setupTelemetry.emitEditorConfigured(editorOutcome);
352
+ const skillsResult = await promptAndInstallSkills({ tool, cwd: process.cwd() });
353
+ setupTelemetry.emitSkillsInstallPrompted(skillsResult);
354
+ const availablePrompts = getAvailablePrompts(connectionOutcome.connectionString, serviceAccountId, serviceAccountSecret, hasDocker);
355
+ guideUserWithSetupSuccess(displayName, availablePrompts, skillsResult);
356
+ const openOutcome = await promptToOpenConfigFile(displayName, tool);
357
+ setupTelemetry.emitOpenConfigPrompted(openOutcome);
358
+ setupTelemetry.emitCompleted();
359
+ }
360
+ catch (error) {
361
+ // Handle Ctrl+C during prompts (inquirer throws ExitPromptError)
362
+ // Re-throw other errors
363
+ if (error && typeof error === "object" && "name" in error && error.name === "ExitPromptError") {
364
+ console.log("\n\nSetup cancelled. Goodbye!");
365
+ setupTelemetry.emitCancelled();
366
+ }
367
+ else {
368
+ exitCode = 1;
369
+ setupTelemetry.emitFailed(error);
370
+ if (!(error instanceof UnsupportedPlatformError)) {
371
+ // Don't print the error message for UnsupportedPlatformError since we already
372
+ // printed it earlier.
373
+ console.error(`Setup failed: ${error instanceof Error ? error.message : String(error)}`);
374
+ }
375
+ }
376
+ }
377
+ finally {
378
+ process.off("SIGINT", onInterrupt);
379
+ process.off("SIGTERM", onInterrupt);
380
+ await setupTelemetry.flush();
381
+ }
382
+ process.exit(exitCode);
383
+ };
384
+ //# sourceMappingURL=setupMcpServer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setupMcpServer.js","sourceRoot":"","sources":["../../../src/setup/setupMcpServer.ts"],"names":[],"mappings":"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"}