mirror of
https://github.com/danny-avila/LibreChat.git
synced 2025-12-17 00:40:14 +01:00
* 🛠️ refactor: Consolidate MCP Tool Caching * 🐍 fix: Correctly mock and utilize updateMCPUserTools in MCP route tests
30 lines
812 B
JavaScript
30 lines
812 B
JavaScript
const { logger } = require('@librechat/data-schemas');
|
|
const { createMCPManager } = require('~/config');
|
|
const { mergeAppTools } = require('./Config');
|
|
|
|
/**
|
|
* Initialize MCP servers
|
|
* @param {import('express').Application} app - Express app instance
|
|
*/
|
|
async function initializeMCPs(app) {
|
|
const mcpServers = app.locals.mcpConfig;
|
|
if (!mcpServers) {
|
|
return;
|
|
}
|
|
|
|
const mcpManager = await createMCPManager(mcpServers);
|
|
|
|
try {
|
|
delete app.locals.mcpConfig;
|
|
const mcpTools = mcpManager.getAppToolFunctions() || {};
|
|
await mergeAppTools(mcpTools);
|
|
|
|
logger.info(
|
|
`MCP servers initialized successfully. Added ${Object.keys(mcpTools).length} MCP tools.`,
|
|
);
|
|
} catch (error) {
|
|
logger.error('Failed to initialize MCP servers:', error);
|
|
}
|
|
}
|
|
|
|
module.exports = initializeMCPs;
|