coldpass

AnanthaRajuC/QueryAPIGate

GitHub ↗ · How this check works

Per-setup public labels: Linux / Haiku: Works

Static status badge · SVG · read-only JSON. Embed with ![Coldpass status](https://coldpass.dev/badge/AnanthaRajuC--QueryAPIGate.svg).

apimysqlpythonsqlclickhouseflask

Works

Only older checks are saved; no current product test.

Answers apply to each recorded setup, revision and operation. Earlier observations remain in Run details.

Tested on Linux
PlatformHaikuLuna
Linuxyes

Linux / Haiku 5.5: yes · Oct 18, 2026 · 727426cf31ec · claude-code / 2.1.300 (Claude Code)
Recorded operation: Remote hosted MCP connection · initialize + tools/list · http://127.0.0.1:5001/mcp/

MCP
yes, hosted
Yes, hosted
Needs keys or browser
None seen
Issue
none found in recorded check

Safety: no observations were recorded for the selected revision. Functional results do not establish a safety result.

Run details

Haiku 5.5

Native agent · Hosted MCP connection/tools-list passed

Checked operation Remote hosted MCP connection · initialize + tools/list · http://127.0.0.1:5001/mcp/

Checked against the hosted endpoint only.

Agent-reported scope: Start `queryapigate mcp` (streamable HTTP on 127.0.0.1:5001/mcp/) and run MCP initialize + tools/list against the saved queries from `queryapigate examples load`.

MCP server returned: queryapigate · version 1.30.0.

MCP tools returned: example_all_rentals, example_film_lookup, example_film_search, example_kpi_active_rentals, example_kpi_overdue, example_kpi_rentals_today, example_monthly_revenue, example_recent_rentals, example_rentals_since, example_revenue_by_category, example_top_films, list_tables, execute_sql, describe_table. Tool listing does not establish authenticated tool-call success.

Run details
run
AnanthaRajuC--QueryAPIGate-claude-haiku-5-5-1792337176216815836
date
Oct 18, 2026
time to working
not recorded
product hosting / execution
Remote hosted MCP endpoint
recorded operation scope
remote hosted MCP initialize + tools/list
model
claude-haiku-5-5
agent / version
claude-code / 2.1.300 (Claude Code)
platform
linux
reported cost
$0.017319
Recorded source
https://github.com/AnanthaRajuC/QueryAPIGate
Tool transport
mcp-assigned-vm
Test version
readme-cae505cdaaa9e8cc13f1449c5e5f5816f65e8579e4bc7f8408ab66ff961f94c4
revision
727426cf31ec114fc71fe5ac6c734a0f3554d37b
What the agent did

Start `queryapigate mcp` (streamable HTTP on 127.0.0.1:5001/mcp/) and run MCP initialize + tools/list against the saved queries from `queryapigate examples load`.

cd <host-path> && ls -la && cat README.md 2>/dev/null | head -200
cd <host-path> && git log -1 --format=%H 2>/dev/null; ls -la .coldpass 2>/dev/null; ls <host-path> 2>/dev/null; which node npm python3 pip3 uv 2>&1
cd <host-path> && python3 --version && (python3 -m venv <host-path> 2>&1 || (apt-get update -qq && apt-get install -y -qq python3-venv >/dev/null 2>&1 && python3 -m venv <host-path>)) && <host-path> install -q -e . 2>&1 | tail -5; echo EXIT=$?; <host-path> --help 2>&1 | head -30; sed -n '/^## Try it with Docker/,/^## Documentation/p' README.md | head -40; grep -n -i "mcp" README.md | head
sudo -n apt-get update -qq >/dev/null 2>&1; sudo -n DEBIAN_FRONTEND=noninteractive apt-get install -y -qq python3.12-venv >/tmp/apt.log 2>&1; echo APT=$?; cd <host-path> && rm -rf <host-path> && python3 -m venv <host-path> && <host-path> install -q -e . 2>&1 | tail -5; echo PIP=${PIPESTATUS[0]}; ls <host-path> | grep -i queryapi; <host-path> --help 2>&1 | head -40
cd <host-path> && export QUERYAPIGATE_API_KEY=demo-key && <host-path> examples load > /tmp/examples.log 2>&1; echo LOAD=$?; tail -5 /tmp/examples.log; (nohup <host-path> serve > /tmp/serve.log 2>&1 &); sleep 6; curl -s 'http://127.0.0.1:5000/q/example_film_search?text=Harbor&page_size=2' -H 'X-API-Key: <secret>'; echo; curl -s -X POST 'http://127.0.0.1:5000/execute_sql?page_size=3' -H 'X-API-Key: <secret>' -H 'Content-Type: application/json' -d '{"sql": "SELECT film_id, title, rating FROM film WHERE film_id > :min", "params": {"min": 10}, "connection_name": "examples"}'; echo; tail -3 /tmp/serve.log
cd <host-path> && pkill -f "queryapigate serve"; sleep 1; grep -rhoE "QUERYAPIGATE_HOME[A-Z_]*|QUERYAPIGATE_DATA[A-Z_]*|QUERYAPIGATE_DB[A-Z_]*" queryapigate documentation/CONFIGURATION.md 2>/dev/null | sort | uniq -c | head; grep -n -i "home folder\|examples.db" documentation/CONFIGURATION.md documentation/EXAMPLES.md 2>/dev/null | head -12
cd <host-path> && grep -rn "cwd()\|QUERYAPIGATE_[A-Z_]*HOME\|QUERYAPIGATE_[A-Z_]*DIR" queryapigate | head -10; grep -rn "examples.db" queryapigate | head -5
export QUERYAPIGATE_HOME=<host-path> QUERYAPIGATE_API_KEY=demo-key && mkdir -p $QUERYAPIGATE_HOME && cd $QUERYAPIGATE_HOME && <host-path> examples load > /tmp/examples.log 2>&1; echo LOAD=$?; head -c 1500 /tmp/examples.log; echo; (nohup <host-path> serve > /tmp/serve.log 2>&1 &); sleep 6; curl -s 'http://127.0.0.1:5000/q/example_film_search?text=Harbor&page_size=2' -H 'X-API-Key: <secret>'; echo; curl -s -X POST 'http://127.0.0.1:5000/execute_sql?page_size=3' -H 'X-API-Key: <secret>' -H 'Content-Type: application/json' -d '{"sql": "SELECT film_id, title, rating FROM film WHERE film_id > :min", "params": {"min": 10}, "connection_name": "examples"}'; echo
pkill -f "queryapigate serve"; sleep 2; pgrep -fa queryapigate || echo "no server running"; grep -n "headers\|Authorization\|stays_running\|expected_text" <host-path> | head -30
ss -ltnp 2>/dev/null | grep 5000 || echo "port 5000 free"; grep -n "headers\|Authorization\|stays_running\|expected_text" <host-path> | head -30
sed -n 196,232p <host-path>; grep -n "'http'" <host-path> | head
sed -n 440,470p <host-path>; grep -n "def http_probe\|def check_http\|def http_" <host-path>
n=$(grep -n "^def http(" <host-path> | cut -d: -f1); sed -n "${n},$((n+30))p" <host-path>
cd <host-path> && <host-path> install -q -e ".[mcp]" 2>&1 | tail -3; echo PIP=${PIPESTATUS[0]}; export QUERYAPIGATE_HOME=<host-path> QUERYAPIGATE_API_KEY=demo-key; <host-path> mcp --help 2>&1 | head -30
cd <host-path> && grep -n -i "stdio\|queryapigate mcp\|mcp --port\|api key\|Authorization" documentation/MCP.md | head -30
cd <host-path> && sed -n 66,100p documentation/MCP.md
export QUERYAPIGATE_HOME=<host-path> QUERYAPIGATE_API_KEY=demo-key; cd <host-path> && (nohup <host-path> mcp > /tmp/mcp.log 2>&1 &); sleep 6; H='-H Content-Type:application/json -H Accept:application/json,text/event-stream'; INIT='{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"probe","version":"1"}}}'; echo "--- no key:"; curl -s -o /dev/null -w '%{http_code}\n' -X POST http://127.0.0.1:5001/mcp $H -d "$INIT"; echo "--- X-API-Key:"<secret>'X-API-Key: <secret>' -d "$INIT" | head -20; echo "--- Authorization Bearer:"; curl -s -o /dev/null -w '%{http_code}\n' -X POST http://127.0.0.1:5001/mcp $H -H 'Authorization: <secret>' -d "$INIT"; tail -5 /tmp/mcp.log
H='-H Content-Type:application/json -H Accept:application/json,text/event-stream'; INIT='{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"probe","version":"1"}}}'; echo "--- no key:"; curl -s -o /dev/null -w '%{http_code}\n' -X POST http://127.0.0.1:5001/mcp/ $H -d "$INIT"; echo "--- X-API-Key init:"; curl -s -D /tmp/h.txt -X POST http://127.0.0.1:5001/mcp/ $H -H 'X-API-Key: <secret>' -d "$INIT" | head -c 600; echo; grep -i "mcp-session" /tmp/h.txt; echo "--- Bearer:"; curl -s -o /dev/null -w '%{http_code}\n' -X POST http://127.0.0.1:5001/mcp/ $H -H 'Authorization: <secret>' -d "$INIT"
pkill -f "[q]ueryapigate mcp"; sleep 2; ss -ltn | grep -q ':5001 ' && echo "5001 still in use" || echo "5001 free"; mkdir -p <host-path> && cd <host-path> && cat > probe.json <<'EOF'
{"kind":"mcp_http","argv":["<host-path>","QUERYAPIGATE_API_KEY":"demo-key"}}
EOF
cat > report.json <<'EOF'
{"outcome":"working","operation":"Start `queryapigate mcp` (streamable HTTP on 127.0.0.1:5001/mcp/) and run MCP initialize + tools/list against the saved queries from `queryapigate examples load`.","operation_scope":"Covers MCP startup and tool listing with an admin API key in X-API-Key. The examples are loaded into QUERYAPIGATE_HOME=<host-path> Not covered: OAuth sign-in, write tools, or running individual tools.","steps":["pip install -e . in <host-path> (python3-venv installed via apt)","pip install -e \".[mcp]\"","QUERYAPIGATE_HOME=<host-path> QUERYAPIGATE_API_KEY=demo-key queryapigate examples load","QUERYAPIGATE_HOME=<host-path> QUERYAPIGATE_API_KEY=demo-key queryapigate serve; curl /q/example_film_search and POST /execute_sql returned rows (quickstart verified)","QUERYAPIGATE_HOME=<host-path> QUERYAPIGATE_API_KEY=demo-key queryapigate mcp; initialize with X-API-Key returned serverInfo queryapigate 1.30.0"],"deviations":["README 'Install' pip install failed in system python (no venv support): ran `apt-get install python3.12-venv` via sudo, then created <host-path>","README 'Quick start' `queryapigate examples load` refused to run in the repo because the repo ships examples.db: set QUERYAPIGATE_HOME=<host-path> and ran from there instead, so no repo files were changed or removed.","Probe kind is mcp_http, not http: the REST server requires an API key on every request, and the checker's http probe sends no headers. The MCP endpoint takes X-API-Key; Authorization: <secret>","Pytest/lint suites were not run, per the smoke-task instructions."],"stuck_step":null,"main_blocker":null,"suggested_fix":null}
EOF
python3 -m json.tool probe.json >/dev/null && python3 -m json.tool report.json >/dev/null && echo JSON_OK; cd <host-path> && <env-var>=<host-path> python3 -I <host-path> --validate; echo VALIDATE_EXIT=$?
for p in $(pgrep -f '^<host-path> <host-path> mcp|^<host-path> mcp'); do kill $p; done; sleep 2; ss -ltn | grep -q ':5001 ' && echo "5001 still in use" || echo "5001 free"; ls -la <host-path> 2>/dev/null || echo "no .coldpass yet"
mkdir -p <host-path> && cd <host-path> && cat > probe.json <<'EOF'
{"kind":"mcp_http","argv":["<host-path>","QUERYAPIGATE_API_KEY":"demo-key"}}
EOF
cat > report.json <<'EOF'
{"outcome":"working","operation":"Start `queryapigate mcp` (streamable HTTP on 127.0.0.1:5001/mcp/) and run MCP initialize + tools/list against the saved queries from `queryapigate examples load`.","operation_scope":"Covers MCP startup and tool listing with an admin API key sent in X-API-Key. The examples are loaded into QUERYAPIGATE_HOME=<host-path> Not covered: OAuth sign-in, write tools, or running individual tools.","steps":["pip install -e . in <host-path> (python3-venv installed via apt)","pip install -e \".[mcp]\"","QUERYAPIGATE_HOME=<host-path> QUERYAPIGATE_API_KEY=demo-key queryapigate examples load","QUERYAPIGATE_HOME=<host-path> QUERYAPIGATE_API_KEY=demo-key queryapigate serve; curl /q/example_film_search and POST /execute_sql returned rows (quickstart verified)","QUERYAPIGATE_HOME=<host-path> QUERYAPIGATE_API_KEY=demo-key queryapigate mcp; initialize with X-API-Key returned serverInfo queryapigate 1.30.0"],"deviations":["README 'Install': system python3 has no venv support (ensurepip missing). Ran `sudo apt-get install python3.12-venv`, then created <host-path>","README 'Quick start': `queryapigate examples load` refused to run in the repo because the repo ships examples.db. Set QUERYAPIGATE_HOME=<host-path> and ran from there, so no repo files were changed or removed.","Probe kind is mcp_http, not http: the REST server requires an API key on every request, and the checker's http probe sends no headers. The MCP endpoint takes X-API-Key; Authorization: <secret>","Pytest and lint suites were not run, per the smoke-task instructions."],"stuck_step":null,"main_blocker":null,"suggested_fix":null}
EOF
python3 -m json.tool probe.json >/dev/null && python3 -m json.tool report.json >/dev/null && echo JSON_OK; cd <host-path> && <env-var>=<host-path> python3 -I <host-path> --validate; echo VALIDATE_EXIT=$?