mirror of
https://github.com/danny-avila/LibreChat.git
synced 2025-12-22 19:30:15 +01:00
WIP: appConfig fix: update memory configuration retrieval to use getAppConfig based on user role fix: update comment for AppConfig interface to clarify purpose
40 lines
1.2 KiB
JavaScript
40 lines
1.2 KiB
JavaScript
const { logger } = require('@librechat/data-schemas');
|
|
const { getCachedTools, setCachedTools, getAppConfig } = require('./Config');
|
|
const { CacheKeys } = require('librechat-data-provider');
|
|
const { createMCPManager } = require('~/config');
|
|
const { getLogStores } = require('~/cache');
|
|
|
|
/**
|
|
* Initialize MCP servers
|
|
*/
|
|
async function initializeMCPs() {
|
|
const appConfig = await getAppConfig();
|
|
const mcpServers = appConfig.mcpConfig;
|
|
if (!mcpServers) {
|
|
return;
|
|
}
|
|
|
|
const mcpManager = await createMCPManager(mcpServers);
|
|
|
|
try {
|
|
const cachedTools = await getCachedTools();
|
|
|
|
if (!cachedTools) {
|
|
logger.warn('No available tools found in cache during MCP initialization');
|
|
return;
|
|
}
|
|
|
|
const mcpTools = mcpManager.getAppToolFunctions() ?? {};
|
|
await setCachedTools({ ...cachedTools, ...mcpTools }, { 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);
|
|
}
|
|
}
|
|
|
|
module.exports = initializeMCPs;
|