From 94c329680f5d83fd8296f5a3a5948a5f380df97f Mon Sep 17 00:00:00 2001 From: Dustin Healy Date: Sat, 12 Jul 2025 11:09:20 -0700 Subject: [PATCH] =?UTF-8?q?=F0=9F=94=83=20refactor:=20Simplify=20Plugin=20?= =?UTF-8?q?Deduplication=20and=20Clear=20Cache=20Post-MCP=20Initialization?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Replaced manual deduplication of tools with the dedicated `filterUniquePlugins` function for improved readability. - Added back cache clearing for tools after MCP initialization to ensure fresh data is used. - Removed unused exports from `PluginController.js` to clean up the codebase. --- api/server/controllers/PluginController.js | 14 ++------------ api/server/services/initializeMCPs.js | 4 ++++ 2 files changed, 6 insertions(+), 12 deletions(-) diff --git a/api/server/controllers/PluginController.js b/api/server/controllers/PluginController.js index 938df25de9..1dbc7633ac 100644 --- a/api/server/controllers/PluginController.js +++ b/api/server/controllers/PluginController.js @@ -146,11 +146,7 @@ const getAvailableTools = async (req, res) => { const userPlugins = convertMCPToolsToPlugins(cachedUserTools, customConfig); if (cachedToolsArray && userPlugins) { - const dedupedTools = [ - ...new Map( - [...userPlugins, ...cachedToolsArray].map((tool) => [tool.pluginKey, tool]), - ).values(), - ]; + const dedupedTools = filterUniquePlugins([...userPlugins, ...cachedToolsArray]); res.status(200).json(dedupedTools); return; } @@ -230,9 +226,7 @@ const getAvailableTools = async (req, res) => { const finalTools = filterUniquePlugins(toolsOutput); await cache.set(CacheKeys.TOOLS, finalTools); - const dedupedTools = [ - ...new Map([...userPlugins, ...finalTools].map((tool) => [tool.pluginKey, tool])).values(), - ]; + const dedupedTools = filterUniquePlugins([...userPlugins, ...finalTools]); res.status(200).json(dedupedTools); } catch (error) { @@ -295,8 +289,4 @@ function convertMCPToolsToPlugins(functionTools, customConfig) { module.exports = { getAvailableTools, getAvailablePluginsController, - filterUniquePlugins, - checkPluginAuth, - createServerToolsCallback, - createGetServerTools, }; diff --git a/api/server/services/initializeMCPs.js b/api/server/services/initializeMCPs.js index 1330560213..18edb2449d 100644 --- a/api/server/services/initializeMCPs.js +++ b/api/server/services/initializeMCPs.js @@ -59,6 +59,10 @@ async function initializeMCPs(app) { await mcpManager.mapAvailableTools(toolsCopy, flowManager); await setCachedTools(toolsCopy, { isGlobal: true }); + const cache = getLogStores(CacheKeys.CONFIG_STORE); + await cache.delete(CacheKeys.TOOLS); + logger.debug('Cleared tools array cache after MCP initialization'); + logger.info('MCP servers initialized successfully'); } catch (error) { logger.error('Failed to initialize MCP servers:', error);