From bc4182b9d2925df692a77a2874b53e1da4ce9bf0 Mon Sep 17 00:00:00 2001 From: Billy Biggs Date: Mon, 14 Jul 2025 06:42:22 +0200 Subject: Show stderr output from mcp servers in debug mode (#4049) --- packages/core/src/tools/mcp-client.ts | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) (limited to 'packages/core/src/tools/mcp-client.ts') diff --git a/packages/core/src/tools/mcp-client.ts b/packages/core/src/tools/mcp-client.ts index e4a87b68..6edfbac8 100644 --- a/packages/core/src/tools/mcp-client.ts +++ b/packages/core/src/tools/mcp-client.ts @@ -127,6 +127,7 @@ export async function discoverMcpTools( mcpServers: Record, mcpServerCommand: string | undefined, toolRegistry: ToolRegistry, + debugMode: boolean, ): Promise { // Set discovery state to in progress mcpDiscoveryState = MCPDiscoveryState.IN_PROGRESS; @@ -147,7 +148,12 @@ export async function discoverMcpTools( const discoveryPromises = Object.entries(mcpServers).map( ([mcpServerName, mcpServerConfig]) => - connectAndDiscover(mcpServerName, mcpServerConfig, toolRegistry), + connectAndDiscover( + mcpServerName, + mcpServerConfig, + toolRegistry, + debugMode, + ), ); await Promise.all(discoveryPromises); @@ -174,6 +180,7 @@ async function connectAndDiscover( mcpServerName: string, mcpServerConfig: MCPServerConfig, toolRegistry: ToolRegistry, + debugMode: boolean, ): Promise { // Initialize the server status as connecting updateMCPServerStatus(mcpServerName, MCPServerStatus.CONNECTING); @@ -223,6 +230,17 @@ async function connectAndDiscover( return; } + if ( + debugMode && + transport instanceof StdioClientTransport && + transport.stderr + ) { + transport.stderr.on('data', (data) => { + const stderrStr = data.toString().trim(); + console.debug(`[DEBUG] [MCP STDERR (${mcpServerName})]: `, stderrStr); + }); + } + const mcpClient = new Client({ name: 'gemini-cli-mcp-client', version: '0.0.1', -- cgit v1.2.3