@@ -5,7 +5,6 @@ import { NodeDriverServiceProvider } from "@mongosh/service-provider-node-driver
55import { CallToolResult } from "@modelcontextprotocol/sdk/types.js" ;
66import { ErrorCodes , MongoDBError } from "../../errors.js" ;
77import config from "../../config.js" ;
8- import { connectToMongoDB } from "../../common/mongodb/connect.js" ;
98
109export const DbOperationArgs = {
1110 database : z . string ( ) . describe ( "Database name" ) ,
@@ -24,7 +23,7 @@ export abstract class MongoDBToolBase extends ToolBase {
2423 protected async ensureConnected ( ) : Promise < NodeDriverServiceProvider > {
2524 const provider = this . state . serviceProvider ;
2625 if ( ! provider && config . connectionString ) {
27- await connectToMongoDB ( config . connectionString , this . state ) ;
26+ await this . connectToMongoDB ( config . connectionString , this . state ) ;
2827 }
2928
3029 if ( ! provider ) {
@@ -52,4 +51,21 @@ export abstract class MongoDBToolBase extends ToolBase {
5251
5352 return undefined ;
5453 }
54+
55+ protected async connectToMongoDB ( connectionString : string , state : State ) : Promise < void > {
56+ const provider = await NodeDriverServiceProvider . connect ( connectionString , {
57+ productDocsLink : "https://docs.mongodb.com/todo-mcp" ,
58+ productName : "MongoDB MCP" ,
59+ readConcern : config . connectOptions . readConcern ,
60+ readPreference : config . connectOptions . readPreference ,
61+ writeConcern : {
62+ w : config . connectOptions . writeConcern ,
63+ } ,
64+ timeoutMS : config . connectOptions . timeoutMS ,
65+ } ) ;
66+
67+ state . serviceProvider = provider ;
68+ state . credentials . connectionString = connectionString ;
69+ await state . persistCredentials ( ) ;
70+ }
5571}
0 commit comments