fix(ui): extra_headers not persisting on MCP server edit

Set extra_headers explicitly in initialValues instead of relying on
a useEffect setFieldValue call that races with Antd form initialization.
Also avoid sending empty array on submit so the backend's exclude_none
doesn't overwrite stored values.
This commit is contained in:
Ryan Crabbe
2026-04-17 22:48:39 -07:00
parent 850fe595ac
commit c28877757c
2 changed files with 2 additions and 5 deletions
@@ -27,10 +27,6 @@ const MCPPermissionManagement: React.FC<MCPPermissionManagementProps> = ({
// Set initial values when mcpServer changes
useEffect(() => {
if (mcpServer) {
// Set extra_headers if they exist
if (mcpServer.extra_headers) {
form.setFieldValue("extra_headers", mcpServer.extra_headers);
}
if (mcpServer.static_headers) {
const staticHeaders = Object.entries(mcpServer.static_headers).map(([header, value]) => ({
header,
@@ -189,6 +189,7 @@ const MCPServerEdit: React.FC<MCPServerEditProps> = ({
...mcpServer,
transport: effectiveTransport,
static_headers: initialStaticHeaders,
extra_headers: mcpServer.extra_headers || [],
oauth_flow_type: mcpServer.token_url ? OAUTH_FLOW.M2M : OAUTH_FLOW.INTERACTIVE,
token_validation_json: mcpServer.token_validation
? JSON.stringify(mcpServer.token_validation, null, 2)
@@ -563,7 +564,7 @@ const MCPServerEdit: React.FC<MCPServerEditProps> = ({
mcp_access_groups: accessGroups,
alias: restValues.alias,
// Include permission management fields
extra_headers: restValues.extra_headers || [],
extra_headers: restValues.extra_headers?.length ? restValues.extra_headers : undefined,
allowed_tools: allowedTools.length > 0 ? allowedTools : null,
tool_name_to_display_name: Object.keys(toolNameToDisplayName).length > 0 ? toolNameToDisplayName : null,
tool_name_to_description: Object.keys(toolNameToDescription).length > 0 ? toolNameToDescription : null,