ls
List what is on screen: @ref, type, x,y, width×height, label, = value.
alldeviceplatform
io.github.lakpriya1s由 GitHub 账号 lakpriya1s 发布v0.7.1更新于 Oct 29, 2026
Let your AI agent see, use and control the apps on your phone: screen as text, tap by label.
本地 MCP 服务器,让 AI 助手以文本读取屏幕、按标签点击,从而查看并操控 iPhone 与 Android 应用(真机、模拟器或仿真器)。
Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。
参照 仓库 中的启动说明。
The MCP server for looktap: it lets your AI agent see, use and control the apps on your phone: an iPhone or Android device (simulator, emulator or real phone), and any app on it. It reads the screen as text, taps by label, types, swipes, takes screenshots and reads logs and crashes.
This package only starts the server. Everything else lives in @looktap/cli, which it installs, so you always
get the latest looktap. If you already have the CLI installed, looktap mcp is the same server.
Claude Code
Claude Desktop, Cursor, VS Code and other clients
~/Library/Application Support/Claude/claude_desktop_config.json~/.cursor/mcp.jsonDesktop apps start servers with a minimal PATH, so if yours can't find npx (common with nvm), install the CLI
with npm install -g @looktap/cli and paste the config that looktap mcp --config prints. It uses absolute paths.
looktap tool's
boot "iPhone 16 Pro" starts a simulator, and devices lists what's connectedadb, with an emulator (boot <AVD name> starts one) or a phone with USB or wireless debuggingls, tap, tap_xy, long_press, fill, type, key, hide_keyboard, swipe, scroll_to, back, home,
wait, screenshot (returns the image), logs, crashes, perf (CPU, memory, threads, or frames and jank), and looktap for any other command (devices, boot,
capabilities, stop, expect, test, apps, launch --time …). Actions return the settled screen unless ls: false.
Full docs: https://lakpriya.com/looktap/
AGPL-3.0-only
来源:mcp/README.md,提交 2876c30
List what is on screen: @ref, type, x,y, width×height, label, = value.
alldeviceplatformTap an element by label or @ref. Returns the settled screen.
lsexactdevicetarget必填platformTap a point (iOS points / Android dp, the units ls prints).
x必填y必填lsdeviceplatformHold a touch on an element (or a point) for ms (default 800).
xylsmsdevicetargetplatformFocus a text field (by label or @ref), clear it, type text, and check the field holds it (a password field: its length). Retypes slowly if not, and fails if it still does not.
lstext必填devicetarget必填platformPut text on the device's clipboard, check it is there, and paste it into the focused field.
lstext必填deviceplatformEnter a one-time code into its row of digit boxes: tap the first, type each digit, check every box (pastes the code if typing did not fill them).
lscode必填deviceplatformType into the focused field.
lstext必填deviceplatformPress keys: return, escape, delete, tab, space, selectall, paste, home (Android also back).
lskeys必填deviceplatformDismiss the on-screen keyboard and take focus from the field (blur validation runs). Fails if it is still up.
lsdeviceplatformDrag from one point to another (scroll: finger moves up to go down).
lsmsx1必填x2必填y1必填y2必填deviceplatformSwipe until the element is fully on screen (swipes above the keyboard when it is up).
updevicetarget必填platformAndroid system Back; iOS navigation-bar back button.
lsdeviceplatformThe Home button: go to the home screen, leaving the app running.
lsdeviceplatformWait until a label (or @ref) is on screen — or, with gone, until it is not. With settle and no target: until the screen, its picture included, holds still for a second, for web pages with no labels to wait for (a sign-in page loading).
gonedevicesettletargetsecondsplatformA PNG of the screen, returned as an image (scale 0.5 by default: fewer tokens).
scaledeviceplatformThe app's log since the last logs call (first call: the last minute).
appgrepsincedeviceerrorsplatformCrash reports, ANRs and low-memory kills since the last crashes call.
appsincedeviceplatformThe app's CPU (100% = one core), memory and threads; or, with frames, frames drawn since the last frames call: janky share, p50–p99 frame time, fps (iOS counts what the screen shows; its first frames call only starts counting, so call it before the action too). Simulator numbers are the Mac's: compare runs, not phones. A real iPhone reads through Instruments, 10–25 s a reading.
appforjsondeviceframesplatformAny other looktap command line, or several separated by ";" — e.g. "launch com.example.app --ls", "stop com.example.app", "open myapp://home", "expect Welcome", "zoom in", "appearance dark", "rotate landscape", "fold open", "record start demo" … "record stop", "permission grant location com.example.app", "perf com.example.app --for 10s", "launch com.example.app --time", "apps com.example" (is it installed?), "app com.example.app --paths" (its data folder), "devices --all", "boot Pixel_9a" (also waits for one still starting), "shutdown Pixel_9a", "dismiss logbox" (React Native's toast), "shot sign-in --points" (pixels = tapxy units), "doctor -d <device>", "--wait-unlock 60 launch com.example.app", "handoff \"Approve the sign-in on the phone\" --until Home" (the user's turn: waits for that label). See: help.
devicecommand必填platform已满足适用检查项的 90%
该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。
请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。
claude mcp add looktap -- npx -y @looktap/mcp{ "mcpServers": { "looktap": { "command": "npx", "args": ["-y", "@looktap/mcp"] } }}