(&self, server_name: &str)
| 97 | } |
| 98 | |
| 99 | pub(super) async fn remove_mcp_server(&self, server_name: &str) -> Result<()> { |
| 100 | self.session |
| 101 | .tool_executor |
| 102 | .unregister_tools_by_prefix(&format!("mcp__{server_name}__")); |
| 103 | self.session |
| 104 | .mcp_manager |
| 105 | .disconnect(server_name) |
| 106 | .await |
| 107 | .map_err(|e| crate::error::CodeError::Tool { |
| 108 | tool: server_name.to_string(), |
| 109 | message: format!("Failed to disconnect MCP server: {}", e), |
| 110 | })?; |
| 111 | tracing::info!( |
| 112 | session_id = %self.session.session_id, |
| 113 | server = server_name, |
| 114 | "MCP server removed from live session" |
| 115 | ); |
| 116 | Ok(()) |
| 117 | } |
| 118 | |
| 119 | pub(super) async fn mcp_status(&self) -> HashMap<String, McpServerStatus> { |
| 120 | self.session.mcp_manager.get_status().await |
nothing calls this directly
no test coverage detected