@@ -81,8 +81,6 @@ async def create_connector(
8181 auth = Authorization (client_id = client_id , client_secret = client_secret ) if client_id else None ,
8282 metadata = metadata ,
8383 )
84- if preset and preset .url .scheme == "mcp+stdio" :
85- await self ._managed_mcp .deploy (connector = connector )
8684 async with self ._uow () as uow :
8785 await uow .connectors .create (connector = connector )
8886 await uow .commit ()
@@ -97,9 +95,6 @@ async def delete_connector(self, *, connector_id: UUID, user: User | None = None
9795 connector = await uow .connectors .get (connector_id = connector_id , user_id = user .id if user else None )
9896 await self ._external_mcp .revoke_token (connector = connector )
9997
100- if self ._managed_mcp .is_managed (connector = connector ):
101- await self ._managed_mcp .undeploy (connector = connector )
102-
10398 await uow .connectors .delete (connector_id = connector_id , user_id = user .id if user else None )
10499 await uow .commit ()
105100
@@ -113,6 +108,9 @@ async def connect_connector(
113108 async with self ._uow () as uow :
114109 connector = await uow .connectors .get (connector_id = connector_id , user_id = user .id if user else None )
115110
111+ if self ._managed_mcp .is_managed (connector = connector ):
112+ await self ._managed_mcp .deploy (connector = connector )
113+
116114 try :
117115 await self .probe_connector (connector = connector )
118116 connector .state = ConnectorState .connected
@@ -161,17 +159,17 @@ async def disconnect_connector(self, *, connector_id: UUID, user: User | None =
161159
162160 await self ._external_mcp .revoke_token (connector = connector )
163161
162+ if connector .auth :
163+ connector .auth .flow = None
164+ connector .state = ConnectorState .disconnected
165+ connector .disconnect_reason = "Client request"
166+
164167 if self ._managed_mcp .is_managed (connector = connector ):
165168 try :
166169 await self ._managed_mcp .undeploy (connector = connector )
167170 except Exception :
168171 logger .warning ("Failed to delete managed MCP server deployment during disconnect" , exc_info = True )
169172
170- if connector .auth :
171- connector .auth .flow = None
172- connector .state = ConnectorState .disconnected
173- connector .disconnect_reason = "Client request"
174-
175173 async with self ._uow () as uow :
176174 await uow .connectors .update (connector = connector )
177175 await uow .commit ()
0 commit comments