website-builder-backend / frontend /scripts /39_sync_openapi_to_mcp.sh
David Prince
fix: add all missing local module stubs (remote_mcp_registry, mcp_auth, mcp_transport, etc)
cce8120
Raw
History Blame Contribute Delete
1.85 kB
#!/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."