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/esm/tools/tool.js
CHANGED
|
@@ -1,9 +1,86 @@
|
|
|
1
1
|
import { LogId } from "../common/logger.js";
|
|
2
|
+
/**
|
|
3
|
+
* Abstract base class for implementing MCP tools in the MongoDB MCP Server.
|
|
4
|
+
*
|
|
5
|
+
* All tools (both internal and custom) must extend this class to ensure a
|
|
6
|
+
* consistent interface and proper integration with the server.
|
|
7
|
+
*
|
|
8
|
+
* ## Creating a Custom Tool
|
|
9
|
+
*
|
|
10
|
+
* To create a custom tool, you must:
|
|
11
|
+
* 1. Extend the `ToolBase` class
|
|
12
|
+
* 2. Define static properties: `category` and `operationType`
|
|
13
|
+
* 3. Implement required abstract members: `name`, `description`,
|
|
14
|
+
* `argsShape`, `execute()`, `resolveTelemetryMetadata()`
|
|
15
|
+
*
|
|
16
|
+
* @example Basic Custom Tool
|
|
17
|
+
* ```typescript
|
|
18
|
+
* import { StreamableHttpRunner, UserConfigSchema } from "mongodb-mcp-server"
|
|
19
|
+
* import { ToolBase, type ToolClass, type ToolCategory, type OperationType } from "mongodb-mcp-server/tools";
|
|
20
|
+
* import { z } from "zod";
|
|
21
|
+
*
|
|
22
|
+
* class MyCustomTool extends ToolBase {
|
|
23
|
+
* // Required static property for ToolClass conformance
|
|
24
|
+
* static category: ToolCategory = "mongodb";
|
|
25
|
+
* static operationType: OperationType = "read";
|
|
26
|
+
*
|
|
27
|
+
* // Required abstract properties
|
|
28
|
+
* override name = "my-custom-tool";
|
|
29
|
+
* protected description = "My custom tool description";
|
|
30
|
+
* protected argsShape = {
|
|
31
|
+
* query: z.string().describe("The query parameter"),
|
|
32
|
+
* };
|
|
33
|
+
*
|
|
34
|
+
* // Required abstract method: implement the tool's logic
|
|
35
|
+
* protected async execute(args) {
|
|
36
|
+
* // Tool implementation
|
|
37
|
+
* return {
|
|
38
|
+
* content: [{ type: "text", text: "Result" }],
|
|
39
|
+
* };
|
|
40
|
+
* }
|
|
41
|
+
*
|
|
42
|
+
* // Required abstract method: provide telemetry metadata
|
|
43
|
+
* protected resolveTelemetryMetadata() {
|
|
44
|
+
* return {}; // Return empty object if no custom telemetry needed
|
|
45
|
+
* }
|
|
46
|
+
* }
|
|
47
|
+
*
|
|
48
|
+
* const runner = new StreamableHttpRunner({
|
|
49
|
+
* userConfig: UserConfigSchema.parse({}),
|
|
50
|
+
* // This will work only if the class correctly conforms to ToolClass type, which in our case it does.
|
|
51
|
+
* tools: [MyCustomTool],
|
|
52
|
+
* });
|
|
53
|
+
* ```
|
|
54
|
+
*
|
|
55
|
+
* ## Protected Members Available to Subclasses
|
|
56
|
+
*
|
|
57
|
+
* - `session` - Access to MongoDB connection, logger, and other session
|
|
58
|
+
* resources
|
|
59
|
+
* - `config` - Server configuration (`UserConfig`)
|
|
60
|
+
* - `telemetry` - Telemetry service for tracking usage
|
|
61
|
+
* - `elicitation` - Service for requesting user confirmations
|
|
62
|
+
*
|
|
63
|
+
* ## Instance Properties Set by Constructor
|
|
64
|
+
*
|
|
65
|
+
* The following properties are automatically set when the tool is instantiated
|
|
66
|
+
* by the server (derived from the static properties):
|
|
67
|
+
* - `category` - The tool's category (from static `category`)
|
|
68
|
+
* - `operationType` - The tool's operation type (from static `operationType`)
|
|
69
|
+
*
|
|
70
|
+
* ## Optional Overrideable Methods
|
|
71
|
+
*
|
|
72
|
+
* - `getConfirmationMessage()` - Customize the confirmation prompt for tools
|
|
73
|
+
* requiring user approval
|
|
74
|
+
* - `handleError()` - Customize error handling behavior
|
|
75
|
+
*
|
|
76
|
+
* @see {@link ToolClass} for the type that tool classes must conform to
|
|
77
|
+
* @see {@link ToolConstructorParams} for the parameters passed to the
|
|
78
|
+
* constructor
|
|
79
|
+
*/
|
|
2
80
|
export class ToolBase {
|
|
3
81
|
get annotations() {
|
|
4
82
|
const annotations = {
|
|
5
83
|
title: this.name,
|
|
6
|
-
description: this.description,
|
|
7
84
|
};
|
|
8
85
|
switch (this.operationType) {
|
|
9
86
|
case "read":
|
|
@@ -26,13 +103,38 @@ export class ToolBase {
|
|
|
26
103
|
}
|
|
27
104
|
return annotations;
|
|
28
105
|
}
|
|
29
|
-
/**
|
|
106
|
+
/**
|
|
107
|
+
* Get the confirmation message shown to users when this tool requires
|
|
108
|
+
* explicit approval.
|
|
109
|
+
*
|
|
110
|
+
* Override this method to provide a more specific and helpful confirmation
|
|
111
|
+
* message based on the tool's arguments.
|
|
112
|
+
*
|
|
113
|
+
* @param args - The tool arguments
|
|
114
|
+
* @returns The confirmation message to display to the user
|
|
115
|
+
*
|
|
116
|
+
* @example
|
|
117
|
+
* ```typescript
|
|
118
|
+
* protected getConfirmationMessage(args: { database: string }): string {
|
|
119
|
+
* return `You are about to delete the database "${args.database}". This action cannot be undone. Proceed?`;
|
|
120
|
+
* }
|
|
121
|
+
* ```
|
|
122
|
+
*/
|
|
30
123
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
31
124
|
getConfirmationMessage(...args) {
|
|
32
125
|
return `You are about to execute the \`${this.name}\` tool which requires additional confirmation. Would you like to proceed?`;
|
|
33
126
|
}
|
|
34
|
-
/**
|
|
35
|
-
*
|
|
127
|
+
/**
|
|
128
|
+
* Check if the user has confirmed the tool execution (if required by
|
|
129
|
+
* configuration).
|
|
130
|
+
*
|
|
131
|
+
* This method automatically checks if the tool name is in the
|
|
132
|
+
* `confirmationRequiredTools` configuration list and requests user
|
|
133
|
+
* confirmation via the elicitation service if needed.
|
|
134
|
+
*
|
|
135
|
+
* @param args - The tool arguments
|
|
136
|
+
* @returns A promise resolving to `true` if confirmed or confirmation not
|
|
137
|
+
* required, `false` otherwise
|
|
36
138
|
*/
|
|
37
139
|
async verifyConfirmed(args) {
|
|
38
140
|
if (!this.config.confirmationRequiredTools.includes(this.name)) {
|
|
@@ -40,7 +142,9 @@ export class ToolBase {
|
|
|
40
142
|
}
|
|
41
143
|
return this.elicitation.requestConfirmation(this.getConfirmationMessage(...args));
|
|
42
144
|
}
|
|
43
|
-
constructor({ session, config, telemetry, elicitation }) {
|
|
145
|
+
constructor({ category, operationType, session, config, telemetry, elicitation }) {
|
|
146
|
+
this.category = category;
|
|
147
|
+
this.operationType = operationType;
|
|
44
148
|
this.session = session;
|
|
45
149
|
this.config = config;
|
|
46
150
|
this.telemetry = telemetry;
|
|
@@ -96,43 +200,34 @@ export class ToolBase {
|
|
|
96
200
|
return toolResult;
|
|
97
201
|
}
|
|
98
202
|
};
|
|
99
|
-
server.mcpServer.tool(this.name, this.description, this.argsShape, this.annotations, callback);
|
|
100
|
-
// This is very similar to RegisteredTool.update, but without the bugs around the name.
|
|
101
|
-
// In the upstream update method, the name is captured in the closure and not updated when
|
|
102
|
-
// the tool name changes. This means that you only get one name update before things end up
|
|
103
|
-
// in a broken state.
|
|
104
|
-
// See https://github.com/modelcontextprotocol/typescript-sdk/issues/414 for more details.
|
|
105
|
-
this.update = (updates) => {
|
|
106
|
-
const tools = server.mcpServer["_registeredTools"];
|
|
107
|
-
const existingTool = tools[this.name];
|
|
108
|
-
if (!existingTool) {
|
|
109
|
-
this.session.logger.warning({
|
|
110
|
-
id: LogId.toolUpdateFailure,
|
|
111
|
-
context: "tool",
|
|
112
|
-
message: `Tool ${this.name} not found in update`,
|
|
113
|
-
noRedaction: true,
|
|
114
|
-
});
|
|
115
|
-
return;
|
|
116
|
-
}
|
|
117
|
-
existingTool.annotations = this.annotations;
|
|
118
|
-
if (updates.name && updates.name !== this.name) {
|
|
119
|
-
existingTool.annotations.title = updates.name;
|
|
120
|
-
delete tools[this.name];
|
|
121
|
-
this.name = updates.name;
|
|
122
|
-
tools[this.name] = existingTool;
|
|
123
|
-
}
|
|
124
|
-
if (updates.description) {
|
|
125
|
-
existingTool.annotations.description = updates.description;
|
|
126
|
-
existingTool.description = updates.description;
|
|
127
|
-
this.description = updates.description;
|
|
128
|
-
}
|
|
129
|
-
if (updates.inputSchema) {
|
|
130
|
-
existingTool.inputSchema = updates.inputSchema;
|
|
131
|
-
}
|
|
132
|
-
server.mcpServer.sendToolListChanged();
|
|
133
|
-
};
|
|
203
|
+
this.registeredTool = server.mcpServer.tool(this.name, this.description, this.argsShape, this.annotations, callback);
|
|
134
204
|
return true;
|
|
135
205
|
}
|
|
206
|
+
isEnabled() {
|
|
207
|
+
return this.registeredTool?.enabled ?? false;
|
|
208
|
+
}
|
|
209
|
+
disable() {
|
|
210
|
+
if (!this.registeredTool) {
|
|
211
|
+
this.session.logger.warning({
|
|
212
|
+
id: LogId.toolMetadataChange,
|
|
213
|
+
context: `tool - ${this.name}`,
|
|
214
|
+
message: "Requested disabling of tool but it was never registered",
|
|
215
|
+
});
|
|
216
|
+
return;
|
|
217
|
+
}
|
|
218
|
+
this.registeredTool.disable();
|
|
219
|
+
}
|
|
220
|
+
enable() {
|
|
221
|
+
if (!this.registeredTool) {
|
|
222
|
+
this.session.logger.warning({
|
|
223
|
+
id: LogId.toolMetadataChange,
|
|
224
|
+
context: `tool - ${this.name}`,
|
|
225
|
+
message: "Requested enabling of tool but it was never registered",
|
|
226
|
+
});
|
|
227
|
+
return;
|
|
228
|
+
}
|
|
229
|
+
this.registeredTool.enable();
|
|
230
|
+
}
|
|
136
231
|
// Checks if a tool is allowed to run based on the config
|
|
137
232
|
verifyAllowed() {
|
|
138
233
|
let errorClarification;
|
|
@@ -160,6 +255,33 @@ export class ToolBase {
|
|
|
160
255
|
}
|
|
161
256
|
return true;
|
|
162
257
|
}
|
|
258
|
+
/**
|
|
259
|
+
* Handle errors that occur during tool execution.
|
|
260
|
+
*
|
|
261
|
+
* Override this method to provide custom error handling logic. The default
|
|
262
|
+
* implementation returns a simple error message.
|
|
263
|
+
*
|
|
264
|
+
* @param error - The error that was thrown
|
|
265
|
+
* @param args - The arguments that were passed to the tool
|
|
266
|
+
* @returns A CallToolResult with error information
|
|
267
|
+
*
|
|
268
|
+
* @example
|
|
269
|
+
* ```typescript
|
|
270
|
+
* protected handleError(error: unknown, args: { query: string }): CallToolResult {
|
|
271
|
+
* if (error instanceof MongoError && error.code === 11000) {
|
|
272
|
+
* return {
|
|
273
|
+
* content: [{
|
|
274
|
+
* type: "text",
|
|
275
|
+
* text: `Duplicate key error for query: ${args.query}`,
|
|
276
|
+
* }],
|
|
277
|
+
* isError: true,
|
|
278
|
+
* };
|
|
279
|
+
* }
|
|
280
|
+
* // Fall back to default error handling
|
|
281
|
+
* return super.handleError(error, args);
|
|
282
|
+
* }
|
|
283
|
+
* ```
|
|
284
|
+
*/
|
|
163
285
|
// This method is intended to be overridden by subclasses to handle errors
|
|
164
286
|
handleError(error,
|
|
165
287
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
@@ -195,27 +317,24 @@ export class ToolBase {
|
|
|
195
317
|
component: "tool",
|
|
196
318
|
duration_ms: duration,
|
|
197
319
|
result: result.isError ? "failure" : "success",
|
|
320
|
+
...metadata,
|
|
198
321
|
},
|
|
199
322
|
};
|
|
200
|
-
if (metadata?.orgId) {
|
|
201
|
-
event.properties.org_id = metadata.orgId;
|
|
202
|
-
}
|
|
203
|
-
if (metadata?.projectId) {
|
|
204
|
-
event.properties.project_id = metadata.projectId;
|
|
205
|
-
}
|
|
206
|
-
if (metadata?.atlasLocaldeploymentId) {
|
|
207
|
-
event.properties.atlas_local_deployment_id = metadata.atlasLocaldeploymentId;
|
|
208
|
-
}
|
|
209
323
|
this.telemetry.emitEvents([event]);
|
|
210
324
|
}
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
325
|
+
isFeatureEnabled(feature) {
|
|
326
|
+
return this.config.previewFeatures.includes(feature);
|
|
327
|
+
}
|
|
328
|
+
getConnectionInfoMetadata() {
|
|
329
|
+
const metadata = {};
|
|
330
|
+
if (this.session.connectedAtlasCluster?.projectId) {
|
|
331
|
+
metadata.project_id = this.session.connectedAtlasCluster.projectId;
|
|
332
|
+
}
|
|
333
|
+
const connectionStringAuthType = this.session.connectionStringAuthType;
|
|
334
|
+
if (connectionStringAuthType !== undefined) {
|
|
335
|
+
metadata.connection_auth_type = connectionStringAuthType;
|
|
218
336
|
}
|
|
337
|
+
return metadata;
|
|
219
338
|
}
|
|
220
339
|
}
|
|
221
340
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool.js","sourceRoot":"","sources":["../../../src/tools/tool.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;
|
|
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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"}
|
|
@@ -12,13 +12,16 @@ import { connectionErrorHandler as defaultConnectionErrorHandler, } from "../com
|
|
|
12
12
|
import { Elicitation } from "../elicitation.js";
|
|
13
13
|
import { defaultCreateAtlasLocalClient } from "../common/atlasLocal.js";
|
|
14
14
|
import { VectorSearchEmbeddingsManager } from "../common/search/vectorSearchEmbeddingsManager.js";
|
|
15
|
+
import { applyConfigOverrides } from "../common/config/configOverrides.js";
|
|
15
16
|
export class TransportRunnerBase {
|
|
16
|
-
constructor({ userConfig, createConnectionManager = createMCPConnectionManager, connectionErrorHandler = defaultConnectionErrorHandler, createAtlasLocalClient = defaultCreateAtlasLocalClient, additionalLoggers = [], telemetryProperties = {}, }) {
|
|
17
|
+
constructor({ userConfig, createConnectionManager = createMCPConnectionManager, connectionErrorHandler = defaultConnectionErrorHandler, createAtlasLocalClient = defaultCreateAtlasLocalClient, additionalLoggers = [], telemetryProperties = {}, tools, createSessionConfig, }) {
|
|
17
18
|
this.userConfig = userConfig;
|
|
18
19
|
this.createConnectionManager = createConnectionManager;
|
|
19
20
|
this.connectionErrorHandler = connectionErrorHandler;
|
|
20
21
|
this.atlasLocalClient = createAtlasLocalClient();
|
|
21
22
|
this.telemetryProperties = telemetryProperties;
|
|
23
|
+
this.tools = tools;
|
|
24
|
+
this.createSessionConfig = createSessionConfig;
|
|
22
25
|
const loggers = [...additionalLoggers];
|
|
23
26
|
if (this.userConfig.loggers.includes("stderr")) {
|
|
24
27
|
loggers.push(new ConsoleLogger(Keychain.root));
|
|
@@ -33,30 +36,37 @@ export class TransportRunnerBase {
|
|
|
33
36
|
this.logger = new CompositeLogger(...loggers);
|
|
34
37
|
this.deviceId = DeviceId.create(this.logger);
|
|
35
38
|
}
|
|
36
|
-
async setupServer() {
|
|
39
|
+
async setupServer(request) {
|
|
40
|
+
let userConfig = this.userConfig;
|
|
41
|
+
if (this.createSessionConfig) {
|
|
42
|
+
userConfig = await this.createSessionConfig({ userConfig, request });
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
userConfig = applyConfigOverrides({ baseConfig: this.userConfig, request });
|
|
46
|
+
}
|
|
37
47
|
const mcpServer = new McpServer({
|
|
38
48
|
name: packageInfo.mcpServerName,
|
|
39
49
|
version: packageInfo.version,
|
|
50
|
+
}, {
|
|
51
|
+
instructions: TransportRunnerBase.getInstructions(userConfig),
|
|
40
52
|
});
|
|
41
53
|
const logger = new CompositeLogger(this.logger);
|
|
42
|
-
const exportsManager = ExportsManager.init(
|
|
54
|
+
const exportsManager = ExportsManager.init(userConfig, logger);
|
|
43
55
|
const connectionManager = await this.createConnectionManager({
|
|
44
56
|
logger,
|
|
45
|
-
userConfig
|
|
57
|
+
userConfig,
|
|
46
58
|
deviceId: this.deviceId,
|
|
47
59
|
});
|
|
48
60
|
const session = new Session({
|
|
49
|
-
|
|
50
|
-
apiClientId: this.userConfig.apiClientId,
|
|
51
|
-
apiClientSecret: this.userConfig.apiClientSecret,
|
|
61
|
+
userConfig,
|
|
52
62
|
atlasLocalClient: await this.atlasLocalClient,
|
|
53
63
|
logger,
|
|
54
64
|
exportsManager,
|
|
55
65
|
connectionManager,
|
|
56
66
|
keychain: Keychain.root,
|
|
57
|
-
vectorSearchEmbeddingsManager: new VectorSearchEmbeddingsManager(
|
|
67
|
+
vectorSearchEmbeddingsManager: new VectorSearchEmbeddingsManager(userConfig, connectionManager),
|
|
58
68
|
});
|
|
59
|
-
const telemetry = Telemetry.create(session,
|
|
69
|
+
const telemetry = Telemetry.create(session, userConfig, this.deviceId, {
|
|
60
70
|
commonProperties: this.telemetryProperties,
|
|
61
71
|
});
|
|
62
72
|
const elicitation = new Elicitation({ server: mcpServer.server });
|
|
@@ -64,13 +74,14 @@ export class TransportRunnerBase {
|
|
|
64
74
|
mcpServer,
|
|
65
75
|
session,
|
|
66
76
|
telemetry,
|
|
67
|
-
userConfig
|
|
77
|
+
userConfig,
|
|
68
78
|
connectionErrorHandler: this.connectionErrorHandler,
|
|
69
79
|
elicitation,
|
|
80
|
+
tools: this.tools,
|
|
70
81
|
});
|
|
71
82
|
// We need to create the MCP logger after the server is constructed
|
|
72
83
|
// because it needs the server instance
|
|
73
|
-
if (
|
|
84
|
+
if (userConfig.loggers.includes("mcp")) {
|
|
74
85
|
logger.addLogger(new McpLogger(result, Keychain.root));
|
|
75
86
|
}
|
|
76
87
|
return result;
|
|
@@ -83,5 +94,20 @@ export class TransportRunnerBase {
|
|
|
83
94
|
this.deviceId.close();
|
|
84
95
|
}
|
|
85
96
|
}
|
|
97
|
+
static getInstructions(config) {
|
|
98
|
+
let instructions = `
|
|
99
|
+
This is the MongoDB MCP server.
|
|
100
|
+
`;
|
|
101
|
+
if (config.connectionString) {
|
|
102
|
+
instructions += `
|
|
103
|
+
This MCP server was configured with a MongoDB connection string, and you can assume that you are connected to a MongoDB cluster.
|
|
104
|
+
`;
|
|
105
|
+
}
|
|
106
|
+
if (config.apiClientId && config.apiClientSecret) {
|
|
107
|
+
instructions += `
|
|
108
|
+
This MCP server was configured with MongoDB Atlas API credentials.`;
|
|
109
|
+
}
|
|
110
|
+
return instructions;
|
|
111
|
+
}
|
|
86
112
|
}
|
|
87
113
|
//# sourceMappingURL=base.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/transports/base.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAC5F,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,0BAA0B,EAAmC,MAAM,gCAAgC,CAAC;AAC7G,OAAO,EAEH,sBAAsB,IAAI,6BAA6B,GAC1D,MAAM,qCAAqC,CAAC;AAE7C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAE,6BAA6B,EAAE,MAAM,yBAAyB,CAAC;AAExE,OAAO,EAAE,6BAA6B,EAAE,MAAM,mDAAmD,CAAC;
|
|
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
|