@@ -263,41 +263,38 @@ def k8s_get_configmap_data(name: str):
263263 try :
264264 current = srv_info .get (name , {})
265265 patch = {'uuid' : current .get ('uuid' ), 'name' : name , 'type' : st }
266- changed = False
267- if desired_url and (current .get ('url' ) or '' ) != desired_url :
268- patch ['url' ] = desired_url ; changed = True
269- if 'bearerToken' in body and (current .get ('bearerToken' ) or '' ) != body .get ('bearerToken' ):
270- patch ['bearerToken' ] = body ['bearerToken' ]; changed = True
266+ # Always include required field for HTTP/SSE: url
267+ if desired_url :
268+ patch ['url' ] = desired_url
269+ # Optional fields
270+ if 'bearerToken' in body :
271+ patch ['bearerToken' ] = body ['bearerToken' ]
271272 if 'headers' in body :
272- # best-effort compare
273- cur_headers = current .get ('headers' ) or {}
274- if cur_headers != body ['headers' ]:
275- patch ['headers' ] = body ['headers' ]; changed = True
276- if changed :
277- r = trpc_post ('/trpc/frontend/frontend.mcpServers.update' , patch )
278- if r .ok :
279- log (f"server updated: { name } " )
280- else :
281- log (f"WARN server update { name } -> { r .status_code } : { r .text [:160 ]} " )
273+ patch ['headers' ] = body ['headers' ]
274+ r = trpc_post ('/trpc/frontend/frontend.mcpServers.update' , patch )
275+ if r .ok :
276+ log (f"server updated: { name } " )
277+ else :
278+ log (f"WARN server update { name } -> { r .status_code } : { r .text [:160 ]} " )
282279 except Exception :
283280 pass
284281 elif UPDATE_EXISTING and st == 'STDIO' :
285282 try :
286283 current = srv_info .get (name , {})
287284 patch = {'uuid' : current .get ('uuid' ), 'name' : name , 'type' : st }
288- changed = False
289- if desired_cmd is not None and ( current . get ( 'command' ) or '' ) != desired_cmd :
290- patch ['command' ] = desired_cmd ; changed = True
291- if desired_args is not None and ( current . get ( ' args' ) or []) != desired_args :
292- patch [ 'args' ] = desired_args ; changed = True
293- if desired_env is not None and ( current . get ( 'env' ) or {}) != desired_env :
294- patch [ 'env' ] = desired_env ; changed = True
295- if changed :
296- r = trpc_post ('/trpc/frontend/frontend.mcpServers.update' , patch )
297- if r .ok :
298- log (f"server updated: { name } " )
299- else :
300- log (f"WARN server update { name } -> { r .status_code } : { r .text [:160 ]} " )
285+ # Always include required field for STDIO: command
286+ if desired_cmd is not None :
287+ patch ['command' ] = desired_cmd
288+ # Include args/env when provided
289+ if desired_args is not None :
290+ patch [ 'args' ] = desired_args
291+ if desired_env is not None :
292+ patch [ 'env' ] = desired_env
293+ r = trpc_post ('/trpc/frontend/frontend.mcpServers.update' , patch )
294+ if r .ok :
295+ log (f"server updated: { name } " )
296+ else :
297+ log (f"WARN server update { name } -> { r .status_code } : { r .text [:160 ]} " )
301298 except Exception :
302299 pass
303300 continue
0 commit comments