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.")
|
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", {
|
const maxTokens = parseIntField(form.maxTokens, "Max tokens", {
|
||||||
min: 1,
|
min: 1,
|
||||||
})
|
})
|
||||||
|
|
@ -282,6 +293,25 @@ export function ConfigPage() {
|
||||||
}))
|
}))
|
||||||
.filter((server) => server.name !== "")
|
.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(
|
const currentServerNames = new Set(
|
||||||
normalizedServers.map((server) => server.name),
|
normalizedServers.map((server) => server.name),
|
||||||
)
|
)
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue