looktap

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.

概览

AI 生成的概览

本地 MCP 服务器,让 AI 助手以文本读取屏幕、按标签点击,从而查看并操控 iPhone 与 Android 应用(真机、模拟器或仿真器)。

可以做什么
  • 以带 @ref、标签和值的文本行列出屏幕内容,并可截图
  • 点击、按坐标点击、长按、滑动、滚动到元素、按键、返回或回到主屏
  • 填写与输入文本、从剪贴板粘贴、输入一次性验证码、收起键盘
  • 等待某个标签出现或消失,或等待屏幕稳定
  • 读取应用日志、崩溃报告与 ANR,并测量 CPU、内存、线程和掉帧情况
  • 执行其他 looktap 命令行,例如 devices、boot、capabilities、launch、stop、expect 或 record
适用场景
适合让助手在模拟器、仿真器或已连接手机上试用或探索移动应用:走查流程、核对界面、复现问题,或在操作过程中收集日志与性能数据。
运行要求
通过 npx 从 npm 包以 stdio 在本地运行,需要 Node 18+。iPhone 需要 macOS 与 Xcode,以及模拟器或已配对 iPhone;Android 需要 adb,以及仿真器或开启 USB/无线调试的手机。PATH 精简的桌面客户端可能需要全局安装 CLI 并使用绝对路径配置。
安装前请注意
操作是真实的:对接线上后端时,每次点击、填写和提交都会到达真实服务。服务器要求助手不要输入真实凭据、验证码或卡号,但登录应由真人完成。它可启动、停止和录制应用,更改设备设置并授予权限。设备锁定时会要求人工解锁。

安装

在 SourceWeft 中

  1. 打开 控制台中的 looktap,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

@looktap/mcp

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.

Set up

Claude Code

bash
claude mcp add looktap -- npx -y @looktap/mcp

Claude Desktop, Cursor, VS Code and other clients

json
{  "mcpServers": {    "looktap": { "command": "npx", "args": ["-y", "@looktap/mcp"] }  }}
  • Claude Desktop: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Cursor: ~/.cursor/mcp.json

Desktop 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.

Requirements

  • Node 18+
  • iPhone: macOS with Xcode, and a simulator or a paired iPhone (a free Apple ID is enough). The looktap tool's boot "iPhone 16 Pro" starts a simulator, and devices lists what's connected
  • Android: adb, with an emulator (boot <AVD name> starts one) or a phone with USB or wireless debugging

Tools

ls, 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/

License

AGPL-3.0-only

来源:mcp/README.md,提交 2876c30

工具

20

ls

List what is on screen: @ref, type, x,y, width×height, label, = value.

输入参数alldeviceplatform

tap

Tap an element by label or @ref. Returns the settled screen.

输入参数lsexactdevicetarget必填platform

tap_xy

Tap a point (iOS points / Android dp, the units ls prints).

输入参数x必填y必填lsdeviceplatform

long_press

Hold a touch on an element (or a point) for ms (default 800).

输入参数xylsmsdevicetargetplatform

fill

Focus 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必填platform

paste

Put text on the device's clipboard, check it is there, and paste it into the focused field.

输入参数lstext必填deviceplatform

code

Enter 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必填deviceplatform

type

Type into the focused field.

输入参数lstext必填deviceplatform

key

Press keys: return, escape, delete, tab, space, selectall, paste, home (Android also back).

输入参数lskeys必填deviceplatform

hide_keyboard

Dismiss the on-screen keyboard and take focus from the field (blur validation runs). Fails if it is still up.

输入参数lsdeviceplatform

swipe

Drag from one point to another (scroll: finger moves up to go down).

输入参数lsmsx1必填x2必填y1必填y2必填deviceplatform

scroll_to

Swipe until the element is fully on screen (swipes above the keyboard when it is up).

输入参数updevicetarget必填platform

back

Android system Back; iOS navigation-bar back button.

输入参数lsdeviceplatform

home

The Home button: go to the home screen, leaving the app running.

输入参数lsdeviceplatform

wait

Wait 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).

输入参数gonedevicesettletargetsecondsplatform

screenshot

A PNG of the screen, returned as an image (scale 0.5 by default: fewer tokens).

输入参数scaledeviceplatform

logs

The app's log since the last logs call (first call: the last minute).

输入参数appgrepsincedeviceerrorsplatform

crashes

Crash reports, ANRs and low-memory kills since the last crashes call.

输入参数appsincedeviceplatform

perf

The 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.

输入参数appforjsondeviceframesplatform

looktap

Any 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

版本历史

6
  1. v0.7.1最新Oct 22, 2026
  2. v0.7.0Oct 20, 2026
  3. v0.6.1Oct 19, 2026
  4. v0.5.0Oct 18, 2026
  5. v0.4.0Oct 17, 2026
  6. v0.2.0Oct 16, 2026

评分

已满足适用检查项的 90%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分
  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具必需15 分
  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分