mongodb-mcp-server 1.2.0 → 1.3.0-pre.2
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 +56 -28
- package/dist/cjs/common/atlas/accessListUtils.js +1 -1
- package/dist/cjs/common/atlas/accessListUtils.js.map +1 -1
- package/dist/cjs/common/atlas/apiClient.d.ts +30 -26
- package/dist/cjs/common/atlas/apiClient.d.ts.map +1 -1
- package/dist/cjs/common/atlas/apiClient.js +12 -12
- package/dist/cjs/common/atlas/apiClient.js.map +1 -1
- package/dist/cjs/common/atlas/performanceAdvisorUtils.js +2 -2
- package/dist/cjs/common/atlas/performanceAdvisorUtils.js.map +1 -1
- package/dist/cjs/common/atlas/roles.d.ts +1 -1
- package/dist/cjs/common/atlas/roles.d.ts.map +1 -1
- package/dist/cjs/common/atlasLocal.d.ts.map +1 -1
- package/dist/cjs/common/atlasLocal.js +4 -4
- package/dist/cjs/common/atlasLocal.js.map +1 -1
- package/dist/cjs/common/config/argsParserOptions.d.ts +12 -0
- package/dist/cjs/common/config/argsParserOptions.d.ts.map +1 -0
- package/dist/cjs/common/config/argsParserOptions.js +103 -0
- package/dist/cjs/common/config/argsParserOptions.js.map +1 -0
- package/dist/cjs/common/config/configOverrides.d.ts +30 -0
- package/dist/cjs/common/config/configOverrides.d.ts.map +1 -0
- package/dist/cjs/common/config/configOverrides.js +145 -0
- package/dist/cjs/common/config/configOverrides.js.map +1 -0
- package/dist/cjs/common/config/configUtils.d.ts +43 -0
- package/dist/cjs/common/config/configUtils.d.ts.map +1 -0
- package/dist/cjs/common/config/configUtils.js +178 -0
- package/dist/cjs/common/config/configUtils.js.map +1 -0
- package/dist/cjs/common/config/createUserConfig.d.ts +10 -0
- package/dist/cjs/common/config/createUserConfig.d.ts.map +1 -0
- package/dist/cjs/common/config/createUserConfig.js +156 -0
- package/dist/cjs/common/config/createUserConfig.js.map +1 -0
- package/dist/cjs/common/config/userConfig.d.ts +54 -0
- package/dist/cjs/common/config/userConfig.d.ts.map +1 -0
- package/dist/cjs/common/config/userConfig.js +180 -0
- package/dist/cjs/common/config/userConfig.js.map +1 -0
- package/dist/cjs/common/connectionErrorHandler.js +1 -1
- package/dist/cjs/common/connectionErrorHandler.js.map +1 -1
- package/dist/cjs/common/connectionManager.d.ts +6 -5
- package/dist/cjs/common/connectionManager.d.ts.map +1 -1
- package/dist/cjs/common/connectionManager.js +24 -15
- package/dist/cjs/common/connectionManager.js.map +1 -1
- package/dist/cjs/common/errors.d.ts +2 -1
- 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 +1 -1
- package/dist/cjs/common/exportsManager.d.ts.map +1 -1
- package/dist/cjs/common/logger.d.ts +2 -0
- package/dist/cjs/common/logger.d.ts.map +1 -1
- package/dist/cjs/common/logger.js +2 -0
- 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/schemas.d.ts +5 -0
- package/dist/cjs/common/schemas.d.ts.map +1 -0
- package/dist/cjs/common/schemas.js +6 -0
- package/dist/cjs/common/schemas.js.map +1 -0
- package/dist/cjs/common/search/embeddingsProvider.d.ts +3 -34
- package/dist/cjs/common/search/embeddingsProvider.d.ts.map +1 -1
- package/dist/cjs/common/search/embeddingsProvider.js +8 -16
- package/dist/cjs/common/search/embeddingsProvider.js.map +1 -1
- package/dist/cjs/common/search/vectorSearchEmbeddingsManager.d.ts +18 -9
- package/dist/cjs/common/search/vectorSearchEmbeddingsManager.d.ts.map +1 -1
- package/dist/cjs/common/search/vectorSearchEmbeddingsManager.js +68 -80
- package/dist/cjs/common/search/vectorSearchEmbeddingsManager.js.map +1 -1
- package/dist/cjs/common/session.d.ts +7 -5
- package/dist/cjs/common/session.d.ts.map +1 -1
- package/dist/cjs/common/session.js +17 -5
- package/dist/cjs/common/session.js.map +1 -1
- package/dist/cjs/helpers/assertVectorSearchFilterFieldsAreIndexed.d.ts +27 -0
- package/dist/cjs/helpers/assertVectorSearchFilterFieldsAreIndexed.d.ts.map +1 -0
- package/dist/cjs/helpers/assertVectorSearchFilterFieldsAreIndexed.js +58 -0
- package/dist/cjs/helpers/assertVectorSearchFilterFieldsAreIndexed.js.map +1 -0
- package/dist/cjs/index.d.ts +2 -1
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +44 -16
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/lib.d.ts +9 -4
- package/dist/cjs/lib.d.ts.map +1 -1
- package/dist/cjs/lib.js +18 -4
- package/dist/cjs/lib.js.map +1 -1
- package/dist/cjs/resources/common/config.d.ts +1 -1
- package/dist/cjs/resources/common/config.d.ts.map +1 -1
- package/dist/cjs/resources/common/config.js +4 -3
- package/dist/cjs/resources/common/config.js.map +1 -1
- package/dist/cjs/resources/resource.d.ts +1 -1
- package/dist/cjs/resources/resource.d.ts.map +1 -1
- package/dist/cjs/server.d.ts +34 -5
- package/dist/cjs/server.d.ts.map +1 -1
- package/dist/cjs/server.js +6 -24
- package/dist/cjs/server.js.map +1 -1
- package/dist/cjs/telemetry/telemetry.d.ts +1 -1
- package/dist/cjs/telemetry/telemetry.d.ts.map +1 -1
- package/dist/cjs/telemetry/types.d.ts +22 -5
- package/dist/cjs/telemetry/types.d.ts.map +1 -1
- package/dist/cjs/tools/atlas/atlasTool.d.ts +4 -3
- package/dist/cjs/tools/atlas/atlasTool.d.ts.map +1 -1
- package/dist/cjs/tools/atlas/atlasTool.js +3 -6
- package/dist/cjs/tools/atlas/atlasTool.js.map +1 -1
- package/dist/cjs/tools/atlas/connect/connectCluster.d.ts +4 -1
- package/dist/cjs/tools/atlas/connect/connectCluster.d.ts.map +1 -1
- package/dist/cjs/tools/atlas/connect/connectCluster.js +37 -17
- package/dist/cjs/tools/atlas/connect/connectCluster.js.map +1 -1
- package/dist/cjs/tools/atlas/create/createAccessList.d.ts +1 -1
- package/dist/cjs/tools/atlas/create/createAccessList.d.ts.map +1 -1
- package/dist/cjs/tools/atlas/create/createAccessList.js +2 -2
- package/dist/cjs/tools/atlas/create/createAccessList.js.map +1 -1
- package/dist/cjs/tools/atlas/create/createDBUser.d.ts +1 -1
- package/dist/cjs/tools/atlas/create/createDBUser.d.ts.map +1 -1
- package/dist/cjs/tools/atlas/create/createDBUser.js +1 -1
- package/dist/cjs/tools/atlas/create/createDBUser.js.map +1 -1
- package/dist/cjs/tools/atlas/create/createFreeCluster.d.ts +1 -1
- package/dist/cjs/tools/atlas/create/createFreeCluster.d.ts.map +1 -1
- package/dist/cjs/tools/atlas/create/createFreeCluster.js +1 -1
- package/dist/cjs/tools/atlas/create/createFreeCluster.js.map +1 -1
- package/dist/cjs/tools/atlas/create/createProject.d.ts +1 -1
- package/dist/cjs/tools/atlas/create/createProject.d.ts.map +1 -1
- package/dist/cjs/tools/atlas/create/createProject.js +3 -3
- package/dist/cjs/tools/atlas/create/createProject.js.map +1 -1
- package/dist/cjs/tools/atlas/read/getPerformanceAdvisor.d.ts +5 -2
- package/dist/cjs/tools/atlas/read/getPerformanceAdvisor.d.ts.map +1 -1
- package/dist/cjs/tools/atlas/read/getPerformanceAdvisor.js +8 -2
- package/dist/cjs/tools/atlas/read/getPerformanceAdvisor.js.map +1 -1
- package/dist/cjs/tools/atlas/read/inspectAccessList.d.ts +1 -1
- package/dist/cjs/tools/atlas/read/inspectAccessList.d.ts.map +1 -1
- package/dist/cjs/tools/atlas/read/inspectAccessList.js +8 -9
- package/dist/cjs/tools/atlas/read/inspectAccessList.js.map +1 -1
- package/dist/cjs/tools/atlas/read/inspectCluster.d.ts +1 -1
- package/dist/cjs/tools/atlas/read/inspectCluster.d.ts.map +1 -1
- package/dist/cjs/tools/atlas/read/inspectCluster.js +10 -4
- package/dist/cjs/tools/atlas/read/inspectCluster.js.map +1 -1
- package/dist/cjs/tools/atlas/read/listAlerts.d.ts +1 -1
- package/dist/cjs/tools/atlas/read/listAlerts.d.ts.map +1 -1
- package/dist/cjs/tools/atlas/read/listAlerts.js +10 -14
- package/dist/cjs/tools/atlas/read/listAlerts.js.map +1 -1
- package/dist/cjs/tools/atlas/read/listClusters.d.ts +1 -1
- package/dist/cjs/tools/atlas/read/listClusters.d.ts.map +1 -1
- package/dist/cjs/tools/atlas/read/listClusters.js +10 -26
- package/dist/cjs/tools/atlas/read/listClusters.js.map +1 -1
- package/dist/cjs/tools/atlas/read/listDBUsers.d.ts +1 -1
- package/dist/cjs/tools/atlas/read/listDBUsers.d.ts.map +1 -1
- package/dist/cjs/tools/atlas/read/listDBUsers.js +14 -24
- package/dist/cjs/tools/atlas/read/listDBUsers.js.map +1 -1
- package/dist/cjs/tools/atlas/read/listOrgs.d.ts +1 -1
- package/dist/cjs/tools/atlas/read/listOrgs.d.ts.map +1 -1
- package/dist/cjs/tools/atlas/read/listOrgs.js +7 -12
- package/dist/cjs/tools/atlas/read/listOrgs.js.map +1 -1
- package/dist/cjs/tools/atlas/read/listProjects.d.ts +1 -1
- package/dist/cjs/tools/atlas/read/listProjects.d.ts.map +1 -1
- package/dist/cjs/tools/atlas/read/listProjects.js +4 -4
- package/dist/cjs/tools/atlas/read/listProjects.js.map +1 -1
- package/dist/cjs/tools/atlas/tools.d.ts +13 -14
- package/dist/cjs/tools/atlas/tools.d.ts.map +1 -1
- package/dist/cjs/tools/atlas/tools.js +27 -29
- package/dist/cjs/tools/atlas/tools.js.map +1 -1
- package/dist/cjs/tools/atlasLocal/atlasLocalTool.d.ts +4 -3
- package/dist/cjs/tools/atlasLocal/atlasLocalTool.d.ts.map +1 -1
- package/dist/cjs/tools/atlasLocal/atlasLocalTool.js +2 -5
- package/dist/cjs/tools/atlasLocal/atlasLocalTool.js.map +1 -1
- package/dist/cjs/tools/atlasLocal/connect/connectDeployment.d.ts +3 -1
- package/dist/cjs/tools/atlasLocal/connect/connectDeployment.d.ts.map +1 -1
- package/dist/cjs/tools/atlasLocal/connect/connectDeployment.js +4 -1
- package/dist/cjs/tools/atlasLocal/connect/connectDeployment.js.map +1 -1
- package/dist/cjs/tools/atlasLocal/create/createDeployment.d.ts +1 -1
- package/dist/cjs/tools/atlasLocal/create/createDeployment.d.ts.map +1 -1
- package/dist/cjs/tools/atlasLocal/create/createDeployment.js +1 -1
- package/dist/cjs/tools/atlasLocal/create/createDeployment.js.map +1 -1
- package/dist/cjs/tools/atlasLocal/delete/deleteDeployment.d.ts +1 -1
- package/dist/cjs/tools/atlasLocal/delete/deleteDeployment.d.ts.map +1 -1
- package/dist/cjs/tools/atlasLocal/delete/deleteDeployment.js +1 -1
- package/dist/cjs/tools/atlasLocal/delete/deleteDeployment.js.map +1 -1
- package/dist/cjs/tools/atlasLocal/read/listDeployments.d.ts +1 -1
- package/dist/cjs/tools/atlasLocal/read/listDeployments.d.ts.map +1 -1
- package/dist/cjs/tools/atlasLocal/read/listDeployments.js +1 -1
- package/dist/cjs/tools/atlasLocal/read/listDeployments.js.map +1 -1
- package/dist/cjs/tools/atlasLocal/tools.d.ts +4 -5
- package/dist/cjs/tools/atlasLocal/tools.d.ts.map +1 -1
- package/dist/cjs/tools/atlasLocal/tools.js +9 -6
- package/dist/cjs/tools/atlasLocal/tools.js.map +1 -1
- package/dist/cjs/tools/index.d.ts +7 -0
- package/dist/cjs/tools/index.d.ts.map +1 -0
- package/dist/cjs/tools/index.js +56 -0
- package/dist/cjs/tools/index.js.map +1 -0
- package/dist/cjs/tools/mongodb/connect/connect.d.ts +6 -12
- package/dist/cjs/tools/mongodb/connect/connect.d.ts.map +1 -1
- package/dist/cjs/tools/mongodb/connect/connect.js +22 -75
- package/dist/cjs/tools/mongodb/connect/connect.js.map +1 -1
- package/dist/cjs/tools/mongodb/connect/switchConnection.d.ts +17 -0
- package/dist/cjs/tools/mongodb/connect/switchConnection.d.ts.map +1 -0
- package/dist/cjs/tools/mongodb/connect/switchConnection.js +52 -0
- package/dist/cjs/tools/mongodb/connect/switchConnection.js.map +1 -0
- package/dist/cjs/tools/mongodb/create/createCollection.d.ts +1 -1
- package/dist/cjs/tools/mongodb/create/createCollection.d.ts.map +1 -1
- package/dist/cjs/tools/mongodb/create/createCollection.js +1 -1
- package/dist/cjs/tools/mongodb/create/createCollection.js.map +1 -1
- package/dist/cjs/tools/mongodb/create/createIndex.d.ts +1 -1
- package/dist/cjs/tools/mongodb/create/createIndex.d.ts.map +1 -1
- package/dist/cjs/tools/mongodb/create/createIndex.js +6 -4
- package/dist/cjs/tools/mongodb/create/createIndex.js.map +1 -1
- package/dist/cjs/tools/mongodb/create/insertMany.d.ts +26 -2
- package/dist/cjs/tools/mongodb/create/insertMany.d.ts.map +1 -1
- package/dist/cjs/tools/mongodb/create/insertMany.js +92 -19
- package/dist/cjs/tools/mongodb/create/insertMany.js.map +1 -1
- package/dist/cjs/tools/mongodb/delete/deleteMany.d.ts +1 -1
- package/dist/cjs/tools/mongodb/delete/deleteMany.d.ts.map +1 -1
- package/dist/cjs/tools/mongodb/delete/deleteMany.js +1 -1
- package/dist/cjs/tools/mongodb/delete/deleteMany.js.map +1 -1
- package/dist/cjs/tools/mongodb/delete/dropCollection.d.ts +1 -1
- package/dist/cjs/tools/mongodb/delete/dropCollection.d.ts.map +1 -1
- package/dist/cjs/tools/mongodb/delete/dropCollection.js +1 -1
- package/dist/cjs/tools/mongodb/delete/dropCollection.js.map +1 -1
- package/dist/cjs/tools/mongodb/delete/dropDatabase.d.ts +1 -1
- package/dist/cjs/tools/mongodb/delete/dropDatabase.d.ts.map +1 -1
- package/dist/cjs/tools/mongodb/delete/dropDatabase.js +1 -1
- package/dist/cjs/tools/mongodb/delete/dropDatabase.js.map +1 -1
- package/dist/cjs/tools/mongodb/delete/dropIndex.d.ts +1 -1
- package/dist/cjs/tools/mongodb/delete/dropIndex.d.ts.map +1 -1
- package/dist/cjs/tools/mongodb/delete/dropIndex.js +2 -2
- package/dist/cjs/tools/mongodb/delete/dropIndex.js.map +1 -1
- package/dist/cjs/tools/mongodb/metadata/collectionIndexes.d.ts +1 -1
- package/dist/cjs/tools/mongodb/metadata/collectionIndexes.d.ts.map +1 -1
- package/dist/cjs/tools/mongodb/metadata/collectionIndexes.js +2 -2
- package/dist/cjs/tools/mongodb/metadata/collectionIndexes.js.map +1 -1
- package/dist/cjs/tools/mongodb/metadata/collectionSchema.d.ts +1 -1
- package/dist/cjs/tools/mongodb/metadata/collectionSchema.d.ts.map +1 -1
- package/dist/cjs/tools/mongodb/metadata/collectionSchema.js +2 -2
- package/dist/cjs/tools/mongodb/metadata/collectionSchema.js.map +1 -1
- package/dist/cjs/tools/mongodb/metadata/collectionStorageSize.d.ts +1 -1
- package/dist/cjs/tools/mongodb/metadata/collectionStorageSize.d.ts.map +1 -1
- package/dist/cjs/tools/mongodb/metadata/collectionStorageSize.js +1 -1
- package/dist/cjs/tools/mongodb/metadata/collectionStorageSize.js.map +1 -1
- package/dist/cjs/tools/mongodb/metadata/dbStats.d.ts +1 -1
- package/dist/cjs/tools/mongodb/metadata/dbStats.d.ts.map +1 -1
- package/dist/cjs/tools/mongodb/metadata/dbStats.js +1 -1
- package/dist/cjs/tools/mongodb/metadata/dbStats.js.map +1 -1
- package/dist/cjs/tools/mongodb/metadata/explain.d.ts +45 -45
- package/dist/cjs/tools/mongodb/metadata/explain.d.ts.map +1 -1
- package/dist/cjs/tools/mongodb/metadata/explain.js +2 -2
- package/dist/cjs/tools/mongodb/metadata/explain.js.map +1 -1
- package/dist/cjs/tools/mongodb/metadata/listCollections.d.ts +1 -1
- package/dist/cjs/tools/mongodb/metadata/listCollections.d.ts.map +1 -1
- package/dist/cjs/tools/mongodb/metadata/listCollections.js +1 -1
- package/dist/cjs/tools/mongodb/metadata/listCollections.js.map +1 -1
- package/dist/cjs/tools/mongodb/metadata/listDatabases.d.ts +1 -1
- package/dist/cjs/tools/mongodb/metadata/listDatabases.d.ts.map +1 -1
- package/dist/cjs/tools/mongodb/metadata/listDatabases.js +1 -1
- package/dist/cjs/tools/mongodb/metadata/listDatabases.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 +1 -1
- package/dist/cjs/tools/mongodb/metadata/logs.js.map +1 -1
- package/dist/cjs/tools/mongodb/mongodbSchemas.d.ts +155 -0
- package/dist/cjs/tools/mongodb/mongodbSchemas.d.ts.map +1 -0
- package/dist/cjs/tools/mongodb/mongodbSchemas.js +69 -0
- package/dist/cjs/tools/mongodb/mongodbSchemas.js.map +1 -0
- package/dist/cjs/tools/mongodb/mongodbTool.d.ts +14 -4
- package/dist/cjs/tools/mongodb/mongodbTool.d.ts.map +1 -1
- package/dist/cjs/tools/mongodb/mongodbTool.js +14 -16
- package/dist/cjs/tools/mongodb/mongodbTool.js.map +1 -1
- package/dist/cjs/tools/mongodb/read/aggregate.d.ts +58 -57
- package/dist/cjs/tools/mongodb/read/aggregate.d.ts.map +1 -1
- package/dist/cjs/tools/mongodb/read/aggregate.js +80 -47
- package/dist/cjs/tools/mongodb/read/aggregate.js.map +1 -1
- package/dist/cjs/tools/mongodb/read/count.d.ts +1 -1
- package/dist/cjs/tools/mongodb/read/count.d.ts.map +1 -1
- package/dist/cjs/tools/mongodb/read/count.js +1 -1
- package/dist/cjs/tools/mongodb/read/count.js.map +1 -1
- package/dist/cjs/tools/mongodb/read/export.d.ts +45 -45
- package/dist/cjs/tools/mongodb/read/export.d.ts.map +1 -1
- package/dist/cjs/tools/mongodb/read/export.js +4 -2
- package/dist/cjs/tools/mongodb/read/export.js.map +1 -1
- package/dist/cjs/tools/mongodb/read/find.d.ts +1 -1
- package/dist/cjs/tools/mongodb/read/find.d.ts.map +1 -1
- package/dist/cjs/tools/mongodb/read/find.js +2 -2
- package/dist/cjs/tools/mongodb/read/find.js.map +1 -1
- package/dist/cjs/tools/mongodb/tools.d.ts +23 -23
- package/dist/cjs/tools/mongodb/tools.d.ts.map +1 -1
- package/dist/cjs/tools/mongodb/tools.js +47 -47
- package/dist/cjs/tools/mongodb/tools.js.map +1 -1
- package/dist/cjs/tools/mongodb/update/renameCollection.d.ts +1 -1
- package/dist/cjs/tools/mongodb/update/renameCollection.d.ts.map +1 -1
- package/dist/cjs/tools/mongodb/update/renameCollection.js +1 -1
- package/dist/cjs/tools/mongodb/update/renameCollection.js.map +1 -1
- package/dist/cjs/tools/mongodb/update/updateMany.d.ts +1 -1
- package/dist/cjs/tools/mongodb/update/updateMany.d.ts.map +1 -1
- package/dist/cjs/tools/mongodb/update/updateMany.js +1 -1
- package/dist/cjs/tools/mongodb/update/updateMany.js.map +1 -1
- package/dist/cjs/tools/tool.d.ts +343 -25
- package/dist/cjs/tools/tool.d.ts.map +1 -1
- package/dist/cjs/tools/tool.js +175 -56
- package/dist/cjs/tools/tool.js.map +1 -1
- package/dist/cjs/transports/base.d.ts +156 -3
- package/dist/cjs/transports/base.d.ts.map +1 -1
- package/dist/cjs/transports/base.js +37 -11
- package/dist/cjs/transports/base.js.map +1 -1
- package/dist/cjs/transports/dryModeRunner.d.ts +19 -0
- package/dist/cjs/transports/dryModeRunner.d.ts.map +1 -0
- package/dist/cjs/transports/dryModeRunner.js +37 -0
- package/dist/cjs/transports/dryModeRunner.js.map +1 -0
- package/dist/cjs/transports/inMemoryTransport.d.ts +18 -0
- package/dist/cjs/transports/inMemoryTransport.d.ts.map +1 -0
- package/dist/cjs/transports/inMemoryTransport.js +43 -0
- package/dist/cjs/transports/inMemoryTransport.js.map +1 -0
- package/dist/cjs/transports/streamableHttp.d.ts.map +1 -1
- package/dist/cjs/transports/streamableHttp.js +5 -1
- package/dist/cjs/transports/streamableHttp.js.map +1 -1
- package/dist/esm/common/atlas/accessListUtils.js +1 -1
- package/dist/esm/common/atlas/accessListUtils.js.map +1 -1
- package/dist/esm/common/atlas/apiClient.d.ts +30 -26
- package/dist/esm/common/atlas/apiClient.d.ts.map +1 -1
- package/dist/esm/common/atlas/apiClient.js +12 -12
- package/dist/esm/common/atlas/apiClient.js.map +1 -1
- package/dist/esm/common/atlas/performanceAdvisorUtils.js +2 -2
- package/dist/esm/common/atlas/performanceAdvisorUtils.js.map +1 -1
- package/dist/esm/common/atlas/roles.d.ts +1 -1
- package/dist/esm/common/atlas/roles.d.ts.map +1 -1
- package/dist/esm/common/atlasLocal.d.ts.map +1 -1
- package/dist/esm/common/atlasLocal.js +4 -4
- package/dist/esm/common/atlasLocal.js.map +1 -1
- package/dist/esm/common/config/argsParserOptions.d.ts +12 -0
- package/dist/esm/common/config/argsParserOptions.d.ts.map +1 -0
- package/dist/esm/common/config/argsParserOptions.js +100 -0
- package/dist/esm/common/config/argsParserOptions.js.map +1 -0
- package/dist/esm/common/config/configOverrides.d.ts +30 -0
- package/dist/esm/common/config/configOverrides.d.ts.map +1 -0
- package/dist/esm/common/config/configOverrides.js +139 -0
- package/dist/esm/common/config/configOverrides.js.map +1 -0
- package/dist/esm/common/config/configUtils.d.ts +43 -0
- package/dist/esm/common/config/configUtils.d.ts.map +1 -0
- package/dist/esm/common/config/configUtils.js +130 -0
- package/dist/esm/common/config/configUtils.js.map +1 -0
- package/dist/esm/common/config/createUserConfig.d.ts +10 -0
- package/dist/esm/common/config/createUserConfig.d.ts.map +1 -0
- package/dist/esm/common/config/createUserConfig.js +149 -0
- package/dist/esm/common/config/createUserConfig.js.map +1 -0
- package/dist/esm/common/config/userConfig.d.ts +54 -0
- package/dist/esm/common/config/userConfig.d.ts.map +1 -0
- package/dist/esm/common/config/userConfig.js +177 -0
- package/dist/esm/common/config/userConfig.js.map +1 -0
- package/dist/esm/common/connectionErrorHandler.js +1 -1
- package/dist/esm/common/connectionErrorHandler.js.map +1 -1
- package/dist/esm/common/connectionManager.d.ts +6 -5
- package/dist/esm/common/connectionManager.d.ts.map +1 -1
- package/dist/esm/common/connectionManager.js +23 -14
- package/dist/esm/common/connectionManager.js.map +1 -1
- package/dist/esm/common/errors.d.ts +2 -1
- 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 +1 -1
- package/dist/esm/common/exportsManager.d.ts.map +1 -1
- package/dist/esm/common/logger.d.ts +2 -0
- package/dist/esm/common/logger.d.ts.map +1 -1
- package/dist/esm/common/logger.js +2 -0
- 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/schemas.d.ts +5 -0
- package/dist/esm/common/schemas.d.ts.map +1 -0
- package/dist/esm/common/schemas.js +3 -0
- package/dist/esm/common/schemas.js.map +1 -0
- package/dist/esm/common/search/embeddingsProvider.d.ts +3 -34
- package/dist/esm/common/search/embeddingsProvider.d.ts.map +1 -1
- package/dist/esm/common/search/embeddingsProvider.js +8 -15
- package/dist/esm/common/search/embeddingsProvider.js.map +1 -1
- package/dist/esm/common/search/vectorSearchEmbeddingsManager.d.ts +18 -9
- package/dist/esm/common/search/vectorSearchEmbeddingsManager.d.ts.map +1 -1
- package/dist/esm/common/search/vectorSearchEmbeddingsManager.js +67 -79
- package/dist/esm/common/search/vectorSearchEmbeddingsManager.js.map +1 -1
- package/dist/esm/common/session.d.ts +7 -5
- package/dist/esm/common/session.d.ts.map +1 -1
- package/dist/esm/common/session.js +17 -5
- package/dist/esm/common/session.js.map +1 -1
- package/dist/esm/helpers/assertVectorSearchFilterFieldsAreIndexed.d.ts +27 -0
- package/dist/esm/helpers/assertVectorSearchFilterFieldsAreIndexed.d.ts.map +1 -0
- package/dist/esm/helpers/assertVectorSearchFilterFieldsAreIndexed.js +54 -0
- package/dist/esm/helpers/assertVectorSearchFilterFieldsAreIndexed.js.map +1 -0
- package/dist/esm/index.d.ts +2 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +40 -13
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/lib.d.ts +9 -4
- package/dist/esm/lib.d.ts.map +1 -1
- package/dist/esm/lib.js +9 -3
- package/dist/esm/lib.js.map +1 -1
- package/dist/esm/resources/common/config.d.ts +1 -1
- package/dist/esm/resources/common/config.d.ts.map +1 -1
- package/dist/esm/resources/common/config.js +4 -3
- package/dist/esm/resources/common/config.js.map +1 -1
- package/dist/esm/resources/resource.d.ts +1 -1
- package/dist/esm/resources/resource.d.ts.map +1 -1
- package/dist/esm/server.d.ts +34 -5
- package/dist/esm/server.d.ts.map +1 -1
- package/dist/esm/server.js +6 -24
- package/dist/esm/server.js.map +1 -1
- package/dist/esm/telemetry/telemetry.d.ts +1 -1
- package/dist/esm/telemetry/telemetry.d.ts.map +1 -1
- package/dist/esm/telemetry/types.d.ts +22 -5
- package/dist/esm/telemetry/types.d.ts.map +1 -1
- package/dist/esm/tools/atlas/atlasTool.d.ts +4 -3
- package/dist/esm/tools/atlas/atlasTool.d.ts.map +1 -1
- package/dist/esm/tools/atlas/atlasTool.js +3 -6
- package/dist/esm/tools/atlas/atlasTool.js.map +1 -1
- package/dist/esm/tools/atlas/connect/connectCluster.d.ts +4 -1
- package/dist/esm/tools/atlas/connect/connectCluster.d.ts.map +1 -1
- package/dist/esm/tools/atlas/connect/connectCluster.js +37 -17
- package/dist/esm/tools/atlas/connect/connectCluster.js.map +1 -1
- package/dist/esm/tools/atlas/create/createAccessList.d.ts +1 -1
- package/dist/esm/tools/atlas/create/createAccessList.d.ts.map +1 -1
- package/dist/esm/tools/atlas/create/createAccessList.js +2 -2
- package/dist/esm/tools/atlas/create/createAccessList.js.map +1 -1
- package/dist/esm/tools/atlas/create/createDBUser.d.ts +1 -1
- package/dist/esm/tools/atlas/create/createDBUser.d.ts.map +1 -1
- package/dist/esm/tools/atlas/create/createDBUser.js +1 -1
- package/dist/esm/tools/atlas/create/createDBUser.js.map +1 -1
- package/dist/esm/tools/atlas/create/createFreeCluster.d.ts +1 -1
- package/dist/esm/tools/atlas/create/createFreeCluster.d.ts.map +1 -1
- package/dist/esm/tools/atlas/create/createFreeCluster.js +1 -1
- package/dist/esm/tools/atlas/create/createFreeCluster.js.map +1 -1
- package/dist/esm/tools/atlas/create/createProject.d.ts +1 -1
- package/dist/esm/tools/atlas/create/createProject.d.ts.map +1 -1
- package/dist/esm/tools/atlas/create/createProject.js +3 -3
- package/dist/esm/tools/atlas/create/createProject.js.map +1 -1
- package/dist/esm/tools/atlas/read/getPerformanceAdvisor.d.ts +5 -2
- package/dist/esm/tools/atlas/read/getPerformanceAdvisor.d.ts.map +1 -1
- package/dist/esm/tools/atlas/read/getPerformanceAdvisor.js +8 -2
- package/dist/esm/tools/atlas/read/getPerformanceAdvisor.js.map +1 -1
- package/dist/esm/tools/atlas/read/inspectAccessList.d.ts +1 -1
- package/dist/esm/tools/atlas/read/inspectAccessList.d.ts.map +1 -1
- package/dist/esm/tools/atlas/read/inspectAccessList.js +8 -9
- package/dist/esm/tools/atlas/read/inspectAccessList.js.map +1 -1
- package/dist/esm/tools/atlas/read/inspectCluster.d.ts +1 -1
- package/dist/esm/tools/atlas/read/inspectCluster.d.ts.map +1 -1
- package/dist/esm/tools/atlas/read/inspectCluster.js +10 -4
- package/dist/esm/tools/atlas/read/inspectCluster.js.map +1 -1
- package/dist/esm/tools/atlas/read/listAlerts.d.ts +1 -1
- package/dist/esm/tools/atlas/read/listAlerts.d.ts.map +1 -1
- package/dist/esm/tools/atlas/read/listAlerts.js +10 -14
- package/dist/esm/tools/atlas/read/listAlerts.js.map +1 -1
- package/dist/esm/tools/atlas/read/listClusters.d.ts +1 -1
- package/dist/esm/tools/atlas/read/listClusters.d.ts.map +1 -1
- package/dist/esm/tools/atlas/read/listClusters.js +10 -26
- package/dist/esm/tools/atlas/read/listClusters.js.map +1 -1
- package/dist/esm/tools/atlas/read/listDBUsers.d.ts +1 -1
- package/dist/esm/tools/atlas/read/listDBUsers.d.ts.map +1 -1
- package/dist/esm/tools/atlas/read/listDBUsers.js +14 -24
- package/dist/esm/tools/atlas/read/listDBUsers.js.map +1 -1
- package/dist/esm/tools/atlas/read/listOrgs.d.ts +1 -1
- package/dist/esm/tools/atlas/read/listOrgs.d.ts.map +1 -1
- package/dist/esm/tools/atlas/read/listOrgs.js +7 -12
- package/dist/esm/tools/atlas/read/listOrgs.js.map +1 -1
- package/dist/esm/tools/atlas/read/listProjects.d.ts +1 -1
- package/dist/esm/tools/atlas/read/listProjects.d.ts.map +1 -1
- package/dist/esm/tools/atlas/read/listProjects.js +4 -4
- package/dist/esm/tools/atlas/read/listProjects.js.map +1 -1
- package/dist/esm/tools/atlas/tools.d.ts +13 -14
- package/dist/esm/tools/atlas/tools.d.ts.map +1 -1
- package/dist/esm/tools/atlas/tools.js +13 -28
- package/dist/esm/tools/atlas/tools.js.map +1 -1
- package/dist/esm/tools/atlasLocal/atlasLocalTool.d.ts +4 -3
- package/dist/esm/tools/atlasLocal/atlasLocalTool.d.ts.map +1 -1
- package/dist/esm/tools/atlasLocal/atlasLocalTool.js +2 -5
- package/dist/esm/tools/atlasLocal/atlasLocalTool.js.map +1 -1
- package/dist/esm/tools/atlasLocal/connect/connectDeployment.d.ts +3 -1
- package/dist/esm/tools/atlasLocal/connect/connectDeployment.d.ts.map +1 -1
- package/dist/esm/tools/atlasLocal/connect/connectDeployment.js +4 -1
- package/dist/esm/tools/atlasLocal/connect/connectDeployment.js.map +1 -1
- package/dist/esm/tools/atlasLocal/create/createDeployment.d.ts +1 -1
- package/dist/esm/tools/atlasLocal/create/createDeployment.d.ts.map +1 -1
- package/dist/esm/tools/atlasLocal/create/createDeployment.js +1 -1
- package/dist/esm/tools/atlasLocal/create/createDeployment.js.map +1 -1
- package/dist/esm/tools/atlasLocal/delete/deleteDeployment.d.ts +1 -1
- package/dist/esm/tools/atlasLocal/delete/deleteDeployment.d.ts.map +1 -1
- package/dist/esm/tools/atlasLocal/delete/deleteDeployment.js +1 -1
- package/dist/esm/tools/atlasLocal/delete/deleteDeployment.js.map +1 -1
- package/dist/esm/tools/atlasLocal/read/listDeployments.d.ts +1 -1
- package/dist/esm/tools/atlasLocal/read/listDeployments.d.ts.map +1 -1
- package/dist/esm/tools/atlasLocal/read/listDeployments.js +1 -1
- package/dist/esm/tools/atlasLocal/read/listDeployments.js.map +1 -1
- package/dist/esm/tools/atlasLocal/tools.d.ts +4 -5
- package/dist/esm/tools/atlasLocal/tools.d.ts.map +1 -1
- package/dist/esm/tools/atlasLocal/tools.js +4 -5
- package/dist/esm/tools/atlasLocal/tools.js.map +1 -1
- package/dist/esm/tools/index.d.ts +7 -0
- package/dist/esm/tools/index.d.ts.map +1 -0
- package/dist/esm/tools/index.js +16 -0
- package/dist/esm/tools/index.js.map +1 -0
- package/dist/esm/tools/mongodb/connect/connect.d.ts +6 -12
- package/dist/esm/tools/mongodb/connect/connect.d.ts.map +1 -1
- package/dist/esm/tools/mongodb/connect/connect.js +22 -72
- package/dist/esm/tools/mongodb/connect/connect.js.map +1 -1
- package/dist/esm/tools/mongodb/connect/switchConnection.d.ts +17 -0
- package/dist/esm/tools/mongodb/connect/switchConnection.d.ts.map +1 -0
- package/dist/esm/tools/mongodb/connect/switchConnection.js +45 -0
- package/dist/esm/tools/mongodb/connect/switchConnection.js.map +1 -0
- package/dist/esm/tools/mongodb/create/createCollection.d.ts +1 -1
- package/dist/esm/tools/mongodb/create/createCollection.d.ts.map +1 -1
- package/dist/esm/tools/mongodb/create/createCollection.js +1 -1
- package/dist/esm/tools/mongodb/create/createCollection.js.map +1 -1
- package/dist/esm/tools/mongodb/create/createIndex.d.ts +1 -1
- package/dist/esm/tools/mongodb/create/createIndex.d.ts.map +1 -1
- package/dist/esm/tools/mongodb/create/createIndex.js +7 -5
- package/dist/esm/tools/mongodb/create/createIndex.js.map +1 -1
- package/dist/esm/tools/mongodb/create/insertMany.d.ts +26 -2
- package/dist/esm/tools/mongodb/create/insertMany.d.ts.map +1 -1
- package/dist/esm/tools/mongodb/create/insertMany.js +92 -19
- package/dist/esm/tools/mongodb/create/insertMany.js.map +1 -1
- package/dist/esm/tools/mongodb/delete/deleteMany.d.ts +1 -1
- package/dist/esm/tools/mongodb/delete/deleteMany.d.ts.map +1 -1
- package/dist/esm/tools/mongodb/delete/deleteMany.js +1 -1
- package/dist/esm/tools/mongodb/delete/deleteMany.js.map +1 -1
- package/dist/esm/tools/mongodb/delete/dropCollection.d.ts +1 -1
- package/dist/esm/tools/mongodb/delete/dropCollection.d.ts.map +1 -1
- package/dist/esm/tools/mongodb/delete/dropCollection.js +1 -1
- package/dist/esm/tools/mongodb/delete/dropCollection.js.map +1 -1
- package/dist/esm/tools/mongodb/delete/dropDatabase.d.ts +1 -1
- package/dist/esm/tools/mongodb/delete/dropDatabase.d.ts.map +1 -1
- package/dist/esm/tools/mongodb/delete/dropDatabase.js +1 -1
- package/dist/esm/tools/mongodb/delete/dropDatabase.js.map +1 -1
- package/dist/esm/tools/mongodb/delete/dropIndex.d.ts +1 -1
- package/dist/esm/tools/mongodb/delete/dropIndex.d.ts.map +1 -1
- package/dist/esm/tools/mongodb/delete/dropIndex.js +2 -2
- package/dist/esm/tools/mongodb/delete/dropIndex.js.map +1 -1
- package/dist/esm/tools/mongodb/metadata/collectionIndexes.d.ts +1 -1
- package/dist/esm/tools/mongodb/metadata/collectionIndexes.d.ts.map +1 -1
- package/dist/esm/tools/mongodb/metadata/collectionIndexes.js +2 -2
- package/dist/esm/tools/mongodb/metadata/collectionIndexes.js.map +1 -1
- package/dist/esm/tools/mongodb/metadata/collectionSchema.d.ts +1 -1
- package/dist/esm/tools/mongodb/metadata/collectionSchema.d.ts.map +1 -1
- package/dist/esm/tools/mongodb/metadata/collectionSchema.js +2 -2
- package/dist/esm/tools/mongodb/metadata/collectionSchema.js.map +1 -1
- package/dist/esm/tools/mongodb/metadata/collectionStorageSize.d.ts +1 -1
- package/dist/esm/tools/mongodb/metadata/collectionStorageSize.d.ts.map +1 -1
- package/dist/esm/tools/mongodb/metadata/collectionStorageSize.js +1 -1
- package/dist/esm/tools/mongodb/metadata/collectionStorageSize.js.map +1 -1
- package/dist/esm/tools/mongodb/metadata/dbStats.d.ts +1 -1
- package/dist/esm/tools/mongodb/metadata/dbStats.d.ts.map +1 -1
- package/dist/esm/tools/mongodb/metadata/dbStats.js +1 -1
- package/dist/esm/tools/mongodb/metadata/dbStats.js.map +1 -1
- package/dist/esm/tools/mongodb/metadata/explain.d.ts +45 -45
- package/dist/esm/tools/mongodb/metadata/explain.d.ts.map +1 -1
- package/dist/esm/tools/mongodb/metadata/explain.js +3 -3
- package/dist/esm/tools/mongodb/metadata/explain.js.map +1 -1
- package/dist/esm/tools/mongodb/metadata/listCollections.d.ts +1 -1
- package/dist/esm/tools/mongodb/metadata/listCollections.d.ts.map +1 -1
- package/dist/esm/tools/mongodb/metadata/listCollections.js +1 -1
- package/dist/esm/tools/mongodb/metadata/listCollections.js.map +1 -1
- package/dist/esm/tools/mongodb/metadata/listDatabases.d.ts +1 -1
- package/dist/esm/tools/mongodb/metadata/listDatabases.d.ts.map +1 -1
- package/dist/esm/tools/mongodb/metadata/listDatabases.js +1 -1
- package/dist/esm/tools/mongodb/metadata/listDatabases.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 +1 -1
- package/dist/esm/tools/mongodb/metadata/logs.js.map +1 -1
- package/dist/esm/tools/mongodb/mongodbSchemas.d.ts +155 -0
- package/dist/esm/tools/mongodb/mongodbSchemas.d.ts.map +1 -0
- package/dist/esm/tools/mongodb/mongodbSchemas.js +63 -0
- package/dist/esm/tools/mongodb/mongodbSchemas.js.map +1 -0
- package/dist/esm/tools/mongodb/mongodbTool.d.ts +14 -4
- package/dist/esm/tools/mongodb/mongodbTool.d.ts.map +1 -1
- package/dist/esm/tools/mongodb/mongodbTool.js +14 -16
- package/dist/esm/tools/mongodb/mongodbTool.js.map +1 -1
- package/dist/esm/tools/mongodb/read/aggregate.d.ts +58 -57
- package/dist/esm/tools/mongodb/read/aggregate.d.ts.map +1 -1
- package/dist/esm/tools/mongodb/read/aggregate.js +78 -46
- package/dist/esm/tools/mongodb/read/aggregate.js.map +1 -1
- package/dist/esm/tools/mongodb/read/count.d.ts +1 -1
- package/dist/esm/tools/mongodb/read/count.d.ts.map +1 -1
- package/dist/esm/tools/mongodb/read/count.js +1 -1
- package/dist/esm/tools/mongodb/read/count.js.map +1 -1
- package/dist/esm/tools/mongodb/read/export.d.ts +45 -45
- package/dist/esm/tools/mongodb/read/export.d.ts.map +1 -1
- package/dist/esm/tools/mongodb/read/export.js +5 -3
- package/dist/esm/tools/mongodb/read/export.js.map +1 -1
- package/dist/esm/tools/mongodb/read/find.d.ts +1 -1
- package/dist/esm/tools/mongodb/read/find.d.ts.map +1 -1
- package/dist/esm/tools/mongodb/read/find.js +2 -2
- package/dist/esm/tools/mongodb/read/find.js.map +1 -1
- package/dist/esm/tools/mongodb/tools.d.ts +23 -23
- package/dist/esm/tools/mongodb/tools.d.ts.map +1 -1
- package/dist/esm/tools/mongodb/tools.js +23 -46
- package/dist/esm/tools/mongodb/tools.js.map +1 -1
- package/dist/esm/tools/mongodb/update/renameCollection.d.ts +1 -1
- package/dist/esm/tools/mongodb/update/renameCollection.d.ts.map +1 -1
- package/dist/esm/tools/mongodb/update/renameCollection.js +1 -1
- package/dist/esm/tools/mongodb/update/renameCollection.js.map +1 -1
- package/dist/esm/tools/mongodb/update/updateMany.d.ts +1 -1
- package/dist/esm/tools/mongodb/update/updateMany.d.ts.map +1 -1
- package/dist/esm/tools/mongodb/update/updateMany.js +1 -1
- package/dist/esm/tools/mongodb/update/updateMany.js.map +1 -1
- package/dist/esm/tools/tool.d.ts +343 -25
- package/dist/esm/tools/tool.d.ts.map +1 -1
- package/dist/esm/tools/tool.js +175 -56
- package/dist/esm/tools/tool.js.map +1 -1
- package/dist/esm/transports/base.d.ts +156 -3
- package/dist/esm/transports/base.d.ts.map +1 -1
- package/dist/esm/transports/base.js +37 -11
- package/dist/esm/transports/base.js.map +1 -1
- package/dist/esm/transports/dryModeRunner.d.ts +19 -0
- package/dist/esm/transports/dryModeRunner.d.ts.map +1 -0
- package/dist/esm/transports/dryModeRunner.js +33 -0
- package/dist/esm/transports/dryModeRunner.js.map +1 -0
- package/dist/esm/transports/inMemoryTransport.d.ts +18 -0
- package/dist/esm/transports/inMemoryTransport.d.ts.map +1 -0
- package/dist/esm/transports/inMemoryTransport.js +39 -0
- package/dist/esm/transports/inMemoryTransport.js.map +1 -0
- package/dist/esm/transports/streamableHttp.d.ts.map +1 -1
- package/dist/esm/transports/streamableHttp.js +5 -1
- package/dist/esm/transports/streamableHttp.js.map +1 -1
- package/package.json +53 -36
- package/dist/cjs/common/config.d.ts +0 -122
- package/dist/cjs/common/config.d.ts.map +0 -1
- package/dist/cjs/common/config.js +0 -544
- package/dist/cjs/common/config.js.map +0 -1
- package/dist/esm/common/config.d.ts +0 -122
- package/dist/esm/common/config.d.ts.map +0 -1
- package/dist/esm/common/config.js +0 -500
- package/dist/esm/common/config.js.map +0 -1
package/dist/cjs/tools/tool.js
CHANGED
|
@@ -3,11 +3,88 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.ToolBase = void 0;
|
|
4
4
|
exports.formatUntrustedData = formatUntrustedData;
|
|
5
5
|
const logger_js_1 = require("../common/logger.js");
|
|
6
|
+
/**
|
|
7
|
+
* Abstract base class for implementing MCP tools in the MongoDB MCP Server.
|
|
8
|
+
*
|
|
9
|
+
* All tools (both internal and custom) must extend this class to ensure a
|
|
10
|
+
* consistent interface and proper integration with the server.
|
|
11
|
+
*
|
|
12
|
+
* ## Creating a Custom Tool
|
|
13
|
+
*
|
|
14
|
+
* To create a custom tool, you must:
|
|
15
|
+
* 1. Extend the `ToolBase` class
|
|
16
|
+
* 2. Define static properties: `category` and `operationType`
|
|
17
|
+
* 3. Implement required abstract members: `name`, `description`,
|
|
18
|
+
* `argsShape`, `execute()`, `resolveTelemetryMetadata()`
|
|
19
|
+
*
|
|
20
|
+
* @example Basic Custom Tool
|
|
21
|
+
* ```typescript
|
|
22
|
+
* import { StreamableHttpRunner, UserConfigSchema } from "mongodb-mcp-server"
|
|
23
|
+
* import { ToolBase, type ToolClass, type ToolCategory, type OperationType } from "mongodb-mcp-server/tools";
|
|
24
|
+
* import { z } from "zod";
|
|
25
|
+
*
|
|
26
|
+
* class MyCustomTool extends ToolBase {
|
|
27
|
+
* // Required static property for ToolClass conformance
|
|
28
|
+
* static category: ToolCategory = "mongodb";
|
|
29
|
+
* static operationType: OperationType = "read";
|
|
30
|
+
*
|
|
31
|
+
* // Required abstract properties
|
|
32
|
+
* override name = "my-custom-tool";
|
|
33
|
+
* protected description = "My custom tool description";
|
|
34
|
+
* protected argsShape = {
|
|
35
|
+
* query: z.string().describe("The query parameter"),
|
|
36
|
+
* };
|
|
37
|
+
*
|
|
38
|
+
* // Required abstract method: implement the tool's logic
|
|
39
|
+
* protected async execute(args) {
|
|
40
|
+
* // Tool implementation
|
|
41
|
+
* return {
|
|
42
|
+
* content: [{ type: "text", text: "Result" }],
|
|
43
|
+
* };
|
|
44
|
+
* }
|
|
45
|
+
*
|
|
46
|
+
* // Required abstract method: provide telemetry metadata
|
|
47
|
+
* protected resolveTelemetryMetadata() {
|
|
48
|
+
* return {}; // Return empty object if no custom telemetry needed
|
|
49
|
+
* }
|
|
50
|
+
* }
|
|
51
|
+
*
|
|
52
|
+
* const runner = new StreamableHttpRunner({
|
|
53
|
+
* userConfig: UserConfigSchema.parse({}),
|
|
54
|
+
* // This will work only if the class correctly conforms to ToolClass type, which in our case it does.
|
|
55
|
+
* tools: [MyCustomTool],
|
|
56
|
+
* });
|
|
57
|
+
* ```
|
|
58
|
+
*
|
|
59
|
+
* ## Protected Members Available to Subclasses
|
|
60
|
+
*
|
|
61
|
+
* - `session` - Access to MongoDB connection, logger, and other session
|
|
62
|
+
* resources
|
|
63
|
+
* - `config` - Server configuration (`UserConfig`)
|
|
64
|
+
* - `telemetry` - Telemetry service for tracking usage
|
|
65
|
+
* - `elicitation` - Service for requesting user confirmations
|
|
66
|
+
*
|
|
67
|
+
* ## Instance Properties Set by Constructor
|
|
68
|
+
*
|
|
69
|
+
* The following properties are automatically set when the tool is instantiated
|
|
70
|
+
* by the server (derived from the static properties):
|
|
71
|
+
* - `category` - The tool's category (from static `category`)
|
|
72
|
+
* - `operationType` - The tool's operation type (from static `operationType`)
|
|
73
|
+
*
|
|
74
|
+
* ## Optional Overrideable Methods
|
|
75
|
+
*
|
|
76
|
+
* - `getConfirmationMessage()` - Customize the confirmation prompt for tools
|
|
77
|
+
* requiring user approval
|
|
78
|
+
* - `handleError()` - Customize error handling behavior
|
|
79
|
+
*
|
|
80
|
+
* @see {@link ToolClass} for the type that tool classes must conform to
|
|
81
|
+
* @see {@link ToolConstructorParams} for the parameters passed to the
|
|
82
|
+
* constructor
|
|
83
|
+
*/
|
|
6
84
|
class ToolBase {
|
|
7
85
|
get annotations() {
|
|
8
86
|
const annotations = {
|
|
9
87
|
title: this.name,
|
|
10
|
-
description: this.description,
|
|
11
88
|
};
|
|
12
89
|
switch (this.operationType) {
|
|
13
90
|
case "read":
|
|
@@ -30,13 +107,38 @@ class ToolBase {
|
|
|
30
107
|
}
|
|
31
108
|
return annotations;
|
|
32
109
|
}
|
|
33
|
-
/**
|
|
110
|
+
/**
|
|
111
|
+
* Get the confirmation message shown to users when this tool requires
|
|
112
|
+
* explicit approval.
|
|
113
|
+
*
|
|
114
|
+
* Override this method to provide a more specific and helpful confirmation
|
|
115
|
+
* message based on the tool's arguments.
|
|
116
|
+
*
|
|
117
|
+
* @param args - The tool arguments
|
|
118
|
+
* @returns The confirmation message to display to the user
|
|
119
|
+
*
|
|
120
|
+
* @example
|
|
121
|
+
* ```typescript
|
|
122
|
+
* protected getConfirmationMessage(args: { database: string }): string {
|
|
123
|
+
* return `You are about to delete the database "${args.database}". This action cannot be undone. Proceed?`;
|
|
124
|
+
* }
|
|
125
|
+
* ```
|
|
126
|
+
*/
|
|
34
127
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
35
128
|
getConfirmationMessage(...args) {
|
|
36
129
|
return `You are about to execute the \`${this.name}\` tool which requires additional confirmation. Would you like to proceed?`;
|
|
37
130
|
}
|
|
38
|
-
/**
|
|
39
|
-
*
|
|
131
|
+
/**
|
|
132
|
+
* Check if the user has confirmed the tool execution (if required by
|
|
133
|
+
* configuration).
|
|
134
|
+
*
|
|
135
|
+
* This method automatically checks if the tool name is in the
|
|
136
|
+
* `confirmationRequiredTools` configuration list and requests user
|
|
137
|
+
* confirmation via the elicitation service if needed.
|
|
138
|
+
*
|
|
139
|
+
* @param args - The tool arguments
|
|
140
|
+
* @returns A promise resolving to `true` if confirmed or confirmation not
|
|
141
|
+
* required, `false` otherwise
|
|
40
142
|
*/
|
|
41
143
|
async verifyConfirmed(args) {
|
|
42
144
|
if (!this.config.confirmationRequiredTools.includes(this.name)) {
|
|
@@ -44,7 +146,9 @@ class ToolBase {
|
|
|
44
146
|
}
|
|
45
147
|
return this.elicitation.requestConfirmation(this.getConfirmationMessage(...args));
|
|
46
148
|
}
|
|
47
|
-
constructor({ session, config, telemetry, elicitation }) {
|
|
149
|
+
constructor({ category, operationType, session, config, telemetry, elicitation }) {
|
|
150
|
+
this.category = category;
|
|
151
|
+
this.operationType = operationType;
|
|
48
152
|
this.session = session;
|
|
49
153
|
this.config = config;
|
|
50
154
|
this.telemetry = telemetry;
|
|
@@ -100,43 +204,34 @@ class ToolBase {
|
|
|
100
204
|
return toolResult;
|
|
101
205
|
}
|
|
102
206
|
};
|
|
103
|
-
server.mcpServer.tool(this.name, this.description, this.argsShape, this.annotations, callback);
|
|
104
|
-
// This is very similar to RegisteredTool.update, but without the bugs around the name.
|
|
105
|
-
// In the upstream update method, the name is captured in the closure and not updated when
|
|
106
|
-
// the tool name changes. This means that you only get one name update before things end up
|
|
107
|
-
// in a broken state.
|
|
108
|
-
// See https://github.com/modelcontextprotocol/typescript-sdk/issues/414 for more details.
|
|
109
|
-
this.update = (updates) => {
|
|
110
|
-
const tools = server.mcpServer["_registeredTools"];
|
|
111
|
-
const existingTool = tools[this.name];
|
|
112
|
-
if (!existingTool) {
|
|
113
|
-
this.session.logger.warning({
|
|
114
|
-
id: logger_js_1.LogId.toolUpdateFailure,
|
|
115
|
-
context: "tool",
|
|
116
|
-
message: `Tool ${this.name} not found in update`,
|
|
117
|
-
noRedaction: true,
|
|
118
|
-
});
|
|
119
|
-
return;
|
|
120
|
-
}
|
|
121
|
-
existingTool.annotations = this.annotations;
|
|
122
|
-
if (updates.name && updates.name !== this.name) {
|
|
123
|
-
existingTool.annotations.title = updates.name;
|
|
124
|
-
delete tools[this.name];
|
|
125
|
-
this.name = updates.name;
|
|
126
|
-
tools[this.name] = existingTool;
|
|
127
|
-
}
|
|
128
|
-
if (updates.description) {
|
|
129
|
-
existingTool.annotations.description = updates.description;
|
|
130
|
-
existingTool.description = updates.description;
|
|
131
|
-
this.description = updates.description;
|
|
132
|
-
}
|
|
133
|
-
if (updates.inputSchema) {
|
|
134
|
-
existingTool.inputSchema = updates.inputSchema;
|
|
135
|
-
}
|
|
136
|
-
server.mcpServer.sendToolListChanged();
|
|
137
|
-
};
|
|
207
|
+
this.registeredTool = server.mcpServer.tool(this.name, this.description, this.argsShape, this.annotations, callback);
|
|
138
208
|
return true;
|
|
139
209
|
}
|
|
210
|
+
isEnabled() {
|
|
211
|
+
return this.registeredTool?.enabled ?? false;
|
|
212
|
+
}
|
|
213
|
+
disable() {
|
|
214
|
+
if (!this.registeredTool) {
|
|
215
|
+
this.session.logger.warning({
|
|
216
|
+
id: logger_js_1.LogId.toolMetadataChange,
|
|
217
|
+
context: `tool - ${this.name}`,
|
|
218
|
+
message: "Requested disabling of tool but it was never registered",
|
|
219
|
+
});
|
|
220
|
+
return;
|
|
221
|
+
}
|
|
222
|
+
this.registeredTool.disable();
|
|
223
|
+
}
|
|
224
|
+
enable() {
|
|
225
|
+
if (!this.registeredTool) {
|
|
226
|
+
this.session.logger.warning({
|
|
227
|
+
id: logger_js_1.LogId.toolMetadataChange,
|
|
228
|
+
context: `tool - ${this.name}`,
|
|
229
|
+
message: "Requested enabling of tool but it was never registered",
|
|
230
|
+
});
|
|
231
|
+
return;
|
|
232
|
+
}
|
|
233
|
+
this.registeredTool.enable();
|
|
234
|
+
}
|
|
140
235
|
// Checks if a tool is allowed to run based on the config
|
|
141
236
|
verifyAllowed() {
|
|
142
237
|
let errorClarification;
|
|
@@ -164,6 +259,33 @@ class ToolBase {
|
|
|
164
259
|
}
|
|
165
260
|
return true;
|
|
166
261
|
}
|
|
262
|
+
/**
|
|
263
|
+
* Handle errors that occur during tool execution.
|
|
264
|
+
*
|
|
265
|
+
* Override this method to provide custom error handling logic. The default
|
|
266
|
+
* implementation returns a simple error message.
|
|
267
|
+
*
|
|
268
|
+
* @param error - The error that was thrown
|
|
269
|
+
* @param args - The arguments that were passed to the tool
|
|
270
|
+
* @returns A CallToolResult with error information
|
|
271
|
+
*
|
|
272
|
+
* @example
|
|
273
|
+
* ```typescript
|
|
274
|
+
* protected handleError(error: unknown, args: { query: string }): CallToolResult {
|
|
275
|
+
* if (error instanceof MongoError && error.code === 11000) {
|
|
276
|
+
* return {
|
|
277
|
+
* content: [{
|
|
278
|
+
* type: "text",
|
|
279
|
+
* text: `Duplicate key error for query: ${args.query}`,
|
|
280
|
+
* }],
|
|
281
|
+
* isError: true,
|
|
282
|
+
* };
|
|
283
|
+
* }
|
|
284
|
+
* // Fall back to default error handling
|
|
285
|
+
* return super.handleError(error, args);
|
|
286
|
+
* }
|
|
287
|
+
* ```
|
|
288
|
+
*/
|
|
167
289
|
// This method is intended to be overridden by subclasses to handle errors
|
|
168
290
|
handleError(error,
|
|
169
291
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
@@ -199,27 +321,24 @@ class ToolBase {
|
|
|
199
321
|
component: "tool",
|
|
200
322
|
duration_ms: duration,
|
|
201
323
|
result: result.isError ? "failure" : "success",
|
|
324
|
+
...metadata,
|
|
202
325
|
},
|
|
203
326
|
};
|
|
204
|
-
if (metadata?.orgId) {
|
|
205
|
-
event.properties.org_id = metadata.orgId;
|
|
206
|
-
}
|
|
207
|
-
if (metadata?.projectId) {
|
|
208
|
-
event.properties.project_id = metadata.projectId;
|
|
209
|
-
}
|
|
210
|
-
if (metadata?.atlasLocaldeploymentId) {
|
|
211
|
-
event.properties.atlas_local_deployment_id = metadata.atlasLocaldeploymentId;
|
|
212
|
-
}
|
|
213
327
|
this.telemetry.emitEvents([event]);
|
|
214
328
|
}
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
329
|
+
isFeatureEnabled(feature) {
|
|
330
|
+
return this.config.previewFeatures.includes(feature);
|
|
331
|
+
}
|
|
332
|
+
getConnectionInfoMetadata() {
|
|
333
|
+
const metadata = {};
|
|
334
|
+
if (this.session.connectedAtlasCluster?.projectId) {
|
|
335
|
+
metadata.project_id = this.session.connectedAtlasCluster.projectId;
|
|
336
|
+
}
|
|
337
|
+
const connectionStringAuthType = this.session.connectionStringAuthType;
|
|
338
|
+
if (connectionStringAuthType !== undefined) {
|
|
339
|
+
metadata.connection_auth_type = connectionStringAuthType;
|
|
222
340
|
}
|
|
341
|
+
return metadata;
|
|
223
342
|
}
|
|
224
343
|
}
|
|
225
344
|
exports.ToolBase = ToolBase;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool.js","sourceRoot":"","sources":["../../../src/tools/tool.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"tool.js","sourceRoot":"","sources":["../../../src/tools/tool.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { UserConfig } from "../common/config.js";
|
|
1
|
+
import type { UserConfig } from "../common/config/userConfig.js";
|
|
2
2
|
import { Server } from "../server.js";
|
|
3
3
|
import type { LoggerBase } from "../common/logger.js";
|
|
4
4
|
import { DeviceId } from "../helpers/deviceId.js";
|
|
@@ -6,13 +6,162 @@ import { type ConnectionManagerFactoryFn } from "../common/connectionManager.js"
|
|
|
6
6
|
import { type ConnectionErrorHandler } from "../common/connectionErrorHandler.js";
|
|
7
7
|
import type { CommonProperties } from "../telemetry/types.js";
|
|
8
8
|
import type { AtlasLocalClientFactoryFn } from "../common/atlasLocal.js";
|
|
9
|
+
import type { ToolClass } from "../tools/tool.js";
|
|
10
|
+
export type RequestContext = {
|
|
11
|
+
headers?: Record<string, string | string[] | undefined>;
|
|
12
|
+
query?: Record<string, string | string[] | undefined>;
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* A function to dynamically generate `UserConfig` object, potentially unique to
|
|
16
|
+
* each MCP client session.
|
|
17
|
+
*
|
|
18
|
+
* The function is passed a config context object containing:
|
|
19
|
+
* 1. `userConfig`: The base `UserConfig` object that MongoDB MCP Server was
|
|
20
|
+
* started with, either through parsed CLI arguments or a static
|
|
21
|
+
* configuration injected through `TransportRunnerConfig`
|
|
22
|
+
* 2. `request`: An optional, `RequestContext` object, available only when
|
|
23
|
+
* MongoDB MCP server is running over HTTP transport, that contains headers
|
|
24
|
+
* and query parameters received in MCP session initialization object.
|
|
25
|
+
*
|
|
26
|
+
* @see {@link UserConfig} to inspect the properties available on `userConfig`
|
|
27
|
+
* object.
|
|
28
|
+
* @see {@link RequestContext} to inspect the properties available on
|
|
29
|
+
* `requestContext` object.
|
|
30
|
+
*/
|
|
31
|
+
type CreateSessionConfigFn = (context: {
|
|
32
|
+
userConfig: UserConfig;
|
|
33
|
+
request?: RequestContext;
|
|
34
|
+
}) => Promise<UserConfig> | UserConfig;
|
|
35
|
+
/**
|
|
36
|
+
* Configuration options for customizing how transport runners are initialized.
|
|
37
|
+
* This includes specifying the base user configuration, providing custom
|
|
38
|
+
* connection management, and other advanced options.
|
|
39
|
+
*
|
|
40
|
+
* You may want to customize this configuration if you need to:
|
|
41
|
+
* - Provide a custom user configuration for different environments or users.
|
|
42
|
+
* - Override the default connection management to MongoDB deployments.
|
|
43
|
+
* - Provide a specific list of tools to be registered with the MCP server.
|
|
44
|
+
*
|
|
45
|
+
* In most cases, just providing the `UserConfig` object is sufficient, but
|
|
46
|
+
* advanced use-cases (such as embedding the MCP server in another application
|
|
47
|
+
* or supporting custom authentication flows) may require customizing other
|
|
48
|
+
* `TransportRunnerConfig` options as well.
|
|
49
|
+
*/
|
|
9
50
|
export type TransportRunnerConfig = {
|
|
51
|
+
/**
|
|
52
|
+
* Base user configuration for the server.
|
|
53
|
+
*
|
|
54
|
+
* Can be generated by parsing CLI arguments, environment variables or
|
|
55
|
+
* written manually while conforming the interface requirements of
|
|
56
|
+
* `UserConfig`.
|
|
57
|
+
*
|
|
58
|
+
* To parse CLI arguments and environment variables in order to generate a
|
|
59
|
+
* `UserConfig` object, you can use `createUserConfig` function, also
|
|
60
|
+
* exported as `parseCliArgumentsAsUserConfig` through MCP server library
|
|
61
|
+
* exports.
|
|
62
|
+
*
|
|
63
|
+
* Optionally, you can also use `UserConfigSchema` (available through MCP
|
|
64
|
+
* server library exports) to create a default configuration -
|
|
65
|
+
* `UserConfigSchema.parse({})`.
|
|
66
|
+
*/
|
|
10
67
|
userConfig: UserConfig;
|
|
68
|
+
/**
|
|
69
|
+
* An optional factory function to generates an instance of
|
|
70
|
+
* `ConnectionManager`. When not provided, MongoDB MCP Server uses an
|
|
71
|
+
* internal implementation to manage connection to MongoDB deployments.
|
|
72
|
+
*
|
|
73
|
+
* Customize this only if the use-case involves handling the MongoDB
|
|
74
|
+
* connections differently and outside of MongoDB MCP server.
|
|
75
|
+
*/
|
|
11
76
|
createConnectionManager?: ConnectionManagerFactoryFn;
|
|
77
|
+
/**
|
|
78
|
+
* An optional function to handle connection related errors. When not
|
|
79
|
+
* provided, MongoDB MCP Server uses an internal implementation to handle
|
|
80
|
+
* the errors raised by internal implementation of `ConnectionManager`
|
|
81
|
+
* class.
|
|
82
|
+
*
|
|
83
|
+
* Customize this only if you need to handle the Connection errors different
|
|
84
|
+
* from the internal implementation or if you have provided a different
|
|
85
|
+
* implementation of `ConnectionManager` that might raise errors unknown to
|
|
86
|
+
* default internal connection error handler.
|
|
87
|
+
*/
|
|
12
88
|
connectionErrorHandler?: ConnectionErrorHandler;
|
|
89
|
+
/**
|
|
90
|
+
* An optional factory function to create a client for working with Atlas
|
|
91
|
+
* local deployments. When not provided, MongoDB MCP Server uses an internal
|
|
92
|
+
* implementation to create the local Atlas client.
|
|
93
|
+
*/
|
|
13
94
|
createAtlasLocalClient?: AtlasLocalClientFactoryFn;
|
|
95
|
+
/**
|
|
96
|
+
* An optional list of loggers to be used in addition to the default logger
|
|
97
|
+
* implementations. When not provided, MongoDB MCP Server will not utilize
|
|
98
|
+
* any loggers other than the default that it works with.
|
|
99
|
+
*
|
|
100
|
+
* Customize this only if the default enabled loggers (disk/stderr/mcp) are
|
|
101
|
+
* not covering your use-case.
|
|
102
|
+
*/
|
|
14
103
|
additionalLoggers?: LoggerBase[];
|
|
104
|
+
/**
|
|
105
|
+
* An optional key value pair of telemetry properties that are reported to
|
|
106
|
+
* the telemetry backend. Most, if not all, of the properties are captured
|
|
107
|
+
* automatically.
|
|
108
|
+
*/
|
|
15
109
|
telemetryProperties?: Partial<CommonProperties>;
|
|
110
|
+
/**
|
|
111
|
+
* An optional list of tools constructors to be registered to the MongoDB
|
|
112
|
+
* MCP Server.
|
|
113
|
+
*
|
|
114
|
+
* When not provided, MongoDB MCP Server will register all internal tools.
|
|
115
|
+
* When specified, **only** the tools in this list will be registered.
|
|
116
|
+
*
|
|
117
|
+
* This allows you to:
|
|
118
|
+
* - Register only custom tools (excluding all internal tools)
|
|
119
|
+
* - Register a subset of internal tools alongside custom tools
|
|
120
|
+
* - Register all internal tools plus custom tools
|
|
121
|
+
*
|
|
122
|
+
* To include internal tools, import them from `mongodb-mcp-server/tools`:
|
|
123
|
+
*
|
|
124
|
+
* ```typescript
|
|
125
|
+
* import { AllTools, AggregateTool, FindTool } from "mongodb-mcp-server/tools";
|
|
126
|
+
*
|
|
127
|
+
* // Register all internal tools plus custom tools
|
|
128
|
+
* tools: [...AllTools, MyCustomTool]
|
|
129
|
+
*
|
|
130
|
+
* // Register only specific MongoDB tools plus custom tools
|
|
131
|
+
* tools: [AggregateTool, FindTool, MyCustomTool]
|
|
132
|
+
*
|
|
133
|
+
* // Register all internal tools of mongodb category
|
|
134
|
+
* tools: [AllTools.filter((tool) => tool.category === "mongodb")]
|
|
135
|
+
* ```
|
|
136
|
+
*
|
|
137
|
+
* Note: Ensure that each tool has unique names otherwise the server will
|
|
138
|
+
* throw an error when initializing an MCP Client session. If you're using
|
|
139
|
+
* only the internal tools, then you don't have to worry about it unless,
|
|
140
|
+
* you've overridden the tool names.
|
|
141
|
+
*
|
|
142
|
+
* To ensure that you provide compliant tool implementations extend your
|
|
143
|
+
* tool implementation using `ToolBase` class and ensure that they conform
|
|
144
|
+
* to `ToolClass` type.
|
|
145
|
+
*
|
|
146
|
+
* @see {@link ToolClass} for the type that tool classes must conform to
|
|
147
|
+
* @see {@link ToolBase} for base class for all the tools
|
|
148
|
+
*/
|
|
149
|
+
tools?: ToolClass[];
|
|
150
|
+
/**
|
|
151
|
+
* An optional function to hook into session configuration lifecycle and
|
|
152
|
+
* provide session specific configuration (`UserConfig`).
|
|
153
|
+
*
|
|
154
|
+
* The function is called before each session is created, allowing you to:
|
|
155
|
+
* - Fetch configuration from external sources (secrets managers, APIs)
|
|
156
|
+
* - Apply user-specific permissions and limits
|
|
157
|
+
* - Modify connection strings dynamically
|
|
158
|
+
* - Validate authentication credentials
|
|
159
|
+
*
|
|
160
|
+
* This function is called for each new MCP client connection. For stdio
|
|
161
|
+
* transport, this is called once at server startup. For HTTP transport,
|
|
162
|
+
* this is called for each new session.
|
|
163
|
+
*/
|
|
164
|
+
createSessionConfig?: CreateSessionConfigFn;
|
|
16
165
|
};
|
|
17
166
|
export declare abstract class TransportRunnerBase {
|
|
18
167
|
logger: LoggerBase;
|
|
@@ -22,10 +171,14 @@ export declare abstract class TransportRunnerBase {
|
|
|
22
171
|
private readonly connectionErrorHandler;
|
|
23
172
|
private readonly atlasLocalClient;
|
|
24
173
|
private readonly telemetryProperties;
|
|
25
|
-
|
|
26
|
-
|
|
174
|
+
private readonly tools?;
|
|
175
|
+
private readonly createSessionConfig?;
|
|
176
|
+
protected constructor({ userConfig, createConnectionManager, connectionErrorHandler, createAtlasLocalClient, additionalLoggers, telemetryProperties, tools, createSessionConfig, }: TransportRunnerConfig);
|
|
177
|
+
protected setupServer(request?: RequestContext): Promise<Server>;
|
|
27
178
|
abstract start(): Promise<void>;
|
|
28
179
|
abstract closeTransport(): Promise<void>;
|
|
29
180
|
close(): Promise<void>;
|
|
181
|
+
private static getInstructions;
|
|
30
182
|
}
|
|
183
|
+
export {};
|
|
31
184
|
//# sourceMappingURL=base.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../src/transports/base.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../src/transports/base.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,13 +15,16 @@ const connectionErrorHandler_js_1 = require("../common/connectionErrorHandler.js
|
|
|
15
15
|
const elicitation_js_1 = require("../elicitation.js");
|
|
16
16
|
const atlasLocal_js_1 = require("../common/atlasLocal.js");
|
|
17
17
|
const vectorSearchEmbeddingsManager_js_1 = require("../common/search/vectorSearchEmbeddingsManager.js");
|
|
18
|
+
const configOverrides_js_1 = require("../common/config/configOverrides.js");
|
|
18
19
|
class TransportRunnerBase {
|
|
19
|
-
constructor({ userConfig, createConnectionManager = connectionManager_js_1.createMCPConnectionManager, connectionErrorHandler = connectionErrorHandler_js_1.connectionErrorHandler, createAtlasLocalClient = atlasLocal_js_1.defaultCreateAtlasLocalClient, additionalLoggers = [], telemetryProperties = {}, }) {
|
|
20
|
+
constructor({ userConfig, createConnectionManager = connectionManager_js_1.createMCPConnectionManager, connectionErrorHandler = connectionErrorHandler_js_1.connectionErrorHandler, createAtlasLocalClient = atlasLocal_js_1.defaultCreateAtlasLocalClient, additionalLoggers = [], telemetryProperties = {}, tools, createSessionConfig, }) {
|
|
20
21
|
this.userConfig = userConfig;
|
|
21
22
|
this.createConnectionManager = createConnectionManager;
|
|
22
23
|
this.connectionErrorHandler = connectionErrorHandler;
|
|
23
24
|
this.atlasLocalClient = createAtlasLocalClient();
|
|
24
25
|
this.telemetryProperties = telemetryProperties;
|
|
26
|
+
this.tools = tools;
|
|
27
|
+
this.createSessionConfig = createSessionConfig;
|
|
25
28
|
const loggers = [...additionalLoggers];
|
|
26
29
|
if (this.userConfig.loggers.includes("stderr")) {
|
|
27
30
|
loggers.push(new logger_js_1.ConsoleLogger(keychain_js_1.Keychain.root));
|
|
@@ -36,30 +39,37 @@ class TransportRunnerBase {
|
|
|
36
39
|
this.logger = new logger_js_1.CompositeLogger(...loggers);
|
|
37
40
|
this.deviceId = deviceId_js_1.DeviceId.create(this.logger);
|
|
38
41
|
}
|
|
39
|
-
async setupServer() {
|
|
42
|
+
async setupServer(request) {
|
|
43
|
+
let userConfig = this.userConfig;
|
|
44
|
+
if (this.createSessionConfig) {
|
|
45
|
+
userConfig = await this.createSessionConfig({ userConfig, request });
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
userConfig = (0, configOverrides_js_1.applyConfigOverrides)({ baseConfig: this.userConfig, request });
|
|
49
|
+
}
|
|
40
50
|
const mcpServer = new mcp_js_1.McpServer({
|
|
41
51
|
name: packageInfo_js_1.packageInfo.mcpServerName,
|
|
42
52
|
version: packageInfo_js_1.packageInfo.version,
|
|
53
|
+
}, {
|
|
54
|
+
instructions: TransportRunnerBase.getInstructions(userConfig),
|
|
43
55
|
});
|
|
44
56
|
const logger = new logger_js_1.CompositeLogger(this.logger);
|
|
45
|
-
const exportsManager = exportsManager_js_1.ExportsManager.init(
|
|
57
|
+
const exportsManager = exportsManager_js_1.ExportsManager.init(userConfig, logger);
|
|
46
58
|
const connectionManager = await this.createConnectionManager({
|
|
47
59
|
logger,
|
|
48
|
-
userConfig
|
|
60
|
+
userConfig,
|
|
49
61
|
deviceId: this.deviceId,
|
|
50
62
|
});
|
|
51
63
|
const session = new session_js_1.Session({
|
|
52
|
-
|
|
53
|
-
apiClientId: this.userConfig.apiClientId,
|
|
54
|
-
apiClientSecret: this.userConfig.apiClientSecret,
|
|
64
|
+
userConfig,
|
|
55
65
|
atlasLocalClient: await this.atlasLocalClient,
|
|
56
66
|
logger,
|
|
57
67
|
exportsManager,
|
|
58
68
|
connectionManager,
|
|
59
69
|
keychain: keychain_js_1.Keychain.root,
|
|
60
|
-
vectorSearchEmbeddingsManager: new vectorSearchEmbeddingsManager_js_1.VectorSearchEmbeddingsManager(
|
|
70
|
+
vectorSearchEmbeddingsManager: new vectorSearchEmbeddingsManager_js_1.VectorSearchEmbeddingsManager(userConfig, connectionManager),
|
|
61
71
|
});
|
|
62
|
-
const telemetry = telemetry_js_1.Telemetry.create(session,
|
|
72
|
+
const telemetry = telemetry_js_1.Telemetry.create(session, userConfig, this.deviceId, {
|
|
63
73
|
commonProperties: this.telemetryProperties,
|
|
64
74
|
});
|
|
65
75
|
const elicitation = new elicitation_js_1.Elicitation({ server: mcpServer.server });
|
|
@@ -67,13 +77,14 @@ class TransportRunnerBase {
|
|
|
67
77
|
mcpServer,
|
|
68
78
|
session,
|
|
69
79
|
telemetry,
|
|
70
|
-
userConfig
|
|
80
|
+
userConfig,
|
|
71
81
|
connectionErrorHandler: this.connectionErrorHandler,
|
|
72
82
|
elicitation,
|
|
83
|
+
tools: this.tools,
|
|
73
84
|
});
|
|
74
85
|
// We need to create the MCP logger after the server is constructed
|
|
75
86
|
// because it needs the server instance
|
|
76
|
-
if (
|
|
87
|
+
if (userConfig.loggers.includes("mcp")) {
|
|
77
88
|
logger.addLogger(new logger_js_1.McpLogger(result, keychain_js_1.Keychain.root));
|
|
78
89
|
}
|
|
79
90
|
return result;
|
|
@@ -86,6 +97,21 @@ class TransportRunnerBase {
|
|
|
86
97
|
this.deviceId.close();
|
|
87
98
|
}
|
|
88
99
|
}
|
|
100
|
+
static getInstructions(config) {
|
|
101
|
+
let instructions = `
|
|
102
|
+
This is the MongoDB MCP server.
|
|
103
|
+
`;
|
|
104
|
+
if (config.connectionString) {
|
|
105
|
+
instructions += `
|
|
106
|
+
This MCP server was configured with a MongoDB connection string, and you can assume that you are connected to a MongoDB cluster.
|
|
107
|
+
`;
|
|
108
|
+
}
|
|
109
|
+
if (config.apiClientId && config.apiClientSecret) {
|
|
110
|
+
instructions += `
|
|
111
|
+
This MCP server was configured with MongoDB Atlas API credentials.`;
|
|
112
|
+
}
|
|
113
|
+
return instructions;
|
|
114
|
+
}
|
|
89
115
|
}
|
|
90
116
|
exports.TransportRunnerBase = TransportRunnerBase;
|
|
91
117
|
//# sourceMappingURL=base.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/transports/base.ts"],"names":[],"mappings":";;;AACA,6DAAuD;AACvD,4CAAsC;AACtC,qDAA+C;AAC/C,4DAAsD;AACtD,oEAAoE;AAEpE,mDAA4F;AAC5F,mEAA6D;AAC7D,wDAAkD;AAClD,uDAAiD;AACjD,yEAA6G;AAC7G,mFAG6C;AAE7C,sDAAgD;AAEhD,2DAAwE;AAExE,wGAAkG;
|
|
1
|
+
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/transports/base.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { TransportRunnerBase, type TransportRunnerConfig } from "./base.js";
|
|
2
|
+
export type DryRunModeTestHelpers = {
|
|
3
|
+
logger: {
|
|
4
|
+
log(this: void, message: string): void;
|
|
5
|
+
error(this: void, message: string): void;
|
|
6
|
+
};
|
|
7
|
+
};
|
|
8
|
+
type DryRunModeRunnerConfig = TransportRunnerConfig & DryRunModeTestHelpers;
|
|
9
|
+
export declare class DryRunModeRunner extends TransportRunnerBase {
|
|
10
|
+
private server;
|
|
11
|
+
private consoleLogger;
|
|
12
|
+
constructor({ logger, ...transportRunnerConfig }: DryRunModeRunnerConfig);
|
|
13
|
+
start(): Promise<void>;
|
|
14
|
+
closeTransport(): Promise<void>;
|
|
15
|
+
private dumpConfig;
|
|
16
|
+
private dumpTools;
|
|
17
|
+
}
|
|
18
|
+
export {};
|
|
19
|
+
//# sourceMappingURL=dryModeRunner.d.ts.map
|