Skip to content

Commit ccccaab

Browse files
author
Olivier Gintrand
committed
fix(admin): preserve meta-server config during server create and edit
The form sends 'meta_server_enabled' checkbox (value 'on') but the backend was reading 'server_type' which is never in the form data, causing it to always default to 'standard'. Also fix hide_underlying_tools to accept the 'on' value that checkboxes send.
1 parent f0c8df7 commit ccccaab

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

mcpgateway/admin.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3022,8 +3022,8 @@ async def admin_add_server(request: Request, db: Session = Depends(get_db), user
30223022
visibility=visibility,
30233023
oauth_enabled=oauth_enabled,
30243024
oauth_config=oauth_config,
3025-
server_type=str(form.get("server_type", "standard")),
3026-
hide_underlying_tools=form.get("hide_underlying_tools", "false") == "true",
3025+
server_type="meta" if form.get("meta_server_enabled") else str(form.get("server_type", "standard")),
3026+
hide_underlying_tools=form.get("hide_underlying_tools") == "true" or form.get("hide_underlying_tools") == "on",
30273027
)
30283028
except KeyError as e:
30293029
# Convert KeyError to ValidationError-like response
@@ -3187,8 +3187,8 @@ async def admin_edit_server(
31873187
owner_email=user_email,
31883188
oauth_enabled=oauth_enabled,
31893189
oauth_config=oauth_config,
3190-
server_type=str(form.get("server_type", "standard")),
3191-
hide_underlying_tools=form.get("hide_underlying_tools", "false") == "true",
3190+
server_type="meta" if form.get("meta_server_enabled") else str(form.get("server_type", "standard")),
3191+
hide_underlying_tools=form.get("hide_underlying_tools") == "true" or form.get("hide_underlying_tools") == "on",
31923192
)
31933193

31943194
await server_service.update_server(

0 commit comments

Comments
 (0)