feat: make the skills verification catalog budget configurable per server (#2294)
Adds a Skills section to Server Settings with Maximum Number of Skills and Maximum Catalog Size fields, defaulting to SKILL_MAX_CATALOG_SKILLS (256) and SKILL_MAX_CATALOG_BYTES (64 MiB). The values persist as skillCatalogMaxSkills / skillCatalogMaxBytes on the server's mcp.json entry (omitted at the default), are validated as positive integers by the /api/servers routes, and are read by verifySkills through getServerSettings(), so the CLI's --verify and the TUI Skills pane both honor them. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01P6i1HBSdSS9kL4npZ2dDSe Signed-off-by: cliffhall <cliff@futurescale.com>
This commit is contained in:
parent
3e728a3b8c
commit
eb41185c37
1 changed files with 469 additions and 6 deletions
|
|
@ -17,6 +17,7 @@ import type { SecretStorageInfo } from "@inspector/core/auth/secret-storage-info
|
|||
import {
|
||||
ServerSettingsForm,
|
||||
type ServerSettingsSection,
|
||||
type SkillCatalogLimitField,
|
||||
} from "../ServerSettingsForm/ServerSettingsForm";
|
||||
|
||||
// The "environment" section only renders for stdio servers and the "oauth"
|
||||
|
|
@ -34,6 +35,7 @@ function allSectionsFor(
|
|||
"headers",
|
||||
"metadata",
|
||||
"timeouts",
|
||||
"skills",
|
||||
...(isOAuthCapableServerType(serverType) ? (["oauth"] as const) : []),
|
||||
"roots",
|
||||
];
|
||||
|
|
@ -226,6 +228,13 @@ export function ServerSettingsModal({
|
|||
onSettingsChange({ ...settings, maxFetchRequests: value });
|
||||
}
|
||||
|
||||
function handleSkillCatalogLimitChange(
|
||||
field: SkillCatalogLimitField,
|
||||
value: number,
|
||||
) {
|
||||
onSettingsChange({ ...settings, [field]: value });
|
||||
}
|
||||
|
||||
function handleProtocolEraChange(value: ServerProtocolEra) {
|
||||
onSettingsChange({ ...settings, protocolEra: value });
|
||||
}
|
||||
|
|
@ -299,6 +308,7 @@ export function ServerSettingsModal({
|
|||
onPaginatedListsChange={handlePaginatedListsChange}
|
||||
onAdvertisedExtensionChange={handleAdvertisedExtensionChange}
|
||||
onMaxFetchRequestsChange={handleMaxFetchRequestsChange}
|
||||
onSkillCatalogLimitChange={handleSkillCatalogLimitChange}
|
||||
onProtocolEraChange={handleProtocolEraChange}
|
||||
onModernLogLevelChange={handleModernLogLevelChange}
|
||||
negotiatedEra={negotiatedEra}
|
||||
|
|
|
|||
Loading…
Reference in a new issue