agent-device
NPM · AGENT-DEVICE · SCANNED OCT 5
MCP server for mobile app automation: verify, control, and debug iOS, Android, TV, and desktop apps
Available components
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
- No production dependencies, so there is no dependency health to assess. View diagnostics → Pass
Provenance & Transparency48
- 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 (MIT).Pass
- Actively maintained (last published 2 days ago).Pass
- Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability50
- AI-judged instruction clarity (good).Pass
- Context-footprint check failed: tool/resource definitions use about 25604 tokens (~433/item across 59 items; 59 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 Management90
- Stability observed for 27 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage97
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 89% of tool parameters carry a description.Partial
- Structured output schemas are declared (53% of tools); any adoption earns full credit.Pass
Tool Safety75
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- 0 of 3 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "batch" implies "execute" and declares no destructiveHint at all, which the MCP spec reads as destructive by default. See how to fix → Fail
- An AI judge read all 60 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a current MCP spec version (2026-07-28).Pass
How do I install the agent-device MCP server?
agent-device runs locally as an npm package, launched with npx -y agent-device. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
npm · agent-device
claude mcp add callstack-agent-device -- npx -y agent-device
{
"mcpServers": {
"callstack-agent-device": {
"command": "npx",
"args": [
"-y",
"agent-device"
]
}
}
} {
"servers": {
"callstack-agent-device": {
"command": "npx",
"args": [
"-y",
"agent-device"
]
}
}
} codex mcp add callstack-agent-device -- npx -y agent-device
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"callstack-agent-device": {
"type": "local",
"command": [
"npx",
"-y",
"agent-device"
],
"enabled": true
}
}
} openclaw mcp add callstack-agent-device --command npx --arg -y --arg agent-device
mcp_servers:
callstack-agent-device:
command: "npx"
args: ["-y", "agent-device"] {
"McpServers": {
"callstack-agent-device": {
"Transport": "stdio",
"Command": "npx",
"Arguments": [
"-y",
"agent-device"
]
}
}
} assistant mcp add callstack-agent-device -t stdio -c npx -a -y agent-device
{
"mcpServers": {
"callstack-agent-device": {
"command": "npx",
"args": [
"-y",
"agent-device"
]
}
}
} 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 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 83 to 87. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes.
- 1 Oct 26 +16
- Malware scan: unverified → pass ▲ security
- 30 Sept 26 −15
- Malware scan: pass → unverified ▼ security
- Package version: 0.21.15 → 0.21.18 functional
- 29 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 67 to 70. That category is still filling its 30-day observation window: 20 days of observed history at the previous scan, 21 at this one. The score rises as the window fills, whether or not the server changes.
- 28 Sept 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 27 Sept 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.
- 26 Sept 26 +11
- Known CVEs: unverified → pass ▲ security
- Dependency health: unverified → pass ▲ functional
- 25 Sept 26 −10
- Known CVEs: pass → unverified ▼ security
- Dependency health: pass → unverified ▼ functional
- Package version: 0.21.12 → 0.21.15 functional
- Package version: 0.21.12 → 0.21.14 functional
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
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 5 Oct 2026 · Analysed npm/agent-device@0.21.18
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 0 packages
| Packages resolved | 0 |
|---|---|
| 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 →
help ~127
Usage guides. No topic: the full workflow card. topic = one of commands, manual-qa, maestro, workflow, scripting, gestures, tv, debugging, react-devtools, cdp, react-native, physical-device, ios-system-ui, foldable, remote, macos, web, dogfood, validate for that guide, or a tool name for its complete flag reference. For specialized work or an unclear command shape only; not a startup step, not needed after an error that carries a hint.
| Name | Type | Req | Description |
|---|---|---|---|
| topic | string | – | Guide topic or tool name; omit for the card. |
No output schema declared.
No examples provided.
home ~350
Send the selected device to its home screen. This leaves the app session open but moves the foreground away from the app. Times out after 90s.
| Name | Type | Req | Description |
|---|---|---|---|
| androidDeviceAllowlist | string | – | Android serial allowlist used for device resolution. |
| debug | boolean | – | Enable debug diagnostics. |
| device | string | – | Device name selector (a UDID belongs in udid, a serial in serial). |
| deviceTarget | string | – | Device target form. Maps to the CLI --target flag. |
| includeCost | boolean | – | Include per-command agent-cost (cost.wallClockMs, …) in structuredContent. Defaults to off; the default response shape is unchanged. |
| leaseId | string | – | Existing lease identifier. |
| mcpOutputFormat | string | – | MCP text content format. Defaults to optimized agent-friendly text; use json for JSON text. Structured content is always returned separately. |
| noRecord | boolean | – | Do not record this action. |
| platform | string | – | Platform selector used to resolve a device. |
| responseLevel | string | – | Response verbosity: token-cheap digest / default (today) / full. Defaults to default; the default response shape is unchanged. |
| runId | string | – | Lease run identifier. |
| serial | string | – | Android, HarmonyOS, or Vega VVD serial selector. |
| session | string | – | Agent-device session name. |
| target | string | – | Alias for deviceTarget on commands without a UI target field. Interaction commands reserve target for the UI element. |
| tenant | string | – | Remote tenant identifier. |
| udid | string | – | Apple device or simulator UDID; the selector that pins one device when several share a name. |
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | – |
| message | string | yes | – |
No examples provided.
hover ~502
Move the pointer over a UI target by snapshot ref, selector, or coordinates without pressing, to reveal hover-gated UI such as row toolbars or menus. Web only; touch platforms have no hover state. Use settle to observe what the hover revealed without a follow-up snapshot. Times out after 90s; a caller-supplied budget extends it.
| Name | Type | Req | Description |
|---|---|---|---|
| androidDeviceAllowlist | string | – | Android serial allowlist used for device resolution. |
| debug | boolean | – | Enable debug diagnostics. |
| depth | integer | – | Snapshot traversal depth. |
| device | string | – | Device name selector (a UDID belongs in udid, a serial in serial). |
| deviceTarget | string | – | Device target form. Maps to the CLI --target flag. |
| includeCost | boolean | – | Include per-command agent-cost (cost.wallClockMs, …) in structuredContent. Defaults to off; the default response shape is unchanged. |
| leaseId | string | – | Existing lease identifier. |
| mcpOutputFormat | string | – | MCP text content format. Defaults to optimized agent-friendly text; use json for JSON text. Structured content is always returned separately. |
| noRecord | boolean | – | Do not record this action. |
| platform | string | – | Platform selector used to resolve a device. |
| raw | boolean | – | Use raw snapshot data during selector resolution. |
| responseLevel | string | – | Response verbosity: token-cheap digest / default (today) / full. Defaults to default; the default response shape is unchanged. |
| runId | string | – | Lease run identifier. |
| scope | string | – | Snapshot scope selector used before resolution. |
| serial | string | – | Android, HarmonyOS, or Vega VVD serial selector. |
| session | string | – | Agent-device session name. |
| settle | boolean | – | After the action, wait for the UI to go quiet and return the settled diff vs the pre-action tree in the same response. Best-effort; never fails the action. |
| settleQuietMs | integer | – | Settle: quiet window in milliseconds (default 500). |
| target | – | yes | UI target. This is separate from deviceTarget, which selects the device form. |
| tenant | string | – | Remote tenant identifier. |
| timeoutMs | integer | – | Settle: wait deadline in milliseconds (default 10000). |
| udid | string | – | Apple device or simulator UDID; the selector that pins one device when several share a name. |
| Name | Type | Req | Description |
|---|---|---|---|
| cost | object | – | – |
| evidence | object | – | – |
| gesture | string | – | – |
| hint | string | – | – |
| maestroFallbackReason | string | – | – |
| maestroNonHittableCoordinateFallbackAllowed | boolean | – | Whether the direct iOS Maestro coordinate fallback was allowed for this selector. |
| maestroNonHittableCoordinateFallbackUsed | boolean | – | Whether the direct iOS Maestro coordinate fallback was actually used. |
| message | string | – | – |
| ref | string | – | Snapshot ref without the @ prefix when the target was an @ref. |
| refLabel | string | – | – |
| referenceHeight | number | – | Reference frame height for visualizing the interaction point. |
| referenceWidth | number | – | Reference frame width for visualizing the interaction point. |
| resolution | object | – | Pre-action disclosure of how the acting path resolved its target. Absent when resolutionDisclosure is inapplicable for the path. |
| selector | string | – | Selector expression when the target was a selector. |
| selectorChain | array | – | – |
| settle | object | – | – |
| targetHittable | boolean | – | – |
| targetKind | string | yes | Resolved interaction target kind. |
| warning | string | – | – |
| x | number | – | Resolved interaction x coordinate when available. |
| y | number | – | Resolved interaction y coordinate when available. |
No examples provided.
install ~382
Install an app binary from a local path. Provide an app identifier with the path when the target needs explicit app selection; use reinstall to replace an already installed app. Times out after 180s.
| Name | Type | Req | Description |
|---|---|---|---|
| androidDeviceAllowlist | string | – | Android serial allowlist used for device resolution. |
| app | string | – | Optional app identifier hint. |
| appPath | string | yes | Path to app binary. |
| debug | boolean | – | Enable debug diagnostics. |
| device | string | – | Device name selector (a UDID belongs in udid, a serial in serial). |
| deviceTarget | string | – | Device target form. Maps to the CLI --target flag. |
| includeCost | boolean | – | Include per-command agent-cost (cost.wallClockMs, …) in structuredContent. Defaults to off; the default response shape is unchanged. |
| leaseId | string | – | Existing lease identifier. |
| mcpOutputFormat | string | – | MCP text content format. Defaults to optimized agent-friendly text; use json for JSON text. Structured content is always returned separately. |
| noRecord | boolean | – | Do not record this action. |
| platform | string | – | Platform selector used to resolve a device. |
| responseLevel | string | – | Response verbosity: token-cheap digest / default (today) / full. Defaults to default; the default response shape is unchanged. |
| runId | string | – | Lease run identifier. |
| serial | string | – | Android, HarmonyOS, or Vega VVD serial selector. |
| session | string | – | Agent-device session name. |
| target | string | – | Alias for deviceTarget on commands without a UI target field. Interaction commands reserve target for the UI element. |
| tenant | string | – | Remote tenant identifier. |
| udid | string | – | Apple device or simulator UDID; the selector that pins one device when several share a name. |
No output schema declared.
No examples provided.
install-from-source ~373
Install app builds from URLs, remote source specs, or CI artifacts resolved by a remote daemon. Times out after 90s.
| Name | Type | Req | Description |
|---|---|---|---|
| androidDeviceAllowlist | string | – | Android serial allowlist used for device resolution. |
| debug | boolean | – | Enable debug diagnostics. |
| device | string | – | Device name selector (a UDID belongs in udid, a serial in serial). |
| deviceTarget | string | – | Device target form. Maps to the CLI --target flag. |
| includeCost | boolean | – | Include per-command agent-cost (cost.wallClockMs, …) in structuredContent. Defaults to off; the default response shape is unchanged. |
| leaseId | string | – | Existing lease identifier. |
| mcpOutputFormat | string | – | MCP text content format. Defaults to optimized agent-friendly text; use json for JSON text. Structured content is always returned separately. |
| noRecord | boolean | – | Do not record this action. |
| platform | string | – | Platform selector used to resolve a device. |
| responseLevel | string | – | Response verbosity: token-cheap digest / default (today) / full. Defaults to default; the default response shape is unchanged. |
| retainPaths | boolean | – | – |
| retentionMs | integer | – | – |
| runId | string | – | Lease run identifier. |
| serial | string | – | Android, HarmonyOS, or Vega VVD serial selector. |
| session | string | – | Agent-device session name. |
| source | object | yes | Install source object. |
| target | string | – | Alias for deviceTarget on commands without a UI target field. Interaction commands reserve target for the UI element. |
| tenant | string | – | Remote tenant identifier. |
| udid | string | – | Apple device or simulator UDID; the selector that pins one device when several share a name. |
No output schema declared.
No examples provided.
is ~496
Check whether a selector satisfies a UI predicate such as visible, hidden, exists, absent, editable, selected, focused, or text. `absent` passes only when one readable, complete, settled, unscoped, full-depth accessibility capture has zero matches. Use wait when the condition may appear asynchronously. Times out after 90s.
| Name | Type | Req | Description |
|---|---|---|---|
| androidDeviceAllowlist | string | – | Android serial allowlist used for device resolution. |
| debug | boolean | – | Enable debug diagnostics. |
| depth | integer | – | Snapshot traversal depth. |
| device | string | – | Device name selector (a UDID belongs in udid, a serial in serial). |
| deviceTarget | string | – | Device target form. Maps to the CLI --target flag. |
| includeCost | boolean | – | Include per-command agent-cost (cost.wallClockMs, …) in structuredContent. Defaults to off; the default response shape is unchanged. |
| leaseId | string | – | Existing lease identifier. |
| mcpOutputFormat | string | – | MCP text content format. Defaults to optimized agent-friendly text; use json for JSON text. Structured content is always returned separately. |
| noRecord | boolean | – | Do not record this action. |
| platform | string | – | Platform selector used to resolve a device. |
| predicate | string | yes | – |
| raw | boolean | – | Use raw snapshot data during selector resolution. |
| record | boolean | – | Force-record this out-of-band observation into a repair-armed heal (mutually exclusive with noRecord). Authored replay steps are recorded automatically and never need this. On find, valid only for a… |
| responseLevel | string | – | Response verbosity: token-cheap digest / default (today) / full. Defaults to default; the default response shape is unchanged. |
| runId | string | – | Lease run identifier. |
| scope | string | – | Snapshot scope selector used before resolution. |
| selector | string | yes | – |
| serial | string | – | Android, HarmonyOS, or Vega VVD serial selector. |
| session | string | – | Agent-device session name. |
| target | string | – | Alias for deviceTarget on commands without a UI target field. Interaction commands reserve target for the UI element. |
| tenant | string | – | Remote tenant identifier. |
| udid | string | – | Apple device or simulator UDID; the selector that pins one device when several share a name. |
| value | string | – | – |
No output schema declared.
No examples provided.
keyboard ~391
Inspect Android keyboard visibility/type or press/dismiss the device keyboard. To hide the keyboard, use keyboard dismiss. It taps the keyboard dismiss/hide key when one is exposed, verifies the keyboard closed, and reports UNSUPPORTED_OPERATION when no dismiss key exists — background taps are never attempted. Times out after 90s.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | – | – |
| androidDeviceAllowlist | string | – | Android serial allowlist used for device resolution. |
| debug | boolean | – | Enable debug diagnostics. |
| device | string | – | Device name selector (a UDID belongs in udid, a serial in serial). |
| deviceTarget | string | – | Device target form. Maps to the CLI --target flag. |
| includeCost | boolean | – | Include per-command agent-cost (cost.wallClockMs, …) in structuredContent. Defaults to off; the default response shape is unchanged. |
| leaseId | string | – | Existing lease identifier. |
| mcpOutputFormat | string | – | MCP text content format. Defaults to optimized agent-friendly text; use json for JSON text. Structured content is always returned separately. |
| noRecord | boolean | – | Do not record this action. |
| platform | string | – | Platform selector used to resolve a device. |
| responseLevel | string | – | Response verbosity: token-cheap digest / default (today) / full. Defaults to default; the default response shape is unchanged. |
| runId | string | – | Lease run identifier. |
| serial | string | – | Android, HarmonyOS, or Vega VVD serial selector. |
| session | string | – | Agent-device session name. |
| target | string | – | Alias for deviceTarget on commands without a UI target field. Interaction commands reserve target for the UI element. |
| tenant | string | – | Remote tenant identifier. |
| udid | string | – | Apple device or simulator UDID; the selector that pins one device when several share a name. |
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | – |
| attempts | number | – | – |
| dismissed | boolean | – | – |
| focusedPackage | string | – | – |
| focusedResourceId | string | – | – |
| inputMethodPackage | string | – | – |
| inputOwner | string | – | – |
| inputType | string | – | – |
| message | string | – | – |
| platform | string | yes | – |
| type | string | – | – |
| visible | boolean | – | – |
| wasVisible | boolean | – | – |
No examples provided.
logs ~348
Session app log info, start/stop streaming, diagnostics, and markers Times out after 90s.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | – | – |
| androidDeviceAllowlist | string | – | Android serial allowlist used for device resolution. |
| debug | boolean | – | Enable debug diagnostics. |
| device | string | – | Device name selector (a UDID belongs in udid, a serial in serial). |
| deviceTarget | string | – | Device target form. Maps to the CLI --target flag. |
| includeCost | boolean | – | Include per-command agent-cost (cost.wallClockMs, …) in structuredContent. Defaults to off; the default response shape is unchanged. |
| leaseId | string | – | Existing lease identifier. |
| mcpOutputFormat | string | – | MCP text content format. Defaults to optimized agent-friendly text; use json for JSON text. Structured content is always returned separately. |
| message | string | – | – |
| platform | string | – | Platform selector used to resolve a device. |
| responseLevel | string | – | Response verbosity: token-cheap digest / default (today) / full. Defaults to default; the default response shape is unchanged. |
| restart | boolean | – | – |
| runId | string | – | Lease run identifier. |
| serial | string | – | Android, HarmonyOS, or Vega VVD serial selector. |
| session | string | – | Agent-device session name. |
| target | string | – | Alias for deviceTarget on commands without a UI target field. Interaction commands reserve target for the UI element. |
| tenant | string | – | Remote tenant identifier. |
| udid | string | – | Apple device or simulator UDID; the selector that pins one device when several share a name. |
No output schema declared.
No examples provided.
longpress ~494
Hold a UI target by snapshot ref, selector, or coordinates to open a context menu or perform another hold gesture. Set durationMs when the default hold duration is unsuitable. Times out after 210s; a caller-supplied budget extends it.
| Name | Type | Req | Description |
|---|---|---|---|
| androidDeviceAllowlist | string | – | Android serial allowlist used for device resolution. |
| debug | boolean | – | Enable debug diagnostics. |
| depth | integer | – | Snapshot traversal depth. |
| device | string | – | Device name selector (a UDID belongs in udid, a serial in serial). |
| deviceTarget | string | – | Device target form. Maps to the CLI --target flag. |
| durationMs | integer | – | Long press duration in milliseconds. |
| includeCost | boolean | – | Include per-command agent-cost (cost.wallClockMs, …) in structuredContent. Defaults to off; the default response shape is unchanged. |
| leaseId | string | – | Existing lease identifier. |
| mcpOutputFormat | string | – | MCP text content format. Defaults to optimized agent-friendly text; use json for JSON text. Structured content is always returned separately. |
| noRecord | boolean | – | Do not record this action. |
| platform | string | – | Platform selector used to resolve a device. |
| raw | boolean | – | Use raw snapshot data during selector resolution. |
| responseLevel | string | – | Response verbosity: token-cheap digest / default (today) / full. Defaults to default; the default response shape is unchanged. |
| runId | string | – | Lease run identifier. |
| scope | string | – | Snapshot scope selector used before resolution. |
| serial | string | – | Android, HarmonyOS, or Vega VVD serial selector. |
| session | string | – | Agent-device session name. |
| settle | boolean | – | After the action, wait for the UI to go quiet and return the settled diff vs the pre-action tree in the same response. Best-effort; never fails the action. |
| settleQuietMs | integer | – | Settle: quiet window in milliseconds (default 500). |
| target | – | yes | UI target. This is separate from deviceTarget, which selects the device form. |
| tenant | string | – | Remote tenant identifier. |
| timeoutMs | integer | – | Settle: wait deadline in milliseconds (default 10000). |
| udid | string | – | Apple device or simulator UDID; the selector that pins one device when several share a name. |
| Name | Type | Req | Description |
|---|---|---|---|
| cost | object | – | – |
| durationMs | number | – | – |
| evidence | object | – | – |
| gesture | string | – | – |
| hint | string | – | – |
| maestroFallbackReason | string | – | – |
| maestroNonHittableCoordinateFallbackAllowed | boolean | – | Whether the direct iOS Maestro coordinate fallback was allowed for this selector. |
| maestroNonHittableCoordinateFallbackUsed | boolean | – | Whether the direct iOS Maestro coordinate fallback was actually used. |
| message | string | – | – |
| ref | string | – | Snapshot ref without the @ prefix when the target was an @ref. |
| refLabel | string | – | – |
| referenceHeight | number | – | Reference frame height for visualizing the interaction point. |
| referenceWidth | number | – | Reference frame width for visualizing the interaction point. |
| resolution | object | – | Pre-action disclosure of how the acting path resolved its target. Absent when resolutionDisclosure is inapplicable for the path. |
| selector | string | – | Selector expression when the target was a selector. |
| selectorChain | array | – | – |
| settle | object | – | – |
| targetHittable | boolean | – | – |
| targetKind | string | yes | Resolved interaction target kind. |
| warning | string | – | – |
| x | number | – | Resolved interaction x coordinate when available. |
| y | number | – | Resolved interaction y coordinate when available. |
No examples provided.
metro ~532
Prepare a React Native development server or ask connected apps to reload, using the development server this session is bound to. Provide explicit runtime inputs only to override that binding for one call. The binding is cleared when the session closes, and a fresh open without runtime hints also clears any leftover binding from a previous same-name session. Times out after 90s.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | – |
| androidDeviceAllowlist | string | – | Android serial allowlist used for device resolution. |
| bridgeScope | object | – | – |
| bundleUrl | string | – | – |
| debug | boolean | – | Enable debug diagnostics. |
| device | string | – | Device name selector (a UDID belongs in udid, a serial in serial). |
| deviceTarget | string | – | Device target form. Maps to the CLI --target flag. |
| includeCost | boolean | – | Include per-command agent-cost (cost.wallClockMs, …) in structuredContent. Defaults to off; the default response shape is unchanged. |
| installDependenciesIfNeeded | boolean | – | – |
| kind | string | – | – |
| launchUrl | string | – | – |
| leaseId | string | – | Existing lease identifier. |
| listenHost | string | – | – |
| logPath | string | – | – |
| mcpOutputFormat | string | – | MCP text content format. Defaults to optimized agent-friendly text; use json for JSON text. Structured content is always returned separately. |
| metroHost | string | – | – |
| metroPort | integer | – | – |
| platform | string | – | Platform selector used to resolve a device. |
| port | integer | – | – |
| probeTimeoutMs | integer | – | – |
| projectRoot | string | – | – |
| publicBaseUrl | string | – | – |
| responseLevel | string | – | Response verbosity: token-cheap digest / default (today) / full. Defaults to default; the default response shape is unchanged. |
| reuseExisting | boolean | – | – |
| runId | string | – | Lease run identifier. |
| runtimeFilePath | string | – | – |
| serial | string | – | Android, HarmonyOS, or Vega VVD serial selector. |
| session | string | – | Agent-device session name. |
| startupTimeoutMs | integer | – | – |
| statusHost | string | – | – |
| target | string | – | Alias for deviceTarget on commands without a UI target field. Interaction commands reserve target for the UI element. |
| tenant | string | – | Remote tenant identifier. |
| timeoutMs | integer | – | – |
| udid | string | – | Apple device or simulator UDID; the selector that pins one device when several share a name. |
No output schema declared.
No examples provided.
network ~346
Dump recent HTTP(s) traffic parsed from the session app log Times out after 90s.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | – | – |
| androidDeviceAllowlist | string | – | Android serial allowlist used for device resolution. |
| debug | boolean | – | Enable debug diagnostics. |
| device | string | – | Device name selector (a UDID belongs in udid, a serial in serial). |
| deviceTarget | string | – | Device target form. Maps to the CLI --target flag. |
| include | string | – | – |
| includeCost | boolean | – | Include per-command agent-cost (cost.wallClockMs, …) in structuredContent. Defaults to off; the default response shape is unchanged. |
| leaseId | string | – | Existing lease identifier. |
| limit | integer | – | – |
| mcpOutputFormat | string | – | MCP text content format. Defaults to optimized agent-friendly text; use json for JSON text. Structured content is always returned separately. |
| platform | string | – | Platform selector used to resolve a device. |
| responseLevel | string | – | Response verbosity: token-cheap digest / default (today) / full. Defaults to default; the default response shape is unchanged. |
| runId | string | – | Lease run identifier. |
| serial | string | – | Android, HarmonyOS, or Vega VVD serial selector. |
| session | string | – | Agent-device session name. |
| target | string | – | Alias for deviceTarget on commands without a UI target field. Interaction commands reserve target for the UI element. |
| tenant | string | – | Remote tenant identifier. |
| udid | string | – | Apple device or simulator UDID; the selector that pins one device when several share a name. |
No output schema declared.
No examples provided.
open ~890
Boot the selected device when needed, then open an app, deep link, or URL in a session. Use the app or URL inputs to choose what becomes the foreground automation target. Metro and debug runtime hints given here are recorded as the session's dev-server binding, so a later reload reuses them; a fresh open without them clears any binding left by a previous same-name session. Times out after 90s; a caller-supplied budget extends it.
| Name | Type | Req | Description |
|---|---|---|---|
| activity | string | – | Android activity name. |
| androidDeviceAllowlist | string | – | Android serial allowlist used for device resolution. |
| app | string | – | App name, bundle id, package, or URL. |
| bundleUrl | string | – | Session-scoped bundle URL hint applied to the opened app. |
| debug | boolean | – | Enable debug diagnostics. |
| device | string | – | Device name selector (a UDID belongs in udid, a serial in serial). |
| deviceTarget | string | – | Device target form. Maps to the CLI --target flag. |
| force | boolean | – | Overwrite an existing --save-script target instead of refusing (alias: --overwrite). |
| foreground | boolean | – | Include an initial interactive snapshot in a fresh open response. With no app argument, discover the sole running app on the sole booted iOS simulator; ambiguous environments fail closed. |
| includeCost | boolean | – | Include per-command agent-cost (cost.wallClockMs, …) in structuredContent. Defaults to off; the default response shape is unchanged. |
| launchArgs | array | – | Launch arguments forwarded verbatim to the platform launch command. |
| launchConsole | string | – | Launch console mode. |
| launchUrl | string | – | Session-scoped launch URL hint applied to the opened app. |
| leaseId | string | – | Existing lease identifier. |
| mcpOutputFormat | string | – | MCP text content format. Defaults to optimized agent-friendly text; use json for JSON text. Structured content is always returned separately. |
| metroHost | string | – | Session-scoped Metro/debug host hint applied to the opened app. |
| metroPort | integer | – | Session-scoped Metro/debug port hint applied to the opened app. On an emulator/simulator the host defaults to the loopback alias (Android 10.0.2.2, iOS 127.0.0.1) when --metro-host is omitted; physic… |
| noRecord | boolean | – | Do not record this action. |
| platform | string | – | Platform selector used to resolve a device. |
| relaunch | boolean | – | Force relaunch. |
| responseLevel | string | – | Response verbosity: token-cheap digest / default (today) / full. Defaults to default; the default response shape is unchanged. |
| runId | string | – | Lease run identifier. |
| saveScript | – | – | – |
| serial | string | – | Android, HarmonyOS, or Vega VVD serial selector. |
| session | string | – | Agent-device session name. |
| surface | string | – | macOS presentation surface to open: the app itself, the frontmost app, the desktop, or the menu bar. |
| target | string | – | Alias for deviceTarget on commands without a UI target field. Interaction commands reserve target for the UI element. |
| tenant | string | – | Remote tenant identifier. |
| testIme | boolean | – | Activate the headless Android test IME for deterministic Unicode text entry (default on for emulators; opt-in on real devices). |
| timeoutMs | integer | – | Startup budget in milliseconds. Bounds the Simulator boot wait, so a never-booted Simulator can finish its first-boot migration; omit for the default startup behavior. |
| udid | string | – | Apple device or simulator UDID; the selector that pins one device when several share a name. |
| url | string | – | Optional URL passed with an app shell. |
| waitMs | integer | – | Block this open for up to n milliseconds (100-120000) while another session holds the device, then fail with DEVICE_IN_USE naming that session. Only session contention is waited for: a device claim h… |
No output schema declared.
No examples provided.
orientation ~341
Set device orientation on iOS and Android Times out after 90s.
| Name | Type | Req | Description |
|---|---|---|---|
| androidDeviceAllowlist | string | – | Android serial allowlist used for device resolution. |
| debug | boolean | – | Enable debug diagnostics. |
| device | string | – | Device name selector (a UDID belongs in udid, a serial in serial). |
| deviceTarget | string | – | Device target form. Maps to the CLI --target flag. |
| includeCost | boolean | – | Include per-command agent-cost (cost.wallClockMs, …) in structuredContent. Defaults to off; the default response shape is unchanged. |
| leaseId | string | – | Existing lease identifier. |
| mcpOutputFormat | string | – | MCP text content format. Defaults to optimized agent-friendly text; use json for JSON text. Structured content is always returned separately. |
| noRecord | boolean | – | Do not record this action. |
| orientation | string | yes | – |
| platform | string | – | Platform selector used to resolve a device. |
| responseLevel | string | – | Response verbosity: token-cheap digest / default (today) / full. Defaults to default; the default response shape is unchanged. |
| runId | string | – | Lease run identifier. |
| serial | string | – | Android, HarmonyOS, or Vega VVD serial selector. |
| session | string | – | Agent-device session name. |
| target | string | – | Alias for deviceTarget on commands without a UI target field. Interaction commands reserve target for the UI element. |
| tenant | string | – | Remote tenant identifier. |
| udid | string | – | Apple device or simulator UDID; the selector that pins one device when several share a name. |
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | – |
| confirmed | boolean | – | – |
| message | string | yes | – |
| orientation | string | yes | – |
| warning | string | – | – |
No examples provided.
perf ~466
Collect frame health, memory diagnostics, and platform profiling artifacts with compact agent-readable summaries. For CPU profiles, start and stop write the raw artifact while report writes a compact summary; request the report when the task needs readable native CPU evidence. Profiling output is evidence only: compact state, artifact path, and size. Times out after 90s.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | – | – |
| androidDeviceAllowlist | string | – | Android serial allowlist used for device resolution. |
| area | string | yes | – |
| debug | boolean | – | Enable debug diagnostics. |
| device | string | – | Device name selector (a UDID belongs in udid, a serial in serial). |
| deviceTarget | string | – | Device target form. Maps to the CLI --target flag. |
| includeCost | boolean | – | Include per-command agent-cost (cost.wallClockMs, …) in structuredContent. Defaults to off; the default response shape is unchanged. |
| kind | string | – | – |
| leaseId | string | – | Existing lease identifier. |
| mcpOutputFormat | string | – | MCP text content format. Defaults to optimized agent-friendly text; use json for JSON text. Structured content is always returned separately. |
| noRecord | boolean | – | Do not record this action. |
| out | string | – | Output artifact path. |
| platform | string | – | Platform selector used to resolve a device. |
| responseLevel | string | – | Response verbosity: token-cheap digest / default (today) / full. Defaults to default; the default response shape is unchanged. |
| runId | string | – | Lease run identifier. |
| serial | string | – | Android, HarmonyOS, or Vega VVD serial selector. |
| session | string | – | Agent-device session name. |
| subject | string | – | – |
| target | string | – | Alias for deviceTarget on commands without a UI target field. Interaction commands reserve target for the UI element. |
| template | string | – | xctrace template name, for example Time Profiler. |
| tenant | string | – | Remote tenant identifier. |
| tracePath | string | – | Existing .trace path to report, defaults to the latest session trace. |
| udid | string | – | Apple device or simulator UDID; the selector that pins one device when several share a name. |
No output schema declared.
No examples provided.
press ~573
Short-press a UI target by snapshot ref, selector, or coordinates. Use longpress instead when the target requires a context-menu or hold gesture. Times out after 90s; a caller-supplied budget extends it.
| Name | Type | Req | Description |
|---|---|---|---|
| androidDeviceAllowlist | string | – | Android serial allowlist used for device resolution. |
| count | integer | – | Number of press/click repetitions. |
| debug | boolean | – | Enable debug diagnostics. |
| depth | integer | – | Snapshot traversal depth. |
| device | string | – | Device name selector (a UDID belongs in udid, a serial in serial). |
| deviceTarget | string | – | Device target form. Maps to the CLI --target flag. |
| doubleTap | boolean | – | Request a double-tap action. |
| holdMs | integer | – | Hold duration for each action. |
| includeCost | boolean | – | Include per-command agent-cost (cost.wallClockMs, …) in structuredContent. Defaults to off; the default response shape is unchanged. |
| intervalMs | integer | – | Delay between repeated press/click actions. |
| jitterPx | integer | – | Randomization radius in pixels. |
| leaseId | string | – | Existing lease identifier. |
| mcpOutputFormat | string | – | MCP text content format. Defaults to optimized agent-friendly text; use json for JSON text. Structured content is always returned separately. |
| noRecord | boolean | – | Do not record this action. |
| platform | string | – | Platform selector used to resolve a device. |
| raw | boolean | – | Use raw snapshot data during selector resolution. |
| responseLevel | string | – | Response verbosity: token-cheap digest / default (today) / full. Defaults to default; the default response shape is unchanged. |
| runId | string | – | Lease run identifier. |
| scope | string | – | Snapshot scope selector used before resolution. |
| serial | string | – | Android, HarmonyOS, or Vega VVD serial selector. |
| session | string | – | Agent-device session name. |
| settle | boolean | – | After the action, wait for the UI to go quiet and return the settled diff vs the pre-action tree in the same response. Best-effort; never fails the action. |
| settleQuietMs | integer | – | Settle: quiet window in milliseconds (default 500). |
| target | – | yes | UI target. This is separate from deviceTarget, which selects the device form. |
| tenant | string | – | Remote tenant identifier. |
| timeoutMs | integer | – | Settle: wait deadline in milliseconds (default 10000). |
| udid | string | – | Apple device or simulator UDID; the selector that pins one device when several share a name. |
| verify | boolean | – | Capture cheap post-action evidence (AX digest, node counts, changedFromBefore) instead of a follow-up snapshot. |
| Name | Type | Req | Description |
|---|---|---|---|
| button | string | – | – |
| cost | object | – | – |
| count | number | – | Number of press/click repetitions. |
| doubleTap | boolean | – | Whether the command requested a double-tap action. |
| evidence | object | – | – |
| hint | string | – | – |
| holdMs | number | – | Hold duration for each action. |
| intervalMs | number | – | Delay between repeated press/click actions. |
| jitterPx | number | – | Randomization radius in pixels. |
| maestroFallbackReason | string | – | – |
| maestroNonHittableCoordinateFallbackAllowed | boolean | – | Whether the direct iOS Maestro coordinate fallback was allowed for this selector. |
| maestroNonHittableCoordinateFallbackUsed | boolean | – | Whether the direct iOS Maestro coordinate fallback was actually used. |
| message | string | – | – |
| ref | string | – | Snapshot ref without the @ prefix when the target was an @ref. |
| refLabel | string | – | – |
| referenceHeight | number | – | Reference frame height for visualizing the interaction point. |
| referenceWidth | number | – | Reference frame width for visualizing the interaction point. |
| resolution | object | – | Pre-action disclosure of how the acting path resolved its target. Absent when resolutionDisclosure is inapplicable for the path. |
| selector | string | – | Selector expression when the target was a selector. |
| selectorChain | array | – | – |
| settle | object | – | – |
| targetHittable | boolean | – | – |
| targetKind | string | yes | Resolved interaction target kind. |
| warning | string | – | – |
| x | number | – | Resolved interaction x coordinate when available. |
| y | number | – | Resolved interaction y coordinate when available. |
No examples provided.
push ~348
Deliver push notification payloads to an installed app. Times out after 90s.
| Name | Type | Req | Description |
|---|---|---|---|
| androidDeviceAllowlist | string | – | Android serial allowlist used for device resolution. |
| app | string | yes | – |
| debug | boolean | – | Enable debug diagnostics. |
| device | string | – | Device name selector (a UDID belongs in udid, a serial in serial). |
| deviceTarget | string | – | Device target form. Maps to the CLI --target flag. |
| includeCost | boolean | – | Include per-command agent-cost (cost.wallClockMs, …) in structuredContent. Defaults to off; the default response shape is unchanged. |
| leaseId | string | – | Existing lease identifier. |
| mcpOutputFormat | string | – | MCP text content format. Defaults to optimized agent-friendly text; use json for JSON text. Structured content is always returned separately. |
| noRecord | boolean | – | Do not record this action. |
| payload | – | yes | – |
| platform | string | – | Platform selector used to resolve a device. |
| responseLevel | string | – | Response verbosity: token-cheap digest / default (today) / full. Defaults to default; the default response shape is unchanged. |
| runId | string | – | Lease run identifier. |
| serial | string | – | Android, HarmonyOS, or Vega VVD serial selector. |
| session | string | – | Agent-device session name. |
| target | string | – | Alias for deviceTarget on commands without a UI target field. Interaction commands reserve target for the UI element. |
| tenant | string | – | Remote tenant identifier. |
| udid | string | – | Apple device or simulator UDID; the selector that pins one device when several share a name. |
Structured output declared, but exposes no named fields.
No examples provided.
react-native ~357
Run supported React Native automation helpers. Use dismiss-overlay to close a visible development error overlay before continuing normal UI automation. Times out after 90s.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | – |
| androidDeviceAllowlist | string | – | Android serial allowlist used for device resolution. |
| debug | boolean | – | Enable debug diagnostics. |
| device | string | – | Device name selector (a UDID belongs in udid, a serial in serial). |
| deviceTarget | string | – | Device target form. Maps to the CLI --target flag. |
| includeCost | boolean | – | Include per-command agent-cost (cost.wallClockMs, …) in structuredContent. Defaults to off; the default response shape is unchanged. |
| leaseId | string | – | Existing lease identifier. |
| mcpOutputFormat | string | – | MCP text content format. Defaults to optimized agent-friendly text; use json for JSON text. Structured content is always returned separately. |
| noRecord | boolean | – | Do not record this action. |
| platform | string | – | Platform selector used to resolve a device. |
| responseLevel | string | – | Response verbosity: token-cheap digest / default (today) / full. Defaults to default; the default response shape is unchanged. |
| runId | string | – | Lease run identifier. |
| serial | string | – | Android, HarmonyOS, or Vega VVD serial selector. |
| session | string | – | Agent-device session name. |
| target | string | – | Alias for deviceTarget on commands without a UI target field. Interaction commands reserve target for the UI element. |
| tenant | string | – | Remote tenant identifier. |
| udid | string | – | Apple device or simulator UDID; the selector that pins one device when several share a name. |
No output schema declared.
No examples provided.
record ~421
Start or stop a screen recording for the active app session or, where supported, the selected device, or build a contact-sheet PNG from a recording already exported. Long Android recordings can return multiple video artifacts; HarmonyOS supports whole-screen recording on physical devices. Times out after 90s.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | – |
| androidDeviceAllowlist | string | – | Android serial allowlist used for device resolution. |
| debug | boolean | – | Enable debug diagnostics. |
| device | string | – | Device name selector (a UDID belongs in udid, a serial in serial). |
| deviceTarget | string | – | Device target form. Maps to the CLI --target flag. |
| fps | integer | – | – |
| hideTouches | boolean | – | – |
| includeCost | boolean | – | Include per-command agent-cost (cost.wallClockMs, …) in structuredContent. Defaults to off; the default response shape is unchanged. |
| leaseId | string | – | Existing lease identifier. |
| mcpOutputFormat | string | – | MCP text content format. Defaults to optimized agent-friendly text; use json for JSON text. Structured content is always returned separately. |
| noRecord | boolean | – | Do not record this action. |
| path | string | – | – |
| platform | string | – | Platform selector used to resolve a device. |
| quality | string | – | – |
| recordingScope | string | – | – |
| responseLevel | string | – | Response verbosity: token-cheap digest / default (today) / full. Defaults to default; the default response shape is unchanged. |
| runId | string | – | Lease run identifier. |
| serial | string | – | Android, HarmonyOS, or Vega VVD serial selector. |
| session | string | – | Agent-device session name. |
| target | string | – | Alias for deviceTarget on commands without a UI target field. Interaction commands reserve target for the UI element. |
| tenant | string | – | Remote tenant identifier. |
| udid | string | – | Apple device or simulator UDID; the selector that pins one device when several share a name. |
Structured output declared, but exposes no named fields.
No examples provided.
reinstall ~375
Replace an installed app with a binary from a local path. Use this when preserving the same app identity while installing a new build on the selected device. Times out after 180s.
| Name | Type | Req | Description |
|---|---|---|---|
| androidDeviceAllowlist | string | – | Android serial allowlist used for device resolution. |
| app | string | yes | – |
| appPath | string | yes | Path to app binary. |
| debug | boolean | – | Enable debug diagnostics. |
| device | string | – | Device name selector (a UDID belongs in udid, a serial in serial). |
| deviceTarget | string | – | Device target form. Maps to the CLI --target flag. |
| includeCost | boolean | – | Include per-command agent-cost (cost.wallClockMs, …) in structuredContent. Defaults to off; the default response shape is unchanged. |
| leaseId | string | – | Existing lease identifier. |
| mcpOutputFormat | string | – | MCP text content format. Defaults to optimized agent-friendly text; use json for JSON text. Structured content is always returned separately. |
| noRecord | boolean | – | Do not record this action. |
| platform | string | – | Platform selector used to resolve a device. |
| responseLevel | string | – | Response verbosity: token-cheap digest / default (today) / full. Defaults to default; the default response shape is unchanged. |
| runId | string | – | Lease run identifier. |
| serial | string | – | Android, HarmonyOS, or Vega VVD serial selector. |
| session | string | – | Agent-device session name. |
| target | string | – | Alias for deviceTarget on commands without a UI target field. Interaction commands reserve target for the UI element. |
| tenant | string | – | Remote tenant identifier. |
| udid | string | – | Apple device or simulator UDID; the selector that pins one device when several share a name. |
No output schema declared.
No examples provided.
replay ~506
Run a recorded automation script, including compatible Maestro YAML flows. A script without a terminal close leaves its session active for subsequent automation. Times out after 90s; a caller-supplied budget extends it.
| Name | Type | Req | Description |
|---|---|---|---|
| androidDeviceAllowlist | string | – | Android serial allowlist used for device resolution. |
| backend | string | – | – |
| bundleUrl | string | – | Bundle URL hint inherited by replay-opened sessions. |
| debug | boolean | – | Enable debug diagnostics. |
| device | string | – | Device name selector (a UDID belongs in udid, a serial in serial). |
| deviceTarget | string | – | Device target form. Maps to the CLI --target flag. |
| env | array | – | – |
| force | boolean | – | – |
| includeCost | boolean | – | Include per-command agent-cost (cost.wallClockMs, …) in structuredContent. Defaults to off; the default response shape is unchanged. |
| keepSession | boolean | – | Leave the session active by suppressing exactly an authored terminal close in native .ad. |
| leaseId | string | – | Existing lease identifier. |
| maestro | boolean | – | – |
| mcpOutputFormat | string | – | MCP text content format. Defaults to optimized agent-friendly text; use json for JSON text. Structured content is always returned separately. |
| metroHost | string | – | Metro/debug host hint inherited by replay-opened sessions. |
| metroPort | integer | – | Metro/debug port hint inherited by replay-opened sessions. |
| path | string | yes | – |
| platform | string | – | Platform selector used to resolve a device. |
| responseLevel | string | – | Response verbosity: token-cheap digest / default (today) / full. Defaults to default; the default response shape is unchanged. |
| resumeFrom | integer | – | – |
| resumePlanDigest | string | – | – |
| runId | string | – | Lease run identifier. |
| saveScript | – | – | – |
| serial | string | – | Android, HarmonyOS, or Vega VVD serial selector. |
| session | string | – | Agent-device session name. |
| target | string | – | Alias for deviceTarget on commands without a UI target field. Interaction commands reserve target for the UI element. |
| tenant | string | – | Remote tenant identifier. |
| timeoutMs | integer | – | Maximum wall-clock duration for the replay request. |
| udid | string | – | Apple device or simulator UDID; the selector that pins one device when several share a name. |
| update | boolean | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| artifactPaths | array | yes | – |
| healed | number | yes | – |
| message | string | yes | – |
| replayed | number | yes | – |
| session | string | yes | – |
| sessionActive | boolean | yes | True iff the session is still active — the script had no terminal close. |
| snapshotDiagnostics | object | – | – |
No examples provided.
screenshot ~455
Capture a screenshot of the active app or web session. Choose the capture scope, density, size, or annotations through the corresponding input fields when needed. Times out after 90s.
| Name | Type | Req | Description |
|---|---|---|---|
| androidDeviceAllowlist | string | – | Android serial allowlist used for device resolution. |
| cropOn | string | – | Selector expression; the capture is cropped to the frame the selector resolves on the same screen. |
| debug | boolean | – | Enable debug diagnostics. |
| device | string | – | Device name selector (a UDID belongs in udid, a serial in serial). |
| deviceTarget | string | – | Device target form. Maps to the CLI --target flag. |
| fullscreen | boolean | – | – |
| includeCost | boolean | – | Include per-command agent-cost (cost.wallClockMs, …) in structuredContent. Defaults to off; the default response shape is unchanged. |
| leaseId | string | – | Existing lease identifier. |
| mcpOutputFormat | string | – | MCP text content format. Defaults to optimized agent-friendly text; use json for JSON text. Structured content is always returned separately. |
| noRecord | boolean | – | Do not record this action. |
| normalizeStatusBar | boolean | – | – |
| overlayRefs | boolean | – | – |
| path | string | – | Output path. |
| pixelDensity | integer | – | Output screenshot pixel density in pixels per logical point. |
| platform | string | – | Platform selector used to resolve a device. |
| responseLevel | string | – | Response verbosity: token-cheap digest / default (today) / full. Defaults to default; the default response shape is unchanged. |
| runId | string | – | Lease run identifier. |
| scale | number | – | Screenshot scale factor. |
| serial | string | – | Android, HarmonyOS, or Vega VVD serial selector. |
| session | string | – | Agent-device session name. |
| stabilize | boolean | – | – |
| surface | string | – | – |
| target | string | – | Alias for deviceTarget on commands without a UI target field. Interaction commands reserve target for the UI element. |
| tenant | string | – | Remote tenant identifier. |
| udid | string | – | Apple device or simulator UDID; the selector that pins one device when several share a name. |
No output schema declared.
No examples provided.
scroll ~705
Scroll in a direction, or toward the top/bottom edge of scrollable content. Set until to a selector to reach an off-screen target in one command rather than a scroll-and-check loop. The optional amount is the finger-path fraction of the viewport axis, honored up to 0.8 of it; directional scrolls reduce release momentum, while app scroll physics determine the final content offset. A visible keyboard shortens the swiped band instead of being dismissed; when too little is left, the command refuses with scroll_keyboard_occludes_surface. A directional scroll also reports the movement it observed as movement: moved, at-edge, unchanged, or unobserved when the two reads could not back a claim either way; an unchanged surface inside a container that still hides content in that direction refuses with scroll_no_progress rather than repeating the requested distance. The movement field is absent where a tier verifies per pass (top/bottom, until), where the runtime cannot read a screen, or where a settle observation or a replay already owns that observation. Times out after 90s; a caller-supplied budget extends it.
| Name | Type | Req | Description |
|---|---|---|---|
| amount | number | – | Platform scroll amount. |
| androidDeviceAllowlist | string | – | Android serial allowlist used for device resolution. |
| debug | boolean | – | Enable debug diagnostics. |
| device | string | – | Device name selector (a UDID belongs in udid, a serial in serial). |
| deviceTarget | string | – | Device target form. Maps to the CLI --target flag. |
| direction | string | yes | – |
| durationMs | integer | – | Scroll duration in milliseconds when the backend supports pacing. |
| includeCost | boolean | – | Include per-command agent-cost (cost.wallClockMs, …) in structuredContent. Defaults to off; the default response shape is unchanged. |
| leaseId | string | – | Existing lease identifier. |
| mcpOutputFormat | string | – | MCP text content format. Defaults to optimized agent-friendly text; use json for JSON text. Structured content is always returned separately. |
| noRecord | boolean | – | Do not record this action. |
| pixels | integer | – | Pixel scroll amount. |
| platform | string | – | Platform selector used to resolve a device. |
| responseLevel | string | – | Response verbosity: token-cheap digest / default (today) / full. Defaults to default; the default response shape is unchanged. |
| runId | string | – | Lease run identifier. |
| serial | string | – | Android, HarmonyOS, or Vega VVD serial selector. |
| session | string | – | Agent-device session name. |
| settle | boolean | – | After the action, wait for the UI to go quiet and return the settled diff vs the pre-action tree in the same response. Best-effort; never fails the action. |
| settleQuietMs | integer | – | Settle: quiet window in milliseconds (default 500). |
| target | string | – | Alias for deviceTarget on commands without a UI target field. Interaction commands reserve target for the UI element. |
| tenant | string | – | Remote tenant identifier. |
| timeoutMs | integer | – | Settle: wait deadline in milliseconds (default 10000). |
| udid | string | – | Apple device or simulator UDID; the selector that pins one device when several share a name. |
| until | string | – | Repeat scroll passes until this selector is visible on screen, then stop. Not valid with the top/bottom edge directions, which carry their own stop condition. |
| Name | Type | Req | Description |
|---|---|---|---|
| amount | number | – | – |
| direction | string | yes | – |
| durationMs | number | – | – |
| edge | string | – | – |
| keyboardAvoided | boolean | – | Present only when an on-screen keyboard forced the swipe into the band above it; the reported pixels were planned against the shorter referenceHeight. |
| keyboardMinY | number | – | Where the keyboard began, in the same unit as the gesture coordinates. Clipped scrolls only. |
| message | string | – | – |
| movement | string | – | Directional scrolls only: what the owner observed after its gesture. `moved` means the content inside the scroller the swipe ran in differs from the tree the session stored immediately before the ges… |
| passes | number | – | Edge and until scrolls only: how many scroll-and-check passes ran. |
| pixels | number | – | – |
| settle | object | – | – |
| until | string | – | Until scrolls only: the selector the passes stopped on. |
No examples provided.
What is the agent-device MCP server?
agent-device is an MCP server listed in the public MCP registry as io.github.callstack/agent-device. MCP server for mobile app automation: verify, control, and debug iOS, Android, TV, and desktop apps. This page covers its npm package (agent-device).
Is the agent-device MCP server safe to use?
agent-device scores 77 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 5 October 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 agent-device MCP server expose?
agent-device exposes 59 tools: action-button, alert, app-switcher, apps, appstate, and 54 more. Their descriptions and schemas cost roughly 25,210 tokens of context every time the server is loaded.
Is the agent-device MCP server still maintained?
agent-device is still listed as active in the MCP registry. We last reached this channel on 5 October 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 agent-device MCP server under?
agent-device declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.