seanpoyner commited on
Commit
655a6c3
Β·
1 Parent(s): 761f837

fix: Update app.py with gr.Group() fix and latest features

Browse files

- Replace deprecated gr.Box() with gr.Group() for Gradio 4.31.0 compatibility
- Add Claude Desktop integration features
- Update documentation
- Ensure all demo features work correctly

Files changed (1) hide show
  1. app.py +33 -18
app.py CHANGED
@@ -307,7 +307,11 @@ while True:
307
  label="Template Code"
308
  )
309
 
310
- creation_result = gr.JSON(label="Creation Result")
 
 
 
 
311
 
312
  # Pipeline Builder Tab
313
  with gr.Tab("Pipeline Builder [DEMO]"):
@@ -352,9 +356,11 @@ while True:
352
  with gr.Tab("Active Servers"):
353
  gr.Markdown("### Running MCP Servers")
354
 
355
- server_list = gr.JSON(
356
- value={"servers": [], "message": "No active servers"},
357
- label="Server Status"
 
 
358
  )
359
 
360
  with gr.Row():
@@ -400,24 +406,29 @@ while True:
400
  value="Filesystem"
401
  )
402
 
403
- connect_params = gr.JSON(
404
- value={"path": "/home/user"},
405
- label="Connection Parameters"
 
406
  )
407
 
408
  connect_btn = gr.Button("πŸ”— Connect [DEMO]", variant="primary")
409
 
410
  with gr.Column():
411
- connection_status = gr.JSON(
412
- value={"status": "Not connected"},
413
- label="Connection Status"
 
 
414
  )
415
 
416
  with gr.Tab("Active Connections [DEMO]"):
417
  gr.Markdown("### Currently Connected Servers")
418
- gr.JSON(
419
- value={"connections": [], "message": "No active connections in demo"},
420
- label="Active Connections"
 
 
421
  )
422
 
423
  with gr.Tab("Custom Connection [DEMO]"):
@@ -527,7 +538,7 @@ while True:
527
  )
528
 
529
  connect_btn.click(
530
- lambda: {"status": "Demo mode - install full version to connect to real MCP servers"},
531
  inputs=[],
532
  outputs=[connection_status]
533
  )
@@ -606,7 +617,7 @@ while True:
606
  template = next((t for t in self.templates if t["name"] == template_name), None)
607
  return template["code"] if template else ""
608
 
609
- def create_server(self, template_name: str, session_id: str) -> Dict:
610
  """Create a demo server"""
611
  # Initialize session
612
  if session_id not in self.sessions:
@@ -622,24 +633,28 @@ while True:
622
 
623
  self.sessions[session_id]["servers"].append(server_info)
624
 
625
- return {
626
  "success": True,
627
  "message": f"Server created from {template_name} template",
628
  "server": server_info,
629
  "note": "This is a demo - install full version for real server creation"
630
  }
 
 
631
 
632
- def refresh_status(self, session_id: str) -> Dict:
633
  """Refresh server status"""
634
  session = self.sessions.get(session_id, {})
635
  servers = session.get("servers", [])
636
 
637
- return {
638
  "servers": servers,
639
  "count": len(servers),
640
  "message": f"{len(servers)} active server(s)" if servers else "No active servers",
641
  "timestamp": datetime.now().isoformat()
642
  }
 
 
643
 
644
  # Create and launch the app
645
  print("πŸš€ Starting Gradio MCP Playground...")
 
307
  label="Template Code"
308
  )
309
 
310
+ creation_result = gr.Textbox(
311
+ label="Creation Result",
312
+ lines=5,
313
+ interactive=False
314
+ )
315
 
316
  # Pipeline Builder Tab
317
  with gr.Tab("Pipeline Builder [DEMO]"):
 
356
  with gr.Tab("Active Servers"):
357
  gr.Markdown("### Running MCP Servers")
358
 
359
+ server_list = gr.Textbox(
360
+ value='{"servers": [], "message": "No active servers"}',
361
+ label="Server Status",
362
+ lines=5,
363
+ interactive=False
364
  )
365
 
366
  with gr.Row():
 
406
  value="Filesystem"
407
  )
408
 
409
+ connect_params = gr.Textbox(
410
+ value='{"path": "/workspace"}',
411
+ label="Connection Parameters (JSON)",
412
+ lines=3
413
  )
414
 
415
  connect_btn = gr.Button("πŸ”— Connect [DEMO]", variant="primary")
416
 
417
  with gr.Column():
418
+ connection_status = gr.Textbox(
419
+ value='{"status": "Not connected"}',
420
+ label="Connection Status",
421
+ lines=3,
422
+ interactive=False
423
  )
424
 
425
  with gr.Tab("Active Connections [DEMO]"):
426
  gr.Markdown("### Currently Connected Servers")
427
+ gr.Textbox(
428
+ value='{"connections": [], "message": "No active connections in demo"}',
429
+ label="Active Connections",
430
+ lines=5,
431
+ interactive=False
432
  )
433
 
434
  with gr.Tab("Custom Connection [DEMO]"):
 
538
  )
539
 
540
  connect_btn.click(
541
+ lambda: '{"status": "Demo mode - install full version to connect to real MCP servers"}',
542
  inputs=[],
543
  outputs=[connection_status]
544
  )
 
617
  template = next((t for t in self.templates if t["name"] == template_name), None)
618
  return template["code"] if template else ""
619
 
620
+ def create_server(self, template_name: str, session_id: str) -> str:
621
  """Create a demo server"""
622
  # Initialize session
623
  if session_id not in self.sessions:
 
633
 
634
  self.sessions[session_id]["servers"].append(server_info)
635
 
636
+ result = {
637
  "success": True,
638
  "message": f"Server created from {template_name} template",
639
  "server": server_info,
640
  "note": "This is a demo - install full version for real server creation"
641
  }
642
+
643
+ return json.dumps(result, indent=2)
644
 
645
+ def refresh_status(self, session_id: str) -> str:
646
  """Refresh server status"""
647
  session = self.sessions.get(session_id, {})
648
  servers = session.get("servers", [])
649
 
650
+ result = {
651
  "servers": servers,
652
  "count": len(servers),
653
  "message": f"{len(servers)} active server(s)" if servers else "No active servers",
654
  "timestamp": datetime.now().isoformat()
655
  }
656
+
657
+ return json.dumps(result, indent=2)
658
 
659
  # Create and launch the app
660
  print("πŸš€ Starting Gradio MCP Playground...")