fix: pass host args to ngrok readiness check

This commit is contained in:
gpt-5-codex 2025-10-11 07:00:08 +02:00 committed by Andre Heinecke
parent 7813d32cd0
commit 63a3f41726
1 changed files with 6 additions and 8 deletions

View File

@ -1,5 +1,6 @@
#!/usr/bin/env bash #!/usr/bin/env bash
set -euo pipefail set -euo pipefail
set -x
usage() { usage() {
cat <<'USAGE' cat <<'USAGE'
@ -36,7 +37,6 @@ USAGE
MCP_BIN=${MCP_BROWSER_BIN:-mcp-browser} MCP_BIN=${MCP_BROWSER_BIN:-mcp-browser}
NGROK_BIN=${NGROK_BIN:-ngrok} NGROK_BIN=${NGROK_BIN:-ngrok}
CONFIG_PATH="" CONFIG_PATH=""
SERVER_NAME="builtin-only"
HTTP_HOST="127.0.0.1" HTTP_HOST="127.0.0.1"
HTTP_PORT="" HTTP_PORT=""
HTTP_PATH="/mcp" HTTP_PATH="/mcp"
@ -52,8 +52,6 @@ while [[ $# -gt 0 ]]; do
case "$1" in case "$1" in
--config) --config)
CONFIG_PATH=$2; shift 2;; CONFIG_PATH=$2; shift 2;;
--server)
SERVER_NAME=$2; shift 2;;
--http-host) --http-host)
HTTP_HOST=$2; shift 2;; HTTP_HOST=$2; shift 2;;
--http-port) --http-port)
@ -114,13 +112,13 @@ fi
HTTP_PATH="/${HTTP_PATH#/}" HTTP_PATH="/${HTTP_PATH#/}"
MCP_CMD=("$MCP_BIN" --mode streamable-http --server "$SERVER_NAME" \ MCP_CMD=("$MCP_BIN" --mode streamable-http \
--http-host "$HTTP_HOST" --http-port "$HTTP_PORT" \ --http-host "$HTTP_HOST" --http-port "$HTTP_PORT" \
--http-path "$HTTP_PATH" --http-allow-origin "$ALLOW_ORIGIN") --http-path "$HTTP_PATH" --http-allow-origin "$ALLOW_ORIGIN")
if [[ -n "$CONFIG_PATH" ]]; then if [[ -n "$CONFIG_PATH" ]]; then
MCP_CMD+=(--config "$CONFIG_PATH") MCP_CMD+=(--config "$CONFIG_PATH")
fi fi
[[ ${#MCP_EXTRA_ARGS[@]} -gt 0 ]] && MCP_CMD+=("${MCP_EXTRA_ARGS[@]}") #[[ ${#MCP_EXTRA_ARGS[@]} -gt 0 ]] && MCP_CMD+=("${MCP_EXTRA_ARGS[@]}")
MCP_LOG=$(mktemp -t mcp-browser-gateway.XXXXXX.log) MCP_LOG=$(mktemp -t mcp-browser-gateway.XXXXXX.log)
NGROK_LOG=$(mktemp -t ngrok-mcp.XXXXXX.log) NGROK_LOG=$(mktemp -t ngrok-mcp.XXXXXX.log)
@ -134,7 +132,7 @@ trap cleanup EXIT INT TERM
"${MCP_CMD[@]}" >"$MCP_LOG" 2>&1 & "${MCP_CMD[@]}" >"$MCP_LOG" 2>&1 &
MCP_PID=$! MCP_PID=$!
python3 - <<PY python3 - "$HTTP_HOST" "$HTTP_PORT" <<'PY'
import socket, time, sys import socket, time, sys
host, port = sys.argv[1], int(sys.argv[2]) host, port = sys.argv[1], int(sys.argv[2])
for _ in range(200): for _ in range(200):
@ -149,10 +147,10 @@ for _ in range(200):
print('Port not ready', file=sys.stderr) print('Port not ready', file=sys.stderr)
sys.exit(1) sys.exit(1)
PY PY
"$HTTP_HOST" "$HTTP_PORT" || { if [[ $? -ne 0 ]]; then
echo "Failed to start mcp-browser gateway. See $MCP_LOG" >&2 echo "Failed to start mcp-browser gateway. See $MCP_LOG" >&2
exit 1 exit 1
} fi
NGROK_CMD=("$NGROK_BIN" http --scheme=http "http://$HTTP_HOST:$HTTP_PORT") NGROK_CMD=("$NGROK_BIN" http --scheme=http "http://$HTTP_HOST:$HTTP_PORT")
NGROK_CMD+=(--request-header-add "X-MCP-Gateway:true") NGROK_CMD+=(--request-header-add "X-MCP-Gateway:true")