looktap
NPM · @LOOKTAP/MCP
Let your AI agent see, use and control the apps on your phone: screen as text, tap by label.
Available components
Last scanned (21 hours ago)
Scores higher than 51% of npm servers
Category Browser Automation
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →
Supply Chain Security100
- No malware found by supply-chain analysis.Pass
- No known CVEs affecting this package version or its production dependencies.Pass
- No install/post-install scripts declared.Pass
- 0 of 1 dependencies flagged as unhealthy. View diagnostics → Pass
Provenance & Transparency45
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
- Clear OSI-approved license (AGPL-3.0-only).Pass
- Actively maintained (last published 12 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability62
- AI-judged instruction clarity (good).Pass
- Context-footprint check failed: tool/resource definitions use about 2572 tokens (~128/item across 20 items; 20 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management63
- Stability observed for 19 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage91
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 72% of tool parameters carry a description.Partial
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- We read all 20 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
- An AI judge read all 21 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities60
- Spec-recency check failed: implements MCP spec 2025-06-18; the latest is 2026-07-28. See how to fix → Fail
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 4 Nov 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 60 to 63. That category is still filling its 30-day observation window: 18 days of observed history at the previous scan, 19 at this one. The score rises as the window fills, whether or not the server changes.
- 2 Nov 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 53 to 57. That category is still filling its 30-day observation window: 16 days of observed history at the previous scan, 17 at this one. The score rises as the window fills, whether or not the server changes.
- 31 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 47 to 50. That category is still filling its 30-day observation window: 14 days of observed history at the previous scan, 15 at this one. The score rises as the window fills, whether or not the server changes.
- 29 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 40 to 43. That category is still filling its 30-day observation window: 12 days of observed history at the previous scan, 13 at this one. The score rises as the window fills, whether or not the server changes.
- 27 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 33 to 37. That category is still filling its 30-day observation window: 10 days of observed history at the previous scan, 11 at this one. The score rises as the window fills, whether or not the server changes.
- 24 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.
- 22 Oct 26 +1
- Tool safety: pass → unverified ▼ security
- Stability: 0.17 → unverified ▼ security
- Capabilities: fail → unverified ▼ functional
- Tool coverage: 100 → unverified ▼ functional
- First check of Schema quality: unverified functional
- Package version: 0.7.0 → 0.7.1 functional
- 21 Oct 26 +15
- Malware scan: unverified → pass ▲ security
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 4 Nov 2026 · Analysed npm/@looktap/mcp@0.7.1
Provenance No attestation
The registry publishes no build provenance for this version, so there is nothing to verify.
| Result | No attestation |
|---|---|
| Ecosystem | npm |
Background: How many MCP packages publish verified provenance →
Dependencies 1 package
| Packages resolved | 1 |
|---|---|
| Tree resolution | Complete |
Background: SBOMs and build attestations, explained →
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
back ~83
Android system Back; iOS navigation-bar back button.
| Name | Type | Req | Description |
|---|---|---|---|
| device | string | – | Simulator UDID or adb serial, when several are booted. Remembered for later calls |
| ls | boolean | – | Return the settled screen afterwards (default true) |
| platform | string | – | When both an iOS and an Android device are booted. Remembered for later calls |
No output schema declared.
No examples provided.
code ~114
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).
| Name | Type | Req | Description |
|---|---|---|---|
| code | string | yes | – |
| device | string | – | Simulator UDID or adb serial, when several are booted. Remembered for later calls |
| ls | boolean | – | Return the settled screen afterwards (default true) |
| platform | string | – | When both an iOS and an Android device are booted. Remembered for later calls |
No output schema declared.
No examples provided.
crashes ~86
Crash reports, ANRs and low-memory kills since the last crashes call.
| Name | Type | Req | Description |
|---|---|---|---|
| app | string | – | – |
| device | string | – | Simulator UDID or adb serial, when several are booted. Remembered for later calls |
| platform | string | – | When both an iOS and an Android device are booted. Remembered for later calls |
| since | string | – | – |
No output schema declared.
No examples provided.
fill ~150
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.
| Name | Type | Req | Description |
|---|---|---|---|
| device | string | – | Simulator UDID or adb serial, when several are booted. Remembered for later calls |
| ls | boolean | – | Return the settled screen afterwards (default true) |
| platform | string | – | When both an iOS and an Android device are booted. Remembered for later calls |
| target | string | yes | A label (exact, else unique prefix/substring) or an @ref from the last listing |
| text | string | yes | – |
No output schema declared.
No examples provided.
hide_keyboard ~98
Dismiss the on-screen keyboard and take focus from the field (blur validation runs). Fails if it is still up.
| Name | Type | Req | Description |
|---|---|---|---|
| device | string | – | Simulator UDID or adb serial, when several are booted. Remembered for later calls |
| ls | boolean | – | Return the settled screen afterwards (default true) |
| platform | string | – | When both an iOS and an Android device are booted. Remembered for later calls |
No output schema declared.
No examples provided.
home ~87
The Home button: go to the home screen, leaving the app running.
| Name | Type | Req | Description |
|---|---|---|---|
| device | string | – | Simulator UDID or adb serial, when several are booted. Remembered for later calls |
| ls | boolean | – | Return the settled screen afterwards (default true) |
| platform | string | – | When both an iOS and an Android device are booted. Remembered for later calls |
No output schema declared.
No examples provided.
key ~103
Press keys: return, escape, delete, tab, space, selectall, paste, home (Android also back).
| Name | Type | Req | Description |
|---|---|---|---|
| device | string | – | Simulator UDID or adb serial, when several are booted. Remembered for later calls |
| keys | array | yes | – |
| ls | boolean | – | Return the settled screen afterwards (default true) |
| platform | string | – | When both an iOS and an Android device are booted. Remembered for later calls |
No output schema declared.
No examples provided.
logs ~108
The app's log since the last logs call (first call: the last minute).
| Name | Type | Req | Description |
|---|---|---|---|
| app | string | – | – |
| device | string | – | Simulator UDID or adb serial, when several are booted. Remembered for later calls |
| errors | boolean | – | – |
| grep | string | – | – |
| platform | string | – | When both an iOS and an Android device are booted. Remembered for later calls |
| since | string | – | e.g. 5m |
No output schema declared.
No examples provided.
long_press ~138
Hold a touch on an element (or a point) for ms (default 800).
| Name | Type | Req | Description |
|---|---|---|---|
| device | string | – | Simulator UDID or adb serial, when several are booted. Remembered for later calls |
| ls | boolean | – | Return the settled screen afterwards (default true) |
| ms | number | – | – |
| platform | string | – | When both an iOS and an Android device are booted. Remembered for later calls |
| target | string | – | A label (exact, else unique prefix/substring) or an @ref from the last listing |
| x | number | – | – |
| y | number | – | – |
No output schema declared.
No examples provided.
looktap ~213
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". See: help.
| Name | Type | Req | Description |
|---|---|---|---|
| command | string | yes | – |
| device | string | – | Simulator UDID or adb serial, when several are booted. Remembered for later calls |
| platform | string | – | When both an iOS and an Android device are booted. Remembered for later calls |
No output schema declared.
No examples provided.
ls ~92
List what is on screen: @ref, type, x,y, width×height, label, = value.
| Name | Type | Req | Description |
|---|---|---|---|
| all | boolean | – | Include unlabelled elements |
| device | string | – | Simulator UDID or adb serial, when several are booted. Remembered for later calls |
| platform | string | – | When both an iOS and an Android device are booted. Remembered for later calls |
No output schema declared.
No examples provided.
paste ~100
Put text on the device's clipboard, check it is there, and paste it into the focused field.
| Name | Type | Req | Description |
|---|---|---|---|
| device | string | – | Simulator UDID or adb serial, when several are booted. Remembered for later calls |
| ls | boolean | – | Return the settled screen afterwards (default true) |
| platform | string | – | When both an iOS and an Android device are booted. Remembered for later calls |
| text | string | yes | – |
No output schema declared.
No examples provided.
perf ~218
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.
| Name | Type | Req | Description |
|---|---|---|---|
| app | string | – | App id (default: the configured app, else the app in front) |
| device | string | – | Simulator UDID or adb serial, when several are booted. Remembered for later calls |
| for | number | – | Seconds to sample, a reading each second, then avg/max |
| frames | boolean | – | Frame and jank stats instead of CPU and memory |
| json | boolean | – | Structured output |
| platform | string | – | When both an iOS and an Android device are booted. Remembered for later calls |
No output schema declared.
No examples provided.
screenshot ~90
A PNG of the screen, returned as an image (scale 0.5 by default: fewer tokens).
| Name | Type | Req | Description |
|---|---|---|---|
| device | string | – | Simulator UDID or adb serial, when several are booted. Remembered for later calls |
| platform | string | – | When both an iOS and an Android device are booted. Remembered for later calls |
| scale | number | – | 0–1 |
No output schema declared.
No examples provided.
scroll_to ~94
Swipe until the element is fully on screen (swipes above the keyboard when it is up).
| Name | Type | Req | Description |
|---|---|---|---|
| device | string | – | Simulator UDID or adb serial, when several are booted. Remembered for later calls |
| platform | string | – | When both an iOS and an Android device are booted. Remembered for later calls |
| target | string | yes | – |
| up | boolean | – | Scroll back up |
No output schema declared.
No examples provided.
swipe ~127
Drag from one point to another (scroll: finger moves up to go down).
| Name | Type | Req | Description |
|---|---|---|---|
| device | string | – | Simulator UDID or adb serial, when several are booted. Remembered for later calls |
| ls | boolean | – | Return the settled screen afterwards (default true) |
| ms | number | – | – |
| platform | string | – | When both an iOS and an Android device are booted. Remembered for later calls |
| x1 | number | yes | – |
| x2 | number | yes | – |
| y1 | number | yes | – |
| y2 | number | yes | – |
No output schema declared.
No examples provided.
tap ~119
Tap an element by label or @ref. Returns the settled screen.
| Name | Type | Req | Description |
|---|---|---|---|
| device | string | – | Simulator UDID or adb serial, when several are booted. Remembered for later calls |
| exact | boolean | – | – |
| ls | boolean | – | Return the settled screen afterwards (default true) |
| platform | string | – | When both an iOS and an Android device are booted. Remembered for later calls |
| target | string | yes | A label (exact, else unique prefix/substring) or an @ref from the last listing |
No output schema declared.
No examples provided.
tap_xy ~103
Tap a point (iOS points / Android dp, the units ls prints).
| Name | Type | Req | Description |
|---|---|---|---|
| device | string | – | Simulator UDID or adb serial, when several are booted. Remembered for later calls |
| ls | boolean | – | Return the settled screen afterwards (default true) |
| platform | string | – | When both an iOS and an Android device are booted. Remembered for later calls |
| x | number | yes | – |
| y | number | yes | – |
No output schema declared.
No examples provided.
type ~85
Type into the focused field.
| Name | Type | Req | Description |
|---|---|---|---|
| device | string | – | Simulator UDID or adb serial, when several are booted. Remembered for later calls |
| ls | boolean | – | Return the settled screen afterwards (default true) |
| platform | string | – | When both an iOS and an Android device are booted. Remembered for later calls |
| text | string | yes | – |
No output schema declared.
No examples provided.
wait ~106
Wait until a label (or @ref) is on screen — or, with gone, until it is not.
| Name | Type | Req | Description |
|---|---|---|---|
| device | string | – | Simulator UDID or adb serial, when several are booted. Remembered for later calls |
| gone | boolean | – | – |
| platform | string | – | When both an iOS and an Android device are booted. Remembered for later calls |
| seconds | number | – | Timeout (default 10) |
| target | string | yes | – |
No output schema declared.
No examples provided.
How do I install the looktap MCP server?
looktap runs locally as an npm package, launched with npx -y @looktap/mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
npm · @looktap/mcp
claude mcp add lakpriya1s-looktap -- npx -y @looktap/mcp
What is the looktap MCP server?
looktap is an MCP server listed in the public MCP registry as io.github.lakpriya1s/looktap. Let your AI agent see, use and control the apps on your phone: screen as text, tap by label. This page covers its npm package (@looktap/mcp).
Is the looktap MCP server safe to use?
looktap scores 75 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 4 November 2026. It declares no install or post-install scripts. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the looktap MCP server expose?
looktap exposes 20 tools: ls, tap, tap_xy, long_press, fill, and 15 more. Their descriptions and schemas cost roughly 2,314 tokens of context every time the server is loaded.
Is the looktap MCP server still maintained?
looktap is still listed as active in the MCP registry. We last reached this channel on 4 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.
What licence is the looktap MCP server under?
looktap declares the AGPL-3.0-only licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.