Spaces:
Sleeping
Sleeping
Commit
Β·
20736c7
1
Parent(s):
613d572
Add MCP demo script
Browse files- 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
|