Skip to content

Commit 798424b

Browse files
committed
relocates server event sender to main loop
1 parent 3abcf30 commit 798424b

File tree

1 file changed

+2
-16
lines changed
  • crates/agent/src/agent/mcp

1 file changed

+2
-16
lines changed

crates/agent/src/agent/mcp/mod.rs

Lines changed: 2 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -155,15 +155,13 @@ use crate::agent::util::request_channel::{
155155
pub struct McpManagerHandle {
156156
/// Sender for sending requests to the tool manager task
157157
request_tx: RequestSender<McpManagerRequest, McpManagerResponse, McpManagerError>,
158-
server_to_handle_server_event_tx: mpsc::Sender<McpServerActorEvent>,
159158
mcp_main_loop_to_handle_server_event_rx: broadcast::Receiver<McpServerActorEvent>,
160159
}
161160

162161
impl Clone for McpManagerHandle {
163162
fn clone(&self) -> Self {
164163
Self {
165164
request_tx: self.request_tx.clone(),
166-
server_to_handle_server_event_tx: self.server_to_handle_server_event_tx.clone(),
167165
mcp_main_loop_to_handle_server_event_rx: self.mcp_main_loop_to_handle_server_event_rx.resubscribe(),
168166
}
169167
}
@@ -172,12 +170,10 @@ impl Clone for McpManagerHandle {
172170
impl McpManagerHandle {
173171
fn new(
174172
request_tx: RequestSender<McpManagerRequest, McpManagerResponse, McpManagerError>,
175-
server_to_handle_server_event_tx: mpsc::Sender<McpServerActorEvent>,
176173
mcp_main_loop_to_handle_server_event_rx: broadcast::Receiver<McpServerActorEvent>,
177174
) -> Self {
178175
Self {
179176
request_tx,
180-
server_to_handle_server_event_tx,
181177
mcp_main_loop_to_handle_server_event_rx,
182178
}
183179
}
@@ -187,12 +183,9 @@ impl McpManagerHandle {
187183
name: String,
188184
config: McpServerConfig,
189185
) -> Result<McpManagerResponse, McpManagerError> {
190-
let server_event_sender = self.server_to_handle_server_event_tx.clone();
191-
192186
self.request_tx
193187
.send_recv(McpManagerRequest::LaunchServer {
194188
server_name: name,
195-
server_event_sender,
196189
config,
197190
})
198191
.await
@@ -291,19 +284,14 @@ impl McpManager {
291284

292285
pub fn spawn(self) -> McpManagerHandle {
293286
let request_tx = self.request_tx.clone();
294-
let server_to_handle_server_event_tx = self.server_event_tx.clone();
295287
let (mcp_main_loop_to_handle_server_event_tx, mcp_main_loop_to_handle_server_event_rx) =
296288
broadcast::channel::<McpServerActorEvent>(100);
297289

298290
tokio::spawn(async move {
299291
self.main_loop(mcp_main_loop_to_handle_server_event_tx).await;
300292
});
301293

302-
McpManagerHandle::new(
303-
request_tx,
304-
server_to_handle_server_event_tx,
305-
mcp_main_loop_to_handle_server_event_rx,
306-
)
294+
McpManagerHandle::new(request_tx, mcp_main_loop_to_handle_server_event_rx)
307295
}
308296

309297
async fn main_loop(mut self, mcp_main_loop_to_handle_server_event_tx: broadcast::Sender<McpServerActorEvent>) {
@@ -339,13 +327,13 @@ impl McpManager {
339327
McpManagerRequest::LaunchServer {
340328
server_name: name,
341329
config,
342-
server_event_sender: event_tx,
343330
} => {
344331
if self.initializing_servers.contains_key(&name) {
345332
return Err(McpManagerError::ServerCurrentlyInitializing { name });
346333
} else if self.servers.contains_key(&name) {
347334
return Err(McpManagerError::ServerAlreadyLaunched { name });
348335
}
336+
let event_tx = self.server_event_tx.clone();
349337
let handle = McpServerActor::spawn(name.clone(), config, self.cred_path.clone(), event_tx);
350338
self.initializing_servers.insert(name, handle);
351339
Ok(McpManagerResponse::LaunchServer)
@@ -417,8 +405,6 @@ pub enum McpManagerRequest {
417405
server_name: String,
418406
/// Config to use
419407
config: McpServerConfig,
420-
/// Channel for sending server events back to the manager
421-
server_event_sender: mpsc::Sender<McpServerActorEvent>,
422408
},
423409
GetToolSpecs {
424410
server_name: String,

0 commit comments

Comments
 (0)