Emperor555 commited on
Commit
20736c7
Β·
1 Parent(s): 613d572

Add MCP demo script

Browse files
Files changed (1) hide show
  1. demo-mcp.sh +83 -0
demo-mcp.sh ADDED
@@ -0,0 +1,83 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/bin/bash
2
+ # demo-mcp.sh - Explainor MCP Server Demo Script
3
+ # MCP's 1st Birthday Hackathon - kaiser-data
4
+
5
+ set -e
6
+
7
+ MCP_URL="https://kaiser-data-mcp-1st-birthday-explainor.hf.space/gradio_api"
8
+ GREEN='\033[0;32m'
9
+ RED='\033[0;31m'
10
+ BLUE='\033[0;34m'
11
+ YELLOW='\033[1;33m'
12
+ NC='\033[0m' # No Color
13
+
14
+ echo -e "${BLUE}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
15
+ echo -e "${BLUE} 🎭 Explainor MCP Server Demo${NC}"
16
+ echo -e "${BLUE}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
17
+ echo ""
18
+
19
+ # 1. Health Check
20
+ echo -e "${YELLOW}[1/3] Checking MCP Server Health...${NC}"
21
+ SCHEMA=$(curl -s "${MCP_URL}/mcp/schema" 2>/dev/null)
22
+
23
+ if [ -z "$SCHEMA" ]; then
24
+ echo -e "${RED}βœ— Server not responding. It may be sleeping.${NC}"
25
+ echo -e " Visit: https://kaiser-data-mcp-1st-birthday-explainor.hf.space"
26
+ exit 1
27
+ fi
28
+
29
+ TOOL_COUNT=$(echo "$SCHEMA" | python3 -c "import sys,json; print(len(json.load(sys.stdin)))" 2>/dev/null || echo "0")
30
+ echo -e "${GREEN}βœ“ Connected! Found ${TOOL_COUNT} tools${NC}"
31
+ echo ""
32
+
33
+ # 2. List Available Tools
34
+ echo -e "${YELLOW}[2/3] Available MCP Tools:${NC}"
35
+ echo "$SCHEMA" | python3 -c "
36
+ import sys, json
37
+ tools = json.load(sys.stdin)
38
+ for t in tools:
39
+ name = t['name'].replace('MCP_1st_Birthday_explainor_', '')
40
+ print(f' β€’ {name}')
41
+ " 2>/dev/null
42
+ echo ""
43
+
44
+ # 3. Demo Call
45
+ echo -e "${YELLOW}[3/3] Demo: Explain 'AI' as a 5-Year-Old...${NC}"
46
+ echo ""
47
+
48
+ # Make async call
49
+ RESPONSE=$(curl -s -X POST "${MCP_URL}/call/process_and_explain" \
50
+ -H "Content-Type: application/json" \
51
+ -d '{"data": ["Artificial Intelligence", "πŸ‘Ά 5-Year-Old", "πŸ‘€ Just me"]}')
52
+
53
+ EVENT_ID=$(echo "$RESPONSE" | python3 -c "import sys,json; print(json.load(sys.stdin).get('event_id',''))" 2>/dev/null)
54
+
55
+ if [ -z "$EVENT_ID" ]; then
56
+ echo -e "${RED}βœ— Failed to start request${NC}"
57
+ exit 1
58
+ fi
59
+
60
+ echo -e " Request ID: ${EVENT_ID}"
61
+ echo -e " Waiting for response..."
62
+
63
+ # Poll for result (with timeout)
64
+ for i in {1..30}; do
65
+ sleep 2
66
+ RESULT=$(curl -s "${MCP_URL}/call/process_and_explain/${EVENT_ID}" 2>/dev/null)
67
+
68
+ if echo "$RESULT" | grep -q "event: complete"; then
69
+ EXPLANATION=$(echo "$RESULT" | grep "^data:" | head -1 | sed 's/^data: //' | python3 -c "import sys,json; print(json.load(sys.stdin)[0])" 2>/dev/null)
70
+ echo ""
71
+ echo -e "${GREEN}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
72
+ echo -e "${GREEN} πŸ‘Ά 5-Year-Old says:${NC}"
73
+ echo -e "${GREEN}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}"
74
+ echo ""
75
+ echo -e " $EXPLANATION"
76
+ echo ""
77
+ echo -e "${GREEN}βœ“ Demo complete!${NC}"
78
+ exit 0
79
+ fi
80
+ done
81
+
82
+ echo -e "${RED}βœ— Timeout waiting for response${NC}"
83
+ exit 1