From dccef82254055af64c6dbec50c9b404d27c0de45 Mon Sep 17 00:00:00 2001 From: Danny Avila Date: Wed, 12 Aug 2026 22:29:49 -0400 Subject: [PATCH] =?UTF-8?q?=F0=9F=AA=B6=20chore:=20Aggregate=20Empty=20MCP?= =?UTF-8?q?=20Tool=20Logs=20(#14767)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix: aggregate empty MCP tool logs * fix: retain server names in MCP tool logs --- api/server/controllers/mcp.js | 8 +++++++- api/server/routes/__tests__/mcp.spec.js | 4 ++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/api/server/controllers/mcp.js b/api/server/controllers/mcp.js index f150c4ccaf..61d6a6bdda 100644 --- a/api/server/controllers/mcp.js +++ b/api/server/controllers/mcp.js @@ -197,6 +197,7 @@ const getMCPTools = async (req, res) => { const mcpServers = {}; const serverToolsMap = new Map(); + const serversWithoutTools = []; const cacheResults = await Promise.all( configuredServers.map(async (serverName) => { try { @@ -230,7 +231,7 @@ const getMCPTools = async (req, res) => { continue; } if (!serverTools) { - logger.debug(`[getMCPTools] No tools found for server ${serverName}`); + serversWithoutTools.push(serverName); continue; } serverToolsMap.set(serverName, serverTools); @@ -246,6 +247,11 @@ const getMCPTools = async (req, res) => { logger.error(`[getMCPTools] Failed to cache tools for ${serverName}:`, err), ); } + if (serversWithoutTools.length > 0) { + logger.debug( + `[getMCPTools] No tools (${serversWithoutTools.length}): ${serversWithoutTools.join(', ')}`, + ); + } // Process each configured server for (const serverName of configuredServers) { diff --git a/api/server/routes/__tests__/mcp.spec.js b/api/server/routes/__tests__/mcp.spec.js index 7b2e702a67..89192c3d66 100644 --- a/api/server/routes/__tests__/mcp.spec.js +++ b/api/server/routes/__tests__/mcp.spec.js @@ -3316,6 +3316,10 @@ describe('MCP Routes', () => { name: 'second-server', tools: [], }); + expect(logger.debug).toHaveBeenCalledTimes(1); + expect(logger.debug).toHaveBeenCalledWith( + '[getMCPTools] No tools (2): first-server, second-server', + ); expect(logger.error).toHaveBeenCalledTimes(2); expect(mockGetServerToolFunctionsSnapshot).toHaveBeenCalledTimes(2); });