Agent Device
@callstackincubator
About Agent Device
Discovery router for the agent-device CLI with status, install, help, prompts, and resources.
Config
Add this server to your MCP-compatible client using the configuration below.
{
"mcpServers": {
"agent-device": {
"command": "npx",
"args": [
"-y",
"agent-device",
"mcp"
]
}
}
}Tools
57Inspect, wait for, accept, or dismiss a platform alert. Use get before acting when the alert content matters; accept and dismiss change the active alert state.
Open the device app switcher to inspect or change foreground apps. This changes the visible system UI and may move focus away from the current app.
List the apps installed on the selected device. Include system or OEM apps only when they are needed as automation targets.
Show foreground app/activity
List daemon or cloud provider artifacts for an active or completed session.
Measure browser or host-rendered simulator/emulator audio as compact dBFS buckets. Start a probe before requesting its status or stopping it.
Navigate back in the app or through system navigation. Use in-app for the app navigation stack and system when the platform back behavior is required.
Execute multiple commands in one daemon request
Boot or prepare the selected device or simulator so later commands can target it. The device is chosen through the device-selection inputs, not by naming it here.
List the commands supported by the selected device or active session. Use device-selection inputs when checking support before a session is open.
Activate a UI target by snapshot ref, selector, or coordinates. Prefer a ref or selector after a snapshot; use coordinates only when semantic targeting is unavailable. This can change app state; use settle or verify to confirm the result without a follow-up snapshot.
Read the current device clipboard text, or replace its contents with the given text.
Close the named app, or close the active session app when app is omitted. Use shutdown only when the selected simulator or emulator should also stop.
Symbolicate Apple crash artifacts with matching dSYM UUIDs. This debug namespace is intentionally narrow: use logs for app logs, network for HTTP evidence, perf for performance samples, record/trace for media and traces, and react-devtools for React Native profiles.
List available devices and simulators that can be selected for automation. Use platform, device, udid, or serial inputs on later commands to target one result.
Compare accessibility snapshots or screenshots to identify UI changes. Use snapshot comparisons for semantic tree changes and screenshot comparisons for pixel differences.
Diagnose device, app, development-server, and React Native or Expo readiness issues. Returns compact evidence for local inventory, sessions, optional app discovery, toolchains, and server reachability. On iOS simulators it also warms the XCTest runner build cache in the background when missing, so run it before the first Apple snapshot or interaction of a session.
Read the daemon-owned session event timeline as paged JSON-friendly entries
Replace text in a UI input selected by snapshot ref, selector, or coordinates. Prefer refs or selectors after snapshot; use recordAs to keep sensitive text out of a recorded replay while sending it to the live app.
Find by text/label/value/role/id and run action
Move input focus to explicit screen coordinates without entering text. Prefer semantic interactions when a snapshot ref or selector is available; use type or fill after focus.
Perform a structured pan, fling, swipe, pinch, rotate, transform, or drag gesture. Select the gesture kind, then provide only the inputs that apply to that kind.
Read text or accessibility attributes from a snapshot ref or selector without changing the app. Use format text for visible content or attrs for the element attribute map.
Send the selected device to its home screen. This leaves the app session open but moves the foreground away from the app.
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.
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.
Install app builds from URLs, remote source specs, or CI artifacts resolved by a remote daemon.
Check whether a selector satisfies a UI predicate such as visible, hidden, editable, selected, focused, or text. Use wait when the condition may appear asynchronously.
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.
Session app log info, start/stop streaming, diagnostics, and markers
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.
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.
Dump recent HTTP(s) traffic parsed from the session app log
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.
Set device orientation on iOS and Android
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.
Short-press a UI target by snapshot ref, selector, or coordinates. Use longpress instead when the target requires a context-menu or hold gesture.
Deliver push notification payloads to an installed app.
Run supported React Native automation helpers. Use dismiss-overlay to close a visible development error overlay before continuing normal UI automation.
Start or stop a screen recording for the active app session or, where supported, the selected device. Long Android recordings can return multiple video artifacts; HarmonyOS supports whole-screen recording on physical devices.
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.
Run a recorded automation script, including compatible Maestro YAML flows. A script without a terminal close leaves its session active for subsequent automation.
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.
Scroll in a direction, or toward the top/bottom edge of scrollable content.
List active sessions, print the effective daemon state directory, or publish an armed open-to-destination script without closing its session
Change supported operating-system settings, animation scales, appearance, or app permissions on the selected target. Platform support varies by setting and action.
Shutdown a selected simulator or emulator.
Capture the accessibility tree or compare it with the previous session baseline. Use the returned refs for subsequent semantic interactions and the diff option to verify UI changes.
Quick coordinate fling with optional repeat pattern.
Run one or more replay scripts as a serial test suite
Start or stop trace-log capture and return the resulting artifact when capture ends. Use the same artifact path for the matching start and stop requests when an explicit path is required.
Ask the app to handle an app-defined automation or test event, with an optional structured payload. Call this only for event names and payload shapes the app documents.
Press or long-press a TV remote or D-pad button on Android TV, tvOS, or Vega OS. Choose the button and optional hold duration through the input fields. The aliases ok, center, and enter all map to select.
Append text to the currently focused input. Use fill when the existing field value should be replaced, and focus first when no input is active.
Resize the active web viewport before taking snapshots or screenshots. Useful for fixed-layout or 100vh apps where changing the viewport reveals different content.
Wait for a duration, text, snapshot ref, selector, or stable UI. Use text, ref, or selector for a specific readiness condition; stable waits until the UI stays quiet for the requested window.
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, 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.
Overview
What is Agent Device?
Agent Device is a device automation CLI for AI agents that lets coding agents run real apps, inspect UI state, interact with visible elements, and collect debugging evidence. It integrates with iOS, Android, tvOS, Android TV, macOS, and Linux platforms and is built around token-efficient accessibility snapshots instead of pixel-first screenshots.
How to use Agent Device?
Install globally with npm install -g agent-device@latest. Use commands like agent-device help workflow, agent-device open, agent-device snapshot, and agent-device close in a terminal. For MCP-aware clients, configure as a stdio MCP server with command agent-device and args ["mcp"] for discovery-only handoff; automation always runs through the CLI.
Key features of Agent Device
- Token-efficient accessibility snapshots with refs like
@e1,@e2 - Supports iOS, Android, tvOS, Android TV, macOS, and Linux
- Captures screenshots, video, logs, network, CPU/memory/perf, crash logs, and React profiles
- Produces replayable
.adscripts for local or CI e2e runs - MCP router for discovery-oriented clients (automation via CLI only)
Use cases of Agent Device
- AI-driven mobile testing and QA on real devices and simulators
- Development: build from specs, inspect runtime behavior, iterate until UI matches
- Automated PR validation with replay scripts and captured artifacts in CI/CD
- Performance analysis with CPU/memory/perf samples and React profile surveys
FAQ from Agent Device
How does Agent Device differ from agent-browser?
Agent-browser is for web browsers; Agent Device is the same idea for apps and devices (mobile, TV, desktop).
What are the prerequisites for Agent Device?
Node.js 22+, Xcode for iOS/tvOS/macOS targets, Android SDK + ADB for Android, and macOS Accessibility permission for desktop automation.
Where do data and artifacts live?
Locally, in CI/CD (EAS workflow template, GitHub Actions template coming soon), or via Agent Device Cloud for remote execution.
Can MCP clients use Agent Device for device automation?
No. The MCP router is discovery-only and exposes only a status tool for CLI handoff guidance. All device automation happens through the terminal CLI.
What transport does the Agent Device MCP server use?
Stdio transport.
Frequently asked questions
How does Agent Device differ from agent-browser?
Agent-browser is for web browsers; Agent Device is the same idea for apps and devices (mobile, TV, desktop).
What are the prerequisites for Agent Device?
Node.js 22+, Xcode for iOS/tvOS/macOS targets, Android SDK + ADB for Android, and macOS Accessibility permission for desktop automation.
Where do data and artifacts live?
Locally, in CI/CD (EAS workflow template, GitHub Actions template coming soon), or via Agent Device Cloud for remote execution.
Can MCP clients use Agent Device for device automation?
No. The MCP router is discovery-only and exposes only a status tool for CLI handoff guidance. All device automation happens through the terminal CLI.
What transport does the Agent Device MCP server use?
Stdio transport.
Basic information
More AI & Agents MCP servers

Agentery
ntlgncFree MCP for live and historical pricing for 13,000+ agents and MCPs. Never knowingly pay too much... or charge too little. Know the going rate. https://agentery.com.
GetIntel
tarang8811Public docs + tool manifest for the GetIntel MCP connector (app.getintel.ai)
BlazingCDN MCP - Content Delivery for Video, Software & Static Files
BlazingCDNOfficial MCP server for BlazingCDN - AI agents (Claude, Cursor, Windsurf) manage CDN resources, purge cache, query metrics, domains, Anycast CDN, Video CDN and Media CDN

bsv.cx
Andy RoweTimestamp and verify evidence on-chain. Let your agent prove what it saw and when. bsv.cx gives an AI agent verifiable memory. Timestamp a hash of any output, archive a web page as it looked, or fetch a URL with a recei

Competitor Tracker & Co.
Competitor Tracker & Co.Competitor Tracker & Co. watches your competitors' websites and tells you what changed. Every week it crawls their pricing, product, messaging and corporate pages, detects the changes that matter, and files a tagged, ran
Comments