🪪 fix: Prevent MCP Server Name Collisions (#13256)

* fix: prevent MCP server name collisions

* chore: address MCP registry review nits

* fix: reserve MCP config names from request context

* chore: format MCP registry changes

* chore: address MCP collision review findings
This commit is contained in:
Danny Avila 2026-05-22 20:46:14 -04:00 committed by GitHub
parent d462bf4113
commit bd64251eb9
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
12 changed files with 354 additions and 49 deletions

View file

@ -14,7 +14,11 @@ const {
isMCPInspectionFailedError,
} = require('@librechat/api');
const { Constants, MCPServerUserInputSchema } = require('librechat-data-provider');
const { resolveConfigServers, resolveAllMcpConfigs } = require('~/server/services/MCP');
const {
resolveConfigServers,
resolveMcpConfigNames,
resolveAllMcpConfigs,
} = require('~/server/services/MCP');
const { cacheMCPServerTools, getMCPServerTools } = require('~/server/services/Config');
const { getMCPManager, getMCPServersRegistry } = require('~/config');
@ -213,11 +217,13 @@ const createMCPServerController = async (req, res) => {
errors: validation.error.errors,
});
}
const reservedServerNames = await resolveMcpConfigNames(req);
const result = await getMCPServersRegistry().addServer(
'temp_server_name',
validation.data,
'DB',
userId,
reservedServerNames,
);
res.status(201).json({
serverName: result.serverName,