@@ -609,15 +609,17 @@ def handle_mcp_configure(host: str, server_name: str, command: str, args: list,
609609 headers_dict = parse_headers (headers )
610610
611611 # Create Omni configuration (universal model)
612- omni_config_data = {
613- 'name' : server_name ,
614- 'command' : command ,
615- 'args' : args , # Fixed: Don't convert None to [] - let Pydantic handle it
616- 'env' : env_dict ,
617- 'url' : url
618- }
619-
620- # Only add headers if URL is provided
612+ # Only include fields that have actual values to ensure model_dump(exclude_unset=True) works correctly
613+ omni_config_data = {'name' : server_name }
614+
615+ if command is not None :
616+ omni_config_data ['command' ] = command
617+ if args is not None :
618+ omni_config_data ['args' ] = args
619+ if env_dict :
620+ omni_config_data ['env' ] = env_dict
621+ if url is not None :
622+ omni_config_data ['url' ] = url
621623 if url and headers_dict :
622624 omni_config_data ['headers' ] = headers_dict
623625
@@ -1582,14 +1584,21 @@ def main():
15821584 pkg_name = package_names [i ]
15831585 try :
15841586 # Convert MCPServerConfig to Omni model
1585- omni_config = MCPServerConfigOmni (
1586- name = server_config .name ,
1587- command = server_config .command ,
1588- args = server_config .args ,
1589- env = server_config .env ,
1590- url = server_config .url ,
1591- headers = getattr (server_config , 'headers' , None )
1592- )
1587+ # Only include fields that have actual values
1588+ omni_config_data = {'name' : server_config .name }
1589+ if server_config .command is not None :
1590+ omni_config_data ['command' ] = server_config .command
1591+ if server_config .args is not None :
1592+ omni_config_data ['args' ] = server_config .args
1593+ if server_config .env :
1594+ omni_config_data ['env' ] = server_config .env
1595+ if server_config .url is not None :
1596+ omni_config_data ['url' ] = server_config .url
1597+ headers = getattr (server_config , 'headers' , None )
1598+ if headers is not None :
1599+ omni_config_data ['headers' ] = headers
1600+
1601+ omni_config = MCPServerConfigOmni (** omni_config_data )
15931602
15941603 # Convert to host-specific model
15951604 host_config = host_model_class .from_omni (omni_config )
@@ -1749,14 +1758,21 @@ def main():
17491758 continue
17501759
17511760 # Convert to Omni model
1752- omni_config = MCPServerConfigOmni (
1753- name = config .name ,
1754- command = config .command ,
1755- args = config .args ,
1756- env = config .env ,
1757- url = config .url ,
1758- headers = getattr (config , 'headers' , None )
1759- )
1761+ # Only include fields that have actual values
1762+ omni_config_data = {'name' : config .name }
1763+ if config .command is not None :
1764+ omni_config_data ['command' ] = config .command
1765+ if config .args is not None :
1766+ omni_config_data ['args' ] = config .args
1767+ if config .env :
1768+ omni_config_data ['env' ] = config .env
1769+ if config .url is not None :
1770+ omni_config_data ['url' ] = config .url
1771+ headers = getattr (config , 'headers' , None )
1772+ if headers is not None :
1773+ omni_config_data ['headers' ] = headers
1774+
1775+ omni_config = MCPServerConfigOmni (** omni_config_data )
17601776
17611777 # Generate report
17621778 report = generate_conversion_report (
@@ -1797,14 +1813,21 @@ def main():
17971813 for pkg_name , server_config in server_configs :
17981814 try :
17991815 # Convert MCPServerConfig to Omni model
1800- omni_config = MCPServerConfigOmni (
1801- name = server_config .name ,
1802- command = server_config .command ,
1803- args = server_config .args ,
1804- env = server_config .env ,
1805- url = server_config .url ,
1806- headers = getattr (server_config , 'headers' , None )
1807- )
1816+ # Only include fields that have actual values
1817+ omni_config_data = {'name' : server_config .name }
1818+ if server_config .command is not None :
1819+ omni_config_data ['command' ] = server_config .command
1820+ if server_config .args is not None :
1821+ omni_config_data ['args' ] = server_config .args
1822+ if server_config .env :
1823+ omni_config_data ['env' ] = server_config .env
1824+ if server_config .url is not None :
1825+ omni_config_data ['url' ] = server_config .url
1826+ headers = getattr (server_config , 'headers' , None )
1827+ if headers is not None :
1828+ omni_config_data ['headers' ] = headers
1829+
1830+ omni_config = MCPServerConfigOmni (** omni_config_data )
18081831
18091832 # Convert to host-specific model
18101833 host_config = host_model_class .from_omni (omni_config )
0 commit comments