File size: 1,847 Bytes
cce8120 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 | #!/usr/bin/env bash
set -Eeuo pipefail
HF_URL="${HF_URL:-https://daviddolor-website-builder-backend.hf.space}"
OPENAPI="${HF_URL}/openapi.json"
MCP="${HF_URL}/mcp"
mkdir -p mcp reports
echo "[1/12] Downloading OpenAPI..."
curl -fsSL "$OPENAPI" -o mcp/openapi.json
echo "[2/12] Reading API endpoints..."
jq -r '
.paths
| to_entries[]
| select(.key|startswith("/api/"))
| "\(.key)"
' mcp/openapi.json > mcp/api_routes.txt
echo "[3/12] Building MCP tool definitions..."
jq '
.paths
| to_entries
| map(
select(.key|startswith("/api/"))
| {
name:(.key
| sub("^/api/";"")
| gsub("/";"_")
| gsub("[{}]";"")
),
path:.key,
methods:(.value|keys),
description:(
.value
| to_entries[0].value.summary // ""
)
}
)
' mcp/openapi.json > mcp/generated_tools.json
echo "[4/12] Existing MCP tools..."
curl -fsSL \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}' \
"$MCP" \
> mcp/current_tools.json
echo "[5/12] Comparing..."
jq '.result.tools|length' mcp/current_tools.json > mcp/current.count
jq 'length' mcp/generated_tools.json > mcp/generated.count
CURRENT=$(cat mcp/current.count)
GENERATED=$(cat mcp/generated.count)
echo "[6/12] Creating sync report..."
cat > reports/mcp_sync_report.txt <<REPORT
HF Backend : $HF_URL
Current MCP Tools : $CURRENT
Generated Tools : $GENERATED
OpenAPI : mcp/openapi.json
Generated Registry :
mcp/generated_tools.json
REPORT
echo "[7/12] Preview Generated..."
jq '.[0:20]' mcp/generated_tools.json
echo "[8/12] Preview Existing..."
jq '.result.tools' mcp/current_tools.json
echo "[9/12] API routes:"
wc -l mcp/api_routes.txt
echo "[10/12] Generated registry ready."
echo "[11/12] Sync report written."
echo "[12/12] Complete."
|