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.
- package/README.md +137 -63
- package/dist/cjs/common/atlas/accessListUtils.d.ts +2 -1
- package/dist/cjs/common/atlas/accessListUtils.d.ts.map +1 -1
- package/dist/cjs/common/atlas/accessListUtils.js +4 -1
- package/dist/cjs/common/atlas/accessListUtils.js.map +1 -1
- package/dist/cjs/common/config.d.ts +11 -0
- package/dist/cjs/common/config.d.ts.map +1 -1
- package/dist/cjs/common/config.js +115 -4
- package/dist/cjs/common/config.js.map +1 -1
- package/dist/cjs/common/connectionErrorHandler.d.ts +18 -0
- package/dist/cjs/common/connectionErrorHandler.d.ts.map +1 -0
- package/dist/cjs/common/connectionErrorHandler.js +70 -0
- package/dist/cjs/common/connectionErrorHandler.js.map +1 -0
- package/dist/cjs/common/connectionManager.d.ts +36 -10
- package/dist/cjs/common/connectionManager.d.ts.map +1 -1
- package/dist/cjs/common/connectionManager.js +59 -45
- package/dist/cjs/common/connectionManager.js.map +1 -1
- package/dist/cjs/common/errors.d.ts +5 -4
- package/dist/cjs/common/errors.d.ts.map +1 -1
- package/dist/cjs/common/errors.js +1 -0
- package/dist/cjs/common/errors.js.map +1 -1
- package/dist/cjs/common/exportsManager.d.ts +7 -6
- package/dist/cjs/common/exportsManager.d.ts.map +1 -1
- package/dist/cjs/common/exportsManager.js +22 -25
- package/dist/cjs/common/exportsManager.js.map +1 -1
- package/dist/cjs/common/keychain.d.ts +22 -0
- package/dist/cjs/common/keychain.d.ts.map +1 -0
- package/dist/cjs/common/keychain.js +36 -0
- package/dist/cjs/common/keychain.js.map +1 -0
- package/dist/cjs/common/logger.d.ts +11 -3
- package/dist/cjs/common/logger.d.ts.map +1 -1
- package/dist/cjs/common/logger.js +20 -11
- package/dist/cjs/common/logger.js.map +1 -1
- package/dist/cjs/common/packageInfo.js +1 -1
- package/dist/cjs/common/packageInfo.js.map +1 -1
- package/dist/cjs/common/session.d.ts +4 -1
- package/dist/cjs/common/session.d.ts.map +1 -1
- package/dist/cjs/common/session.js +6 -5
- package/dist/cjs/common/session.js.map +1 -1
- package/dist/cjs/elicitation.d.ts +25 -0
- package/dist/cjs/elicitation.d.ts.map +1 -0
- package/dist/cjs/elicitation.js +50 -0
- package/dist/cjs/elicitation.js.map +1 -0
- package/dist/cjs/helpers/connectionOptions.js +3 -6
- package/dist/cjs/helpers/connectionOptions.js.map +1 -1
- package/dist/cjs/index.js +8 -3
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/lib.d.ts +8 -4
- package/dist/cjs/lib.d.ts.map +1 -1
- package/dist/cjs/lib.js +12 -5
- package/dist/cjs/lib.js.map +1 -1
- package/dist/cjs/resources/common/exportedData.d.ts.map +1 -1
- package/dist/cjs/resources/common/exportedData.js +12 -3
- package/dist/cjs/resources/common/exportedData.js.map +1 -1
- package/dist/cjs/server.d.ts +7 -1
- package/dist/cjs/server.d.ts.map +1 -1
- package/dist/cjs/server.js +27 -6
- package/dist/cjs/server.js.map +1 -1
- package/dist/cjs/telemetry/eventCache.d.ts +11 -4
- package/dist/cjs/telemetry/eventCache.d.ts.map +1 -1
- package/dist/cjs/telemetry/eventCache.js +13 -6
- package/dist/cjs/telemetry/eventCache.js.map +1 -1
- package/dist/cjs/telemetry/telemetry.d.ts +9 -2
- package/dist/cjs/telemetry/telemetry.d.ts.map +1 -1
- package/dist/cjs/telemetry/telemetry.js +79 -42
- package/dist/cjs/telemetry/telemetry.js.map +1 -1
- package/dist/cjs/telemetry/types.d.ts +49 -0
- package/dist/cjs/telemetry/types.d.ts.map +1 -1
- package/dist/cjs/tools/args.d.ts +22 -0
- package/dist/cjs/tools/args.d.ts.map +1 -0
- package/dist/cjs/tools/args.js +50 -0
- package/dist/cjs/tools/args.js.map +1 -0
- package/dist/cjs/tools/atlas/atlasTool.d.ts +1 -2
- package/dist/cjs/tools/atlas/atlasTool.d.ts.map +1 -1
- package/dist/cjs/tools/atlas/atlasTool.js.map +1 -1
- package/dist/cjs/tools/atlas/connect/connectCluster.d.ts +7 -4
- package/dist/cjs/tools/atlas/connect/connectCluster.d.ts.map +1 -1
- package/dist/cjs/tools/atlas/connect/connectCluster.js +57 -31
- package/dist/cjs/tools/atlas/connect/connectCluster.js.map +1 -1
- package/dist/cjs/tools/atlas/create/createAccessList.d.ts +9 -1
- package/dist/cjs/tools/atlas/create/createAccessList.d.ts.map +1 -1
- package/dist/cjs/tools/atlas/create/createAccessList.js +30 -13
- package/dist/cjs/tools/atlas/create/createAccessList.js.map +1 -1
- package/dist/cjs/tools/atlas/create/createDBUser.d.ts +21 -1
- package/dist/cjs/tools/atlas/create/createDBUser.d.ts.map +1 -1
- package/dist/cjs/tools/atlas/create/createDBUser.js +38 -22
- package/dist/cjs/tools/atlas/create/createDBUser.js.map +1 -1
- package/dist/cjs/tools/atlas/create/createFreeCluster.d.ts +4 -5
- package/dist/cjs/tools/atlas/create/createFreeCluster.d.ts.map +1 -1
- package/dist/cjs/tools/atlas/create/createFreeCluster.js +4 -4
- package/dist/cjs/tools/atlas/create/createFreeCluster.js.map +1 -1
- package/dist/cjs/tools/atlas/create/createProject.d.ts +7 -4
- package/dist/cjs/tools/atlas/create/createProject.d.ts.map +1 -1
- package/dist/cjs/tools/atlas/create/createProject.js +7 -4
- package/dist/cjs/tools/atlas/create/createProject.js.map +1 -1
- package/dist/cjs/tools/atlas/read/inspectAccessList.d.ts +5 -3
- package/dist/cjs/tools/atlas/read/inspectAccessList.d.ts.map +1 -1
- package/dist/cjs/tools/atlas/read/inspectAccessList.js +7 -4
- package/dist/cjs/tools/atlas/read/inspectAccessList.js.map +1 -1
- package/dist/cjs/tools/atlas/read/inspectCluster.d.ts +7 -4
- package/dist/cjs/tools/atlas/read/inspectCluster.d.ts.map +1 -1
- package/dist/cjs/tools/atlas/read/inspectCluster.js +8 -5
- package/dist/cjs/tools/atlas/read/inspectCluster.js.map +1 -1
- package/dist/cjs/tools/atlas/read/listAlerts.d.ts +5 -3
- package/dist/cjs/tools/atlas/read/listAlerts.d.ts.map +1 -1
- package/dist/cjs/tools/atlas/read/listAlerts.js +7 -4
- package/dist/cjs/tools/atlas/read/listAlerts.js.map +1 -1
- package/dist/cjs/tools/atlas/read/listClusters.d.ts +4 -2
- package/dist/cjs/tools/atlas/read/listClusters.d.ts.map +1 -1
- package/dist/cjs/tools/atlas/read/listClusters.js +13 -10
- package/dist/cjs/tools/atlas/read/listClusters.js.map +1 -1
- package/dist/cjs/tools/atlas/read/listDBUsers.d.ts +4 -2
- package/dist/cjs/tools/atlas/read/listDBUsers.d.ts.map +1 -1
- package/dist/cjs/tools/atlas/read/listDBUsers.js +6 -3
- package/dist/cjs/tools/atlas/read/listDBUsers.js.map +1 -1
- package/dist/cjs/tools/atlas/read/listProjects.d.ts +4 -2
- package/dist/cjs/tools/atlas/read/listProjects.d.ts.map +1 -1
- package/dist/cjs/tools/atlas/read/listProjects.js +7 -4
- package/dist/cjs/tools/atlas/read/listProjects.js.map +1 -1
- package/dist/cjs/tools/mongodb/connect/connect.d.ts +2 -5
- package/dist/cjs/tools/mongodb/connect/connect.d.ts.map +1 -1
- package/dist/cjs/tools/mongodb/connect/connect.js +2 -2
- package/dist/cjs/tools/mongodb/connect/connect.js.map +1 -1
- package/dist/cjs/tools/mongodb/delete/deleteMany.d.ts +1 -0
- package/dist/cjs/tools/mongodb/delete/deleteMany.d.ts.map +1 -1
- package/dist/cjs/tools/mongodb/delete/deleteMany.js +10 -0
- package/dist/cjs/tools/mongodb/delete/deleteMany.js.map +1 -1
- package/dist/cjs/tools/mongodb/delete/dropCollection.d.ts +1 -0
- package/dist/cjs/tools/mongodb/delete/dropCollection.d.ts.map +1 -1
- package/dist/cjs/tools/mongodb/delete/dropCollection.js +5 -0
- package/dist/cjs/tools/mongodb/delete/dropCollection.js.map +1 -1
- package/dist/cjs/tools/mongodb/delete/dropDatabase.d.ts +1 -0
- package/dist/cjs/tools/mongodb/delete/dropDatabase.d.ts.map +1 -1
- package/dist/cjs/tools/mongodb/delete/dropDatabase.js +5 -0
- package/dist/cjs/tools/mongodb/delete/dropDatabase.js.map +1 -1
- package/dist/cjs/tools/mongodb/metadata/logs.d.ts +1 -1
- package/dist/cjs/tools/mongodb/metadata/logs.d.ts.map +1 -1
- package/dist/cjs/tools/mongodb/metadata/logs.js +9 -11
- package/dist/cjs/tools/mongodb/metadata/logs.js.map +1 -1
- package/dist/cjs/tools/mongodb/mongodbTool.d.ts.map +1 -1
- package/dist/cjs/tools/mongodb/mongodbTool.js +11 -52
- package/dist/cjs/tools/mongodb/mongodbTool.js.map +1 -1
- package/dist/cjs/tools/mongodb/read/aggregate.d.ts +1 -0
- package/dist/cjs/tools/mongodb/read/aggregate.d.ts.map +1 -1
- package/dist/cjs/tools/mongodb/read/aggregate.js +21 -0
- package/dist/cjs/tools/mongodb/read/aggregate.js.map +1 -1
- package/dist/cjs/tools/mongodb/read/export.js +1 -1
- package/dist/cjs/tools/mongodb/read/export.js.map +1 -1
- package/dist/cjs/tools/tool.d.ts +20 -5
- package/dist/cjs/tools/tool.d.ts.map +1 -1
- package/dist/cjs/tools/tool.js +43 -6
- package/dist/cjs/tools/tool.js.map +1 -1
- package/dist/cjs/transports/base.d.ts +17 -5
- package/dist/cjs/transports/base.d.ts.map +1 -1
- package/dist/cjs/transports/base.js +24 -9
- package/dist/cjs/transports/base.js.map +1 -1
- package/dist/cjs/transports/stdio.d.ts +2 -4
- package/dist/cjs/transports/stdio.d.ts.map +1 -1
- package/dist/cjs/transports/stdio.js +6 -6
- package/dist/cjs/transports/stdio.js.map +1 -1
- package/dist/cjs/transports/streamableHttp.d.ts +3 -4
- package/dist/cjs/transports/streamableHttp.d.ts.map +1 -1
- package/dist/cjs/transports/streamableHttp.js +22 -9
- package/dist/cjs/transports/streamableHttp.js.map +1 -1
- package/dist/esm/common/atlas/accessListUtils.d.ts +2 -1
- package/dist/esm/common/atlas/accessListUtils.d.ts.map +1 -1
- package/dist/esm/common/atlas/accessListUtils.js +4 -1
- package/dist/esm/common/atlas/accessListUtils.js.map +1 -1
- package/dist/esm/common/config.d.ts +11 -0
- package/dist/esm/common/config.d.ts.map +1 -1
- package/dist/esm/common/config.js +112 -4
- package/dist/esm/common/config.js.map +1 -1
- package/dist/esm/common/connectionErrorHandler.d.ts +18 -0
- package/dist/esm/common/connectionErrorHandler.d.ts.map +1 -0
- package/dist/esm/common/connectionErrorHandler.js +66 -0
- package/dist/esm/common/connectionErrorHandler.js.map +1 -0
- package/dist/esm/common/connectionManager.d.ts +36 -10
- package/dist/esm/common/connectionManager.d.ts.map +1 -1
- package/dist/esm/common/connectionManager.js +54 -39
- package/dist/esm/common/connectionManager.js.map +1 -1
- package/dist/esm/common/errors.d.ts +5 -4
- package/dist/esm/common/errors.d.ts.map +1 -1
- package/dist/esm/common/errors.js +1 -0
- package/dist/esm/common/errors.js.map +1 -1
- package/dist/esm/common/exportsManager.d.ts +7 -6
- package/dist/esm/common/exportsManager.d.ts.map +1 -1
- package/dist/esm/common/exportsManager.js +21 -24
- package/dist/esm/common/exportsManager.js.map +1 -1
- package/dist/esm/common/keychain.d.ts +22 -0
- package/dist/esm/common/keychain.d.ts.map +1 -0
- package/dist/esm/common/keychain.js +31 -0
- package/dist/esm/common/keychain.js.map +1 -0
- package/dist/esm/common/logger.d.ts +11 -3
- package/dist/esm/common/logger.d.ts.map +1 -1
- package/dist/esm/common/logger.js +20 -11
- package/dist/esm/common/logger.js.map +1 -1
- package/dist/esm/common/packageInfo.js +1 -1
- package/dist/esm/common/packageInfo.js.map +1 -1
- package/dist/esm/common/session.d.ts +4 -1
- package/dist/esm/common/session.d.ts.map +1 -1
- package/dist/esm/common/session.js +6 -5
- package/dist/esm/common/session.js.map +1 -1
- package/dist/esm/elicitation.d.ts +25 -0
- package/dist/esm/elicitation.d.ts.map +1 -0
- package/dist/esm/elicitation.js +46 -0
- package/dist/esm/elicitation.js.map +1 -0
- package/dist/esm/helpers/connectionOptions.js +1 -1
- package/dist/esm/helpers/connectionOptions.js.map +1 -1
- package/dist/esm/index.js +9 -4
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/lib.d.ts +8 -4
- package/dist/esm/lib.d.ts.map +1 -1
- package/dist/esm/lib.js +5 -2
- package/dist/esm/lib.js.map +1 -1
- package/dist/esm/resources/common/exportedData.d.ts.map +1 -1
- package/dist/esm/resources/common/exportedData.js +12 -3
- package/dist/esm/resources/common/exportedData.js.map +1 -1
- package/dist/esm/server.d.ts +7 -1
- package/dist/esm/server.d.ts.map +1 -1
- package/dist/esm/server.js +28 -7
- package/dist/esm/server.js.map +1 -1
- package/dist/esm/telemetry/eventCache.d.ts +11 -4
- package/dist/esm/telemetry/eventCache.d.ts.map +1 -1
- package/dist/esm/telemetry/eventCache.js +13 -6
- package/dist/esm/telemetry/eventCache.js.map +1 -1
- package/dist/esm/telemetry/telemetry.d.ts +9 -2
- package/dist/esm/telemetry/telemetry.d.ts.map +1 -1
- package/dist/esm/telemetry/telemetry.js +79 -42
- package/dist/esm/telemetry/telemetry.js.map +1 -1
- package/dist/esm/telemetry/types.d.ts +49 -0
- package/dist/esm/telemetry/types.d.ts.map +1 -1
- package/dist/esm/tools/args.d.ts +22 -0
- package/dist/esm/tools/args.d.ts.map +1 -0
- package/dist/esm/tools/args.js +47 -0
- package/dist/esm/tools/args.js.map +1 -0
- package/dist/esm/tools/atlas/atlasTool.d.ts +1 -2
- package/dist/esm/tools/atlas/atlasTool.d.ts.map +1 -1
- package/dist/esm/tools/atlas/atlasTool.js.map +1 -1
- package/dist/esm/tools/atlas/connect/connectCluster.d.ts +7 -4
- package/dist/esm/tools/atlas/connect/connectCluster.d.ts.map +1 -1
- package/dist/esm/tools/atlas/connect/connectCluster.js +56 -30
- package/dist/esm/tools/atlas/connect/connectCluster.js.map +1 -1
- package/dist/esm/tools/atlas/create/createAccessList.d.ts +9 -1
- package/dist/esm/tools/atlas/create/createAccessList.d.ts.map +1 -1
- package/dist/esm/tools/atlas/create/createAccessList.js +29 -12
- package/dist/esm/tools/atlas/create/createAccessList.js.map +1 -1
- package/dist/esm/tools/atlas/create/createDBUser.d.ts +21 -1
- package/dist/esm/tools/atlas/create/createDBUser.d.ts.map +1 -1
- package/dist/esm/tools/atlas/create/createDBUser.js +37 -21
- package/dist/esm/tools/atlas/create/createDBUser.js.map +1 -1
- package/dist/esm/tools/atlas/create/createFreeCluster.d.ts +4 -5
- package/dist/esm/tools/atlas/create/createFreeCluster.d.ts.map +1 -1
- package/dist/esm/tools/atlas/create/createFreeCluster.js +4 -4
- package/dist/esm/tools/atlas/create/createFreeCluster.js.map +1 -1
- package/dist/esm/tools/atlas/create/createProject.d.ts +7 -4
- package/dist/esm/tools/atlas/create/createProject.d.ts.map +1 -1
- package/dist/esm/tools/atlas/create/createProject.js +6 -3
- package/dist/esm/tools/atlas/create/createProject.js.map +1 -1
- package/dist/esm/tools/atlas/read/inspectAccessList.d.ts +5 -3
- package/dist/esm/tools/atlas/read/inspectAccessList.d.ts.map +1 -1
- package/dist/esm/tools/atlas/read/inspectAccessList.js +6 -3
- package/dist/esm/tools/atlas/read/inspectAccessList.js.map +1 -1
- package/dist/esm/tools/atlas/read/inspectCluster.d.ts +7 -4
- package/dist/esm/tools/atlas/read/inspectCluster.d.ts.map +1 -1
- package/dist/esm/tools/atlas/read/inspectCluster.js +7 -4
- package/dist/esm/tools/atlas/read/inspectCluster.js.map +1 -1
- package/dist/esm/tools/atlas/read/listAlerts.d.ts +5 -3
- package/dist/esm/tools/atlas/read/listAlerts.d.ts.map +1 -1
- package/dist/esm/tools/atlas/read/listAlerts.js +6 -3
- package/dist/esm/tools/atlas/read/listAlerts.js.map +1 -1
- package/dist/esm/tools/atlas/read/listClusters.d.ts +4 -2
- package/dist/esm/tools/atlas/read/listClusters.d.ts.map +1 -1
- package/dist/esm/tools/atlas/read/listClusters.js +12 -9
- package/dist/esm/tools/atlas/read/listClusters.js.map +1 -1
- package/dist/esm/tools/atlas/read/listDBUsers.d.ts +4 -2
- package/dist/esm/tools/atlas/read/listDBUsers.d.ts.map +1 -1
- package/dist/esm/tools/atlas/read/listDBUsers.js +5 -2
- package/dist/esm/tools/atlas/read/listDBUsers.js.map +1 -1
- package/dist/esm/tools/atlas/read/listProjects.d.ts +4 -2
- package/dist/esm/tools/atlas/read/listProjects.d.ts.map +1 -1
- package/dist/esm/tools/atlas/read/listProjects.js +6 -3
- package/dist/esm/tools/atlas/read/listProjects.js.map +1 -1
- package/dist/esm/tools/mongodb/connect/connect.d.ts +2 -5
- package/dist/esm/tools/mongodb/connect/connect.d.ts.map +1 -1
- package/dist/esm/tools/mongodb/connect/connect.js +2 -2
- package/dist/esm/tools/mongodb/connect/connect.js.map +1 -1
- package/dist/esm/tools/mongodb/delete/deleteMany.d.ts +1 -0
- package/dist/esm/tools/mongodb/delete/deleteMany.d.ts.map +1 -1
- package/dist/esm/tools/mongodb/delete/deleteMany.js +10 -0
- package/dist/esm/tools/mongodb/delete/deleteMany.js.map +1 -1
- package/dist/esm/tools/mongodb/delete/dropCollection.d.ts +1 -0
- package/dist/esm/tools/mongodb/delete/dropCollection.d.ts.map +1 -1
- package/dist/esm/tools/mongodb/delete/dropCollection.js +5 -0
- package/dist/esm/tools/mongodb/delete/dropCollection.js.map +1 -1
- package/dist/esm/tools/mongodb/delete/dropDatabase.d.ts +1 -0
- package/dist/esm/tools/mongodb/delete/dropDatabase.d.ts.map +1 -1
- package/dist/esm/tools/mongodb/delete/dropDatabase.js +5 -0
- package/dist/esm/tools/mongodb/delete/dropDatabase.js.map +1 -1
- package/dist/esm/tools/mongodb/metadata/logs.d.ts +1 -1
- package/dist/esm/tools/mongodb/metadata/logs.d.ts.map +1 -1
- package/dist/esm/tools/mongodb/metadata/logs.js +9 -11
- package/dist/esm/tools/mongodb/metadata/logs.js.map +1 -1
- package/dist/esm/tools/mongodb/mongodbTool.d.ts.map +1 -1
- package/dist/esm/tools/mongodb/mongodbTool.js +11 -52
- package/dist/esm/tools/mongodb/mongodbTool.js.map +1 -1
- package/dist/esm/tools/mongodb/read/aggregate.d.ts +1 -0
- package/dist/esm/tools/mongodb/read/aggregate.d.ts.map +1 -1
- package/dist/esm/tools/mongodb/read/aggregate.js +21 -0
- package/dist/esm/tools/mongodb/read/aggregate.js.map +1 -1
- package/dist/esm/tools/mongodb/read/export.js +1 -1
- package/dist/esm/tools/mongodb/read/export.js.map +1 -1
- package/dist/esm/tools/tool.d.ts +20 -5
- package/dist/esm/tools/tool.d.ts.map +1 -1
- package/dist/esm/tools/tool.js +43 -6
- package/dist/esm/tools/tool.js.map +1 -1
- package/dist/esm/transports/base.d.ts +17 -5
- package/dist/esm/transports/base.d.ts.map +1 -1
- package/dist/esm/transports/base.js +24 -9
- package/dist/esm/transports/base.js.map +1 -1
- package/dist/esm/transports/stdio.d.ts +2 -4
- package/dist/esm/transports/stdio.d.ts.map +1 -1
- package/dist/esm/transports/stdio.js +6 -6
- package/dist/esm/transports/stdio.js.map +1 -1
- package/dist/esm/transports/streamableHttp.d.ts +3 -4
- package/dist/esm/transports/streamableHttp.d.ts.map +1 -1
- package/dist/esm/transports/streamableHttp.js +22 -9
- package/dist/esm/transports/streamableHttp.js.map +1 -1
- 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:
|
|
108
|
-
exportCleanupIntervalMs:
|
|
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:
|
|
118
|
-
notificationTimeoutMs:
|
|
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
|
|
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
|
|
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
|
-
|
|
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:
|
|
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,
|
|
1
|
+
{"version":3,"file":"connectionManager.d.ts","sourceRoot":"","sources":["../../../src/common/connectionManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -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
|
|
9
|
-
const
|
|
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
|
|
15
|
-
|
|
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.
|
|
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.
|
|
34
|
-
if (this.
|
|
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 =
|
|
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
|
-
|
|
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
|
|
88
|
-
oidcConnectionType:
|
|
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
|
|
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.
|
|
112
|
-
return this.
|
|
124
|
+
if (this.currentConnectionState.tag === "disconnected" || this.currentConnectionState.tag === "errored") {
|
|
125
|
+
return this.currentConnectionState;
|
|
113
126
|
}
|
|
114
|
-
if (this.
|
|
127
|
+
if (this.currentConnectionState.tag === "connected" || this.currentConnectionState.tag === "connecting") {
|
|
115
128
|
try {
|
|
116
|
-
await this.
|
|
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.
|
|
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.
|
|
143
|
-
this.
|
|
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.
|
|
157
|
+
if (this.currentConnectionState.tag === "connecting" &&
|
|
158
|
+
this.currentConnectionState.connectionStringAuthType?.startsWith("oidc")) {
|
|
153
159
|
this.changeState("connection-request", {
|
|
154
|
-
...this.
|
|
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.
|
|
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.
|
|
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
|