ysharma HF Staff commited on
Commit
e31f116
·
verified ·
1 Parent(s): 16df101

Update ui_components.py

Browse files
Files changed (1) hide show
  1. ui_components.py +26 -16
ui_components.py CHANGED
@@ -8,7 +8,6 @@ from config import AppConfig, CUSTOM_CSS
8
  from chat_handler import ChatHandler
9
  from server_manager import ServerManager
10
  from mcp_client import UniversalMCPClient
11
- from mcp_spaces_finder import create_simple_mcp_selector
12
 
13
  class UIComponents:
14
  """Manages Gradio UI components and event handlers"""
@@ -70,11 +69,17 @@ class UIComponents:
70
  with gr.Accordion("⚙️ Manage Servers", open=False):
71
  gr.Markdown("**Add MCP Servers**")
72
 
73
- # Create MCP spaces dropdown selector
74
- self.mcp_dropdown, self.selected_space_textbox = create_simple_mcp_selector(
75
- dropdown_label="🤖 Select MCP Server",
76
- textbox_label="Selected HuggingFace Space",
77
- placeholder="No server selected"
 
 
 
 
 
 
78
  )
79
 
80
  # Server title input
@@ -157,10 +162,10 @@ class UIComponents:
157
  """Handle adding a server and update displays"""
158
  # Check if both title and space are provided
159
  if not server_title or not server_title.strip():
160
- return "❌ Please provide a server title", "", *update_server_display(), "", ""
161
 
162
- if not selected_space or selected_space == "No server selected":
163
- return "❌ Please select a HuggingFace space from the dropdown", "", *update_server_display(), "", ""
164
 
165
  # Use the selected space from dropdown
166
  status_msg, details_html = self.server_manager.add_custom_server(server_title.strip(), selected_space)
@@ -168,7 +173,7 @@ class UIComponents:
168
  # Update sidebar server display
169
  count_text, list_text = update_server_display()
170
 
171
- return status_msg, details_html, count_text, list_text, "", "" # Clear inputs
172
 
173
  def handle_refresh_status():
174
  """Handle refresh status button"""
@@ -182,21 +187,26 @@ class UIComponents:
182
  # Clear cache and get fresh spaces
183
  refresh_mcp_spaces()
184
  spaces = _finder.get_mcp_spaces()
185
-
186
- # Update dropdown choices
187
- return gr.Dropdown(choices=spaces, value=None, label=f"🤖 Select MCP Server ({len(spaces)} available)")
 
 
 
 
 
 
188
 
189
  # Connect server management events
190
  self.add_server_btn.click(
191
  handle_add_server,
192
- inputs=[self.server_name, self.selected_space_textbox], # Use the textbox that shows selected space
193
  outputs=[
194
  self.add_server_output,
195
  self.add_server_details,
196
  self.server_count_display,
197
  self.server_list_display,
198
- self.server_name,
199
- self.selected_space_textbox # Clear the selected space display
200
  ]
201
  )
202
 
 
8
  from chat_handler import ChatHandler
9
  from server_manager import ServerManager
10
  from mcp_client import UniversalMCPClient
 
11
 
12
  class UIComponents:
13
  """Manages Gradio UI components and event handlers"""
 
69
  with gr.Accordion("⚙️ Manage Servers", open=False):
70
  gr.Markdown("**Add MCP Servers**")
71
 
72
+ # Get MCP spaces count for dropdown label
73
+ from mcp_spaces_finder import _finder
74
+ spaces = _finder.get_mcp_spaces()
75
+ spaces_count = len(spaces)
76
+
77
+ # Create MCP spaces dropdown (without the textbox)
78
+ self.mcp_dropdown = gr.Dropdown(
79
+ choices=spaces,
80
+ label=f"🤖 Select from {spaces_count} Available MCP Server Spaces",
81
+ value=None,
82
+ info="Choose a HuggingFace space that provides MCP server functionality"
83
  )
84
 
85
  # Server title input
 
162
  """Handle adding a server and update displays"""
163
  # Check if both title and space are provided
164
  if not server_title or not server_title.strip():
165
+ return "❌ Please provide a server title", "", *update_server_display(), ""
166
 
167
+ if not selected_space:
168
+ return "❌ Please select a HuggingFace space from the dropdown", "", *update_server_display(), ""
169
 
170
  # Use the selected space from dropdown
171
  status_msg, details_html = self.server_manager.add_custom_server(server_title.strip(), selected_space)
 
173
  # Update sidebar server display
174
  count_text, list_text = update_server_display()
175
 
176
+ return status_msg, details_html, count_text, list_text, "" # Clear server name input
177
 
178
  def handle_refresh_status():
179
  """Handle refresh status button"""
 
187
  # Clear cache and get fresh spaces
188
  refresh_mcp_spaces()
189
  spaces = _finder.get_mcp_spaces()
190
+ spaces_count = len(spaces)
191
+
192
+ # Update dropdown choices with new count
193
+ return gr.Dropdown(
194
+ choices=spaces,
195
+ value=None,
196
+ label=f"🤖 Select from {spaces_count} Available MCP Server Spaces",
197
+ info="Choose a HuggingFace space that provides MCP server functionality"
198
+ )
199
 
200
  # Connect server management events
201
  self.add_server_btn.click(
202
  handle_add_server,
203
+ inputs=[self.server_name, self.mcp_dropdown], # Use dropdown directly
204
  outputs=[
205
  self.add_server_output,
206
  self.add_server_details,
207
  self.server_count_display,
208
  self.server_list_display,
209
+ self.server_name # Clear server name input
 
210
  ]
211
  )
212