Validate duplicate MCP server names before save
This commit is contained in:
parent
4fcb826b0b
commit
a6a13b701c
1 changed files with 30 additions and 0 deletions
|
|
@ -217,6 +217,17 @@ export function ConfigPage() {
|
|||
throw new Error("Session scope is required.")
|
||||
}
|
||||
|
||||
if (
|
||||
form.mcpEnabled &&
|
||||
form.mcpDiscoveryEnabled &&
|
||||
!form.mcpDiscoveryUseBM25 &&
|
||||
!form.mcpDiscoveryUseRegex
|
||||
) {
|
||||
throw new Error(
|
||||
"MCP discovery requires at least one search method (BM25 or regex).",
|
||||
)
|
||||
}
|
||||
|
||||
const maxTokens = parseIntField(form.maxTokens, "Max tokens", {
|
||||
min: 1,
|
||||
})
|
||||
|
|
@ -282,6 +293,25 @@ export function ConfigPage() {
|
|||
}))
|
||||
.filter((server) => server.name !== "")
|
||||
|
||||
const serverNameCounts = new Map<string, number>()
|
||||
for (const server of normalizedServers) {
|
||||
serverNameCounts.set(
|
||||
server.name,
|
||||
(serverNameCounts.get(server.name) ?? 0) + 1,
|
||||
)
|
||||
}
|
||||
|
||||
const duplicateNames = Array.from(serverNameCounts.entries())
|
||||
.filter(([, count]) => count > 1)
|
||||
.map(([name]) => name)
|
||||
.sort((a, b) => a.localeCompare(b))
|
||||
|
||||
if (duplicateNames.length > 0) {
|
||||
throw new Error(
|
||||
`MCP server names must be unique. Duplicates: ${duplicateNames.join(", ")}.`,
|
||||
)
|
||||
}
|
||||
|
||||
const currentServerNames = new Set(
|
||||
normalizedServers.map((server) => server.name),
|
||||
)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue