Spaces:
Sleeping
Sleeping
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
app.py
CHANGED
@@ -307,7 +307,11 @@ while True:
|
|
307 |
label="Template Code"
|
308 |
)
|
309 |
|
310 |
-
creation_result = gr.
|
|
|
|
|
|
|
|
|
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.
|
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.
|
404 |
-
value={"path": "/
|
405 |
-
label="Connection Parameters"
|
|
|
406 |
)
|
407 |
|
408 |
connect_btn = gr.Button("π Connect [DEMO]", variant="primary")
|
409 |
|
410 |
with gr.Column():
|
411 |
-
connection_status = gr.
|
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.
|
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) ->
|
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 |
-
|
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) ->
|
633 |
"""Refresh server status"""
|
634 |
session = self.sessions.get(session_id, {})
|
635 |
servers = session.get("servers", [])
|
636 |
|
637 |
-
|
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...")
|