coldpass

zhongerxin/iPhone-use

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/zhongerxin--iPhone-use.svg).

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 · 80006885df81 · claude-code / 2.1.300 (Claude Code)
Recorded operation: /usr/bin/python3 <host-path> · local stdio MCP start + initialize + tools/list

MCP
yes, local
Yes, runs locally
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 · Checked operation passed

Checked operation /usr/bin/python3 <host-path> · local stdio MCP start + initialize + tools/list

Agent-reported scope: Started the README's local MCP server (mcp.json: python3 server/iphone_use.py) over stdio, performed initialize, and ran tools/list. Returned 20 pua_* tools (pua_observe, pua_find, pua_tap, pua_swipe, pua_type_text, pua_press_button, pua_screenshot, pua_launch_app, pua_wait, pua_scroll_find, pua_collect_list, pua_apps, pua_doctor, pua_ready, pua_metrics, pua_setup, pua_batch, pua_screen, pua_screen_frame, pua_screen_action). Server name iphone-use v0.3.15.

MCP server returned: iphone-use · version 0.3.15.

MCP tools returned: pua_observe, pua_find, pua_tap, pua_swipe, pua_type_text, pua_press_button, pua_screenshot, pua_launch_app, pua_wait, pua_scroll_find, pua_collect_list, pua_apps, pua_doctor, pua_ready, pua_metrics, pua_setup, pua_batch, pua_screen, pua_screen_frame, pua_screen_action. Tool listing does not establish authenticated tool-call success.

Run details
run
zhongerxin--iPhone-use-claude-haiku-5-5-1792336860264541796
date
Oct 18, 2026
time to working
not recorded
product hosting / execution
Local stdio MCP server in the guest
recorded operation scope
product operation
model
claude-haiku-5-5
agent / version
claude-code / 2.1.300 (Claude Code)
platform
linux
reported cost
$0.010841
Recorded source
https://github.com/zhongerxin/iPhone-use
Tool transport
mcp-assigned-vm
Test version
readme-cae505cdaaa9e8cc13f1449c5e5f5816f65e8579e4bc7f8408ab66ff961f94c4
revision
80006885df81531ce7a874b3b0df65980e25e59b
What the agent did

Started the README's local MCP server (mcp.json: python3 server/iphone_use.py) over stdio, performed initialize, and ran tools/list. Returned 20 pua_* tools (pua_observe, pua_find, pua_tap, pua_swipe, pua_type_text, pua_press_button, pua_screenshot, pua_launch_app, pua_wait, pua_scroll_find, pua_collect_list, pua_apps, pua_doctor, pua_ready, pua_metrics, pua_setup, pua_batch, pua_screen, pua_screen_frame, pua_screen_action). Server name iphone-use v0.3.15.

cd <host-path> && git log -1 --format=%H 2>/dev/null; ls -la; cat README.md 2>/dev/null | head -300
cd <host-path> && ls -la .github/workflows 2>/dev/null; cat pyproject.toml setup.py package.json 2>/dev/null | head -80; which python3 pip3 node npm uv; python3 --version
cd <host-path> && cat mcp.json; echo ---; ls scripts server; echo ---; head -60 scripts/install.sh; echo ---; grep -rn -i "darwin\|platform\|uname" scripts/install.sh server/*.py 2>/dev/null | head -20; echo ---; cat .github/workflows/check.yml
cd <host-path> && printf '%s\n' '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"probe","version":"0"}}}' '{"jsonrpc":"2.0","method":"notifications/initialized"}' '{"jsonrpc":"2.0","id":2,"method":"tools/list"}' | timeout 20 python3 -I server/iphone_use.py 2>/tmp/err.txt | head -c 3000; echo; echo "rc=${PIPESTATUS[1]}"; echo ---stderr; head -c 1500 /tmp/err.txt
cd <host-path> && printf '%s\n' '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"probe","version":"0"}}}' '{"jsonrpc":"2.0","method":"notifications/initialized"}' '{"jsonrpc":"2.0","id":2,"method":"tools/list"}' | timeout 20 python3 server/iphone_use.py 2>/tmp/err.txt | head -c 3000; echo; echo "rc=${PIPESTATUS[1]}"; echo ---stderr; head -c 1500 /tmp/err.txt
cd <host-path> && printf '%s\n' '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"probe","version":"0"}}}' '{"jsonrpc":"2.0","method":"notifications/initialized"}' '{"jsonrpc":"2.0","id":2,"method":"tools/list"}' | timeout 20 python3 server/iphone_use.py > /tmp/mcp_out.txt 2>/tmp/err.txt; echo "rc=$?"; python3 -c "
import json
for l in open('/tmp/mcp_out.txt'):
    l=l.strip()
    if not l: continue
    m=json.loads(l)
    if m.get('id')==2:
        ts=m['result']['tools']; print(len(ts),'tools'); print([t['name'] for t in ts])
"; echo ---stderr; cat /tmp/err.txt | head -c 500
cd <host-path> && mkdir -p .coldpass && ls -la .coldpass && cat > .coldpass/probe.json <<'EOF'
{"kind":"mcp","argv":["/usr/bin/python3","<host-path>","env":{}}
EOF
cat > .coldpass/report.json <<'EOF'
{"outcome":"working","operation":"Started the README's local MCP server (mcp.json: python3 server/iphone_use.py) over stdio, performed initialize, and ran tools/list. Returned 20 pua_* tools (pua_observe, pua_find, pua_tap, pua_swipe, pua_type_text, pua_press_button, pua_screenshot, pua_launch_app, pua_wait, pua_scroll_find, pua_collect_list, pua_apps, pua_doctor, pua_ready, pua_metrics, pua_setup, pua_batch, pua_screen, pua_screen_frame, pua_screen_action). Server name iphone-use v0.3.15.","operation_scope":"Covers MCP server startup and tool listing only. Device operations (tap, screenshot, app control) need macOS, full Xcode, a USB-connected iPhone with developer mode, Apple signing, and a running WebDriverAgent; none are present in this Linux guest. The server's own code checks sys.platform == 'darwin' before any WDA setup. Not run: scripts/install.sh (requires codex CLI and macOS), scripts/check.sh, npm ui build, package.py, and the unit/lint suites (excluded by task).","steps":["Read README.md and .github/workflows/check.yml (macOS-only runner)","Read mcp.json; confirmed the server is a stdio Python MCP server with no pip dependencies declared","python3 -I server/iphone_use.py failed with ModuleNotFoundError: wda_client (the -I flag drops the script directory from sys.path); reran without -I","python3 server/iphone_use.py: initialize returned serverInfo iphone-use 0.3.15; tools/list returned 20 tools"],"deviations":["README 'scripts/install.sh' not run: it needs the codex CLI and macOS. Ran the MCP server directly from the source tree instead.","Running with python3 -I failed on import of sibling modules; probe uses plain /usr/bin/python3 without -I."],"stuck_step":null,"main_blocker":null,"suggested_fix":null}
EOF
python3 -m json.tool .coldpass/probe.json >/dev/null && python3 -m json.tool .coldpass/report.json >/dev/null && echo JSON_OK; <env-var>=<host-path> python3 -I <host-path> --validate; echo "rc=$?"