mongodb-mcp-server 1.1.0 → 1.3.0-pre.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +64 -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/cluster.d.ts +7 -2
- package/dist/cjs/common/atlas/cluster.d.ts.map +1 -1
- package/dist/cjs/common/atlas/cluster.js +18 -4
- package/dist/cjs/common/atlas/cluster.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 +4 -0
- package/dist/cjs/common/atlasLocal.d.ts.map +1 -0
- package/dist/cjs/common/atlasLocal.js +57 -0
- package/dist/cjs/common/atlasLocal.js.map +1 -0
- 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.d.ts.map +1 -1
- package/dist/cjs/common/connectionErrorHandler.js +15 -6
- 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 +29 -19
- package/dist/cjs/common/connectionManager.js.map +1 -1
- package/dist/cjs/common/errors.d.ts +6 -1
- package/dist/cjs/common/errors.d.ts.map +1 -1
- package/dist/cjs/common/errors.js +5 -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 +10 -0
- package/dist/cjs/common/search/embeddingsProvider.d.ts.map +1 -0
- package/dist/cjs/common/search/embeddingsProvider.js +45 -0
- package/dist/cjs/common/search/embeddingsProvider.js.map +1 -0
- package/dist/cjs/common/search/vectorSearchEmbeddingsManager.d.ts +67 -0
- package/dist/cjs/common/search/vectorSearchEmbeddingsManager.d.ts.map +1 -0
- package/dist/cjs/common/search/vectorSearchEmbeddingsManager.js +188 -0
- package/dist/cjs/common/search/vectorSearchEmbeddingsManager.js.map +1 -0
- package/dist/cjs/common/session.d.ts +14 -5
- package/dist/cjs/common/session.d.ts.map +1 -1
- package/dist/cjs/common/session.js +28 -8
- 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 +6 -2
- package/dist/cjs/lib.d.ts.map +1 -1
- package/dist/cjs/lib.js +10 -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 +26 -5
- package/dist/cjs/server.d.ts.map +1 -1
- package/dist/cjs/server.js +7 -23
- 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 -4
- package/dist/cjs/telemetry/types.d.ts.map +1 -1
- package/dist/cjs/tools/args.d.ts +1 -0
- package/dist/cjs/tools/args.d.ts.map +1 -1
- package/dist/cjs/tools/args.js +1 -0
- package/dist/cjs/tools/args.js.map +1 -1
- package/dist/cjs/tools/atlas/atlasTool.d.ts +3 -2
- package/dist/cjs/tools/atlas/atlasTool.d.ts.map +1 -1
- package/dist/cjs/tools/atlas/atlasTool.js +3 -3
- package/dist/cjs/tools/atlas/atlasTool.js.map +1 -1
- package/dist/cjs/tools/atlas/connect/connectCluster.d.ts +6 -1
- package/dist/cjs/tools/atlas/connect/connectCluster.d.ts.map +1 -1
- package/dist/cjs/tools/atlas/connect/connectCluster.js +46 -21
- package/dist/cjs/tools/atlas/connect/connectCluster.js.map +1 -1
- package/dist/cjs/tools/atlas/create/createAccessList.js +1 -1
- package/dist/cjs/tools/atlas/create/createAccessList.js.map +1 -1
- package/dist/cjs/tools/atlas/create/createProject.d.ts +0 -4
- package/dist/cjs/tools/atlas/create/createProject.d.ts.map +1 -1
- package/dist/cjs/tools/atlas/create/createProject.js +5 -8
- package/dist/cjs/tools/atlas/create/createProject.js.map +1 -1
- package/dist/cjs/tools/atlas/read/getPerformanceAdvisor.d.ts +4 -1
- package/dist/cjs/tools/atlas/read/getPerformanceAdvisor.d.ts.map +1 -1
- package/dist/cjs/tools/atlas/read/getPerformanceAdvisor.js +7 -1
- package/dist/cjs/tools/atlas/read/getPerformanceAdvisor.js.map +1 -1
- package/dist/cjs/tools/atlas/read/inspectAccessList.d.ts.map +1 -1
- package/dist/cjs/tools/atlas/read/inspectAccessList.js +7 -8
- package/dist/cjs/tools/atlas/read/inspectAccessList.js.map +1 -1
- package/dist/cjs/tools/atlas/read/inspectCluster.d.ts.map +1 -1
- package/dist/cjs/tools/atlas/read/inspectCluster.js +9 -3
- package/dist/cjs/tools/atlas/read/inspectCluster.js.map +1 -1
- package/dist/cjs/tools/atlas/read/listAlerts.d.ts.map +1 -1
- package/dist/cjs/tools/atlas/read/listAlerts.js +9 -13
- package/dist/cjs/tools/atlas/read/listAlerts.js.map +1 -1
- package/dist/cjs/tools/atlas/read/listClusters.d.ts.map +1 -1
- package/dist/cjs/tools/atlas/read/listClusters.js +9 -25
- package/dist/cjs/tools/atlas/read/listClusters.js.map +1 -1
- package/dist/cjs/tools/atlas/read/listDBUsers.d.ts.map +1 -1
- package/dist/cjs/tools/atlas/read/listDBUsers.js +13 -23
- package/dist/cjs/tools/atlas/read/listDBUsers.js.map +1 -1
- package/dist/cjs/tools/atlas/read/listOrgs.d.ts.map +1 -1
- package/dist/cjs/tools/atlas/read/listOrgs.js +6 -11
- package/dist/cjs/tools/atlas/read/listOrgs.js.map +1 -1
- package/dist/cjs/tools/atlas/read/listProjects.d.ts +0 -3
- package/dist/cjs/tools/atlas/read/listProjects.d.ts.map +1 -1
- package/dist/cjs/tools/atlas/read/listProjects.js +18 -23
- package/dist/cjs/tools/atlas/read/listProjects.js.map +1 -1
- package/dist/cjs/tools/atlasLocal/atlasLocalTool.d.ts +20 -0
- package/dist/cjs/tools/atlasLocal/atlasLocalTool.d.ts.map +1 -0
- package/dist/cjs/tools/atlasLocal/atlasLocalTool.js +109 -0
- package/dist/cjs/tools/atlasLocal/atlasLocalTool.js.map +1 -0
- package/dist/cjs/tools/atlasLocal/connect/connectDeployment.d.ts +16 -0
- package/dist/cjs/tools/atlasLocal/connect/connectDeployment.d.ts.map +1 -0
- package/dist/cjs/tools/atlasLocal/connect/connectDeployment.js +38 -0
- package/dist/cjs/tools/atlasLocal/connect/connectDeployment.js.map +1 -0
- package/dist/cjs/tools/atlasLocal/create/createDeployment.d.ts +14 -0
- package/dist/cjs/tools/atlasLocal/create/createDeployment.d.ts.map +1 -0
- package/dist/cjs/tools/atlasLocal/create/createDeployment.js +41 -0
- package/dist/cjs/tools/atlasLocal/create/createDeployment.js.map +1 -0
- package/dist/cjs/tools/atlasLocal/delete/deleteDeployment.d.ts +14 -0
- package/dist/cjs/tools/atlasLocal/delete/deleteDeployment.d.ts.map +1 -0
- package/dist/cjs/tools/atlasLocal/delete/deleteDeployment.js +32 -0
- package/dist/cjs/tools/atlasLocal/delete/deleteDeployment.js.map +1 -0
- package/dist/cjs/tools/atlasLocal/read/listDeployments.d.ts +13 -0
- package/dist/cjs/tools/atlasLocal/read/listDeployments.d.ts.map +1 -0
- package/dist/cjs/tools/atlasLocal/read/listDeployments.js +42 -0
- package/dist/cjs/tools/atlasLocal/read/listDeployments.js.map +1 -0
- package/dist/cjs/tools/atlasLocal/tools.d.ts +6 -0
- package/dist/cjs/tools/atlasLocal/tools.d.ts.map +1 -0
- package/dist/cjs/tools/atlasLocal/tools.js +9 -0
- package/dist/cjs/tools/atlasLocal/tools.js.map +1 -0
- 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 +14 -0
- package/dist/cjs/tools/index.js.map +1 -0
- package/dist/cjs/tools/mongodb/connect/connect.d.ts +4 -10
- package/dist/cjs/tools/mongodb/connect/connect.d.ts.map +1 -1
- package/dist/cjs/tools/mongodb/connect/connect.js +17 -70
- 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/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 +9 -22
- package/dist/cjs/tools/mongodb/create/createIndex.js.map +1 -1
- package/dist/cjs/tools/mongodb/create/insertMany.d.ts +22 -2
- package/dist/cjs/tools/mongodb/create/insertMany.d.ts.map +1 -1
- package/dist/cjs/tools/mongodb/create/insertMany.js +88 -12
- package/dist/cjs/tools/mongodb/create/insertMany.js.map +1 -1
- package/dist/cjs/tools/mongodb/delete/dropIndex.d.ts +5 -2
- package/dist/cjs/tools/mongodb/delete/dropIndex.d.ts.map +1 -1
- package/dist/cjs/tools/mongodb/delete/dropIndex.js +36 -3
- package/dist/cjs/tools/mongodb/delete/dropIndex.js.map +1 -1
- package/dist/cjs/tools/mongodb/metadata/collectionIndexes.d.ts +15 -0
- package/dist/cjs/tools/mongodb/metadata/collectionIndexes.d.ts.map +1 -1
- package/dist/cjs/tools/mongodb/metadata/collectionIndexes.js +30 -5
- package/dist/cjs/tools/mongodb/metadata/collectionIndexes.js.map +1 -1
- package/dist/cjs/tools/mongodb/metadata/collectionSchema.js +1 -1
- package/dist/cjs/tools/mongodb/metadata/explain.d.ts +192 -10
- package/dist/cjs/tools/mongodb/metadata/explain.d.ts.map +1 -1
- package/dist/cjs/tools/mongodb/metadata/explain.js +1 -1
- package/dist/cjs/tools/mongodb/metadata/explain.js.map +1 -1
- package/dist/cjs/tools/mongodb/metadata/listDatabases.d.ts.map +1 -1
- package/dist/cjs/tools/mongodb/metadata/listDatabases.js +1 -3
- package/dist/cjs/tools/mongodb/metadata/listDatabases.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 -3
- package/dist/cjs/tools/mongodb/mongodbTool.d.ts.map +1 -1
- package/dist/cjs/tools/mongodb/mongodbTool.js +31 -11
- package/dist/cjs/tools/mongodb/mongodbTool.js.map +1 -1
- package/dist/cjs/tools/mongodb/read/aggregate.d.ts +218 -4
- package/dist/cjs/tools/mongodb/read/aggregate.d.ts.map +1 -1
- package/dist/cjs/tools/mongodb/read/aggregate.js +125 -18
- package/dist/cjs/tools/mongodb/read/aggregate.js.map +1 -1
- package/dist/cjs/tools/mongodb/read/export.d.ts +192 -10
- package/dist/cjs/tools/mongodb/read/export.d.ts.map +1 -1
- package/dist/cjs/tools/mongodb/read/export.js +3 -1
- package/dist/cjs/tools/mongodb/read/export.js.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 +2 -2
- package/dist/cjs/tools/mongodb/tools.d.ts.map +1 -1
- package/dist/cjs/tools/mongodb/tools.js +2 -2
- package/dist/cjs/tools/mongodb/tools.js.map +1 -1
- package/dist/cjs/tools/tool.d.ts +14 -24
- package/dist/cjs/tools/tool.d.ts.map +1 -1
- package/dist/cjs/tools/tool.js +44 -54
- package/dist/cjs/tools/tool.js.map +1 -1
- package/dist/cjs/transports/base.d.ts +25 -3
- package/dist/cjs/transports/base.d.ts.map +1 -1
- package/dist/cjs/transports/base.js +41 -10
- 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/cluster.d.ts +7 -2
- package/dist/esm/common/atlas/cluster.d.ts.map +1 -1
- package/dist/esm/common/atlas/cluster.js +17 -4
- package/dist/esm/common/atlas/cluster.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 +4 -0
- package/dist/esm/common/atlasLocal.d.ts.map +1 -0
- package/dist/esm/common/atlasLocal.js +20 -0
- package/dist/esm/common/atlasLocal.js.map +1 -0
- 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.d.ts.map +1 -1
- package/dist/esm/common/connectionErrorHandler.js +15 -6
- 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 +28 -18
- package/dist/esm/common/connectionManager.js.map +1 -1
- package/dist/esm/common/errors.d.ts +6 -1
- package/dist/esm/common/errors.d.ts.map +1 -1
- package/dist/esm/common/errors.js +5 -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 +10 -0
- package/dist/esm/common/search/embeddingsProvider.d.ts.map +1 -0
- package/dist/esm/common/search/embeddingsProvider.js +39 -0
- package/dist/esm/common/search/embeddingsProvider.js.map +1 -0
- package/dist/esm/common/search/vectorSearchEmbeddingsManager.d.ts +67 -0
- package/dist/esm/common/search/vectorSearchEmbeddingsManager.d.ts.map +1 -0
- package/dist/esm/common/search/vectorSearchEmbeddingsManager.js +181 -0
- package/dist/esm/common/search/vectorSearchEmbeddingsManager.js.map +1 -0
- package/dist/esm/common/session.d.ts +14 -5
- package/dist/esm/common/session.d.ts.map +1 -1
- package/dist/esm/common/session.js +28 -8
- 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 +6 -2
- package/dist/esm/lib.d.ts.map +1 -1
- package/dist/esm/lib.js +5 -2
- package/dist/esm/lib.js.map +1 -1
- package/dist/esm/resources/common/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 +26 -5
- package/dist/esm/server.d.ts.map +1 -1
- package/dist/esm/server.js +7 -23
- 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 -4
- package/dist/esm/telemetry/types.d.ts.map +1 -1
- package/dist/esm/tools/args.d.ts +1 -0
- package/dist/esm/tools/args.d.ts.map +1 -1
- package/dist/esm/tools/args.js +1 -0
- package/dist/esm/tools/args.js.map +1 -1
- package/dist/esm/tools/atlas/atlasTool.d.ts +3 -2
- package/dist/esm/tools/atlas/atlasTool.d.ts.map +1 -1
- package/dist/esm/tools/atlas/atlasTool.js +3 -3
- package/dist/esm/tools/atlas/atlasTool.js.map +1 -1
- package/dist/esm/tools/atlas/connect/connectCluster.d.ts +6 -1
- package/dist/esm/tools/atlas/connect/connectCluster.d.ts.map +1 -1
- package/dist/esm/tools/atlas/connect/connectCluster.js +47 -22
- package/dist/esm/tools/atlas/connect/connectCluster.js.map +1 -1
- package/dist/esm/tools/atlas/create/createAccessList.js +1 -1
- package/dist/esm/tools/atlas/create/createAccessList.js.map +1 -1
- package/dist/esm/tools/atlas/create/createProject.d.ts +0 -4
- package/dist/esm/tools/atlas/create/createProject.d.ts.map +1 -1
- package/dist/esm/tools/atlas/create/createProject.js +4 -7
- package/dist/esm/tools/atlas/create/createProject.js.map +1 -1
- package/dist/esm/tools/atlas/read/getPerformanceAdvisor.d.ts +4 -1
- package/dist/esm/tools/atlas/read/getPerformanceAdvisor.d.ts.map +1 -1
- package/dist/esm/tools/atlas/read/getPerformanceAdvisor.js +7 -1
- package/dist/esm/tools/atlas/read/getPerformanceAdvisor.js.map +1 -1
- package/dist/esm/tools/atlas/read/inspectAccessList.d.ts.map +1 -1
- package/dist/esm/tools/atlas/read/inspectAccessList.js +7 -8
- package/dist/esm/tools/atlas/read/inspectAccessList.js.map +1 -1
- package/dist/esm/tools/atlas/read/inspectCluster.d.ts.map +1 -1
- package/dist/esm/tools/atlas/read/inspectCluster.js +9 -3
- package/dist/esm/tools/atlas/read/inspectCluster.js.map +1 -1
- package/dist/esm/tools/atlas/read/listAlerts.d.ts.map +1 -1
- package/dist/esm/tools/atlas/read/listAlerts.js +9 -13
- package/dist/esm/tools/atlas/read/listAlerts.js.map +1 -1
- package/dist/esm/tools/atlas/read/listClusters.d.ts.map +1 -1
- package/dist/esm/tools/atlas/read/listClusters.js +9 -25
- package/dist/esm/tools/atlas/read/listClusters.js.map +1 -1
- package/dist/esm/tools/atlas/read/listDBUsers.d.ts.map +1 -1
- package/dist/esm/tools/atlas/read/listDBUsers.js +13 -23
- package/dist/esm/tools/atlas/read/listDBUsers.js.map +1 -1
- package/dist/esm/tools/atlas/read/listOrgs.d.ts.map +1 -1
- package/dist/esm/tools/atlas/read/listOrgs.js +6 -11
- package/dist/esm/tools/atlas/read/listOrgs.js.map +1 -1
- package/dist/esm/tools/atlas/read/listProjects.d.ts +0 -3
- package/dist/esm/tools/atlas/read/listProjects.d.ts.map +1 -1
- package/dist/esm/tools/atlas/read/listProjects.js +17 -22
- package/dist/esm/tools/atlas/read/listProjects.js.map +1 -1
- package/dist/esm/tools/atlasLocal/atlasLocalTool.d.ts +20 -0
- package/dist/esm/tools/atlasLocal/atlasLocalTool.d.ts.map +1 -0
- package/dist/esm/tools/atlasLocal/atlasLocalTool.js +105 -0
- package/dist/esm/tools/atlasLocal/atlasLocalTool.js.map +1 -0
- package/dist/esm/tools/atlasLocal/connect/connectDeployment.d.ts +16 -0
- package/dist/esm/tools/atlasLocal/connect/connectDeployment.d.ts.map +1 -0
- package/dist/esm/tools/atlasLocal/connect/connectDeployment.js +34 -0
- package/dist/esm/tools/atlasLocal/connect/connectDeployment.js.map +1 -0
- package/dist/esm/tools/atlasLocal/create/createDeployment.d.ts +14 -0
- package/dist/esm/tools/atlasLocal/create/createDeployment.d.ts.map +1 -0
- package/dist/esm/tools/atlasLocal/create/createDeployment.js +37 -0
- package/dist/esm/tools/atlasLocal/create/createDeployment.js.map +1 -0
- package/dist/esm/tools/atlasLocal/delete/deleteDeployment.d.ts +14 -0
- package/dist/esm/tools/atlasLocal/delete/deleteDeployment.d.ts.map +1 -0
- package/dist/esm/tools/atlasLocal/delete/deleteDeployment.js +28 -0
- package/dist/esm/tools/atlasLocal/delete/deleteDeployment.js.map +1 -0
- package/dist/esm/tools/atlasLocal/read/listDeployments.d.ts +13 -0
- package/dist/esm/tools/atlasLocal/read/listDeployments.d.ts.map +1 -0
- package/dist/esm/tools/atlasLocal/read/listDeployments.js +38 -0
- package/dist/esm/tools/atlasLocal/read/listDeployments.js.map +1 -0
- package/dist/esm/tools/atlasLocal/tools.d.ts +6 -0
- package/dist/esm/tools/atlasLocal/tools.d.ts.map +1 -0
- package/dist/esm/tools/atlasLocal/tools.js +6 -0
- package/dist/esm/tools/atlasLocal/tools.js.map +1 -0
- 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 +7 -0
- package/dist/esm/tools/index.js.map +1 -0
- package/dist/esm/tools/mongodb/connect/connect.d.ts +4 -10
- package/dist/esm/tools/mongodb/connect/connect.d.ts.map +1 -1
- package/dist/esm/tools/mongodb/connect/connect.js +17 -67
- 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/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 +9 -22
- package/dist/esm/tools/mongodb/create/createIndex.js.map +1 -1
- package/dist/esm/tools/mongodb/create/insertMany.d.ts +22 -2
- package/dist/esm/tools/mongodb/create/insertMany.d.ts.map +1 -1
- package/dist/esm/tools/mongodb/create/insertMany.js +88 -12
- package/dist/esm/tools/mongodb/create/insertMany.js.map +1 -1
- package/dist/esm/tools/mongodb/delete/dropIndex.d.ts +5 -2
- package/dist/esm/tools/mongodb/delete/dropIndex.d.ts.map +1 -1
- package/dist/esm/tools/mongodb/delete/dropIndex.js +36 -3
- package/dist/esm/tools/mongodb/delete/dropIndex.js.map +1 -1
- package/dist/esm/tools/mongodb/metadata/collectionIndexes.d.ts +15 -0
- package/dist/esm/tools/mongodb/metadata/collectionIndexes.d.ts.map +1 -1
- package/dist/esm/tools/mongodb/metadata/collectionIndexes.js +30 -5
- package/dist/esm/tools/mongodb/metadata/collectionIndexes.js.map +1 -1
- package/dist/esm/tools/mongodb/metadata/collectionSchema.js +1 -1
- package/dist/esm/tools/mongodb/metadata/explain.d.ts +192 -10
- package/dist/esm/tools/mongodb/metadata/explain.d.ts.map +1 -1
- package/dist/esm/tools/mongodb/metadata/explain.js +2 -2
- package/dist/esm/tools/mongodb/metadata/explain.js.map +1 -1
- package/dist/esm/tools/mongodb/metadata/listDatabases.d.ts.map +1 -1
- package/dist/esm/tools/mongodb/metadata/listDatabases.js +1 -3
- package/dist/esm/tools/mongodb/metadata/listDatabases.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 -3
- package/dist/esm/tools/mongodb/mongodbTool.d.ts.map +1 -1
- package/dist/esm/tools/mongodb/mongodbTool.js +31 -11
- package/dist/esm/tools/mongodb/mongodbTool.js.map +1 -1
- package/dist/esm/tools/mongodb/read/aggregate.d.ts +218 -4
- package/dist/esm/tools/mongodb/read/aggregate.d.ts.map +1 -1
- package/dist/esm/tools/mongodb/read/aggregate.js +123 -17
- package/dist/esm/tools/mongodb/read/aggregate.js.map +1 -1
- package/dist/esm/tools/mongodb/read/export.d.ts +192 -10
- package/dist/esm/tools/mongodb/read/export.d.ts.map +1 -1
- package/dist/esm/tools/mongodb/read/export.js +4 -2
- package/dist/esm/tools/mongodb/read/export.js.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 +2 -2
- package/dist/esm/tools/mongodb/tools.d.ts.map +1 -1
- package/dist/esm/tools/mongodb/tools.js +2 -2
- package/dist/esm/tools/mongodb/tools.js.map +1 -1
- package/dist/esm/tools/tool.d.ts +14 -24
- package/dist/esm/tools/tool.d.ts.map +1 -1
- package/dist/esm/tools/tool.js +44 -54
- package/dist/esm/tools/tool.js.map +1 -1
- package/dist/esm/transports/base.d.ts +25 -3
- package/dist/esm/transports/base.d.ts.map +1 -1
- package/dist/esm/transports/base.js +41 -10
- 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 +60 -39
- package/dist/cjs/common/config.d.ts +0 -53
- package/dist/cjs/common/config.d.ts.map +0 -1
- package/dist/cjs/common/config.js +0 -401
- package/dist/cjs/common/config.js.map +0 -1
- package/dist/cjs/tools/mongodb/search/listSearchIndexes.d.ts +0 -30
- package/dist/cjs/tools/mongodb/search/listSearchIndexes.d.ts.map +0 -1
- package/dist/cjs/tools/mongodb/search/listSearchIndexes.js +0 -65
- package/dist/cjs/tools/mongodb/search/listSearchIndexes.js.map +0 -1
- package/dist/esm/common/config.d.ts +0 -53
- package/dist/esm/common/config.d.ts.map +0 -1
- package/dist/esm/common/config.js +0 -390
- package/dist/esm/common/config.js.map +0 -1
- package/dist/esm/tools/mongodb/search/listSearchIndexes.d.ts +0 -30
- package/dist/esm/tools/mongodb/search/listSearchIndexes.d.ts.map +0 -1
- package/dist/esm/tools/mongodb/search/listSearchIndexes.js +0 -61
- package/dist/esm/tools/mongodb/search/listSearchIndexes.js.map +0 -1
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import z from "zod";
|
|
2
|
+
import { MongoDBToolBase } from "../mongodbTool.js";
|
|
3
|
+
export class SwitchConnectionTool extends MongoDBToolBase {
|
|
4
|
+
constructor({ session, config, telemetry, elicitation }) {
|
|
5
|
+
super({ session, config, telemetry, elicitation });
|
|
6
|
+
this.name = "switch-connection";
|
|
7
|
+
this.description = "Switch to a different MongoDB connection. If the user has configured a connection string or has previously called the connect tool, a connection is already established and there's no need to call this tool unless the user has explicitly requested to switch to a new instance.";
|
|
8
|
+
this.argsShape = {
|
|
9
|
+
connectionString: z
|
|
10
|
+
.string()
|
|
11
|
+
.optional()
|
|
12
|
+
.describe("MongoDB connection string to switch to (in the mongodb:// or mongodb+srv:// format). If a connection string is not provided, the connection string from the config will be used."),
|
|
13
|
+
};
|
|
14
|
+
this.operationType = "connect";
|
|
15
|
+
session.on("connect", () => {
|
|
16
|
+
this.enable();
|
|
17
|
+
});
|
|
18
|
+
session.on("disconnect", () => {
|
|
19
|
+
this.disable();
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
register(server) {
|
|
23
|
+
const registrationSuccessful = super.register(server);
|
|
24
|
+
/**
|
|
25
|
+
* When connected to mongodb we want to swap connect with
|
|
26
|
+
* switch-connection tool.
|
|
27
|
+
*/
|
|
28
|
+
if (registrationSuccessful && !this.session.isConnectedToMongoDB) {
|
|
29
|
+
this.disable();
|
|
30
|
+
}
|
|
31
|
+
return registrationSuccessful;
|
|
32
|
+
}
|
|
33
|
+
async execute({ connectionString }) {
|
|
34
|
+
if (typeof connectionString !== "string") {
|
|
35
|
+
await this.session.connectToConfiguredConnection();
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
await this.session.connectToMongoDB({ connectionString });
|
|
39
|
+
}
|
|
40
|
+
return {
|
|
41
|
+
content: [{ type: "text", text: "Successfully connected to MongoDB." }],
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=switchConnection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"switchConnection.js","sourceRoot":"","sources":["../../../../../src/tools/mongodb/connect/switchConnection.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAC;AAGpB,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAIpD,MAAM,OAAO,oBAAqB,SAAQ,eAAe;IAgBrD,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,EAAyB;QAC1E,KAAK,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,CAAC;QAhBvC,SAAI,GAAG,mBAAmB,CAAC;QACxB,gBAAW,GAC1B,qRAAqR,CAAC;QAEvQ,cAAS,GAAG;YAC3B,gBAAgB,EAAE,CAAC;iBACd,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CACL,kLAAkL,CACrL;SACR,CAAC;QAEc,kBAAa,GAAkB,SAAS,CAAC;QAIrD,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;YACvB,IAAI,CAAC,MAAM,EAAE,CAAC;QAClB,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,EAAE,CAAC,YAAY,EAAE,GAAG,EAAE;YAC1B,IAAI,CAAC,OAAO,EAAE,CAAC;QACnB,CAAC,CAAC,CAAC;IACP,CAAC;IAEe,QAAQ,CAAC,MAAc;QACnC,MAAM,sBAAsB,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACtD;;;WAGG;QACH,IAAI,sBAAsB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,oBAAoB,EAAE,CAAC;YAC/D,IAAI,CAAC,OAAO,EAAE,CAAC;QACnB,CAAC;QACD,OAAO,sBAAsB,CAAC;IAClC,CAAC;IAEkB,KAAK,CAAC,OAAO,CAAC,EAAE,gBAAgB,EAAmC;QAClF,IAAI,OAAO,gBAAgB,KAAK,QAAQ,EAAE,CAAC;YACvC,MAAM,IAAI,CAAC,OAAO,CAAC,6BAA6B,EAAE,CAAC;QACvD,CAAC;aAAM,CAAC;YACJ,MAAM,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,gBAAgB,EAAE,CAAC,CAAC;QAC9D,CAAC;QAED,OAAO;YACH,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,oCAAoC,EAAE,CAAC;SAC1E,CAAC;IACN,CAAC;CACJ"}
|
|
@@ -34,7 +34,7 @@ export declare class CreateIndexTool extends MongoDBToolBase {
|
|
|
34
34
|
path: z.ZodString;
|
|
35
35
|
numDimensions: z.ZodDefault<z.ZodNumber>;
|
|
36
36
|
similarity: z.ZodDefault<z.ZodEnum<["cosine", "euclidean", "dotProduct"]>>;
|
|
37
|
-
quantization: z.ZodDefault<z.
|
|
37
|
+
quantization: z.ZodDefault<z.ZodEnum<["none", "scalar", "binary"]>>;
|
|
38
38
|
}, "strict", z.ZodTypeAny, {
|
|
39
39
|
path: string;
|
|
40
40
|
type: "vector";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createIndex.d.ts","sourceRoot":"","sources":["../../../../../src/tools/mongodb/create/createIndex.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAmB,eAAe,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"createIndex.d.ts","sourceRoot":"","sources":["../../../../../src/tools/mongodb/create/createIndex.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAmB,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,eAAe,CAAC;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAI9C,qBAAa,eAAgB,SAAQ,eAAe;IAChD,OAAO,CAAC,2BAA2B,CAuDhC;IAEI,IAAI,SAAkB;IAC7B,SAAS,CAAC,WAAW,SAAsC;IAC3D,SAAS,CAAC,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAgBjB;IAEK,aAAa,EAAE,aAAa,CAAY;cAE/B,OAAO,CAAC,EACpB,QAAQ,EACR,UAAU,EACV,IAAI,EACJ,UAAU,EAAE,WAAW,GAC1B,EAAE,QAAQ,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC;CAmD/D"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import { DbOperationArgs, MongoDBToolBase } from "../mongodbTool.js";
|
|
3
|
+
import { quantizationEnum } from "../../../common/search/vectorSearchEmbeddingsManager.js";
|
|
4
|
+
import { similarityValues } from "../../../common/schemas.js";
|
|
3
5
|
export class CreateIndexTool extends MongoDBToolBase {
|
|
4
6
|
constructor() {
|
|
5
7
|
super(...arguments);
|
|
@@ -29,12 +31,10 @@ export class CreateIndexTool extends MongoDBToolBase {
|
|
|
29
31
|
.default(this.config.vectorSearchDimensions)
|
|
30
32
|
.describe("Number of vector dimensions that MongoDB Vector Search enforces at index-time and query-time"),
|
|
31
33
|
similarity: z
|
|
32
|
-
.enum(
|
|
34
|
+
.enum(similarityValues)
|
|
33
35
|
.default(this.config.vectorSearchSimilarityFunction)
|
|
34
36
|
.describe("Vector similarity function to use to search for top K-nearest neighbors. You can set this field only for vector-type fields."),
|
|
35
|
-
quantization:
|
|
36
|
-
.enum(["none", "scalar", "binary"])
|
|
37
|
-
.optional()
|
|
37
|
+
quantization: quantizationEnum
|
|
38
38
|
.default("none")
|
|
39
39
|
.describe("Type of automatic vector quantization for your vectors. Use this setting only if your embeddings are float or double vectors."),
|
|
40
40
|
})
|
|
@@ -58,9 +58,9 @@ export class CreateIndexTool extends MongoDBToolBase {
|
|
|
58
58
|
type: z.literal("classic"),
|
|
59
59
|
keys: z.object({}).catchall(z.custom()).describe("The index definition"),
|
|
60
60
|
}),
|
|
61
|
-
...(this.
|
|
61
|
+
...(this.isFeatureEnabled("search") ? [this.vectorSearchIndexDefinition] : []),
|
|
62
62
|
]))
|
|
63
|
-
.describe(
|
|
63
|
+
.describe(`The index definition. Use 'classic' for standard indexes${this.isFeatureEnabled("search") ? " and 'vectorSearch' for vector search indexes" : ""}.`),
|
|
64
64
|
};
|
|
65
65
|
this.operationType = "create";
|
|
66
66
|
}
|
|
@@ -83,22 +83,7 @@ export class CreateIndexTool extends MongoDBToolBase {
|
|
|
83
83
|
break;
|
|
84
84
|
case "vectorSearch":
|
|
85
85
|
{
|
|
86
|
-
|
|
87
|
-
if (!isVectorSearchSupported) {
|
|
88
|
-
// TODO: remove hacky casts once we merge the local dev tools
|
|
89
|
-
const isLocalAtlasAvailable = (this.server?.tools.filter((t) => t.category === "atlas-local")
|
|
90
|
-
.length ?? 0) > 0;
|
|
91
|
-
const CTA = isLocalAtlasAvailable ? "`atlas-local` tools" : "Atlas CLI";
|
|
92
|
-
return {
|
|
93
|
-
content: [
|
|
94
|
-
{
|
|
95
|
-
text: `The connected MongoDB deployment does not support vector search indexes. Either connect to a MongoDB Atlas cluster or use the ${CTA} to create and manage a local Atlas deployment.`,
|
|
96
|
-
type: "text",
|
|
97
|
-
},
|
|
98
|
-
],
|
|
99
|
-
isError: true,
|
|
100
|
-
};
|
|
101
|
-
}
|
|
86
|
+
await this.ensureSearchIsSupported();
|
|
102
87
|
indexes = await provider.createSearchIndexes(database, collection, [
|
|
103
88
|
{
|
|
104
89
|
name,
|
|
@@ -110,6 +95,8 @@ export class CreateIndexTool extends MongoDBToolBase {
|
|
|
110
95
|
]);
|
|
111
96
|
responseClarification =
|
|
112
97
|
" Since this is a vector search index, it may take a while for the index to build. Use the `list-indexes` tool to check the index status.";
|
|
98
|
+
// clean up the embeddings cache so it considers the new index
|
|
99
|
+
this.session.vectorSearchEmbeddingsManager.cleanupEmbeddingsForNamespace({ database, collection });
|
|
113
100
|
}
|
|
114
101
|
break;
|
|
115
102
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createIndex.js","sourceRoot":"","sources":["../../../../../src/tools/mongodb/create/createIndex.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"createIndex.js","sourceRoot":"","sources":["../../../../../src/tools/mongodb/create/createIndex.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,16 +1,36 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import type { CallToolResult } from "@modelcontextprotocol/sdk/types.js";
|
|
3
3
|
import { MongoDBToolBase } from "../mongodbTool.js";
|
|
4
|
-
import type
|
|
4
|
+
import { type ToolArgs, type OperationType } from "../../tool.js";
|
|
5
5
|
export declare class InsertManyTool extends MongoDBToolBase {
|
|
6
6
|
name: string;
|
|
7
7
|
protected description: string;
|
|
8
8
|
protected argsShape: {
|
|
9
|
+
embeddingParameters?: z.ZodOptional<z.ZodObject<{
|
|
10
|
+
outputDimension: z.ZodOptional<z.ZodEffects<z.ZodDefault<z.ZodUnion<[z.ZodLiteral<"256">, z.ZodLiteral<"512">, z.ZodLiteral<"1024">, z.ZodLiteral<"2048">, z.ZodLiteral<"4096">]>>, number, "256" | "512" | "1024" | "2048" | "4096" | undefined>>;
|
|
11
|
+
outputDtype: z.ZodDefault<z.ZodOptional<z.ZodEnum<["float", "int8", "uint8", "binary", "ubinary"]>>>;
|
|
12
|
+
} & {
|
|
13
|
+
model: z.ZodDefault<z.ZodEnum<["voyage-3-large", "voyage-3.5", "voyage-3.5-lite", "voyage-code-3"]>>;
|
|
14
|
+
} & {
|
|
15
|
+
input: z.ZodArray<z.ZodObject<{}, "passthrough", z.ZodTypeAny, z.objectOutputType<{}, z.ZodTypeAny, "passthrough">, z.objectInputType<{}, z.ZodTypeAny, "passthrough">>, "many">;
|
|
16
|
+
}, "strip", z.ZodTypeAny, {
|
|
17
|
+
input: z.objectOutputType<{}, z.ZodTypeAny, "passthrough">[];
|
|
18
|
+
outputDtype: "binary" | "float" | "int8" | "uint8" | "ubinary";
|
|
19
|
+
model: "voyage-3-large" | "voyage-3.5" | "voyage-3.5-lite" | "voyage-code-3";
|
|
20
|
+
outputDimension?: number | undefined;
|
|
21
|
+
}, {
|
|
22
|
+
input: z.objectInputType<{}, z.ZodTypeAny, "passthrough">[];
|
|
23
|
+
outputDimension?: "256" | "512" | "1024" | "2048" | "4096" | undefined;
|
|
24
|
+
outputDtype?: "binary" | "float" | "int8" | "uint8" | "ubinary" | undefined;
|
|
25
|
+
model?: "voyage-3-large" | "voyage-3.5" | "voyage-3.5-lite" | "voyage-code-3" | undefined;
|
|
26
|
+
}>> | undefined;
|
|
9
27
|
documents: z.ZodArray<z.AnyZodObject, "many">;
|
|
10
28
|
database: z.ZodString;
|
|
11
29
|
collection: z.ZodString;
|
|
12
30
|
};
|
|
13
31
|
operationType: OperationType;
|
|
14
|
-
protected execute({ database, collection, documents, }: ToolArgs<typeof this.argsShape>): Promise<CallToolResult>;
|
|
32
|
+
protected execute({ database, collection, documents, embeddingParameters: providedEmbeddingParameters, }: ToolArgs<typeof this.argsShape>): Promise<CallToolResult>;
|
|
33
|
+
private replaceRawValuesWithEmbeddingsIfNecessary;
|
|
34
|
+
private deleteFieldPath;
|
|
15
35
|
}
|
|
16
36
|
//# sourceMappingURL=insertMany.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"insertMany.d.ts","sourceRoot":"","sources":["../../../../../src/tools/mongodb/create/insertMany.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAmB,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"insertMany.d.ts","sourceRoot":"","sources":["../../../../../src/tools/mongodb/create/insertMany.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAmB,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,aAAa,EAAuB,MAAM,eAAe,CAAC;AAcvF,qBAAa,cAAe,SAAQ,eAAe;IACxC,IAAI,SAAiB;IAC5B,SAAS,CAAC,WAAW,SAA4D;IACjF,SAAS,CAAC,SAAS;;;;;;;;;;;;;;;;;;;;;;MAgBjB;IACK,aAAa,EAAE,aAAa,CAAY;cAE/B,OAAO,CAAC,EACpB,QAAQ,EACR,UAAU,EACV,SAAS,EACT,mBAAmB,EAAE,2BAA2B,GACnD,EAAE,QAAQ,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC;YA+B9C,yCAAyC;IAgEvD,OAAO,CAAC,eAAe;CAe1B"}
|
|
@@ -1,6 +1,14 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import { DbOperationArgs, MongoDBToolBase } from "../mongodbTool.js";
|
|
3
|
+
import { formatUntrustedData } from "../../tool.js";
|
|
3
4
|
import { zEJSON } from "../../args.js";
|
|
5
|
+
import { zSupportedEmbeddingParameters } from "../mongodbSchemas.js";
|
|
6
|
+
import { ErrorCodes, MongoDBError } from "../../../common/errors.js";
|
|
7
|
+
const zSupportedEmbeddingParametersWithInput = zSupportedEmbeddingParameters.extend({
|
|
8
|
+
input: z
|
|
9
|
+
.array(z.object({}).passthrough())
|
|
10
|
+
.describe("Array of objects with vector search index fields as keys (in dot notation) and the raw text values to generate embeddings for as values. The index of each object corresponds to the index of the document in the documents array."),
|
|
11
|
+
});
|
|
4
12
|
export class InsertManyTool extends MongoDBToolBase {
|
|
5
13
|
constructor() {
|
|
6
14
|
super(...arguments);
|
|
@@ -10,25 +18,93 @@ export class InsertManyTool extends MongoDBToolBase {
|
|
|
10
18
|
...DbOperationArgs,
|
|
11
19
|
documents: z
|
|
12
20
|
.array(zEJSON().describe("An individual MongoDB document"))
|
|
13
|
-
.describe("The array of documents to insert, matching the syntax of the document argument of db.collection.insertMany()"),
|
|
21
|
+
.describe("The array of documents to insert, matching the syntax of the document argument of db.collection.insertMany()."),
|
|
22
|
+
...(this.isFeatureEnabled("search")
|
|
23
|
+
? {
|
|
24
|
+
embeddingParameters: zSupportedEmbeddingParametersWithInput
|
|
25
|
+
.optional()
|
|
26
|
+
.describe("The embedding model and its parameters to use to generate embeddings for fields with vector search indexes. Note to LLM: If unsure which embedding model to use, ask the user before providing one."),
|
|
27
|
+
}
|
|
28
|
+
: {}),
|
|
14
29
|
};
|
|
15
30
|
this.operationType = "create";
|
|
16
31
|
}
|
|
17
|
-
async execute({ database, collection, documents, }) {
|
|
32
|
+
async execute({ database, collection, documents, embeddingParameters: providedEmbeddingParameters, }) {
|
|
18
33
|
const provider = await this.ensureConnected();
|
|
34
|
+
const embeddingParameters = this.isFeatureEnabled("search")
|
|
35
|
+
? providedEmbeddingParameters
|
|
36
|
+
: undefined;
|
|
37
|
+
// Process documents to replace raw string values with generated embeddings
|
|
38
|
+
documents = await this.replaceRawValuesWithEmbeddingsIfNecessary({
|
|
39
|
+
database,
|
|
40
|
+
collection,
|
|
41
|
+
documents,
|
|
42
|
+
embeddingParameters,
|
|
43
|
+
});
|
|
44
|
+
await this.session.vectorSearchEmbeddingsManager.assertFieldsHaveCorrectEmbeddings({ database, collection }, documents);
|
|
19
45
|
const result = await provider.insertMany(database, collection, documents);
|
|
46
|
+
const content = formatUntrustedData("Documents were inserted successfully.", `Inserted \`${result.insertedCount}\` document(s) into ${database}.${collection}.`, `Inserted IDs: ${Object.values(result.insertedIds).join(", ")}`);
|
|
20
47
|
return {
|
|
21
|
-
content
|
|
22
|
-
{
|
|
23
|
-
text: `Inserted \`${result.insertedCount}\` document(s) into collection "${collection}"`,
|
|
24
|
-
type: "text",
|
|
25
|
-
},
|
|
26
|
-
{
|
|
27
|
-
text: `Inserted IDs: ${Object.values(result.insertedIds).join(", ")}`,
|
|
28
|
-
type: "text",
|
|
29
|
-
},
|
|
30
|
-
],
|
|
48
|
+
content,
|
|
31
49
|
};
|
|
32
50
|
}
|
|
51
|
+
async replaceRawValuesWithEmbeddingsIfNecessary({ database, collection, documents, embeddingParameters, }) {
|
|
52
|
+
// If no embedding parameters or no input specified, return documents as-is
|
|
53
|
+
if (!embeddingParameters?.input || embeddingParameters.input.length === 0) {
|
|
54
|
+
return documents;
|
|
55
|
+
}
|
|
56
|
+
// Get vector search indexes for the collection
|
|
57
|
+
const vectorIndexes = await this.session.vectorSearchEmbeddingsManager.embeddingsForNamespace({
|
|
58
|
+
database,
|
|
59
|
+
collection,
|
|
60
|
+
});
|
|
61
|
+
// Ensure for inputted fields, the vector search index exists.
|
|
62
|
+
for (const input of embeddingParameters.input) {
|
|
63
|
+
for (const fieldPath of Object.keys(input)) {
|
|
64
|
+
if (!vectorIndexes.some((index) => index.path === fieldPath)) {
|
|
65
|
+
throw new MongoDBError(ErrorCodes.AtlasVectorSearchInvalidQuery, `Field '${fieldPath}' does not have a vector search index in collection ${database}.${collection}. Only fields with vector search indexes can have embeddings generated.`);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
// We make one call to generate embeddings for all documents at once to avoid making too many API calls.
|
|
70
|
+
const flattenedEmbeddingsInput = embeddingParameters.input.flatMap((documentInput, index) => Object.entries(documentInput).map(([fieldPath, rawTextValue]) => ({
|
|
71
|
+
fieldPath,
|
|
72
|
+
rawTextValue,
|
|
73
|
+
documentIndex: index,
|
|
74
|
+
})));
|
|
75
|
+
const generatedEmbeddings = await this.session.vectorSearchEmbeddingsManager.generateEmbeddings({
|
|
76
|
+
rawValues: flattenedEmbeddingsInput.map(({ rawTextValue }) => rawTextValue),
|
|
77
|
+
embeddingParameters,
|
|
78
|
+
inputType: "document",
|
|
79
|
+
});
|
|
80
|
+
const processedDocuments = [...documents];
|
|
81
|
+
for (const [index, { fieldPath, documentIndex }] of flattenedEmbeddingsInput.entries()) {
|
|
82
|
+
if (!processedDocuments[documentIndex]) {
|
|
83
|
+
throw new MongoDBError(ErrorCodes.Unexpected, `Document at index ${documentIndex} does not exist.`);
|
|
84
|
+
}
|
|
85
|
+
// Ensure no nested fields are present in the field path.
|
|
86
|
+
this.deleteFieldPath(processedDocuments[documentIndex], fieldPath);
|
|
87
|
+
processedDocuments[documentIndex][fieldPath] = generatedEmbeddings[index];
|
|
88
|
+
}
|
|
89
|
+
return processedDocuments;
|
|
90
|
+
}
|
|
91
|
+
// Delete a specified field path from a document using dot notation.
|
|
92
|
+
deleteFieldPath(document, fieldPath) {
|
|
93
|
+
const parts = fieldPath.split(".");
|
|
94
|
+
let current = document;
|
|
95
|
+
for (let i = 0; i < parts.length; i++) {
|
|
96
|
+
const part = parts[i];
|
|
97
|
+
const key = part;
|
|
98
|
+
if (!current[key]) {
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
101
|
+
else if (i === parts.length - 1) {
|
|
102
|
+
delete current[key];
|
|
103
|
+
}
|
|
104
|
+
else {
|
|
105
|
+
current = current[key];
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
33
109
|
}
|
|
34
110
|
//# sourceMappingURL=insertMany.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"insertMany.js","sourceRoot":"","sources":["../../../../../src/tools/mongodb/create/insertMany.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"insertMany.js","sourceRoot":"","sources":["../../../../../src/tools/mongodb/create/insertMany.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,11 +7,14 @@ export declare class DropIndexTool extends MongoDBToolBase {
|
|
|
7
7
|
protected description: string;
|
|
8
8
|
protected argsShape: {
|
|
9
9
|
indexName: z.ZodString;
|
|
10
|
+
type: z.ZodDefault<z.ZodLiteral<"classic">> | z.ZodEnum<["classic", "search"]>;
|
|
10
11
|
database: z.ZodString;
|
|
11
12
|
collection: z.ZodString;
|
|
12
13
|
};
|
|
13
14
|
operationType: OperationType;
|
|
14
|
-
protected execute(
|
|
15
|
-
|
|
15
|
+
protected execute(toolArgs: ToolArgs<typeof this.argsShape>): Promise<CallToolResult>;
|
|
16
|
+
private dropClassicIndex;
|
|
17
|
+
private dropSearchIndex;
|
|
18
|
+
protected getConfirmationMessage({ database, collection, indexName, type, }: ToolArgs<typeof this.argsShape>): string;
|
|
16
19
|
}
|
|
17
20
|
//# sourceMappingURL=dropIndex.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dropIndex.d.ts","sourceRoot":"","sources":["../../../../../src/tools/mongodb/delete/dropIndex.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAC;AACpB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;
|
|
1
|
+
{"version":3,"file":"dropIndex.d.ts","sourceRoot":"","sources":["../../../../../src/tools/mongodb/delete/dropIndex.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAC;AACpB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAEzE,OAAO,EAAmB,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,aAAa,EAAuB,MAAM,eAAe,CAAC;AAEvF,qBAAa,aAAc,SAAQ,eAAe;IACvC,IAAI,SAAgB;IAC3B,SAAS,CAAC,WAAW,SAA6D;IAClF,SAAS,CAAC,SAAS;;;;;MAajB;IACK,aAAa,EAAE,aAAa,CAAY;cAE/B,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC;YAU7E,gBAAgB;YAqBhB,eAAe;IA4B7B,SAAS,CAAC,sBAAsB,CAAC,EAC7B,QAAQ,EACR,UAAU,EACV,SAAS,EACT,IAAI,GACP,EAAE,QAAQ,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,MAAM;CAO9C"}
|
|
@@ -9,11 +9,27 @@ export class DropIndexTool extends MongoDBToolBase {
|
|
|
9
9
|
this.argsShape = {
|
|
10
10
|
...DbOperationArgs,
|
|
11
11
|
indexName: z.string().nonempty().describe("The name of the index to be dropped."),
|
|
12
|
+
type: this.isFeatureEnabled("search")
|
|
13
|
+
? z
|
|
14
|
+
.enum(["classic", "search"])
|
|
15
|
+
.describe("The type of index to be deleted. Use 'classic' for standard indexes and 'search' for atlas search and vector search indexes.")
|
|
16
|
+
: z
|
|
17
|
+
.literal("classic")
|
|
18
|
+
.default("classic")
|
|
19
|
+
.describe("The type of index to be deleted. Is always set to 'classic'."),
|
|
12
20
|
};
|
|
13
21
|
this.operationType = "delete";
|
|
14
22
|
}
|
|
15
|
-
async execute(
|
|
23
|
+
async execute(toolArgs) {
|
|
16
24
|
const provider = await this.ensureConnected();
|
|
25
|
+
switch (toolArgs.type) {
|
|
26
|
+
case "classic":
|
|
27
|
+
return this.dropClassicIndex(provider, toolArgs);
|
|
28
|
+
case "search":
|
|
29
|
+
return this.dropSearchIndex(provider, toolArgs);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
async dropClassicIndex(provider, { database, collection, indexName }) {
|
|
17
33
|
const result = await provider.runCommand(database, {
|
|
18
34
|
dropIndexes: collection,
|
|
19
35
|
index: indexName,
|
|
@@ -26,8 +42,25 @@ export class DropIndexTool extends MongoDBToolBase {
|
|
|
26
42
|
isError: result.ok ? undefined : true,
|
|
27
43
|
};
|
|
28
44
|
}
|
|
29
|
-
|
|
30
|
-
|
|
45
|
+
async dropSearchIndex(provider, { database, collection, indexName }) {
|
|
46
|
+
await this.ensureSearchIsSupported();
|
|
47
|
+
const indexes = await provider.getSearchIndexes(database, collection, indexName);
|
|
48
|
+
if (indexes.length === 0) {
|
|
49
|
+
return {
|
|
50
|
+
content: formatUntrustedData("Index does not exist in the provided namespace.", JSON.stringify({ indexName, namespace: `${database}.${collection}` })),
|
|
51
|
+
isError: true,
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
await provider.dropSearchIndex(database, collection, indexName);
|
|
55
|
+
return {
|
|
56
|
+
content: formatUntrustedData("Successfully dropped the index from the provided namespace.", JSON.stringify({
|
|
57
|
+
indexName,
|
|
58
|
+
namespace: `${database}.${collection}`,
|
|
59
|
+
})),
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
getConfirmationMessage({ database, collection, indexName, type, }) {
|
|
63
|
+
return (`You are about to drop the ${type === "search" ? "search index" : "index"} named \`${indexName}\` from the \`${database}.${collection}\` namespace:\n\n` +
|
|
31
64
|
"This operation will permanently remove the index and might affect the performance of queries relying on this index.\n\n" +
|
|
32
65
|
"**Do you confirm the execution of the action?**");
|
|
33
66
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dropIndex.js","sourceRoot":"","sources":["../../../../../src/tools/mongodb/delete/dropIndex.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"dropIndex.js","sourceRoot":"","sources":["../../../../../src/tools/mongodb/delete/dropIndex.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,13 @@
|
|
|
1
1
|
import type { CallToolResult } from "@modelcontextprotocol/sdk/types.js";
|
|
2
2
|
import { DbOperationArgs, MongoDBToolBase } from "../mongodbTool.js";
|
|
3
3
|
import type { ToolArgs, OperationType } from "../../tool.js";
|
|
4
|
+
type SearchIndexStatus = {
|
|
5
|
+
name: string;
|
|
6
|
+
type: string;
|
|
7
|
+
status: string;
|
|
8
|
+
queryable: boolean;
|
|
9
|
+
latestDefinition: Document;
|
|
10
|
+
};
|
|
4
11
|
export declare class CollectionIndexesTool extends MongoDBToolBase {
|
|
5
12
|
name: string;
|
|
6
13
|
protected description: string;
|
|
@@ -11,5 +18,13 @@ export declare class CollectionIndexesTool extends MongoDBToolBase {
|
|
|
11
18
|
operationType: OperationType;
|
|
12
19
|
protected execute({ database, collection }: ToolArgs<typeof DbOperationArgs>): Promise<CallToolResult>;
|
|
13
20
|
protected handleError(error: unknown, args: ToolArgs<typeof this.argsShape>): Promise<CallToolResult> | CallToolResult;
|
|
21
|
+
/**
|
|
22
|
+
* Atlas Search index status contains a lot of information that is not relevant for the agent at this stage.
|
|
23
|
+
* Like for example, the status on each of the dedicated nodes. We only care about the main status, if it's
|
|
24
|
+
* queryable and the index name. We are also picking the index definition as it can be used by the agent to
|
|
25
|
+
* understand which fields are available for searching.
|
|
26
|
+
**/
|
|
27
|
+
protected extractSearchIndexDetails(indexes: Record<string, unknown>[]): SearchIndexStatus[];
|
|
14
28
|
}
|
|
29
|
+
export {};
|
|
15
30
|
//# sourceMappingURL=collectionIndexes.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collectionIndexes.d.ts","sourceRoot":"","sources":["../../../../../src/tools/mongodb/metadata/collectionIndexes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAG7D,qBAAa,qBAAsB,SAAQ,eAAe;IAC/C,IAAI,SAAwB;IACnC,SAAS,CAAC,WAAW,SAA2C;IAChE,SAAS,CAAC,SAAS;;;MAAmB;IAC/B,aAAa,EAAE,aAAa,CAAc;cAEjC,OAAO,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,QAAQ,CAAC,OAAO,eAAe,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"collectionIndexes.d.ts","sourceRoot":"","sources":["../../../../../src/tools/mongodb/metadata/collectionIndexes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAG7D,KAAK,iBAAiB,GAAG;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;IACnB,gBAAgB,EAAE,QAAQ,CAAC;CAC9B,CAAC;AAOF,qBAAa,qBAAsB,SAAQ,eAAe;IAC/C,IAAI,SAAwB;IACnC,SAAS,CAAC,WAAW,SAA2C;IAChE,SAAS,CAAC,SAAS;;;MAAmB;IAC/B,aAAa,EAAE,aAAa,CAAc;cAEjC,OAAO,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,QAAQ,CAAC,OAAO,eAAe,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC;IA8B5G,SAAS,CAAC,WAAW,CACjB,KAAK,EAAE,OAAO,EACd,IAAI,EAAE,QAAQ,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,GACtC,OAAO,CAAC,cAAc,CAAC,GAAG,cAAc;IAgB3C;;;;;QAKI;IACJ,SAAS,CAAC,yBAAyB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,iBAAiB,EAAE;CAS/F"}
|
|
@@ -11,12 +11,22 @@ export class CollectionIndexesTool extends MongoDBToolBase {
|
|
|
11
11
|
async execute({ database, collection }) {
|
|
12
12
|
const provider = await this.ensureConnected();
|
|
13
13
|
const indexes = await provider.getIndexes(database, collection);
|
|
14
|
+
const indexDefinitions = indexes.map((index) => ({
|
|
15
|
+
name: index.name,
|
|
16
|
+
key: index.key,
|
|
17
|
+
}));
|
|
18
|
+
const searchIndexDefinitions = [];
|
|
19
|
+
if (this.isFeatureEnabled("search") && (await this.session.isSearchSupported())) {
|
|
20
|
+
const searchIndexes = await provider.getSearchIndexes(database, collection);
|
|
21
|
+
searchIndexDefinitions.push(...this.extractSearchIndexDetails(searchIndexes));
|
|
22
|
+
}
|
|
14
23
|
return {
|
|
15
|
-
content:
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
.
|
|
19
|
-
|
|
24
|
+
content: [
|
|
25
|
+
...formatUntrustedData(`Found ${indexDefinitions.length} indexes in the collection "${collection}":`, ...indexDefinitions.map((i) => JSON.stringify(i))),
|
|
26
|
+
...(searchIndexDefinitions.length > 0
|
|
27
|
+
? formatUntrustedData(`Found ${searchIndexDefinitions.length} search and vector search indexes in the collection "${collection}":`, ...searchIndexDefinitions.map((i) => JSON.stringify(i)))
|
|
28
|
+
: []),
|
|
29
|
+
],
|
|
20
30
|
};
|
|
21
31
|
}
|
|
22
32
|
handleError(error, args) {
|
|
@@ -33,5 +43,20 @@ export class CollectionIndexesTool extends MongoDBToolBase {
|
|
|
33
43
|
}
|
|
34
44
|
return super.handleError(error, args);
|
|
35
45
|
}
|
|
46
|
+
/**
|
|
47
|
+
* Atlas Search index status contains a lot of information that is not relevant for the agent at this stage.
|
|
48
|
+
* Like for example, the status on each of the dedicated nodes. We only care about the main status, if it's
|
|
49
|
+
* queryable and the index name. We are also picking the index definition as it can be used by the agent to
|
|
50
|
+
* understand which fields are available for searching.
|
|
51
|
+
**/
|
|
52
|
+
extractSearchIndexDetails(indexes) {
|
|
53
|
+
return indexes.map((index) => ({
|
|
54
|
+
name: (index["name"] ?? "default"),
|
|
55
|
+
type: (index["type"] ?? "UNKNOWN"),
|
|
56
|
+
status: (index["status"] ?? "UNKNOWN"),
|
|
57
|
+
queryable: (index["queryable"] ?? false),
|
|
58
|
+
latestDefinition: index["latestDefinition"],
|
|
59
|
+
}));
|
|
60
|
+
}
|
|
36
61
|
}
|
|
37
62
|
//# sourceMappingURL=collectionIndexes.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collectionIndexes.js","sourceRoot":"","sources":["../../../../../src/tools/mongodb/metadata/collectionIndexes.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAErE,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"collectionIndexes.js","sourceRoot":"","sources":["../../../../../src/tools/mongodb/metadata/collectionIndexes.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,7 +18,7 @@ export class CollectionSchemaTool extends MongoDBToolBase {
|
|
|
18
18
|
.number()
|
|
19
19
|
.optional()
|
|
20
20
|
.default(ONE_MB)
|
|
21
|
-
.describe(`The maximum number of bytes to return in the response. This value is capped by the server
|
|
21
|
+
.describe(`The maximum number of bytes to return in the response. This value is capped by the server's configured maxBytesPerQuery and cannot be exceeded.`),
|
|
22
22
|
};
|
|
23
23
|
this.operationType = "metadata";
|
|
24
24
|
}
|