mongodb-mcp-server 0.3.0 → 1.0.0-prerelease.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 (328) hide show
  1. package/README.md +137 -63
  2. package/dist/cjs/common/atlas/accessListUtils.d.ts +2 -1
  3. package/dist/cjs/common/atlas/accessListUtils.d.ts.map +1 -1
  4. package/dist/cjs/common/atlas/accessListUtils.js +4 -1
  5. package/dist/cjs/common/atlas/accessListUtils.js.map +1 -1
  6. package/dist/cjs/common/config.d.ts +11 -0
  7. package/dist/cjs/common/config.d.ts.map +1 -1
  8. package/dist/cjs/common/config.js +115 -4
  9. package/dist/cjs/common/config.js.map +1 -1
  10. package/dist/cjs/common/connectionErrorHandler.d.ts +18 -0
  11. package/dist/cjs/common/connectionErrorHandler.d.ts.map +1 -0
  12. package/dist/cjs/common/connectionErrorHandler.js +70 -0
  13. package/dist/cjs/common/connectionErrorHandler.js.map +1 -0
  14. package/dist/cjs/common/connectionManager.d.ts +36 -10
  15. package/dist/cjs/common/connectionManager.d.ts.map +1 -1
  16. package/dist/cjs/common/connectionManager.js +59 -45
  17. package/dist/cjs/common/connectionManager.js.map +1 -1
  18. package/dist/cjs/common/errors.d.ts +5 -4
  19. package/dist/cjs/common/errors.d.ts.map +1 -1
  20. package/dist/cjs/common/errors.js +1 -0
  21. package/dist/cjs/common/errors.js.map +1 -1
  22. package/dist/cjs/common/exportsManager.d.ts +7 -6
  23. package/dist/cjs/common/exportsManager.d.ts.map +1 -1
  24. package/dist/cjs/common/exportsManager.js +22 -25
  25. package/dist/cjs/common/exportsManager.js.map +1 -1
  26. package/dist/cjs/common/keychain.d.ts +22 -0
  27. package/dist/cjs/common/keychain.d.ts.map +1 -0
  28. package/dist/cjs/common/keychain.js +36 -0
  29. package/dist/cjs/common/keychain.js.map +1 -0
  30. package/dist/cjs/common/logger.d.ts +11 -3
  31. package/dist/cjs/common/logger.d.ts.map +1 -1
  32. package/dist/cjs/common/logger.js +20 -11
  33. package/dist/cjs/common/logger.js.map +1 -1
  34. package/dist/cjs/common/packageInfo.js +1 -1
  35. package/dist/cjs/common/packageInfo.js.map +1 -1
  36. package/dist/cjs/common/session.d.ts +4 -1
  37. package/dist/cjs/common/session.d.ts.map +1 -1
  38. package/dist/cjs/common/session.js +6 -5
  39. package/dist/cjs/common/session.js.map +1 -1
  40. package/dist/cjs/elicitation.d.ts +25 -0
  41. package/dist/cjs/elicitation.d.ts.map +1 -0
  42. package/dist/cjs/elicitation.js +50 -0
  43. package/dist/cjs/elicitation.js.map +1 -0
  44. package/dist/cjs/helpers/connectionOptions.js +3 -6
  45. package/dist/cjs/helpers/connectionOptions.js.map +1 -1
  46. package/dist/cjs/index.js +8 -3
  47. package/dist/cjs/index.js.map +1 -1
  48. package/dist/cjs/lib.d.ts +8 -4
  49. package/dist/cjs/lib.d.ts.map +1 -1
  50. package/dist/cjs/lib.js +12 -5
  51. package/dist/cjs/lib.js.map +1 -1
  52. package/dist/cjs/resources/common/exportedData.d.ts.map +1 -1
  53. package/dist/cjs/resources/common/exportedData.js +12 -3
  54. package/dist/cjs/resources/common/exportedData.js.map +1 -1
  55. package/dist/cjs/server.d.ts +7 -1
  56. package/dist/cjs/server.d.ts.map +1 -1
  57. package/dist/cjs/server.js +27 -6
  58. package/dist/cjs/server.js.map +1 -1
  59. package/dist/cjs/telemetry/eventCache.d.ts +11 -4
  60. package/dist/cjs/telemetry/eventCache.d.ts.map +1 -1
  61. package/dist/cjs/telemetry/eventCache.js +13 -6
  62. package/dist/cjs/telemetry/eventCache.js.map +1 -1
  63. package/dist/cjs/telemetry/telemetry.d.ts +9 -2
  64. package/dist/cjs/telemetry/telemetry.d.ts.map +1 -1
  65. package/dist/cjs/telemetry/telemetry.js +79 -42
  66. package/dist/cjs/telemetry/telemetry.js.map +1 -1
  67. package/dist/cjs/telemetry/types.d.ts +49 -0
  68. package/dist/cjs/telemetry/types.d.ts.map +1 -1
  69. package/dist/cjs/tools/args.d.ts +22 -0
  70. package/dist/cjs/tools/args.d.ts.map +1 -0
  71. package/dist/cjs/tools/args.js +50 -0
  72. package/dist/cjs/tools/args.js.map +1 -0
  73. package/dist/cjs/tools/atlas/atlasTool.d.ts +1 -2
  74. package/dist/cjs/tools/atlas/atlasTool.d.ts.map +1 -1
  75. package/dist/cjs/tools/atlas/atlasTool.js.map +1 -1
  76. package/dist/cjs/tools/atlas/connect/connectCluster.d.ts +7 -4
  77. package/dist/cjs/tools/atlas/connect/connectCluster.d.ts.map +1 -1
  78. package/dist/cjs/tools/atlas/connect/connectCluster.js +57 -31
  79. package/dist/cjs/tools/atlas/connect/connectCluster.js.map +1 -1
  80. package/dist/cjs/tools/atlas/create/createAccessList.d.ts +9 -1
  81. package/dist/cjs/tools/atlas/create/createAccessList.d.ts.map +1 -1
  82. package/dist/cjs/tools/atlas/create/createAccessList.js +30 -13
  83. package/dist/cjs/tools/atlas/create/createAccessList.js.map +1 -1
  84. package/dist/cjs/tools/atlas/create/createDBUser.d.ts +21 -1
  85. package/dist/cjs/tools/atlas/create/createDBUser.d.ts.map +1 -1
  86. package/dist/cjs/tools/atlas/create/createDBUser.js +38 -22
  87. package/dist/cjs/tools/atlas/create/createDBUser.js.map +1 -1
  88. package/dist/cjs/tools/atlas/create/createFreeCluster.d.ts +4 -5
  89. package/dist/cjs/tools/atlas/create/createFreeCluster.d.ts.map +1 -1
  90. package/dist/cjs/tools/atlas/create/createFreeCluster.js +4 -4
  91. package/dist/cjs/tools/atlas/create/createFreeCluster.js.map +1 -1
  92. package/dist/cjs/tools/atlas/create/createProject.d.ts +7 -4
  93. package/dist/cjs/tools/atlas/create/createProject.d.ts.map +1 -1
  94. package/dist/cjs/tools/atlas/create/createProject.js +7 -4
  95. package/dist/cjs/tools/atlas/create/createProject.js.map +1 -1
  96. package/dist/cjs/tools/atlas/read/inspectAccessList.d.ts +5 -3
  97. package/dist/cjs/tools/atlas/read/inspectAccessList.d.ts.map +1 -1
  98. package/dist/cjs/tools/atlas/read/inspectAccessList.js +7 -4
  99. package/dist/cjs/tools/atlas/read/inspectAccessList.js.map +1 -1
  100. package/dist/cjs/tools/atlas/read/inspectCluster.d.ts +7 -4
  101. package/dist/cjs/tools/atlas/read/inspectCluster.d.ts.map +1 -1
  102. package/dist/cjs/tools/atlas/read/inspectCluster.js +8 -5
  103. package/dist/cjs/tools/atlas/read/inspectCluster.js.map +1 -1
  104. package/dist/cjs/tools/atlas/read/listAlerts.d.ts +5 -3
  105. package/dist/cjs/tools/atlas/read/listAlerts.d.ts.map +1 -1
  106. package/dist/cjs/tools/atlas/read/listAlerts.js +7 -4
  107. package/dist/cjs/tools/atlas/read/listAlerts.js.map +1 -1
  108. package/dist/cjs/tools/atlas/read/listClusters.d.ts +4 -2
  109. package/dist/cjs/tools/atlas/read/listClusters.d.ts.map +1 -1
  110. package/dist/cjs/tools/atlas/read/listClusters.js +13 -10
  111. package/dist/cjs/tools/atlas/read/listClusters.js.map +1 -1
  112. package/dist/cjs/tools/atlas/read/listDBUsers.d.ts +4 -2
  113. package/dist/cjs/tools/atlas/read/listDBUsers.d.ts.map +1 -1
  114. package/dist/cjs/tools/atlas/read/listDBUsers.js +6 -3
  115. package/dist/cjs/tools/atlas/read/listDBUsers.js.map +1 -1
  116. package/dist/cjs/tools/atlas/read/listProjects.d.ts +4 -2
  117. package/dist/cjs/tools/atlas/read/listProjects.d.ts.map +1 -1
  118. package/dist/cjs/tools/atlas/read/listProjects.js +7 -4
  119. package/dist/cjs/tools/atlas/read/listProjects.js.map +1 -1
  120. package/dist/cjs/tools/mongodb/connect/connect.d.ts +2 -5
  121. package/dist/cjs/tools/mongodb/connect/connect.d.ts.map +1 -1
  122. package/dist/cjs/tools/mongodb/connect/connect.js +2 -2
  123. package/dist/cjs/tools/mongodb/connect/connect.js.map +1 -1
  124. package/dist/cjs/tools/mongodb/delete/deleteMany.d.ts +1 -0
  125. package/dist/cjs/tools/mongodb/delete/deleteMany.d.ts.map +1 -1
  126. package/dist/cjs/tools/mongodb/delete/deleteMany.js +10 -0
  127. package/dist/cjs/tools/mongodb/delete/deleteMany.js.map +1 -1
  128. package/dist/cjs/tools/mongodb/delete/dropCollection.d.ts +1 -0
  129. package/dist/cjs/tools/mongodb/delete/dropCollection.d.ts.map +1 -1
  130. package/dist/cjs/tools/mongodb/delete/dropCollection.js +5 -0
  131. package/dist/cjs/tools/mongodb/delete/dropCollection.js.map +1 -1
  132. package/dist/cjs/tools/mongodb/delete/dropDatabase.d.ts +1 -0
  133. package/dist/cjs/tools/mongodb/delete/dropDatabase.d.ts.map +1 -1
  134. package/dist/cjs/tools/mongodb/delete/dropDatabase.js +5 -0
  135. package/dist/cjs/tools/mongodb/delete/dropDatabase.js.map +1 -1
  136. package/dist/cjs/tools/mongodb/metadata/logs.d.ts +1 -1
  137. package/dist/cjs/tools/mongodb/metadata/logs.d.ts.map +1 -1
  138. package/dist/cjs/tools/mongodb/metadata/logs.js +9 -11
  139. package/dist/cjs/tools/mongodb/metadata/logs.js.map +1 -1
  140. package/dist/cjs/tools/mongodb/mongodbTool.d.ts.map +1 -1
  141. package/dist/cjs/tools/mongodb/mongodbTool.js +11 -52
  142. package/dist/cjs/tools/mongodb/mongodbTool.js.map +1 -1
  143. package/dist/cjs/tools/mongodb/read/aggregate.d.ts +1 -0
  144. package/dist/cjs/tools/mongodb/read/aggregate.d.ts.map +1 -1
  145. package/dist/cjs/tools/mongodb/read/aggregate.js +21 -0
  146. package/dist/cjs/tools/mongodb/read/aggregate.js.map +1 -1
  147. package/dist/cjs/tools/mongodb/read/export.js +1 -1
  148. package/dist/cjs/tools/mongodb/read/export.js.map +1 -1
  149. package/dist/cjs/tools/tool.d.ts +20 -5
  150. package/dist/cjs/tools/tool.d.ts.map +1 -1
  151. package/dist/cjs/tools/tool.js +43 -6
  152. package/dist/cjs/tools/tool.js.map +1 -1
  153. package/dist/cjs/transports/base.d.ts +17 -5
  154. package/dist/cjs/transports/base.d.ts.map +1 -1
  155. package/dist/cjs/transports/base.js +24 -9
  156. package/dist/cjs/transports/base.js.map +1 -1
  157. package/dist/cjs/transports/stdio.d.ts +2 -4
  158. package/dist/cjs/transports/stdio.d.ts.map +1 -1
  159. package/dist/cjs/transports/stdio.js +6 -6
  160. package/dist/cjs/transports/stdio.js.map +1 -1
  161. package/dist/cjs/transports/streamableHttp.d.ts +3 -4
  162. package/dist/cjs/transports/streamableHttp.d.ts.map +1 -1
  163. package/dist/cjs/transports/streamableHttp.js +22 -9
  164. package/dist/cjs/transports/streamableHttp.js.map +1 -1
  165. package/dist/esm/common/atlas/accessListUtils.d.ts +2 -1
  166. package/dist/esm/common/atlas/accessListUtils.d.ts.map +1 -1
  167. package/dist/esm/common/atlas/accessListUtils.js +4 -1
  168. package/dist/esm/common/atlas/accessListUtils.js.map +1 -1
  169. package/dist/esm/common/config.d.ts +11 -0
  170. package/dist/esm/common/config.d.ts.map +1 -1
  171. package/dist/esm/common/config.js +112 -4
  172. package/dist/esm/common/config.js.map +1 -1
  173. package/dist/esm/common/connectionErrorHandler.d.ts +18 -0
  174. package/dist/esm/common/connectionErrorHandler.d.ts.map +1 -0
  175. package/dist/esm/common/connectionErrorHandler.js +66 -0
  176. package/dist/esm/common/connectionErrorHandler.js.map +1 -0
  177. package/dist/esm/common/connectionManager.d.ts +36 -10
  178. package/dist/esm/common/connectionManager.d.ts.map +1 -1
  179. package/dist/esm/common/connectionManager.js +54 -39
  180. package/dist/esm/common/connectionManager.js.map +1 -1
  181. package/dist/esm/common/errors.d.ts +5 -4
  182. package/dist/esm/common/errors.d.ts.map +1 -1
  183. package/dist/esm/common/errors.js +1 -0
  184. package/dist/esm/common/errors.js.map +1 -1
  185. package/dist/esm/common/exportsManager.d.ts +7 -6
  186. package/dist/esm/common/exportsManager.d.ts.map +1 -1
  187. package/dist/esm/common/exportsManager.js +21 -24
  188. package/dist/esm/common/exportsManager.js.map +1 -1
  189. package/dist/esm/common/keychain.d.ts +22 -0
  190. package/dist/esm/common/keychain.d.ts.map +1 -0
  191. package/dist/esm/common/keychain.js +31 -0
  192. package/dist/esm/common/keychain.js.map +1 -0
  193. package/dist/esm/common/logger.d.ts +11 -3
  194. package/dist/esm/common/logger.d.ts.map +1 -1
  195. package/dist/esm/common/logger.js +20 -11
  196. package/dist/esm/common/logger.js.map +1 -1
  197. package/dist/esm/common/packageInfo.js +1 -1
  198. package/dist/esm/common/packageInfo.js.map +1 -1
  199. package/dist/esm/common/session.d.ts +4 -1
  200. package/dist/esm/common/session.d.ts.map +1 -1
  201. package/dist/esm/common/session.js +6 -5
  202. package/dist/esm/common/session.js.map +1 -1
  203. package/dist/esm/elicitation.d.ts +25 -0
  204. package/dist/esm/elicitation.d.ts.map +1 -0
  205. package/dist/esm/elicitation.js +46 -0
  206. package/dist/esm/elicitation.js.map +1 -0
  207. package/dist/esm/helpers/connectionOptions.js +1 -1
  208. package/dist/esm/helpers/connectionOptions.js.map +1 -1
  209. package/dist/esm/index.js +9 -4
  210. package/dist/esm/index.js.map +1 -1
  211. package/dist/esm/lib.d.ts +8 -4
  212. package/dist/esm/lib.d.ts.map +1 -1
  213. package/dist/esm/lib.js +5 -2
  214. package/dist/esm/lib.js.map +1 -1
  215. package/dist/esm/resources/common/exportedData.d.ts.map +1 -1
  216. package/dist/esm/resources/common/exportedData.js +12 -3
  217. package/dist/esm/resources/common/exportedData.js.map +1 -1
  218. package/dist/esm/server.d.ts +7 -1
  219. package/dist/esm/server.d.ts.map +1 -1
  220. package/dist/esm/server.js +28 -7
  221. package/dist/esm/server.js.map +1 -1
  222. package/dist/esm/telemetry/eventCache.d.ts +11 -4
  223. package/dist/esm/telemetry/eventCache.d.ts.map +1 -1
  224. package/dist/esm/telemetry/eventCache.js +13 -6
  225. package/dist/esm/telemetry/eventCache.js.map +1 -1
  226. package/dist/esm/telemetry/telemetry.d.ts +9 -2
  227. package/dist/esm/telemetry/telemetry.d.ts.map +1 -1
  228. package/dist/esm/telemetry/telemetry.js +79 -42
  229. package/dist/esm/telemetry/telemetry.js.map +1 -1
  230. package/dist/esm/telemetry/types.d.ts +49 -0
  231. package/dist/esm/telemetry/types.d.ts.map +1 -1
  232. package/dist/esm/tools/args.d.ts +22 -0
  233. package/dist/esm/tools/args.d.ts.map +1 -0
  234. package/dist/esm/tools/args.js +47 -0
  235. package/dist/esm/tools/args.js.map +1 -0
  236. package/dist/esm/tools/atlas/atlasTool.d.ts +1 -2
  237. package/dist/esm/tools/atlas/atlasTool.d.ts.map +1 -1
  238. package/dist/esm/tools/atlas/atlasTool.js.map +1 -1
  239. package/dist/esm/tools/atlas/connect/connectCluster.d.ts +7 -4
  240. package/dist/esm/tools/atlas/connect/connectCluster.d.ts.map +1 -1
  241. package/dist/esm/tools/atlas/connect/connectCluster.js +56 -30
  242. package/dist/esm/tools/atlas/connect/connectCluster.js.map +1 -1
  243. package/dist/esm/tools/atlas/create/createAccessList.d.ts +9 -1
  244. package/dist/esm/tools/atlas/create/createAccessList.d.ts.map +1 -1
  245. package/dist/esm/tools/atlas/create/createAccessList.js +29 -12
  246. package/dist/esm/tools/atlas/create/createAccessList.js.map +1 -1
  247. package/dist/esm/tools/atlas/create/createDBUser.d.ts +21 -1
  248. package/dist/esm/tools/atlas/create/createDBUser.d.ts.map +1 -1
  249. package/dist/esm/tools/atlas/create/createDBUser.js +37 -21
  250. package/dist/esm/tools/atlas/create/createDBUser.js.map +1 -1
  251. package/dist/esm/tools/atlas/create/createFreeCluster.d.ts +4 -5
  252. package/dist/esm/tools/atlas/create/createFreeCluster.d.ts.map +1 -1
  253. package/dist/esm/tools/atlas/create/createFreeCluster.js +4 -4
  254. package/dist/esm/tools/atlas/create/createFreeCluster.js.map +1 -1
  255. package/dist/esm/tools/atlas/create/createProject.d.ts +7 -4
  256. package/dist/esm/tools/atlas/create/createProject.d.ts.map +1 -1
  257. package/dist/esm/tools/atlas/create/createProject.js +6 -3
  258. package/dist/esm/tools/atlas/create/createProject.js.map +1 -1
  259. package/dist/esm/tools/atlas/read/inspectAccessList.d.ts +5 -3
  260. package/dist/esm/tools/atlas/read/inspectAccessList.d.ts.map +1 -1
  261. package/dist/esm/tools/atlas/read/inspectAccessList.js +6 -3
  262. package/dist/esm/tools/atlas/read/inspectAccessList.js.map +1 -1
  263. package/dist/esm/tools/atlas/read/inspectCluster.d.ts +7 -4
  264. package/dist/esm/tools/atlas/read/inspectCluster.d.ts.map +1 -1
  265. package/dist/esm/tools/atlas/read/inspectCluster.js +7 -4
  266. package/dist/esm/tools/atlas/read/inspectCluster.js.map +1 -1
  267. package/dist/esm/tools/atlas/read/listAlerts.d.ts +5 -3
  268. package/dist/esm/tools/atlas/read/listAlerts.d.ts.map +1 -1
  269. package/dist/esm/tools/atlas/read/listAlerts.js +6 -3
  270. package/dist/esm/tools/atlas/read/listAlerts.js.map +1 -1
  271. package/dist/esm/tools/atlas/read/listClusters.d.ts +4 -2
  272. package/dist/esm/tools/atlas/read/listClusters.d.ts.map +1 -1
  273. package/dist/esm/tools/atlas/read/listClusters.js +12 -9
  274. package/dist/esm/tools/atlas/read/listClusters.js.map +1 -1
  275. package/dist/esm/tools/atlas/read/listDBUsers.d.ts +4 -2
  276. package/dist/esm/tools/atlas/read/listDBUsers.d.ts.map +1 -1
  277. package/dist/esm/tools/atlas/read/listDBUsers.js +5 -2
  278. package/dist/esm/tools/atlas/read/listDBUsers.js.map +1 -1
  279. package/dist/esm/tools/atlas/read/listProjects.d.ts +4 -2
  280. package/dist/esm/tools/atlas/read/listProjects.d.ts.map +1 -1
  281. package/dist/esm/tools/atlas/read/listProjects.js +6 -3
  282. package/dist/esm/tools/atlas/read/listProjects.js.map +1 -1
  283. package/dist/esm/tools/mongodb/connect/connect.d.ts +2 -5
  284. package/dist/esm/tools/mongodb/connect/connect.d.ts.map +1 -1
  285. package/dist/esm/tools/mongodb/connect/connect.js +2 -2
  286. package/dist/esm/tools/mongodb/connect/connect.js.map +1 -1
  287. package/dist/esm/tools/mongodb/delete/deleteMany.d.ts +1 -0
  288. package/dist/esm/tools/mongodb/delete/deleteMany.d.ts.map +1 -1
  289. package/dist/esm/tools/mongodb/delete/deleteMany.js +10 -0
  290. package/dist/esm/tools/mongodb/delete/deleteMany.js.map +1 -1
  291. package/dist/esm/tools/mongodb/delete/dropCollection.d.ts +1 -0
  292. package/dist/esm/tools/mongodb/delete/dropCollection.d.ts.map +1 -1
  293. package/dist/esm/tools/mongodb/delete/dropCollection.js +5 -0
  294. package/dist/esm/tools/mongodb/delete/dropCollection.js.map +1 -1
  295. package/dist/esm/tools/mongodb/delete/dropDatabase.d.ts +1 -0
  296. package/dist/esm/tools/mongodb/delete/dropDatabase.d.ts.map +1 -1
  297. package/dist/esm/tools/mongodb/delete/dropDatabase.js +5 -0
  298. package/dist/esm/tools/mongodb/delete/dropDatabase.js.map +1 -1
  299. package/dist/esm/tools/mongodb/metadata/logs.d.ts +1 -1
  300. package/dist/esm/tools/mongodb/metadata/logs.d.ts.map +1 -1
  301. package/dist/esm/tools/mongodb/metadata/logs.js +9 -11
  302. package/dist/esm/tools/mongodb/metadata/logs.js.map +1 -1
  303. package/dist/esm/tools/mongodb/mongodbTool.d.ts.map +1 -1
  304. package/dist/esm/tools/mongodb/mongodbTool.js +11 -52
  305. package/dist/esm/tools/mongodb/mongodbTool.js.map +1 -1
  306. package/dist/esm/tools/mongodb/read/aggregate.d.ts +1 -0
  307. package/dist/esm/tools/mongodb/read/aggregate.d.ts.map +1 -1
  308. package/dist/esm/tools/mongodb/read/aggregate.js +21 -0
  309. package/dist/esm/tools/mongodb/read/aggregate.js.map +1 -1
  310. package/dist/esm/tools/mongodb/read/export.js +1 -1
  311. package/dist/esm/tools/mongodb/read/export.js.map +1 -1
  312. package/dist/esm/tools/tool.d.ts +20 -5
  313. package/dist/esm/tools/tool.d.ts.map +1 -1
  314. package/dist/esm/tools/tool.js +43 -6
  315. package/dist/esm/tools/tool.js.map +1 -1
  316. package/dist/esm/transports/base.d.ts +17 -5
  317. package/dist/esm/transports/base.d.ts.map +1 -1
  318. package/dist/esm/transports/base.js +24 -9
  319. package/dist/esm/transports/base.js.map +1 -1
  320. package/dist/esm/transports/stdio.d.ts +2 -4
  321. package/dist/esm/transports/stdio.d.ts.map +1 -1
  322. package/dist/esm/transports/stdio.js +6 -6
  323. package/dist/esm/transports/stdio.js.map +1 -1
  324. package/dist/esm/transports/streamableHttp.d.ts +3 -4
  325. package/dist/esm/transports/streamableHttp.d.ts.map +1 -1
  326. package/dist/esm/transports/streamableHttp.js +22 -9
  327. package/dist/esm/transports/streamableHttp.js.map +1 -1
  328. package/package.json +22 -21
@@ -4,12 +4,17 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.driverOptions = exports.defaultDriverOptions = exports.config = exports.defaultUserConfig = void 0;
7
+ exports.validateConfigKey = validateConfigKey;
8
+ exports.warnAboutDeprecatedOrUnknownCliArgs = warnAboutDeprecatedOrUnknownCliArgs;
9
+ exports.registerKnownSecretsInRootKeychain = registerKnownSecretsInRootKeychain;
7
10
  exports.setupUserConfig = setupUserConfig;
8
11
  exports.setupDriverConfig = setupDriverConfig;
9
12
  const path_1 = __importDefault(require("path"));
10
13
  const os_1 = __importDefault(require("os"));
11
14
  const yargs_parser_1 = __importDefault(require("yargs-parser"));
12
15
  const arg_parser_1 = require("@mongosh/arg-parser");
16
+ const keychain_js_1 = require("./keychain.js");
17
+ const ts_levenshtein_1 = __importDefault(require("ts-levenshtein"));
13
18
  // From: https://github.com/mongodb-js/mongosh/blob/main/packages/cli-repl/src/arg-parser.ts
14
19
  const OPTIONS = {
15
20
  string: [
@@ -51,6 +56,7 @@ const OPTIONS = {
51
56
  "tlsCertificateSelector",
52
57
  "tlsDisabledProtocols",
53
58
  "username",
59
+ "atlasTemporaryDatabaseUserLifetimeMs",
54
60
  ],
55
61
  boolean: [
56
62
  "apiDeprecationErrors",
@@ -94,6 +100,35 @@ const OPTIONS = {
94
100
  "short-option-groups": false,
95
101
  },
96
102
  };
103
+ const ALL_CONFIG_KEYS = new Set(OPTIONS.string
104
+ .concat(OPTIONS.array)
105
+ .concat(OPTIONS.boolean)
106
+ .concat(Object.keys(OPTIONS.alias)));
107
+ function validateConfigKey(key) {
108
+ if (ALL_CONFIG_KEYS.has(key)) {
109
+ return { valid: true };
110
+ }
111
+ let minLev = Number.MAX_VALUE;
112
+ let suggestion = "";
113
+ // find the closest match for a suggestion
114
+ for (const validKey of ALL_CONFIG_KEYS) {
115
+ // check if there is an exact case-insensitive match
116
+ if (validKey.toLowerCase() === key.toLowerCase()) {
117
+ return { valid: false, suggestion: validKey };
118
+ }
119
+ // else, infer something using levenshtein so we suggest a valid key
120
+ const lev = ts_levenshtein_1.default.get(key, validKey);
121
+ if (lev < minLev) {
122
+ minLev = lev;
123
+ suggestion = validKey;
124
+ }
125
+ }
126
+ if (minLev <= 2) {
127
+ // accept up to 2 typos
128
+ return { valid: false, suggestion };
129
+ }
130
+ return { valid: false };
131
+ }
97
132
  function isConnectionSpecifier(arg) {
98
133
  return (arg !== undefined &&
99
134
  (arg.startsWith("mongodb://") ||
@@ -104,19 +139,27 @@ exports.defaultUserConfig = {
104
139
  apiBaseUrl: "https://cloud.mongodb.com/",
105
140
  logPath: getLogPath(),
106
141
  exportsPath: getExportsPath(),
107
- exportTimeoutMs: 300000, // 5 minutes
108
- exportCleanupIntervalMs: 120000, // 2 minutes
142
+ exportTimeoutMs: 5 * 60 * 1000, // 5 minutes
143
+ exportCleanupIntervalMs: 2 * 60 * 1000, // 2 minutes
109
144
  disabledTools: [],
110
145
  telemetry: "enabled",
111
146
  readOnly: false,
112
147
  indexCheck: false,
148
+ confirmationRequiredTools: [
149
+ "atlas-create-access-list",
150
+ "atlas-create-db-user",
151
+ "drop-database",
152
+ "drop-collection",
153
+ "delete-many",
154
+ ],
113
155
  transport: "stdio",
114
156
  httpPort: 3000,
115
157
  httpHost: "127.0.0.1",
116
158
  loggers: ["disk", "mcp"],
117
- idleTimeoutMs: 600000, // 10 minutes
118
- notificationTimeoutMs: 540000, // 9 minutes
159
+ idleTimeoutMs: 10 * 60 * 1000, // 10 minutes
160
+ notificationTimeoutMs: 9 * 60 * 1000, // 9 minutes
119
161
  httpHeaders: {},
162
+ atlasTemporaryDatabaseUserLifetimeMs: 4 * 60 * 60 * 1000, // 4 hours
120
163
  };
121
164
  exports.config = setupUserConfig({
122
165
  defaults: exports.defaultUserConfig,
@@ -155,12 +198,17 @@ function getExportsPath() {
155
198
  // are prefixed with `MDB_MCP_` and the keys match the UserConfig keys, but are converted
156
199
  // to SNAKE_UPPER_CASE.
157
200
  function parseEnvConfig(env) {
201
+ const CONFIG_WITH_URLS = new Set(["connectionString"]);
158
202
  function setValue(obj, path, value) {
159
203
  const currentField = path.shift();
160
204
  if (!currentField) {
161
205
  return;
162
206
  }
163
207
  if (path.length === 0) {
208
+ if (CONFIG_WITH_URLS.has(currentField)) {
209
+ obj[currentField] = value;
210
+ return;
211
+ }
164
212
  const numberValue = Number(value);
165
213
  if (!isNaN(numberValue)) {
166
214
  obj[currentField] = numberValue;
@@ -207,6 +255,14 @@ function parseCliConfig(args) {
207
255
  const programArgs = args.slice(2);
208
256
  const parsed = (0, yargs_parser_1.default)(programArgs, OPTIONS);
209
257
  const positionalArguments = parsed._ ?? [];
258
+ // we use console.warn here because we still don't have our logging system configured
259
+ // so we don't have a logger. For stdio, the warning will be received as a string in
260
+ // the client and IDEs like VSCode do show the message in the log window. For HTTP,
261
+ // it will be in the stdout of the process.
262
+ warnAboutDeprecatedOrUnknownCliArgs({ ...parsed, _: positionalArguments }, {
263
+ warn: (msg) => console.warn(msg),
264
+ exit: (status) => process.exit(status),
265
+ });
210
266
  // if we have a positional argument that matches a connection string
211
267
  // store it as the connection specifier and remove it from the argument
212
268
  // list, so it doesn't get misunderstood by the mongosh args-parser
@@ -216,6 +272,39 @@ function parseCliConfig(args) {
216
272
  delete parsed._;
217
273
  return parsed;
218
274
  }
275
+ function warnAboutDeprecatedOrUnknownCliArgs(args, { warn, exit }) {
276
+ let usedDeprecatedArgument = false;
277
+ let usedInvalidArgument = false;
278
+ const knownArgs = args;
279
+ // the first position argument should be used
280
+ // instead of --connectionString, as it's how the mongosh works.
281
+ if (knownArgs.connectionString) {
282
+ usedDeprecatedArgument = true;
283
+ warn("The --connectionString argument is deprecated. Prefer using the first positional argument for the connection string or the MDB_MCP_CONNECTION_STRING environment variable.");
284
+ }
285
+ for (const providedKey of Object.keys(args)) {
286
+ if (providedKey === "_") {
287
+ // positional argument
288
+ continue;
289
+ }
290
+ const { valid, suggestion } = validateConfigKey(providedKey);
291
+ if (!valid) {
292
+ usedInvalidArgument = true;
293
+ if (suggestion) {
294
+ warn(`Invalid command line argument '${providedKey}'. Did you mean '${suggestion}'?`);
295
+ }
296
+ else {
297
+ warn(`Invalid command line argument '${providedKey}'.`);
298
+ }
299
+ }
300
+ }
301
+ if (usedInvalidArgument || usedDeprecatedArgument) {
302
+ warn("Refer to https://www.mongodb.com/docs/mcp-server/get-started/ for setting up the MCP Server.");
303
+ }
304
+ if (usedInvalidArgument) {
305
+ exit(1);
306
+ }
307
+ }
219
308
  function commaSeparatedToArray(str) {
220
309
  if (str === undefined) {
221
310
  return [];
@@ -234,6 +323,26 @@ function commaSeparatedToArray(str) {
234
323
  }
235
324
  return str;
236
325
  }
326
+ function registerKnownSecretsInRootKeychain(userConfig) {
327
+ const keychain = keychain_js_1.Keychain.root;
328
+ const maybeRegister = (value, kind) => {
329
+ if (value) {
330
+ keychain.register(value, kind);
331
+ }
332
+ };
333
+ maybeRegister(userConfig.apiClientId, "user");
334
+ maybeRegister(userConfig.apiClientSecret, "password");
335
+ maybeRegister(userConfig.awsAccessKeyId, "password");
336
+ maybeRegister(userConfig.awsIamSessionToken, "password");
337
+ maybeRegister(userConfig.awsSecretAccessKey, "password");
338
+ maybeRegister(userConfig.awsSessionToken, "password");
339
+ maybeRegister(userConfig.password, "password");
340
+ maybeRegister(userConfig.tlsCAFile, "url");
341
+ maybeRegister(userConfig.tlsCRLFile, "url");
342
+ maybeRegister(userConfig.tlsCertificateKeyFile, "url");
343
+ maybeRegister(userConfig.tlsCertificateKeyFilePassword, "password");
344
+ maybeRegister(userConfig.username, "user");
345
+ }
237
346
  function setupUserConfig({ cli, env, defaults, }) {
238
347
  const userConfig = {
239
348
  ...defaults,
@@ -242,6 +351,7 @@ function setupUserConfig({ cli, env, defaults, }) {
242
351
  };
243
352
  userConfig.disabledTools = commaSeparatedToArray(userConfig.disabledTools);
244
353
  userConfig.loggers = commaSeparatedToArray(userConfig.loggers);
354
+ userConfig.confirmationRequiredTools = commaSeparatedToArray(userConfig.confirmationRequiredTools);
245
355
  if (userConfig.connectionString && userConfig.connectionSpecifier) {
246
356
  const connectionInfo = (0, arg_parser_1.generateConnectionInfoFromCliArgs)(userConfig);
247
357
  userConfig.connectionString = connectionInfo.connectionString;
@@ -270,6 +380,7 @@ function setupUserConfig({ cli, env, defaults, }) {
270
380
  throw new Error(`Invalid logger: ${loggerType}`);
271
381
  }
272
382
  }
383
+ registerKnownSecretsInRootKeychain(userConfig);
273
384
  return userConfig;
274
385
  }
275
386
  function setupDriverConfig({ config, defaults, }) {
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/common/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/common/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import type { CallToolResult } from "@modelcontextprotocol/sdk/types.js";
2
+ import { ErrorCodes, type MongoDBError } from "./errors.js";
3
+ import type { AnyConnectionState } from "./connectionManager.js";
4
+ import type { ToolBase } from "../tools/tool.js";
5
+ export type ConnectionErrorHandler = (error: MongoDBError<ErrorCodes.NotConnectedToMongoDB | ErrorCodes.MisconfiguredConnectionString>, additionalContext: ConnectionErrorHandlerContext) => ConnectionErrorUnhandled | ConnectionErrorHandled;
6
+ export type ConnectionErrorHandlerContext = {
7
+ availableTools: ToolBase[];
8
+ connectionState: AnyConnectionState;
9
+ };
10
+ export type ConnectionErrorUnhandled = {
11
+ errorHandled: false;
12
+ };
13
+ export type ConnectionErrorHandled = {
14
+ errorHandled: true;
15
+ result: CallToolResult;
16
+ };
17
+ export declare const connectionErrorHandler: ConnectionErrorHandler;
18
+ //# sourceMappingURL=connectionErrorHandler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connectionErrorHandler.d.ts","sourceRoot":"","sources":["../../../src/common/connectionErrorHandler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,UAAU,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEjD,MAAM,MAAM,sBAAsB,GAAG,CACjC,KAAK,EAAE,YAAY,CAAC,UAAU,CAAC,qBAAqB,GAAG,UAAU,CAAC,6BAA6B,CAAC,EAChG,iBAAiB,EAAE,6BAA6B,KAC/C,wBAAwB,GAAG,sBAAsB,CAAC;AAEvD,MAAM,MAAM,6BAA6B,GAAG;IAAE,cAAc,EAAE,QAAQ,EAAE,CAAC;IAAC,eAAe,EAAE,kBAAkB,CAAA;CAAE,CAAC;AAChH,MAAM,MAAM,wBAAwB,GAAG;IAAE,YAAY,EAAE,KAAK,CAAA;CAAE,CAAC;AAC/D,MAAM,MAAM,sBAAsB,GAAG;IAAE,YAAY,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,cAAc,CAAA;CAAE,CAAC;AAEpF,eAAO,MAAM,sBAAsB,EAAE,sBAmEpC,CAAC"}
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.connectionErrorHandler = void 0;
4
+ const errors_js_1 = require("./errors.js");
5
+ const connectionErrorHandler = (error, { availableTools, connectionState }) => {
6
+ const connectTools = availableTools
7
+ .filter((t) => t.operationType === "connect")
8
+ .sort((a, b) => a.category.localeCompare(b.category)); // Sort Atlas tools before MongoDB tools
9
+ // Find the first Atlas connect tool if available and suggest to the LLM to use it.
10
+ // Note: if we ever have multiple Atlas connect tools, we may want to refine this logic to select the most appropriate one.
11
+ const atlasConnectTool = connectTools?.find((t) => t.category === "atlas");
12
+ const llmConnectHint = atlasConnectTool
13
+ ? `Note to LLM: prefer using the "${atlasConnectTool.name}" tool to connect to an Atlas cluster over using a connection string. Make sure to ask the user to specify a cluster name they want to connect to or ask them if they want to use the "list-clusters" tool to list all their clusters. Do not invent cluster names or connection strings unless the user has explicitly specified them. If they've previously connected to MongoDB using MCP, you can ask them if they want to reconnect using the same cluster/connection.`
14
+ : "Note to LLM: do not invent connection strings and explicitly ask the user to provide one. If they have previously connected to MongoDB using MCP, you can ask them if they want to reconnect using the same connection string.";
15
+ const connectToolsNames = connectTools?.map((t) => `"${t.name}"`).join(", ");
16
+ const additionalPromptForConnectivity = [];
17
+ if (connectionState.tag === "connecting" && connectionState.oidcConnectionType) {
18
+ additionalPromptForConnectivity.push({
19
+ type: "text",
20
+ text: `The user needs to finish their OIDC connection by opening '${connectionState.oidcLoginUrl}' in the browser and use the following user code: '${connectionState.oidcUserCode}'`,
21
+ });
22
+ }
23
+ else {
24
+ additionalPromptForConnectivity.push({
25
+ type: "text",
26
+ text: connectToolsNames
27
+ ? `Please use one of the following tools: ${connectToolsNames} to connect to a MongoDB instance or update the MCP server configuration to include a connection string. ${llmConnectHint}`
28
+ : "There are no tools available to connect. Please update the configuration to include a connection string and restart the server.",
29
+ });
30
+ }
31
+ switch (error.code) {
32
+ case errors_js_1.ErrorCodes.NotConnectedToMongoDB:
33
+ return {
34
+ errorHandled: true,
35
+ result: {
36
+ content: [
37
+ {
38
+ type: "text",
39
+ text: "You need to connect to a MongoDB instance before you can access its data.",
40
+ },
41
+ ...additionalPromptForConnectivity,
42
+ ],
43
+ isError: true,
44
+ },
45
+ };
46
+ case errors_js_1.ErrorCodes.MisconfiguredConnectionString:
47
+ return {
48
+ errorHandled: true,
49
+ result: {
50
+ content: [
51
+ {
52
+ type: "text",
53
+ text: "The configured connection string is not valid. Please check the connection string and confirm it points to a valid MongoDB instance.",
54
+ },
55
+ {
56
+ type: "text",
57
+ text: connectTools
58
+ ? `Alternatively, you can use one of the following tools: ${connectToolsNames} to connect to a MongoDB instance. ${llmConnectHint}`
59
+ : "Please update the configuration to use a valid connection string and restart the server.",
60
+ },
61
+ ],
62
+ isError: true,
63
+ },
64
+ };
65
+ default:
66
+ return { errorHandled: false };
67
+ }
68
+ };
69
+ exports.connectionErrorHandler = connectionErrorHandler;
70
+ //# sourceMappingURL=connectionErrorHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connectionErrorHandler.js","sourceRoot":"","sources":["../../../src/common/connectionErrorHandler.ts"],"names":[],"mappings":";;;AACA,2CAA4D;AAarD,MAAM,sBAAsB,GAA2B,CAAC,KAAK,EAAE,EAAE,cAAc,EAAE,eAAe,EAAE,EAAE,EAAE;IACzG,MAAM,YAAY,GAAG,cAAc;SAC9B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,KAAK,SAAS,CAAC;SAC5C,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,wCAAwC;IAEnG,mFAAmF;IACnF,2HAA2H;IAC3H,MAAM,gBAAgB,GAAG,YAAY,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC;IAC3E,MAAM,cAAc,GAAG,gBAAgB;QACnC,CAAC,CAAC,kCAAkC,gBAAgB,CAAC,IAAI,6cAA6c;QACtgB,CAAC,CAAC,gOAAgO,CAAC;IAEvO,MAAM,iBAAiB,GAAG,YAAY,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7E,MAAM,+BAA+B,GAAqC,EAAE,CAAC;IAE7E,IAAI,eAAe,CAAC,GAAG,KAAK,YAAY,IAAI,eAAe,CAAC,kBAAkB,EAAE,CAAC;QAC7E,+BAA+B,CAAC,IAAI,CAAC;YACjC,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,8DAA8D,eAAe,CAAC,YAAY,sDAAsD,eAAe,CAAC,YAAY,GAAG;SACxL,CAAC,CAAC;IACP,CAAC;SAAM,CAAC;QACJ,+BAA+B,CAAC,IAAI,CAAC;YACjC,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,iBAAiB;gBACnB,CAAC,CAAC,0CAA0C,iBAAiB,4GAA4G,cAAc,EAAE;gBACzL,CAAC,CAAC,iIAAiI;SAC1I,CAAC,CAAC;IACP,CAAC;IAED,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACjB,KAAK,sBAAU,CAAC,qBAAqB;YACjC,OAAO;gBACH,YAAY,EAAE,IAAI;gBAClB,MAAM,EAAE;oBACJ,OAAO,EAAE;wBACL;4BACI,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,2EAA2E;yBACpF;wBACD,GAAG,+BAA+B;qBACrC;oBACD,OAAO,EAAE,IAAI;iBAChB;aACJ,CAAC;QACN,KAAK,sBAAU,CAAC,6BAA6B;YACzC,OAAO;gBACH,YAAY,EAAE,IAAI;gBAClB,MAAM,EAAE;oBACJ,OAAO,EAAE;wBACL;4BACI,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,sIAAsI;yBAC/I;wBACD;4BACI,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,YAAY;gCACd,CAAC,CAAC,0DAA0D,iBAAiB,sCAAsC,cAAc,EAAE;gCACnI,CAAC,CAAC,0FAA0F;yBACnG;qBACJ;oBACD,OAAO,EAAE,IAAI;iBAChB;aACJ,CAAC;QAEN;YACI,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC;IACvC,CAAC;AACL,CAAC,CAAC;AAnEW,QAAA,sBAAsB,0BAmEjC"}
@@ -1,8 +1,8 @@
1
- import type { UserConfig, DriverOptions } from "./config.js";
1
+ import { EventEmitter } from "events";
2
2
  import { NodeDriverServiceProvider } from "@mongosh/service-provider-node-driver";
3
- import EventEmitter from "events";
4
3
  import type { DeviceId } from "../helpers/deviceId.js";
5
- import type { CompositeLogger } from "./logger.js";
4
+ import { type DriverOptions, type UserConfig } from "./config.js";
5
+ import { type LoggerBase } from "./logger.js";
6
6
  export interface AtlasClusterConnectionInfo {
7
7
  username: string;
8
8
  projectId: string;
@@ -47,20 +47,35 @@ export interface ConnectionManagerEvents {
47
47
  "connection-close": [ConnectionStateDisconnected];
48
48
  "connection-error": [ConnectionStateErrored];
49
49
  }
50
- export declare class ConnectionManager extends EventEmitter<ConnectionManagerEvents> {
50
+ /**
51
+ * For a few tests, we need the changeState method to force a connection state
52
+ * which is we have this type to typecast the actual ConnectionManager with
53
+ * public changeState (only to make TS happy).
54
+ */
55
+ export type TestConnectionManager = ConnectionManager & {
56
+ changeState<Event extends keyof ConnectionManagerEvents, State extends ConnectionManagerEvents[Event][0]>(event: Event, newState: State): State;
57
+ };
58
+ export declare abstract class ConnectionManager {
59
+ protected clientName: string;
60
+ protected readonly _events: EventEmitter<ConnectionManagerEvents>;
61
+ readonly events: Pick<EventEmitter<ConnectionManagerEvents>, "on" | "off" | "once">;
62
+ private state;
63
+ constructor();
64
+ get currentConnectionState(): AnyConnectionState;
65
+ protected changeState<Event extends keyof ConnectionManagerEvents, State extends ConnectionManagerEvents[Event][0]>(event: Event, newState: State): State;
66
+ setClientName(clientName: string): void;
67
+ abstract connect(settings: ConnectionSettings): Promise<AnyConnectionState>;
68
+ abstract disconnect(): Promise<ConnectionStateDisconnected | ConnectionStateErrored>;
69
+ }
70
+ export declare class MCPConnectionManager extends ConnectionManager {
51
71
  private userConfig;
52
72
  private driverOptions;
53
73
  private logger;
54
- private state;
55
74
  private deviceId;
56
- private clientName;
57
75
  private bus;
58
- constructor(userConfig: UserConfig, driverOptions: DriverOptions, logger: CompositeLogger, deviceId: DeviceId, bus?: EventEmitter);
59
- setClientName(clientName: string): void;
76
+ constructor(userConfig: UserConfig, driverOptions: DriverOptions, logger: LoggerBase, deviceId: DeviceId, bus?: EventEmitter);
60
77
  connect(settings: ConnectionSettings): Promise<AnyConnectionState>;
61
78
  disconnect(): Promise<ConnectionStateDisconnected | ConnectionStateErrored>;
62
- get currentConnectionState(): AnyConnectionState;
63
- changeState<Event extends keyof ConnectionManagerEvents, State extends ConnectionManagerEvents[Event][0]>(event: Event, newState: State): State;
64
79
  private onOidcAuthFailed;
65
80
  private onOidcAuthSucceeded;
66
81
  private onOidcNotifyDeviceFlow;
@@ -70,5 +85,16 @@ export declare class ConnectionManager extends EventEmitter<ConnectionManagerEve
70
85
  private pingAndForget;
71
86
  private disconnectOnOidcError;
72
87
  }
88
+ /**
89
+ * Consumers of MCP server library have option to bring their own connection
90
+ * management if they need to. To support that, we enable injecting connection
91
+ * manager implementation through a factory function.
92
+ */
93
+ export type ConnectionManagerFactoryFn = (createParams: {
94
+ logger: LoggerBase;
95
+ deviceId: DeviceId;
96
+ userConfig: UserConfig;
97
+ }) => Promise<ConnectionManager>;
98
+ export declare const createMCPConnectionManager: ConnectionManagerFactoryFn;
73
99
  export {};
74
100
  //# sourceMappingURL=connectionManager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"connectionManager.d.ts","sourceRoot":"","sources":["../../../src/common/connectionManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAE,yBAAyB,EAAE,MAAM,uCAAuC,CAAC;AAClF,OAAO,YAAY,MAAM,QAAQ,CAAC;AAMlC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAEvD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAKnD,MAAM,WAAW,0BAA0B;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,IAAI,CAAC;CACpB;AAED,MAAM,WAAW,kBAAkB;IAC/B,gBAAgB,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,0BAA0B,CAAC;CACtC;AAED,KAAK,aAAa,GAAG,WAAW,GAAG,YAAY,GAAG,cAAc,GAAG,SAAS,CAAC;AAC7E,KAAK,sBAAsB,GAAG,gBAAgB,GAAG,kBAAkB,CAAC;AACpE,MAAM,MAAM,wBAAwB,GAAG,OAAO,GAAG,MAAM,GAAG,UAAU,GAAG,sBAAsB,GAAG,OAAO,CAAC;AAExG,MAAM,WAAW,eAAe;IAC5B,GAAG,EAAE,aAAa,CAAC;IACnB,wBAAwB,CAAC,EAAE,wBAAwB,CAAC;IACpD,qBAAqB,CAAC,EAAE,0BAA0B,CAAC;CACtD;AAED,MAAM,WAAW,wBAAyB,SAAQ,eAAe;IAC7D,GAAG,EAAE,WAAW,CAAC;IACjB,eAAe,EAAE,yBAAyB,CAAC;CAC9C;AAED,MAAM,WAAW,yBAA0B,SAAQ,eAAe;IAC9D,GAAG,EAAE,YAAY,CAAC;IAClB,eAAe,EAAE,yBAAyB,CAAC;IAC3C,kBAAkB,EAAE,sBAAsB,CAAC;IAC3C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,2BAA4B,SAAQ,eAAe;IAChE,GAAG,EAAE,cAAc,CAAC;CACvB;AAED,MAAM,WAAW,sBAAuB,SAAQ,eAAe;IAC3D,GAAG,EAAE,SAAS,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,MAAM,kBAAkB,GACxB,wBAAwB,GACxB,yBAAyB,GACzB,2BAA2B,GAC3B,sBAAsB,CAAC;AAE7B,MAAM,WAAW,uBAAuB;IACpC,oBAAoB,EAAE,CAAC,kBAAkB,CAAC,CAAC;IAC3C,oBAAoB,EAAE,CAAC,wBAAwB,CAAC,CAAC;IACjD,qBAAqB,EAAE,CAAC,sBAAsB,CAAC,CAAC;IAChD,kBAAkB,EAAE,CAAC,2BAA2B,CAAC,CAAC;IAClD,kBAAkB,EAAE,CAAC,sBAAsB,CAAC,CAAC;CAChD;AAED,qBAAa,iBAAkB,SAAQ,YAAY,CAAC,uBAAuB,CAAC;IAOpE,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,MAAM;IARlB,OAAO,CAAC,KAAK,CAAqB;IAClC,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,GAAG,CAAe;gBAGd,UAAU,EAAE,UAAU,EACtB,aAAa,EAAE,aAAa,EAC5B,MAAM,EAAE,eAAe,EAC/B,QAAQ,EAAE,QAAQ,EAClB,GAAG,CAAC,EAAE,YAAY;IActB,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAIjC,OAAO,CAAC,QAAQ,EAAE,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAkGlE,UAAU,IAAI,OAAO,CAAC,2BAA2B,GAAG,sBAAsB,CAAC;IAkBjF,IAAI,sBAAsB,IAAI,kBAAkB,CAE/C;IAED,WAAW,CAAC,KAAK,SAAS,MAAM,uBAAuB,EAAE,KAAK,SAAS,uBAAuB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EACpG,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,KAAK,GAChB,KAAK;IAQR,OAAO,CAAC,gBAAgB;IAMxB,OAAO,CAAC,mBAAmB;IAY3B,OAAO,CAAC,sBAAsB;IAkB9B,MAAM,CAAC,+BAA+B,CAClC,MAAM,EAAE,UAAU,EAClB,QAAQ,EAAE;QAAE,gBAAgB,EAAE,MAAM,CAAA;KAAE,GACvC,wBAAwB;YAiCb,aAAa;YAYb,qBAAqB;CAatC"}
1
+ {"version":3,"file":"connectionManager.d.ts","sourceRoot":"","sources":["../../../src/common/connectionManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAGtC,OAAO,EAAE,yBAAyB,EAAE,MAAM,uCAAuC,CAAC;AAElF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAA2C,KAAK,aAAa,EAAE,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AAE3G,OAAO,EAAE,KAAK,UAAU,EAAS,MAAM,aAAa,CAAC;AAIrD,MAAM,WAAW,0BAA0B;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,IAAI,CAAC;CACpB;AAED,MAAM,WAAW,kBAAkB;IAC/B,gBAAgB,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,0BAA0B,CAAC;CACtC;AAED,KAAK,aAAa,GAAG,WAAW,GAAG,YAAY,GAAG,cAAc,GAAG,SAAS,CAAC;AAC7E,KAAK,sBAAsB,GAAG,gBAAgB,GAAG,kBAAkB,CAAC;AACpE,MAAM,MAAM,wBAAwB,GAAG,OAAO,GAAG,MAAM,GAAG,UAAU,GAAG,sBAAsB,GAAG,OAAO,CAAC;AAExG,MAAM,WAAW,eAAe;IAC5B,GAAG,EAAE,aAAa,CAAC;IACnB,wBAAwB,CAAC,EAAE,wBAAwB,CAAC;IACpD,qBAAqB,CAAC,EAAE,0BAA0B,CAAC;CACtD;AAED,MAAM,WAAW,wBAAyB,SAAQ,eAAe;IAC7D,GAAG,EAAE,WAAW,CAAC;IACjB,eAAe,EAAE,yBAAyB,CAAC;CAC9C;AAED,MAAM,WAAW,yBAA0B,SAAQ,eAAe;IAC9D,GAAG,EAAE,YAAY,CAAC;IAClB,eAAe,EAAE,yBAAyB,CAAC;IAC3C,kBAAkB,EAAE,sBAAsB,CAAC;IAC3C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,2BAA4B,SAAQ,eAAe;IAChE,GAAG,EAAE,cAAc,CAAC;CACvB;AAED,MAAM,WAAW,sBAAuB,SAAQ,eAAe;IAC3D,GAAG,EAAE,SAAS,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,MAAM,kBAAkB,GACxB,wBAAwB,GACxB,yBAAyB,GACzB,2BAA2B,GAC3B,sBAAsB,CAAC;AAE7B,MAAM,WAAW,uBAAuB;IACpC,oBAAoB,EAAE,CAAC,kBAAkB,CAAC,CAAC;IAC3C,oBAAoB,EAAE,CAAC,wBAAwB,CAAC,CAAC;IACjD,qBAAqB,EAAE,CAAC,sBAAsB,CAAC,CAAC;IAChD,kBAAkB,EAAE,CAAC,2BAA2B,CAAC,CAAC;IAClD,kBAAkB,EAAE,CAAC,sBAAsB,CAAC,CAAC;CAChD;AAED;;;;GAIG;AACH,MAAM,MAAM,qBAAqB,GAAG,iBAAiB,GAAG;IACpD,WAAW,CAAC,KAAK,SAAS,MAAM,uBAAuB,EAAE,KAAK,SAAS,uBAAuB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EACpG,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,KAAK,GAChB,KAAK,CAAC;CACZ,CAAC;AAEF,8BAAsB,iBAAiB;IACnC,SAAS,CAAC,UAAU,EAAE,MAAM,CAAC;IAC7B,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC,uBAAuB,CAAC,CAAC;IAClE,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,uBAAuB,CAAC,EAAE,IAAI,GAAG,KAAK,GAAG,MAAM,CAAC,CAAC;IACpF,OAAO,CAAC,KAAK,CAAqB;;IAQlC,IAAI,sBAAsB,IAAI,kBAAkB,CAE/C;IAED,SAAS,CAAC,WAAW,CAAC,KAAK,SAAS,MAAM,uBAAuB,EAAE,KAAK,SAAS,uBAAuB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAC9G,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,KAAK,GAChB,KAAK;IAQR,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAIvC,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAE3E,QAAQ,CAAC,UAAU,IAAI,OAAO,CAAC,2BAA2B,GAAG,sBAAsB,CAAC;CACvF;AAED,qBAAa,oBAAqB,SAAQ,iBAAiB;IAKnD,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,MAAM;IANlB,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,GAAG,CAAe;gBAGd,UAAU,EAAE,UAAU,EACtB,aAAa,EAAE,aAAa,EAC5B,MAAM,EAAE,UAAU,EAC1B,QAAQ,EAAE,QAAQ,EAClB,GAAG,CAAC,EAAE,YAAY;IAShB,OAAO,CAAC,QAAQ,EAAE,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAiGlE,UAAU,IAAI,OAAO,CAAC,2BAA2B,GAAG,sBAAsB,CAAC;IAkBjF,OAAO,CAAC,gBAAgB;IASxB,OAAO,CAAC,mBAAmB;IAe3B,OAAO,CAAC,sBAAsB;IAqB9B,MAAM,CAAC,+BAA+B,CAClC,MAAM,EAAE,UAAU,EAClB,QAAQ,EAAE;QAAE,gBAAgB,EAAE,MAAM,CAAA;KAAE,GACvC,wBAAwB;YAiCb,aAAa;YAYb,qBAAqB;CAatC;AAED;;;;GAIG;AACH,MAAM,MAAM,0BAA0B,GAAG,CAAC,YAAY,EAAE;IACpD,MAAM,EAAE,UAAU,CAAC;IACnB,QAAQ,EAAE,QAAQ,CAAC;IACnB,UAAU,EAAE,UAAU,CAAC;CAC1B,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAEjC,eAAO,MAAM,0BAA0B,EAAE,0BAOxC,CAAC"}
@@ -1,37 +1,51 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.ConnectionManager = void 0;
3
+ exports.createMCPConnectionManager = exports.MCPConnectionManager = exports.ConnectionManager = void 0;
4
+ const events_1 = require("events");
5
+ const mongodb_connection_string_url_1 = require("mongodb-connection-string-url");
7
6
  const service_provider_node_driver_1 = require("@mongosh/service-provider-node-driver");
8
- const events_1 = __importDefault(require("events"));
9
- const connectionOptions_js_1 = require("../helpers/connectionOptions.js");
10
- const packageInfo_js_1 = require("./packageInfo.js");
11
- const mongodb_connection_string_url_1 = __importDefault(require("mongodb-connection-string-url"));
7
+ const arg_parser_1 = require("@mongosh/arg-parser");
8
+ const config_js_1 = require("./config.js");
12
9
  const errors_js_1 = require("./errors.js");
13
10
  const logger_js_1 = require("./logger.js");
14
- const arg_parser_1 = require("@mongosh/arg-parser");
15
- class ConnectionManager extends events_1.default {
11
+ const packageInfo_js_1 = require("./packageInfo.js");
12
+ const connectionOptions_js_1 = require("../helpers/connectionOptions.js");
13
+ class ConnectionManager {
14
+ constructor() {
15
+ this.clientName = "unknown";
16
+ this.events = this._events = new events_1.EventEmitter();
17
+ this.state = { tag: "disconnected" };
18
+ }
19
+ get currentConnectionState() {
20
+ return this.state;
21
+ }
22
+ changeState(event, newState) {
23
+ this.state = newState;
24
+ // TypeScript doesn't seem to be happy with the spread operator and generics
25
+ // eslint-disable-next-line
26
+ this._events.emit(event, ...[newState]);
27
+ return newState;
28
+ }
29
+ setClientName(clientName) {
30
+ this.clientName = clientName;
31
+ }
32
+ }
33
+ exports.ConnectionManager = ConnectionManager;
34
+ class MCPConnectionManager extends ConnectionManager {
16
35
  constructor(userConfig, driverOptions, logger, deviceId, bus) {
17
36
  super();
18
37
  this.userConfig = userConfig;
19
38
  this.driverOptions = driverOptions;
20
39
  this.logger = logger;
21
- this.bus = bus ?? new events_1.default();
22
- this.state = { tag: "disconnected" };
40
+ this.bus = bus ?? new events_1.EventEmitter();
23
41
  this.bus.on("mongodb-oidc-plugin:auth-failed", this.onOidcAuthFailed.bind(this));
24
42
  this.bus.on("mongodb-oidc-plugin:auth-succeeded", this.onOidcAuthSucceeded.bind(this));
25
43
  this.deviceId = deviceId;
26
- this.clientName = "unknown";
27
- }
28
- setClientName(clientName) {
29
- this.clientName = clientName;
30
44
  }
31
45
  async connect(settings) {
32
46
  var _a, _b, _c, _d;
33
- this.emit("connection-request", this.state);
34
- if (this.state.tag === "connected" || this.state.tag === "connecting") {
47
+ this._events.emit("connection-request", this.currentConnectionState);
48
+ if (this.currentConnectionState.tag === "connected" || this.currentConnectionState.tag === "connecting") {
35
49
  await this.disconnect();
36
50
  }
37
51
  let serviceProvider;
@@ -59,7 +73,7 @@ class ConnectionManager extends events_1.default {
59
73
  }
60
74
  (_c = connectionInfo.driverOptions).proxy ?? (_c.proxy = { useEnvironmentVariableProxies: true });
61
75
  (_d = connectionInfo.driverOptions).applyProxyToOIDC ?? (_d.applyProxyToOIDC = true);
62
- connectionStringAuthType = ConnectionManager.inferConnectionTypeFromSettings(this.userConfig, connectionInfo);
76
+ connectionStringAuthType = MCPConnectionManager.inferConnectionTypeFromSettings(this.userConfig, connectionInfo);
63
77
  serviceProvider = await service_provider_node_driver_1.NodeDriverServiceProvider.connect(connectionInfo.connectionString, {
64
78
  productDocsLink: "https://github.com/mongodb-js/mongodb-mcp-server/",
65
79
  productName: "MongoDB MCP",
@@ -77,15 +91,14 @@ class ConnectionManager extends events_1.default {
77
91
  throw new errors_js_1.MongoDBError(errors_js_1.ErrorCodes.MisconfiguredConnectionString, errorReason);
78
92
  }
79
93
  try {
80
- const connectionType = ConnectionManager.inferConnectionTypeFromSettings(this.userConfig, connectionInfo);
81
- if (connectionType.startsWith("oidc")) {
94
+ if (connectionStringAuthType.startsWith("oidc")) {
82
95
  void this.pingAndForget(serviceProvider);
83
96
  return this.changeState("connection-request", {
84
97
  tag: "connecting",
85
98
  connectedAtlasCluster: settings.atlas,
86
99
  serviceProvider,
87
- connectionStringAuthType: connectionType,
88
- oidcConnectionType: connectionType,
100
+ connectionStringAuthType,
101
+ oidcConnectionType: connectionStringAuthType,
89
102
  });
90
103
  }
91
104
  await serviceProvider?.runCommand?.("admin", { hello: 1 });
@@ -93,7 +106,7 @@ class ConnectionManager extends events_1.default {
93
106
  tag: "connected",
94
107
  connectedAtlasCluster: settings.atlas,
95
108
  serviceProvider,
96
- connectionStringAuthType: connectionType,
109
+ connectionStringAuthType,
97
110
  });
98
111
  }
99
112
  catch (error) {
@@ -108,12 +121,12 @@ class ConnectionManager extends events_1.default {
108
121
  }
109
122
  }
110
123
  async disconnect() {
111
- if (this.state.tag === "disconnected" || this.state.tag === "errored") {
112
- return this.state;
124
+ if (this.currentConnectionState.tag === "disconnected" || this.currentConnectionState.tag === "errored") {
125
+ return this.currentConnectionState;
113
126
  }
114
- if (this.state.tag === "connected" || this.state.tag === "connecting") {
127
+ if (this.currentConnectionState.tag === "connected" || this.currentConnectionState.tag === "connecting") {
115
128
  try {
116
- await this.state.serviceProvider?.close(true);
129
+ await this.currentConnectionState.serviceProvider?.close(true);
117
130
  }
118
131
  finally {
119
132
  this.changeState("connection-close", {
@@ -123,24 +136,16 @@ class ConnectionManager extends events_1.default {
123
136
  }
124
137
  return { tag: "disconnected" };
125
138
  }
126
- get currentConnectionState() {
127
- return this.state;
128
- }
129
- changeState(event, newState) {
130
- this.state = newState;
131
- // TypeScript doesn't seem to be happy with the spread operator and generics
132
- // eslint-disable-next-line
133
- this.emit(event, ...[newState]);
134
- return newState;
135
- }
136
139
  onOidcAuthFailed(error) {
137
- if (this.state.tag === "connecting" && this.state.connectionStringAuthType?.startsWith("oidc")) {
140
+ if (this.currentConnectionState.tag === "connecting" &&
141
+ this.currentConnectionState.connectionStringAuthType?.startsWith("oidc")) {
138
142
  void this.disconnectOnOidcError(error);
139
143
  }
140
144
  }
141
145
  onOidcAuthSucceeded() {
142
- if (this.state.tag === "connecting" && this.state.connectionStringAuthType?.startsWith("oidc")) {
143
- this.changeState("connection-success", { ...this.state, tag: "connected" });
146
+ if (this.currentConnectionState.tag === "connecting" &&
147
+ this.currentConnectionState.connectionStringAuthType?.startsWith("oidc")) {
148
+ this.changeState("connection-success", { ...this.currentConnectionState, tag: "connected" });
144
149
  }
145
150
  this.logger.info({
146
151
  id: logger_js_1.LogId.oidcFlow,
@@ -149,9 +154,10 @@ class ConnectionManager extends events_1.default {
149
154
  });
150
155
  }
151
156
  onOidcNotifyDeviceFlow(flowInfo) {
152
- if (this.state.tag === "connecting" && this.state.connectionStringAuthType?.startsWith("oidc")) {
157
+ if (this.currentConnectionState.tag === "connecting" &&
158
+ this.currentConnectionState.connectionStringAuthType?.startsWith("oidc")) {
153
159
  this.changeState("connection-request", {
154
- ...this.state,
160
+ ...this.currentConnectionState,
155
161
  tag: "connecting",
156
162
  connectionStringAuthType: "oidc-device-flow",
157
163
  oidcLoginUrl: flowInfo.verificationUrl,
@@ -165,7 +171,7 @@ class ConnectionManager extends events_1.default {
165
171
  });
166
172
  }
167
173
  static inferConnectionTypeFromSettings(config, settings) {
168
- const connString = new mongodb_connection_string_url_1.default(settings.connectionString);
174
+ const connString = new mongodb_connection_string_url_1.ConnectionString(settings.connectionString);
169
175
  const searchParams = connString.typedSearchParams();
170
176
  switch (searchParams.get("authMechanism")) {
171
177
  case "MONGODB-OIDC": {
@@ -221,5 +227,13 @@ class ConnectionManager extends events_1.default {
221
227
  }
222
228
  }
223
229
  }
224
- exports.ConnectionManager = ConnectionManager;
230
+ exports.MCPConnectionManager = MCPConnectionManager;
231
+ const createMCPConnectionManager = ({ logger, deviceId, userConfig }) => {
232
+ const driverOptions = (0, config_js_1.setupDriverConfig)({
233
+ config: userConfig,
234
+ defaults: config_js_1.defaultDriverOptions,
235
+ });
236
+ return Promise.resolve(new MCPConnectionManager(userConfig, driverOptions, logger, deviceId));
237
+ };
238
+ exports.createMCPConnectionManager = createMCPConnectionManager;
225
239
  //# sourceMappingURL=connectionManager.js.map