Skip to content

Commit 76ef3e2

Browse files
committed
relocates server event sender to main loop
1 parent 307e11f commit 76ef3e2

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
@@ -288,19 +281,14 @@ impl McpManager {
288281

289282
pub fn spawn(self) -> McpManagerHandle {
290283
let request_tx = self.request_tx.clone();
291-
let server_to_handle_server_event_tx = self.server_event_tx.clone();
292284
let (mcp_main_loop_to_handle_server_event_tx, mcp_main_loop_to_handle_server_event_rx) =
293285
broadcast::channel::<McpServerActorEvent>(100);
294286

295287
tokio::spawn(async move {
296288
self.main_loop(mcp_main_loop_to_handle_server_event_tx).await;
297289
});
298290

299-
McpManagerHandle::new(
300-
request_tx,
301-
server_to_handle_server_event_tx,
302-
mcp_main_loop_to_handle_server_event_rx,
303-
)
291+
McpManagerHandle::new(request_tx, mcp_main_loop_to_handle_server_event_rx)
304292
}
305293

306294
async fn main_loop(mut self, mcp_main_loop_to_handle_server_event_tx: broadcast::Sender<McpServerActorEvent>) {
@@ -336,13 +324,13 @@ impl McpManager {
336324
McpManagerRequest::LaunchServer {
337325
server_name: name,
338326
config,
339-
server_event_sender: event_tx,
340327
} => {
341328
if self.initializing_servers.contains_key(&name) {
342329
return Err(McpManagerError::ServerCurrentlyInitializing { name });
343330
} else if self.servers.contains_key(&name) {
344331
return Err(McpManagerError::ServerAlreadyLaunched { name });
345332
}
333+
let event_tx = self.server_event_tx.clone();
346334
let handle = McpServerActor::spawn(name.clone(), config, self.cred_path.clone(), event_tx);
347335
self.initializing_servers.insert(name, handle);
348336
Ok(McpManagerResponse::LaunchServer)
@@ -414,8 +402,6 @@ pub enum McpManagerRequest {
414402
server_name: String,
415403
/// Config to use
416404
config: McpServerConfig,
417-
/// Channel for sending server events back to the manager
418-
server_event_sender: mpsc::Sender<McpServerActorEvent>,
419405
},
420406
GetToolSpecs {
421407
server_name: String,

0 commit comments

Comments
 (0)