File tree Expand file tree Collapse file tree 2 files changed +15
-11
lines changed
components/admin/mcp-catalog
views/admin/mcp-server-catalog/view Expand file tree Collapse file tree 2 files changed +15
-11
lines changed Original file line number Diff line number Diff line change @@ -238,17 +238,21 @@ const initializeStorageWithData = (data: McpServerFormData) => {
238238 let serverConfig: any = null
239239
240240 if (technicalData .remotes && Array .isArray (technicalData .remotes ) && technicalData .remotes .length > 0 ) {
241- // HTTP/SSE server from remotes
242- const remote = technicalData .remotes [0 ]
243- serverConfig = {
244- url: remote .url ,
245- type: remote .type || ' sse' ,
246- headers: remote .headers || {}
241+ // HTTP/SSE server from remotes - find first valid remote with url
242+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
243+ const remote = technicalData .remotes .find ((r : any ) => r && typeof r === ' object' && r .url )
244+ if (remote ) {
245+ serverConfig = {
246+ url: remote .url ,
247+ type: remote .type || ' sse' ,
248+ headers: remote .headers || {}
249+ }
247250 }
248251 } else if (technicalData .packages && Array .isArray (technicalData .packages ) && technicalData .packages .length > 0 ) {
249- // STDIO server from packages
250- const pkg = technicalData .packages [0 ]
251- if (pkg .transport ) {
252+ // STDIO server from packages - find first valid package
253+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
254+ const pkg = technicalData .packages .find ((p : any ) => p && typeof p === ' object' )
255+ if (pkg && pkg .transport ) {
252256 serverConfig = {
253257 command: pkg .transport .command || ' npx' ,
254258 args: pkg .transport .args || [],
Original file line number Diff line number Diff line change @@ -102,12 +102,12 @@ const displayRemotes = computed(() => {
102102 if (! server .value ?.remotes ) return []
103103 // Handle both array and JSON string formats
104104 if (Array .isArray (server .value .remotes )) {
105- return server .value .remotes .filter (remote => remote != null )
105+ return server .value .remotes .filter (remote => remote != null && typeof remote === ' object ' && remote . url )
106106 }
107107 try {
108108 // eslint-disable-next-line @typescript-eslint/no-explicit-any
109109 const parsed = JSON .parse (server .value .remotes as any )
110- return Array .isArray (parsed ) ? parsed .filter (remote => remote != null ) : []
110+ return Array .isArray (parsed ) ? parsed .filter (remote => remote != null && typeof remote === ' object ' && remote . url ) : []
111111 } catch {
112112 return []
113113 }
You can’t perform that action at this time.
0 commit comments