diff --git a/src/mcp/client.rs b/src/mcp/client.rs index 73ecddf..49fd0b5 100644 --- a/src/mcp/client.rs +++ b/src/mcp/client.rs @@ -364,11 +364,25 @@ impl McpClientManager { let reader = BufReader::new(child_stderr); let mut lines = reader.lines(); while let Ok(Some(line)) = lines.next_line().await { - tracing::warn!( - server_key = %server_key_owned, - stderr = %line, - "MCP child process stderr" - ); + // Escalate real warnings/errors; demote normal diagnostics to debug + let lower = line.to_lowercase(); + let is_warning = lower.contains("error") + || lower.contains("warn") + || lower.contains("panic") + || lower.contains("fatal"); + if is_warning { + tracing::warn!( + server_key = %server_key_owned, + stderr = %line, + "MCP child process stderr" + ); + } else { + tracing::debug!( + server_key = %server_key_owned, + stderr = %line, + "MCP child process stderr" + ); + } // Also collect into the shared buffer (cap at 50 lines) if let Ok(mut buf) = stderr_lines_for_task.lock() { if buf.len() < 50 {