From 70bd4ea064d9c1c7e96724a142aee3f9544823b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=CE=A7=CE=B3=CF=86=CF=84=20Kompanion?= Date: Sun, 19 Oct 2025 10:24:03 +0200 Subject: [PATCH] tests: prefer stdio MCP + mcp-proxy when available; source ~/dev/main/src/env.sh if present; robust cleanup --- tests/e2e_mcp_test.sh | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/tests/e2e_mcp_test.sh b/tests/e2e_mcp_test.sh index 6c95743..678affc 100755 --- a/tests/e2e_mcp_test.sh +++ b/tests/e2e_mcp_test.sh @@ -13,9 +13,8 @@ MCP_SERVER_URL="http://${MCP_SERVER_HOST}:${MCP_SERVER_PORT}" # --- Cleanup Function --- cleanup() { echo "--- Cleaning up ---" - if [ -n "$mcp_server_pid" ]; then - kill "$mcp_server_pid" || true - fi + [ -n "${mcp_proxy_pid:-}" ] && kill "$mcp_proxy_pid" || true + [ -n "${mcp_server_pid:-}" ] && kill "$mcp_server_pid" || true pkill -f kom_mcp || true sleep 1 # Give the OS time to release the port netstat -tuln | grep ":${MCP_SERVER_PORT}" || true # Check if port is still in use @@ -29,15 +28,28 @@ echo "--- Setting up test environment ---" echo ">> Initializing test database..." "${PROJECT_ROOT_DIR}/db/scripts/create-test-db.sh" "$TEST_DB_NAME" +# Optional environment bootstrap (developer machine) +if [ -f "$HOME/dev/main/src/env.sh" ]; then + # shellcheck source=/dev/null + . "$HOME/dev/main/src/env.sh" +fi + echo ">> Harvesting embeddings..." export DB_URL="dbname=${TEST_DB_NAME} user=kompanion host=/var/run/postgresql" EMBED_NAMESPACE="dev_knowledge" python3 "${PROJECT_ROOT_DIR}/tools/ingest_dir.py" "${PROJECT_ROOT_DIR}/tests/test_data" "dev_knowledge" -echo ">> Starting MCP server..." +echo ">> Starting MCP server (preferring stdio + mcp-proxy if available)..." sleep 2 -timeout 10 $MCP_SERVER_EXECUTABLE --backend sse --address "${MCP_SERVER_HOST}:${MCP_SERVER_PORT}" < /dev/null > /dev/null 2>&1 & -mcp_server_pid=$! -mcp_server_pid=$! +if command -v mcp-proxy >/dev/null 2>&1; then + setsid $MCP_SERVER_EXECUTABLE --backend stdio < /dev/null > /dev/null 2>&1 & + mcp_server_pid=$! + sleep 1 + setsid mcp-proxy --target stdio://127.0.0.1 --listen "${MCP_SERVER_HOST}:${MCP_SERVER_PORT}" < /dev/null > /dev/null 2>&1 & + mcp_proxy_pid=$! +else + timeout 10 $MCP_SERVER_EXECUTABLE --backend sse --address "${MCP_SERVER_HOST}:${MCP_SERVER_PORT}" < /dev/null > /dev/null 2>&1 & + mcp_server_pid=$! +fi sleep 5 ps -ef | grep kom_mcp