mongodb-mcp-server 1.15.0-alpha.1 → 1.15.0-alpha.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/dist/cjs/common/connectionErrorHandler.d.ts +4 -3
- package/dist/cjs/common/connectionErrorHandler.d.ts.map +1 -1
- package/dist/cjs/common/connectionErrorHandler.js +15 -7
- package/dist/cjs/common/connectionErrorHandler.js.map +1 -1
- package/dist/cjs/common/connectionRegistry.d.ts +9 -52
- package/dist/cjs/common/connectionRegistry.d.ts.map +1 -1
- package/dist/cjs/common/connectionRegistry.js +2 -204
- package/dist/cjs/common/connectionRegistry.js.map +1 -1
- package/dist/cjs/common/connectionStore.d.ts +59 -0
- package/dist/cjs/common/connectionStore.d.ts.map +1 -0
- package/dist/cjs/common/connectionStore.js +220 -0
- package/dist/cjs/common/connectionStore.js.map +1 -0
- package/dist/cjs/common/connectionSummary.d.ts +20 -11
- package/dist/cjs/common/connectionSummary.d.ts.map +1 -1
- package/dist/cjs/common/connectionSummary.js +14 -2
- package/dist/cjs/common/connectionSummary.js.map +1 -1
- package/dist/cjs/common/packageInfo.js +1 -1
- package/dist/cjs/common/session.d.ts +2 -10
- package/dist/cjs/common/session.d.ts.map +1 -1
- package/dist/cjs/common/session.js +5 -8
- package/dist/cjs/common/session.js.map +1 -1
- package/dist/cjs/lib.d.ts +2 -1
- package/dist/cjs/lib.d.ts.map +1 -1
- package/dist/cjs/lib.js +3 -2
- package/dist/cjs/lib.js.map +1 -1
- package/dist/cjs/resources/common/config.d.ts +1 -0
- package/dist/cjs/resources/common/config.d.ts.map +1 -1
- package/dist/cjs/resources/common/config.js +10 -1
- package/dist/cjs/resources/common/config.js.map +1 -1
- package/dist/cjs/tools/atlas/connect/connectCluster.d.ts.map +1 -1
- package/dist/cjs/tools/atlas/connect/connectCluster.js +49 -33
- package/dist/cjs/tools/atlas/connect/connectCluster.js.map +1 -1
- package/dist/cjs/tools/atlas/streams/discover.d.ts +1 -1
- package/dist/cjs/tools/atlas/update/pauseResumeCluster.d.ts +2 -2
- package/dist/cjs/tools/atlas/update/pauseResumeCluster.d.ts.map +1 -1
- package/dist/cjs/tools/atlas/update/pauseResumeCluster.js +9 -7
- package/dist/cjs/tools/atlas/update/pauseResumeCluster.js.map +1 -1
- package/dist/cjs/tools/atlas/update/upgradeCluster.d.ts.map +1 -1
- package/dist/cjs/tools/atlas/update/upgradeCluster.js +2 -12
- package/dist/cjs/tools/atlas/update/upgradeCluster.js.map +1 -1
- package/dist/cjs/tools/mongodb/connect/connect.d.ts.map +1 -1
- package/dist/cjs/tools/mongodb/connect/connect.js +6 -4
- package/dist/cjs/tools/mongodb/connect/connect.js.map +1 -1
- package/dist/cjs/tools/mongodb/connect/disconnect.d.ts.map +1 -1
- package/dist/cjs/tools/mongodb/connect/disconnect.js +3 -1
- package/dist/cjs/tools/mongodb/connect/disconnect.js.map +1 -1
- package/dist/cjs/tools/mongodb/connect/listConnections.d.ts.map +1 -1
- package/dist/cjs/tools/mongodb/connect/listConnections.js +8 -24
- package/dist/cjs/tools/mongodb/connect/listConnections.js.map +1 -1
- 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 +2 -3
- 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 +4 -5
- package/dist/cjs/tools/mongodb/create/createIndex.js.map +1 -1
- package/dist/cjs/tools/mongodb/create/insertMany.d.ts +1 -1
- package/dist/cjs/tools/mongodb/create/insertMany.d.ts.map +1 -1
- package/dist/cjs/tools/mongodb/create/insertMany.js +2 -3
- 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 +2 -3
- 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 +2 -3
- 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 +2 -3
- package/dist/cjs/tools/mongodb/delete/dropDatabase.js.map +1 -1
- package/dist/cjs/tools/mongodb/delete/dropIndex.d.ts.map +1 -1
- package/dist/cjs/tools/mongodb/delete/dropIndex.js +3 -4
- 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 +3 -4
- 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 -3
- 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 +2 -3
- 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 +2 -3
- package/dist/cjs/tools/mongodb/metadata/dbStats.js.map +1 -1
- package/dist/cjs/tools/mongodb/metadata/explain.d.ts +1 -1
- package/dist/cjs/tools/mongodb/metadata/explain.d.ts.map +1 -1
- package/dist/cjs/tools/mongodb/metadata/explain.js +2 -3
- 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 +2 -3
- 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 +2 -2
- 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 +2 -3
- package/dist/cjs/tools/mongodb/metadata/logs.js.map +1 -1
- package/dist/cjs/tools/mongodb/mongodbTool.d.ts +5 -5
- package/dist/cjs/tools/mongodb/mongodbTool.d.ts.map +1 -1
- package/dist/cjs/tools/mongodb/mongodbTool.js +24 -14
- package/dist/cjs/tools/mongodb/mongodbTool.js.map +1 -1
- package/dist/cjs/tools/mongodb/read/aggregate.d.ts +1 -1
- package/dist/cjs/tools/mongodb/read/aggregate.d.ts.map +1 -1
- package/dist/cjs/tools/mongodb/read/aggregate.js +8 -11
- package/dist/cjs/tools/mongodb/read/aggregate.js.map +1 -1
- package/dist/cjs/tools/mongodb/read/aggregateDB.d.ts +1 -1
- package/dist/cjs/tools/mongodb/read/aggregateDB.d.ts.map +1 -1
- package/dist/cjs/tools/mongodb/read/aggregateDB.js +2 -3
- package/dist/cjs/tools/mongodb/read/aggregateDB.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 +2 -3
- package/dist/cjs/tools/mongodb/read/count.js.map +1 -1
- package/dist/cjs/tools/mongodb/read/export.d.ts +1 -1
- package/dist/cjs/tools/mongodb/read/export.d.ts.map +1 -1
- package/dist/cjs/tools/mongodb/read/export.js +2 -3
- 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 -3
- package/dist/cjs/tools/mongodb/read/find.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 +2 -3
- 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 +2 -3
- package/dist/cjs/tools/mongodb/update/updateMany.js.map +1 -1
- package/dist/cjs/tools/tool.d.ts +3 -0
- package/dist/cjs/tools/tool.d.ts.map +1 -1
- package/dist/cjs/tools/tool.js.map +1 -1
- package/dist/cjs/transports/base.d.ts.map +1 -1
- package/dist/cjs/transports/base.js +10 -12
- package/dist/cjs/transports/base.js.map +1 -1
- package/dist/cjs/web.d.ts +2 -1
- package/dist/cjs/web.d.ts.map +1 -1
- package/dist/cjs/web.js +3 -2
- package/dist/cjs/web.js.map +1 -1
- package/dist/esm/common/connectionErrorHandler.d.ts +4 -3
- package/dist/esm/common/connectionErrorHandler.d.ts.map +1 -1
- package/dist/esm/common/connectionErrorHandler.js +15 -7
- package/dist/esm/common/connectionErrorHandler.js.map +1 -1
- package/dist/esm/common/connectionRegistry.d.ts +9 -52
- package/dist/esm/common/connectionRegistry.d.ts.map +1 -1
- package/dist/esm/common/connectionRegistry.js +1 -203
- package/dist/esm/common/connectionRegistry.js.map +1 -1
- package/dist/esm/common/connectionStore.d.ts +59 -0
- package/dist/esm/common/connectionStore.d.ts.map +1 -0
- package/dist/esm/common/connectionStore.js +216 -0
- package/dist/esm/common/connectionStore.js.map +1 -0
- package/dist/esm/common/connectionSummary.d.ts +20 -11
- package/dist/esm/common/connectionSummary.d.ts.map +1 -1
- package/dist/esm/common/connectionSummary.js +13 -2
- package/dist/esm/common/connectionSummary.js.map +1 -1
- package/dist/esm/common/packageInfo.js +1 -1
- package/dist/esm/common/session.d.ts +2 -10
- package/dist/esm/common/session.d.ts.map +1 -1
- package/dist/esm/common/session.js +5 -8
- package/dist/esm/common/session.js.map +1 -1
- package/dist/esm/lib.d.ts +2 -1
- package/dist/esm/lib.d.ts.map +1 -1
- package/dist/esm/lib.js +2 -1
- package/dist/esm/lib.js.map +1 -1
- package/dist/esm/resources/common/config.d.ts +1 -0
- package/dist/esm/resources/common/config.d.ts.map +1 -1
- package/dist/esm/resources/common/config.js +10 -1
- package/dist/esm/resources/common/config.js.map +1 -1
- package/dist/esm/tools/atlas/connect/connectCluster.d.ts.map +1 -1
- package/dist/esm/tools/atlas/connect/connectCluster.js +49 -33
- package/dist/esm/tools/atlas/connect/connectCluster.js.map +1 -1
- package/dist/esm/tools/atlas/streams/discover.d.ts +1 -1
- package/dist/esm/tools/atlas/update/pauseResumeCluster.d.ts +2 -2
- package/dist/esm/tools/atlas/update/pauseResumeCluster.d.ts.map +1 -1
- package/dist/esm/tools/atlas/update/pauseResumeCluster.js +9 -7
- package/dist/esm/tools/atlas/update/pauseResumeCluster.js.map +1 -1
- package/dist/esm/tools/atlas/update/upgradeCluster.d.ts.map +1 -1
- package/dist/esm/tools/atlas/update/upgradeCluster.js +2 -12
- package/dist/esm/tools/atlas/update/upgradeCluster.js.map +1 -1
- package/dist/esm/tools/mongodb/connect/connect.d.ts.map +1 -1
- package/dist/esm/tools/mongodb/connect/connect.js +6 -4
- package/dist/esm/tools/mongodb/connect/connect.js.map +1 -1
- package/dist/esm/tools/mongodb/connect/disconnect.d.ts.map +1 -1
- package/dist/esm/tools/mongodb/connect/disconnect.js +3 -1
- package/dist/esm/tools/mongodb/connect/disconnect.js.map +1 -1
- package/dist/esm/tools/mongodb/connect/listConnections.d.ts.map +1 -1
- package/dist/esm/tools/mongodb/connect/listConnections.js +9 -25
- package/dist/esm/tools/mongodb/connect/listConnections.js.map +1 -1
- 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 +2 -3
- 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 +4 -5
- package/dist/esm/tools/mongodb/create/createIndex.js.map +1 -1
- package/dist/esm/tools/mongodb/create/insertMany.d.ts +1 -1
- package/dist/esm/tools/mongodb/create/insertMany.d.ts.map +1 -1
- package/dist/esm/tools/mongodb/create/insertMany.js +2 -3
- 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 +2 -3
- 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 +2 -3
- 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 +2 -3
- package/dist/esm/tools/mongodb/delete/dropDatabase.js.map +1 -1
- package/dist/esm/tools/mongodb/delete/dropIndex.d.ts.map +1 -1
- package/dist/esm/tools/mongodb/delete/dropIndex.js +3 -4
- 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 +3 -4
- 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 -3
- 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 +2 -3
- 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 +2 -3
- package/dist/esm/tools/mongodb/metadata/dbStats.js.map +1 -1
- package/dist/esm/tools/mongodb/metadata/explain.d.ts +1 -1
- package/dist/esm/tools/mongodb/metadata/explain.d.ts.map +1 -1
- package/dist/esm/tools/mongodb/metadata/explain.js +2 -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 +2 -3
- 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 +2 -2
- 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 +2 -3
- package/dist/esm/tools/mongodb/metadata/logs.js.map +1 -1
- package/dist/esm/tools/mongodb/mongodbTool.d.ts +5 -5
- package/dist/esm/tools/mongodb/mongodbTool.d.ts.map +1 -1
- package/dist/esm/tools/mongodb/mongodbTool.js +24 -14
- package/dist/esm/tools/mongodb/mongodbTool.js.map +1 -1
- package/dist/esm/tools/mongodb/read/aggregate.d.ts +1 -1
- package/dist/esm/tools/mongodb/read/aggregate.d.ts.map +1 -1
- package/dist/esm/tools/mongodb/read/aggregate.js +8 -11
- package/dist/esm/tools/mongodb/read/aggregate.js.map +1 -1
- package/dist/esm/tools/mongodb/read/aggregateDB.d.ts +1 -1
- package/dist/esm/tools/mongodb/read/aggregateDB.d.ts.map +1 -1
- package/dist/esm/tools/mongodb/read/aggregateDB.js +2 -3
- package/dist/esm/tools/mongodb/read/aggregateDB.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 +2 -3
- package/dist/esm/tools/mongodb/read/count.js.map +1 -1
- package/dist/esm/tools/mongodb/read/export.d.ts +1 -1
- package/dist/esm/tools/mongodb/read/export.d.ts.map +1 -1
- package/dist/esm/tools/mongodb/read/export.js +2 -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 -3
- package/dist/esm/tools/mongodb/read/find.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 +2 -3
- 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 +2 -3
- package/dist/esm/tools/mongodb/update/updateMany.js.map +1 -1
- package/dist/esm/tools/tool.d.ts +3 -0
- package/dist/esm/tools/tool.d.ts.map +1 -1
- package/dist/esm/tools/tool.js.map +1 -1
- package/dist/esm/transports/base.d.ts.map +1 -1
- package/dist/esm/transports/base.js +9 -11
- package/dist/esm/transports/base.js.map +1 -1
- package/dist/esm/web.d.ts +2 -1
- package/dist/esm/web.d.ts.map +1 -1
- package/dist/esm/web.js +2 -1
- package/dist/esm/web.js.map +1 -1
- package/package.json +3 -3
|
@@ -15,9 +15,10 @@ export type ConnectionErrorHandled = {
|
|
|
15
15
|
result: CallToolResult;
|
|
16
16
|
};
|
|
17
17
|
/**
|
|
18
|
-
* The enabled tools that can establish a connection
|
|
19
|
-
*
|
|
20
|
-
*
|
|
18
|
+
* The enabled tools that can establish a connection, sorted with Atlas tools
|
|
19
|
+
* before MongoDB tools so every listing surfaces them in the same order. The
|
|
20
|
+
* disconnect tool shares the "connect" operation type but cannot establish a
|
|
21
|
+
* connection, so it is excluded.
|
|
21
22
|
*/
|
|
22
23
|
export declare function connectCapableTools(tools: AnyToolBase[]): AnyToolBase[];
|
|
23
24
|
export declare const connectionErrorHandler: ConnectionErrorHandler;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connectionErrorHandler.d.ts","sourceRoot":"","sources":["../../../src/common/connectionErrorHandler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,UAAU,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"connectionErrorHandler.d.ts","sourceRoot":"","sources":["../../../src/common/connectionErrorHandler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,UAAU,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAIpD,MAAM,MAAM,sBAAsB,GAAG,CACjC,KAAK,EAAE,YAAY,CACf,UAAU,CAAC,qBAAqB,GAAG,UAAU,CAAC,6BAA6B,GAAG,UAAU,CAAC,mBAAmB,CAC/G,EACD,iBAAiB,EAAE,6BAA6B,KAC/C,wBAAwB,GAAG,sBAAsB,GAAG,OAAO,CAAC,wBAAwB,GAAG,sBAAsB,CAAC,CAAC;AAEpH,MAAM,MAAM,6BAA6B,GAAG;IAAE,cAAc,EAAE,WAAW,EAAE,CAAC;IAAC,eAAe,CAAC,EAAE,kBAAkB,CAAA;CAAE,CAAC;AACpH,MAAM,MAAM,wBAAwB,GAAG;IAAE,YAAY,EAAE,KAAK,CAAA;CAAE,CAAC;AAC/D,MAAM,MAAM,sBAAsB,GAAG;IAAE,YAAY,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,cAAc,CAAA;CAAE,CAAC;AAEpF;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,WAAW,EAAE,CAIvE;AAED,eAAO,MAAM,sBAAsB,EAAE,sBAwGpC,CAAC"}
|
|
@@ -4,16 +4,20 @@ exports.connectionErrorHandler = void 0;
|
|
|
4
4
|
exports.connectCapableTools = connectCapableTools;
|
|
5
5
|
const errors_js_1 = require("./errors.js");
|
|
6
6
|
const disconnect_js_1 = require("../tools/mongodb/connect/disconnect.js");
|
|
7
|
+
const listConnections_js_1 = require("../tools/mongodb/connect/listConnections.js");
|
|
7
8
|
/**
|
|
8
|
-
* The enabled tools that can establish a connection
|
|
9
|
-
*
|
|
10
|
-
*
|
|
9
|
+
* The enabled tools that can establish a connection, sorted with Atlas tools
|
|
10
|
+
* before MongoDB tools so every listing surfaces them in the same order. The
|
|
11
|
+
* disconnect tool shares the "connect" operation type but cannot establish a
|
|
12
|
+
* connection, so it is excluded.
|
|
11
13
|
*/
|
|
12
14
|
function connectCapableTools(tools) {
|
|
13
|
-
return tools
|
|
15
|
+
return tools
|
|
16
|
+
.filter((t) => t.operationType === "connect" && t.name !== disconnect_js_1.DisconnectTool.toolName && t.isEnabled())
|
|
17
|
+
.sort((a, b) => a.category.localeCompare(b.category));
|
|
14
18
|
}
|
|
15
19
|
const connectionErrorHandler = (error, { availableTools, connectionState }) => {
|
|
16
|
-
const connectTools = connectCapableTools(availableTools)
|
|
20
|
+
const connectTools = connectCapableTools(availableTools);
|
|
17
21
|
// Find what Atlas connect tools are available and suggest when the LLM should to use each. If no Atlas tools are found, return a suggestion for the MongoDB connect tool.
|
|
18
22
|
const atlasConnectTool = connectTools?.find((t) => t.category === "atlas");
|
|
19
23
|
const atlasLocalConnectTool = connectTools?.find((t) => t.category === "atlas-local");
|
|
@@ -46,20 +50,24 @@ const connectionErrorHandler = (error, { availableTools, connectionState }) => {
|
|
|
46
50
|
});
|
|
47
51
|
}
|
|
48
52
|
switch (error.code) {
|
|
49
|
-
case errors_js_1.ErrorCodes.UnknownConnectionId:
|
|
53
|
+
case errors_js_1.ErrorCodes.UnknownConnectionId: {
|
|
54
|
+
const listConnectionsAvailable = availableTools.some((t) => t.name === listConnections_js_1.ListConnectionsTool.toolName && t.isEnabled());
|
|
50
55
|
return {
|
|
51
56
|
errorHandled: true,
|
|
52
57
|
result: {
|
|
53
58
|
content: [
|
|
54
59
|
{
|
|
55
60
|
type: "text",
|
|
56
|
-
text: `${error.message}
|
|
61
|
+
text: `${error.message} ${listConnectionsAvailable
|
|
62
|
+
? `Call the "${listConnections_js_1.ListConnectionsTool.toolName}" tool to see the active connections, or establish a new one and retry with the connectionId it returns.`
|
|
63
|
+
: "Establish a new connection using one of the connect tools and retry with the connectionId it returns."}`,
|
|
57
64
|
},
|
|
58
65
|
...additionalPromptForConnectivity,
|
|
59
66
|
],
|
|
60
67
|
isError: true,
|
|
61
68
|
},
|
|
62
69
|
};
|
|
70
|
+
}
|
|
63
71
|
case errors_js_1.ErrorCodes.NotConnectedToMongoDB:
|
|
64
72
|
return {
|
|
65
73
|
errorHandled: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connectionErrorHandler.js","sourceRoot":"","sources":["../../../src/common/connectionErrorHandler.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"connectionErrorHandler.js","sourceRoot":"","sources":["../../../src/common/connectionErrorHandler.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
import type { NodeDriverServiceProvider } from "@mongosh/service-provider-node-driver";
|
|
2
|
-
import type { DeviceId } from "../helpers/deviceId.js";
|
|
3
2
|
import type { LoggerBase } from "./logging/index.js";
|
|
4
|
-
import type { UserConfig } from "./config/userConfig.js";
|
|
5
3
|
import type { AnyConnectionState, ConnectionManager, ConnectionSettings } from "./connectionManager.js";
|
|
6
4
|
/**
|
|
7
5
|
* The reserved, well-known id of the connection seeded from the `connectionString`
|
|
@@ -75,7 +73,7 @@ export interface ConnectionRegistry {
|
|
|
75
73
|
/** Looks up an entry without affecting LRU ordering (telemetry, error handling). */
|
|
76
74
|
peek(connectionId: string): Promise<ConnectionEntry | undefined>;
|
|
77
75
|
/** Entries matching a predicate, without affecting LRU ordering. */
|
|
78
|
-
find(predicate
|
|
76
|
+
find(predicate?: (entry: ConnectionEntry) => boolean): Promise<ConnectionEntry[]>;
|
|
79
77
|
/** Resolves a handle to a live service provider; throws `UnknownConnectionId` for absent handles. */
|
|
80
78
|
resolve(connectionId: string): Promise<NodeDriverServiceProvider>;
|
|
81
79
|
/**
|
|
@@ -85,8 +83,13 @@ export interface ConnectionRegistry {
|
|
|
85
83
|
* for absent handles, like {@link ConnectionRegistry.resolve}.
|
|
86
84
|
*/
|
|
87
85
|
disconnect(connectionId: string): Promise<void>;
|
|
88
|
-
/**
|
|
89
|
-
|
|
86
|
+
/**
|
|
87
|
+
* Releases the connections this registry object owns. Called when the
|
|
88
|
+
* session holding the registry closes; implementations whose connections
|
|
89
|
+
* outlive a session (shared or durable registries) should make this a
|
|
90
|
+
* no-op.
|
|
91
|
+
*/
|
|
92
|
+
close(): Promise<void>;
|
|
90
93
|
}
|
|
91
94
|
type ConnectionEntryOptions = {
|
|
92
95
|
connectionId: string;
|
|
@@ -138,53 +141,6 @@ export declare class ConnectionEntry {
|
|
|
138
141
|
assertSearchSupported(logger: LoggerBase): Promise<void>;
|
|
139
142
|
close(): Promise<void>;
|
|
140
143
|
}
|
|
141
|
-
export type CreateConnectionManagerFn = () => ConnectionManager;
|
|
142
|
-
export type ConnectionStoreOptions = {
|
|
143
|
-
userConfig: UserConfig;
|
|
144
|
-
logger: LoggerBase;
|
|
145
|
-
deviceId: DeviceId;
|
|
146
|
-
/** Override the per-entry connection manager (tests, embedders). */
|
|
147
|
-
createConnectionManager?: CreateConnectionManagerFn;
|
|
148
|
-
};
|
|
149
|
-
/**
|
|
150
|
-
* Owns the app-level storage and lifecycle of MongoDB connection handles: the
|
|
151
|
-
* entry map, the preconfigured entry seeded from a configured connection
|
|
152
|
-
* string, per-scope connection limits, and shutdown. Consumers never hold the
|
|
153
|
-
* store directly — they access entries through {@link ConnectionRegistry}
|
|
154
|
-
* views minted with {@link MCPConnectionStore.view}.
|
|
155
|
-
*/
|
|
156
|
-
export declare class MCPConnectionStore {
|
|
157
|
-
private readonly entries;
|
|
158
|
-
private readonly userConfig;
|
|
159
|
-
private readonly logger;
|
|
160
|
-
private readonly createConnectionManager;
|
|
161
|
-
private preconfiguredDial?;
|
|
162
|
-
constructor(options: ConnectionStoreOptions);
|
|
163
|
-
/**
|
|
164
|
-
* Returns a {@link ConnectionRegistry} over this store. When `scope` is
|
|
165
|
-
* provided, entries created through the returned registry are tagged with
|
|
166
|
-
* it and the registry only surfaces entries of that scope plus shared ones
|
|
167
|
-
* (`entry.scope === undefined`, e.g. the preconfigured entry) — invisible
|
|
168
|
-
* handles behave exactly like absent ones. When `scope` is omitted, the
|
|
169
|
-
* registry sees every entry and creates shared ones.
|
|
170
|
-
*
|
|
171
|
-
* `closeAll()` on the returned registry disconnects only the entries it
|
|
172
|
-
* can reach; the preconfigured entry is closed-but-kept per its usual
|
|
173
|
-
* disconnect semantics.
|
|
174
|
-
*/
|
|
175
|
-
view(scope?: string): ConnectionRegistry;
|
|
176
|
-
/** Closes and removes every entry, including the preconfigured one. For process/runner shutdown. */
|
|
177
|
-
closeAll(): Promise<void>;
|
|
178
|
-
private addEntry;
|
|
179
|
-
private dialPreconfigured;
|
|
180
|
-
/**
|
|
181
|
-
* Enforces `maxActiveConnections` per scope, counting explicit entries only
|
|
182
|
-
* (the preconfigured entry is pinned). Per-scope counting means one scope
|
|
183
|
-
* (e.g. session) cannot evict another's handles.
|
|
184
|
-
*/
|
|
185
|
-
private enforceLimit;
|
|
186
|
-
private revoke;
|
|
187
|
-
}
|
|
188
144
|
/**
|
|
189
145
|
* Slug source for Atlas cluster handles: `<projectName>-<clusterName>`.
|
|
190
146
|
* Cluster names are only unique within a project, so the project name
|
|
@@ -192,5 +148,6 @@ export declare class MCPConnectionStore {
|
|
|
192
148
|
* half is truncated first so the cluster name always survives.
|
|
193
149
|
*/
|
|
194
150
|
export declare function atlasClusterSlug(projectName: string | undefined, clusterName: string): string;
|
|
151
|
+
export declare function buildEntryName(rawName: string): string;
|
|
195
152
|
export {};
|
|
196
153
|
//# sourceMappingURL=connectionRegistry.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connectionRegistry.d.ts","sourceRoot":"","sources":["../../../src/common/connectionRegistry.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"connectionRegistry.d.ts","sourceRoot":"","sources":["../../../src/common/connectionRegistry.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.ConnectionEntry = exports.PRECONFIGURED_CONNECTION_ID = void 0;
|
|
4
4
|
exports.atlasClusterSlug = atlasClusterSlug;
|
|
5
|
+
exports.buildEntryName = buildEntryName;
|
|
5
6
|
const crypto_1 = require("crypto");
|
|
6
|
-
const mongodb_connection_string_url_1 = require("mongodb-connection-string-url");
|
|
7
|
-
const getRandomUUID_js_1 = require("../helpers/getRandomUUID.js");
|
|
8
|
-
const arg_parser_1 = require("@mongosh/arg-parser");
|
|
9
|
-
const index_js_1 = require("./logging/index.js");
|
|
10
|
-
const connectionManager_js_1 = require("./connectionManager.js");
|
|
11
7
|
const errors_js_1 = require("./errors.js");
|
|
12
8
|
/**
|
|
13
9
|
* The reserved, well-known id of the connection seeded from the `connectionString`
|
|
@@ -89,191 +85,6 @@ class ConnectionEntry {
|
|
|
89
85
|
}
|
|
90
86
|
}
|
|
91
87
|
exports.ConnectionEntry = ConnectionEntry;
|
|
92
|
-
/**
|
|
93
|
-
* Owns the app-level storage and lifecycle of MongoDB connection handles: the
|
|
94
|
-
* entry map, the preconfigured entry seeded from a configured connection
|
|
95
|
-
* string, per-scope connection limits, and shutdown. Consumers never hold the
|
|
96
|
-
* store directly — they access entries through {@link ConnectionRegistry}
|
|
97
|
-
* views minted with {@link MCPConnectionStore.view}.
|
|
98
|
-
*/
|
|
99
|
-
class MCPConnectionStore {
|
|
100
|
-
constructor(options) {
|
|
101
|
-
this.entries = new Map();
|
|
102
|
-
this.userConfig = options.userConfig;
|
|
103
|
-
this.logger = options.logger;
|
|
104
|
-
this.createConnectionManager =
|
|
105
|
-
options.createConnectionManager ??
|
|
106
|
-
(() => new connectionManager_js_1.MCPConnectionManager(options.userConfig, options.logger, options.deviceId));
|
|
107
|
-
if (this.userConfig.connectionString) {
|
|
108
|
-
this.entries.set(exports.PRECONFIGURED_CONNECTION_ID, {
|
|
109
|
-
entry: new ConnectionEntry({
|
|
110
|
-
connectionId: exports.PRECONFIGURED_CONNECTION_ID,
|
|
111
|
-
name: exports.PRECONFIGURED_CONNECTION_ID,
|
|
112
|
-
source: "preconfigured",
|
|
113
|
-
manager: this.createConnectionManager(),
|
|
114
|
-
}),
|
|
115
|
-
});
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
/**
|
|
119
|
-
* Returns a {@link ConnectionRegistry} over this store. When `scope` is
|
|
120
|
-
* provided, entries created through the returned registry are tagged with
|
|
121
|
-
* it and the registry only surfaces entries of that scope plus shared ones
|
|
122
|
-
* (`entry.scope === undefined`, e.g. the preconfigured entry) — invisible
|
|
123
|
-
* handles behave exactly like absent ones. When `scope` is omitted, the
|
|
124
|
-
* registry sees every entry and creates shared ones.
|
|
125
|
-
*
|
|
126
|
-
* `closeAll()` on the returned registry disconnects only the entries it
|
|
127
|
-
* can reach; the preconfigured entry is closed-but-kept per its usual
|
|
128
|
-
* disconnect semantics.
|
|
129
|
-
*/
|
|
130
|
-
view(scope) {
|
|
131
|
-
const visible = (stored) => stored !== undefined && (scope === undefined || stored.scope === undefined || stored.scope === scope);
|
|
132
|
-
const peek = (connectionId) => {
|
|
133
|
-
const stored = this.entries.get(connectionId);
|
|
134
|
-
return Promise.resolve(visible(stored) ? stored.entry : undefined);
|
|
135
|
-
};
|
|
136
|
-
const get = async (connectionId) => {
|
|
137
|
-
const entry = await peek(connectionId);
|
|
138
|
-
if (entry) {
|
|
139
|
-
entry.lastUsedAt = new Date();
|
|
140
|
-
}
|
|
141
|
-
return entry;
|
|
142
|
-
};
|
|
143
|
-
const disconnect = async (connectionId) => {
|
|
144
|
-
const entry = await peek(connectionId);
|
|
145
|
-
if (!entry) {
|
|
146
|
-
throw new errors_js_1.MongoDBError(errors_js_1.ErrorCodes.UnknownConnectionId, `Connection "${connectionId}" does not exist or has expired.`);
|
|
147
|
-
}
|
|
148
|
-
if (entry.source === "preconfigured") {
|
|
149
|
-
await entry.close();
|
|
150
|
-
return;
|
|
151
|
-
}
|
|
152
|
-
await this.revoke(entry);
|
|
153
|
-
};
|
|
154
|
-
return {
|
|
155
|
-
createEntry: (opts) => Promise.resolve(this.addEntry({ ...opts, scope })),
|
|
156
|
-
connect: async ({ settings, name, clientName }) => {
|
|
157
|
-
name ?? (name = settings.atlas?.clusterName ?? hostFromConnectionString(settings.connectionString));
|
|
158
|
-
const entry = this.addEntry({ name, clientName, scope });
|
|
159
|
-
try {
|
|
160
|
-
await entry.connect(settings);
|
|
161
|
-
}
|
|
162
|
-
catch (error) {
|
|
163
|
-
this.entries.delete(entry.connectionId);
|
|
164
|
-
await entry.close().catch(() => undefined);
|
|
165
|
-
throw error;
|
|
166
|
-
}
|
|
167
|
-
await this.enforceLimit(scope);
|
|
168
|
-
return entry;
|
|
169
|
-
},
|
|
170
|
-
get,
|
|
171
|
-
peek,
|
|
172
|
-
find: (predicate) => Promise.resolve([...this.entries.values()]
|
|
173
|
-
.filter((stored) => visible(stored) && predicate(stored.entry))
|
|
174
|
-
.map((stored) => stored.entry)),
|
|
175
|
-
resolve: async (connectionId) => {
|
|
176
|
-
const entry = await get(connectionId);
|
|
177
|
-
if (!entry) {
|
|
178
|
-
throw new errors_js_1.MongoDBError(errors_js_1.ErrorCodes.UnknownConnectionId, `Connection "${connectionId}" does not exist or has expired.`);
|
|
179
|
-
}
|
|
180
|
-
if (entry.source === "preconfigured" &&
|
|
181
|
-
(entry.state.tag === "disconnected" || entry.state.tag === "errored")) {
|
|
182
|
-
await this.dialPreconfigured(entry);
|
|
183
|
-
}
|
|
184
|
-
return entry.getServiceProvider();
|
|
185
|
-
},
|
|
186
|
-
disconnect,
|
|
187
|
-
closeAll: async () => {
|
|
188
|
-
const reachable = [...this.entries.values()].filter((stored) => scope === undefined ? true : stored.scope === scope);
|
|
189
|
-
await Promise.allSettled(reachable.map((stored) => disconnect(stored.entry.connectionId)));
|
|
190
|
-
},
|
|
191
|
-
};
|
|
192
|
-
}
|
|
193
|
-
/** Closes and removes every entry, including the preconfigured one. For process/runner shutdown. */
|
|
194
|
-
async closeAll() {
|
|
195
|
-
const stored = [...this.entries.values()];
|
|
196
|
-
this.entries.clear();
|
|
197
|
-
await Promise.allSettled(stored.map(({ entry }) => this.revoke(entry)));
|
|
198
|
-
}
|
|
199
|
-
addEntry({ name, clientName, scope, onRevoke, }) {
|
|
200
|
-
const manager = this.createConnectionManager();
|
|
201
|
-
if (clientName) {
|
|
202
|
-
manager.setClientName(clientName);
|
|
203
|
-
}
|
|
204
|
-
const entry = new ConnectionEntry({
|
|
205
|
-
connectionId: (0, getRandomUUID_js_1.getRandomUUID)(),
|
|
206
|
-
name: buildEntryName(name),
|
|
207
|
-
source: "explicit",
|
|
208
|
-
manager,
|
|
209
|
-
onRevoke,
|
|
210
|
-
});
|
|
211
|
-
this.entries.set(entry.connectionId, { entry, scope });
|
|
212
|
-
void this.enforceLimit(scope);
|
|
213
|
-
return entry;
|
|
214
|
-
}
|
|
215
|
-
async dialPreconfigured(entry) {
|
|
216
|
-
this.preconfiguredDial ?? (this.preconfiguredDial = (async () => {
|
|
217
|
-
const connectionInfo = (0, arg_parser_1.generateConnectionInfoFromCliArgs)({
|
|
218
|
-
...this.userConfig,
|
|
219
|
-
connectionSpecifier: this.userConfig.connectionString,
|
|
220
|
-
});
|
|
221
|
-
await entry.connect(connectionInfo);
|
|
222
|
-
})().finally(() => {
|
|
223
|
-
this.preconfiguredDial = undefined;
|
|
224
|
-
}));
|
|
225
|
-
try {
|
|
226
|
-
await this.preconfiguredDial;
|
|
227
|
-
}
|
|
228
|
-
catch (error) {
|
|
229
|
-
this.logger.error({
|
|
230
|
-
id: index_js_1.LogId.connectionRegistryDialFailure,
|
|
231
|
-
context: "connectionRegistry",
|
|
232
|
-
message: `Failed to connect using the configured connection string: ${error}`,
|
|
233
|
-
});
|
|
234
|
-
throw new errors_js_1.MongoDBError(errors_js_1.ErrorCodes.MisconfiguredConnectionString, "The configured connection string is not valid or the server is unreachable.");
|
|
235
|
-
}
|
|
236
|
-
}
|
|
237
|
-
/**
|
|
238
|
-
* Enforces `maxActiveConnections` per scope, counting explicit entries only
|
|
239
|
-
* (the preconfigured entry is pinned). Per-scope counting means one scope
|
|
240
|
-
* (e.g. session) cannot evict another's handles.
|
|
241
|
-
*/
|
|
242
|
-
async enforceLimit(scope) {
|
|
243
|
-
for (;;) {
|
|
244
|
-
const scoped = [...this.entries.values()].filter((stored) => stored.entry.source !== "preconfigured" && stored.scope === scope);
|
|
245
|
-
if (scoped.length <= this.userConfig.maxActiveConnections) {
|
|
246
|
-
return;
|
|
247
|
-
}
|
|
248
|
-
const lru = scoped.sort((a, b) => a.entry.lastUsedAt.getTime() - b.entry.lastUsedAt.getTime())[0];
|
|
249
|
-
if (!lru) {
|
|
250
|
-
return;
|
|
251
|
-
}
|
|
252
|
-
this.logger.info({
|
|
253
|
-
id: index_js_1.LogId.connectionRegistryRevoked,
|
|
254
|
-
context: "connectionRegistry",
|
|
255
|
-
message: `Revoking least-recently-used connection "${lru.entry.connectionId}" because its scope exceeded ${this.userConfig.maxActiveConnections} connections.`,
|
|
256
|
-
});
|
|
257
|
-
this.entries.delete(lru.entry.connectionId);
|
|
258
|
-
await this.revoke(lru.entry);
|
|
259
|
-
}
|
|
260
|
-
}
|
|
261
|
-
async revoke(entry) {
|
|
262
|
-
this.entries.delete(entry.connectionId);
|
|
263
|
-
await entry.close().catch(() => undefined);
|
|
264
|
-
try {
|
|
265
|
-
await entry.runRevokeCleanup();
|
|
266
|
-
}
|
|
267
|
-
catch (error) {
|
|
268
|
-
this.logger.error({
|
|
269
|
-
id: index_js_1.LogId.connectionRegistryRevokeCallbackFailure,
|
|
270
|
-
context: "connectionRegistry",
|
|
271
|
-
message: `Revocation cleanup for connection "${entry.connectionId}" failed: ${error}`,
|
|
272
|
-
});
|
|
273
|
-
}
|
|
274
|
-
}
|
|
275
|
-
}
|
|
276
|
-
exports.MCPConnectionStore = MCPConnectionStore;
|
|
277
88
|
/**
|
|
278
89
|
* Slug source for Atlas cluster handles: `<projectName>-<clusterName>`.
|
|
279
90
|
* Cluster names are only unique within a project, so the project name
|
|
@@ -309,17 +120,4 @@ function slugify(value) {
|
|
|
309
120
|
.slice(0, MAX_SLUG_LENGTH)
|
|
310
121
|
.replace(/-$/, "");
|
|
311
122
|
}
|
|
312
|
-
/** The first host of the connection string (without port), as a slug source for generated names. */
|
|
313
|
-
function hostFromConnectionString(connectionString) {
|
|
314
|
-
if (!connectionString) {
|
|
315
|
-
return "connection";
|
|
316
|
-
}
|
|
317
|
-
try {
|
|
318
|
-
const host = new mongodb_connection_string_url_1.ConnectionString(connectionString, { looseValidation: true }).hosts[0];
|
|
319
|
-
return host?.split(":")[0] || "connection";
|
|
320
|
-
}
|
|
321
|
-
catch {
|
|
322
|
-
return "connection";
|
|
323
|
-
}
|
|
324
|
-
}
|
|
325
123
|
//# sourceMappingURL=connectionRegistry.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connectionRegistry.js","sourceRoot":"","sources":["../../../src/common/connectionRegistry.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"connectionRegistry.js","sourceRoot":"","sources":["../../../src/common/connectionRegistry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import type { DeviceId } from "../helpers/deviceId.js";
|
|
2
|
+
import type { LoggerBase } from "./logging/index.js";
|
|
3
|
+
import type { UserConfig } from "./config/userConfig.js";
|
|
4
|
+
import type { ConnectionManager } from "./connectionManager.js";
|
|
5
|
+
import type { ConnectionRegistry } from "./connectionRegistry.js";
|
|
6
|
+
export type CreateConnectionManagerFn = () => ConnectionManager;
|
|
7
|
+
export type ConnectionStoreOptions = {
|
|
8
|
+
userConfig: UserConfig;
|
|
9
|
+
logger: LoggerBase;
|
|
10
|
+
deviceId: DeviceId;
|
|
11
|
+
/** Override the per-entry connection manager (tests, embedders). */
|
|
12
|
+
createConnectionManager?: CreateConnectionManagerFn;
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* Owns the app-level storage and lifecycle of MongoDB connection handles: the
|
|
16
|
+
* entry map, the preconfigured entry seeded from a configured connection
|
|
17
|
+
* string, per-scope connection limits, and shutdown. Consumers never hold the
|
|
18
|
+
* store directly — they access entries through {@link ConnectionRegistry}
|
|
19
|
+
* views minted with {@link MCPConnectionStore.view}.
|
|
20
|
+
*/
|
|
21
|
+
export declare class MCPConnectionStore {
|
|
22
|
+
private readonly entries;
|
|
23
|
+
private readonly userConfig;
|
|
24
|
+
private readonly logger;
|
|
25
|
+
private readonly createConnectionManager;
|
|
26
|
+
private preconfiguredDial?;
|
|
27
|
+
constructor(options: ConnectionStoreOptions);
|
|
28
|
+
/**
|
|
29
|
+
* Returns a {@link ConnectionRegistry} over this store. When `scope` is
|
|
30
|
+
* provided, entries created through the returned registry are tagged with
|
|
31
|
+
* it and the registry only surfaces entries of that scope plus shared ones
|
|
32
|
+
* (`entry.scope === undefined`, e.g. the preconfigured entry) — invisible
|
|
33
|
+
* handles behave exactly like absent ones. When `scope` is omitted, the
|
|
34
|
+
* registry sees every entry and creates shared ones.
|
|
35
|
+
*
|
|
36
|
+
* `owned` controls what {@link ConnectionRegistry.close} does: an owned
|
|
37
|
+
* registry disconnects every entry it can reach (the preconfigured entry
|
|
38
|
+
* is closed-but-kept per its usual disconnect semantics), an unowned one
|
|
39
|
+
* does nothing. It defaults to whether the view is scoped: scoped entries
|
|
40
|
+
* are unreachable once their scope holder is gone, while an unbound view's
|
|
41
|
+
* entries are shared and must outlive it.
|
|
42
|
+
*/
|
|
43
|
+
view({ scope, owned }?: {
|
|
44
|
+
scope?: string;
|
|
45
|
+
owned?: boolean;
|
|
46
|
+
}): ConnectionRegistry;
|
|
47
|
+
/** Closes and removes every entry, including the preconfigured one. For process/runner shutdown. */
|
|
48
|
+
closeAll(): Promise<void>;
|
|
49
|
+
private addEntry;
|
|
50
|
+
private dialPreconfigured;
|
|
51
|
+
/**
|
|
52
|
+
* Enforces `maxActiveConnections` per scope, counting explicit entries only
|
|
53
|
+
* (the preconfigured entry is pinned). Per-scope counting means one scope
|
|
54
|
+
* (e.g. session) cannot evict another's handles.
|
|
55
|
+
*/
|
|
56
|
+
private enforceLimit;
|
|
57
|
+
private revoke;
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=connectionStore.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connectionStore.d.ts","sourceRoot":"","sources":["../../../src/common/connectionStore.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAGhE,OAAO,KAAK,EACR,kBAAkB,EAGrB,MAAM,yBAAyB,CAAC;AAGjC,MAAM,MAAM,yBAAyB,GAAG,MAAM,iBAAiB,CAAC;AAEhE,MAAM,MAAM,sBAAsB,GAAG;IACjC,UAAU,EAAE,UAAU,CAAC;IACvB,MAAM,EAAE,UAAU,CAAC;IACnB,QAAQ,EAAE,QAAQ,CAAC;IACnB,oEAAoE;IACpE,uBAAuB,CAAC,EAAE,yBAAyB,CAAC;CACvD,CAAC;AAYF;;;;;;GAMG;AACH,qBAAa,kBAAkB;IAC3B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAuC;IAC/D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IACxC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAa;IACpC,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAA4B;IACpE,OAAO,CAAC,iBAAiB,CAAC,CAAmB;gBAEjC,OAAO,EAAE,sBAAsB;IAmB3C;;;;;;;;;;;;;;OAcG;IACH,IAAI,CAAC,EAAE,KAAK,EAAE,KAA2B,EAAE,GAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAO,GAAG,kBAAkB;IA6F1G,oGAAoG;IAC9F,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAM/B,OAAO,CAAC,QAAQ;YAuBF,iBAAiB;IA0B/B;;;;OAIG;YACW,YAAY;YAsBZ,MAAM;CAkBvB"}
|