@@ -522,28 +522,35 @@ def get_options(self) -> List[StepOption]:
522522 try :
523523 from app .tui .mcp_settings import list_mcp_servers
524524 servers = list_mcp_servers ()
525-
526- # Create a lookup by name
527- server_lookup = {s ["name" ]: s for s in servers }
528-
529- # Return only recommended servers that exist in config
530- options = []
531- for name , (icon , requires_setup ) in self .RECOMMENDED_SERVERS .items ():
532- if name in server_lookup :
533- server = server_lookup [name ]
534- label = server ["name" ].replace ("-" , " " ).replace (" mcp" , "" ).title ()
535- options .append (StepOption (
536- value = server ["name" ],
537- label = label ,
538- description = server .get ("description" , f"MCP server: { server ['name' ]} " ),
539- default = server .get ("enabled" , False ),
540- icon = icon ,
541- requires_setup = requires_setup
542- ))
543- return options
544- except ImportError :
525+ except Exception :
526+ # If MCP config is completely broken, show nothing rather than
527+ # crashing the wizard — the user can configure later in Settings.
545528 return []
546529
530+ # Create a lookup by name
531+ server_lookup = {s ["name" ]: s for s in servers }
532+
533+ # Return only recommended servers that exist in config
534+ options = []
535+ for name , (icon , requires_setup ) in self .RECOMMENDED_SERVERS .items ():
536+ if name in server_lookup :
537+ server = server_lookup [name ]
538+ label = server ["name" ].replace ("-" , " " ).replace (" mcp" , "" ).title ()
539+ # Append platform warning to description when server paths
540+ # are incompatible with the current OS
541+ desc = server .get ("description" , f"MCP server: { server ['name' ]} " )
542+ if server .get ("platform_blocked" ):
543+ label += " (⚠ Windows-only — requires setup on this OS)"
544+ options .append (StepOption (
545+ value = server ["name" ],
546+ label = label ,
547+ description = desc ,
548+ default = server .get ("enabled" , False ),
549+ icon = icon ,
550+ requires_setup = requires_setup ,
551+ ))
552+ return options
553+
547554 def validate (self , value : Any ) -> tuple [bool , Optional [str ]]:
548555 # Value should be a list of server names
549556 if not isinstance (value , list ):
0 commit comments