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 分