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...")
|