Spaces:
Runtime error
Runtime error
| # Smoke-test a running matrix-runtime instance. | |
| set -euo pipefail | |
| BASE="${MATRIX_RUNTIME_BASE:-http://localhost:8080}" | |
| START_CMD="${START_CMD:-npx -y @modelcontextprotocol/server-filesystem /tmp}" | |
| say() { printf "\n==> %s\n" "$1"; } | |
| say "Health" | |
| curl -fsS "$BASE/v1/health"; echo | |
| say "Capabilities" | |
| curl -fsS "$BASE/v1/capabilities"; echo | |
| say "Create mcp.test job" | |
| JOB=$(curl -fsS -X POST "$BASE/v1/jobs" \ | |
| -H "Content-Type: application/json" \ | |
| -d "{\"type\":\"mcp.test\",\"ttl_seconds\":120,\"payload\":{\"runtime\":\"node\",\"transport\":\"stdio\",\"start_command\":\"$START_CMD\"}}") | |
| echo "$JOB" | |
| JOB_ID=$(printf '%s' "$JOB" | sed -n 's/.*"job_id":"\([^"]*\)".*/\1/p') | |
| if [[ -z "$JOB_ID" ]]; then | |
| echo "failed to create job" >&2; exit 1 | |
| fi | |
| say "Stream events for up to 8s (live lifecycle)" | |
| timeout 8 curl -sN "$BASE/v1/jobs/$JOB_ID/events" || true | |
| say "Wait for the sandbox to become ready (up to 90s)" | |
| for _ in $(seq 1 90); do | |
| SNAP=$(curl -fsS "$BASE/v1/jobs/$JOB_ID") | |
| STATUS=$(printf '%s' "$SNAP" | sed -n 's/.*"status":"\([^"]*\)".*/\1/p') | |
| case "$STATUS" in | |
| error) echo "job errored: $SNAP" >&2; exit 1 ;; | |
| esac | |
| # The mcp.test result is populated with the tool list once ready. | |
| if printf '%s' "$SNAP" | grep -q '"tools"'; then | |
| echo " sandbox ready (tools listed)" | |
| break | |
| fi | |
| sleep 1 | |
| done | |
| say "Job status" | |
| curl -fsS "$BASE/v1/jobs/$JOB_ID"; echo | |
| say "Cancel job" | |
| curl -fsS -X DELETE "$BASE/v1/jobs/$JOB_ID"; echo | |
| say "model.inspect job" | |
| curl -fsS -X POST "$BASE/v1/jobs" \ | |
| -H "Content-Type: application/json" \ | |
| -d '{"type":"model.inspect","payload":{"model":"hf:Qwen/Qwen2.5-7B-Instruct","revision":"main"}}'; echo | |
| echo | |
| echo "Smoke test complete." | |