mcp server
agent-device
Let AI agents inspect, control, and debug real iOS, Android, desktop, and TV apps
Description as published by the maintainer. Source
- version 0.16.9
- active
active — Most recent push to the repository was 2026-08-06.
What this server can do
46 functions, named and described by the server itself. Parameter names are shown because they say more about what a function does than its name usually does.
alert(cwd, udid, debug, runId, action, device, serial, target, tenant, leaseId, session, platform, stateDir, timeoutMs, deviceTarget, daemonBaseUrl, daemonAuthToken, iosSimulatorDeviceSet, androidDeviceAllowlist)- Inspect or handle platform alerts.
app-switcher(cwd, udid, debug, runId, device, serial, target, tenant, leaseId, session, platform, stateDir, deviceTarget, daemonBaseUrl, daemonAuthToken, iosSimulatorDeviceSet, androidDeviceAllowlist)- Open the app switcher.
apps(cwd, udid, debug, runId, device, serial, target, tenant, leaseId, session, platform, stateDir, appsFilter, deviceTarget, daemonBaseUrl, daemonAuthToken, iosSimulatorDeviceSet, androidDeviceAllowlist)- List installed apps.
appstate(cwd, udid, debug, runId, device, serial, target, tenant, leaseId, session, platform, stateDir, deviceTarget, daemonBaseUrl, daemonAuthToken, iosSimulatorDeviceSet, androidDeviceAllowlist)- Show foreground app or activity.
back(cwd, mode, udid, debug, runId, device, serial, target, tenant, leaseId, session, platform, stateDir, deviceTarget, daemonBaseUrl, daemonAuthToken, iosSimulatorDeviceSet, androidDeviceAllowlist)- Navigate back.
batch(cwd, out, udid, debug, runId, steps, device, serial, target, tenant, leaseId, onError, session, maxSteps, platform, stateDir, deviceTarget, daemonBaseUrl, daemonAuthToken, iosSimulatorDeviceSet, androidDeviceAllowlist)- Run multiple structured command steps in one daemon request. Required: steps.
boot(cwd, udid, debug, runId, device, serial, target, tenant, leaseId, session, headless, platform, stateDir, deviceTarget, daemonBaseUrl, daemonAuthToken, iosSimulatorDeviceSet, androidDeviceAllowlist)- Boot or prepare a selected device without using CLI positional arguments.
click(cwd, raw, udid, count, debug, depth, runId, scope, button, device, holdMs, serial, target, tenant, leaseId, session, jitterPx, platform, stateDir, doubleTap, intervalMs, deviceTarget, daemonBaseUrl, daemonAuthToken, iosSimulatorDeviceSet, androidDeviceAllowlist)- Click or tap a semantic UI target by ref, selector, or point. Required: target.
clipboard(cwd, text, udid, debug, runId, action, device, serial, target, tenant, leaseId, session, platform, stateDir, deviceTarget, daemonBaseUrl, daemonAuthToken, iosSimulatorDeviceSet, androidDeviceAllowlist)- Read or write clipboard text. Required: action.
close(app, cwd, udid, debug, runId, device, serial, target, tenant, leaseId, session, platform, shutdown, stateDir, saveScript, deviceTarget, daemonBaseUrl, daemonAuthToken, iosSimulatorDeviceSet, androidDeviceAllowlist)- Close an app or end the active session.
devices(cwd, udid, debug, runId, device, serial, target, tenant, leaseId, session, platform, stateDir, deviceTarget, daemonBaseUrl, daemonAuthToken, iosSimulatorDeviceSet, androidDeviceAllowlist)- List available devices.
diff(cwd, out, raw, kind, udid, debug, depth, runId, scope, device, serial, target, tenant, compact, leaseId, session, platform, stateDir, deviceTarget, daemonBaseUrl, daemonAuthToken, interactiveOnly, iosSimulatorDeviceSet, androidDeviceAllowlist)- Diff accessibility snapshots. Required: kind.
fill(cwd, raw, text, udid, debug, depth, runId, scope, device, serial, target, tenant, delayMs, leaseId, session, platform, stateDir, deviceTarget, daemonBaseUrl, daemonAuthToken, iosSimulatorDeviceSet, androidDeviceAllowlist)- Fill text into a semantic UI target by ref, selector, or point. Required: target, text.
find(cwd, raw, last, udid, debug, depth, first, query, runId, value, action, device, serial, target, tenant, leaseId, locator, session, platform, stateDir, timeoutMs, deviceTarget, daemonBaseUrl, daemonAuthToken, iosSimulatorDeviceSet, androidDeviceAllowlist)- Find an element and optionally act on it. Required: query.
focus(x, y, cwd, udid, debug, runId, device, serial, target, tenant, leaseId, session, platform, stateDir, deviceTarget, daemonBaseUrl, daemonAuthToken, iosSimulatorDeviceSet, androidDeviceAllowlist)- Focus input at coordinates. Required: x, y.
gesture(cwd, kind, udid, debug, delta, runId, scale, device, origin, preset, serial, target, tenant, degrees, leaseId, session, distance, platform, stateDir, velocity, direction, durationMs, deviceTarget, daemonBaseUrl, daemonAuthToken, iosSimulatorDeviceSet, androidDeviceAllowlist)- Run a structured gesture. Required: kind.
get(cwd, raw, udid, debug, depth, runId, scope, device, format, serial, target, tenant, leaseId, session, platform, stateDir, deviceTarget, daemonBaseUrl, daemonAuthToken, iosSimulatorDeviceSet, androidDeviceAllowlist)- Get element text or attributes. Required: format, target.
home(cwd, udid, debug, runId, device, serial, target, tenant, leaseId, session, platform, stateDir, deviceTarget, daemonBaseUrl, daemonAuthToken, iosSimulatorDeviceSet, androidDeviceAllowlist)- Go to the home screen.
install(app, cwd, udid, debug, runId, device, serial, target, tenant, appPath, leaseId, session, platform, stateDir, deviceTarget, daemonBaseUrl, daemonAuthToken, iosSimulatorDeviceSet, androidDeviceAllowlist)- Install an app binary. Required: app, appPath.
install-from-source(cwd, udid, debug, runId, device, serial, source, target, tenant, leaseId, session, platform, stateDir, retainPaths, retentionMs, deviceTarget, daemonBaseUrl, daemonAuthToken, iosSimulatorDeviceSet, androidDeviceAllowlist)- Install an app from a structured source. Required: source.
is(cwd, raw, udid, debug, depth, runId, scope, value, device, serial, target, tenant, leaseId, session, platform, selector, stateDir, predicate, deviceTarget, daemonBaseUrl, daemonAuthToken, iosSimulatorDeviceSet, androidDeviceAllowlist)- Assert UI state. Required: predicate, selector.
keyboard(cwd, udid, debug, runId, action, device, serial, target, tenant, leaseId, session, platform, stateDir, deviceTarget, daemonBaseUrl, daemonAuthToken, iosSimulatorDeviceSet, androidDeviceAllowlist)- Inspect or dismiss the keyboard.
logs(cwd, udid, debug, runId, action, device, serial, target, tenant, leaseId, message, restart, session, platform, stateDir, deviceTarget, daemonBaseUrl, daemonAuthToken, iosSimulatorDeviceSet, androidDeviceAllowlist)- Manage session app logs.
longpress(cwd, raw, udid, debug, depth, runId, scope, device, serial, target, tenant, leaseId, session, platform, stateDir, durationMs, deviceTarget, daemonBaseUrl, daemonAuthToken, iosSimulatorDeviceSet, androidDeviceAllowlist)- Long press by ref, selector, or point. Required: target.
metro(cwd, kind, port, udid, debug, runId, action, device, serial, target, tenant, leaseId, logPath, session, platform, stateDir, bundleUrl, launchUrl, metroHost, metroPort, timeoutMs, listenHost, statusHost, bearerToken, bridgeScope, projectRoot, deviceTarget, proxyBaseUrl, daemonBaseUrl, publicBaseUrl, reuseExisting, probeTimeoutMs, daemonAuthToken, runtimeFilePath, startupTimeoutMs, iosSimulatorDeviceSet, androidDeviceAllowlist, installDependenciesIfNeeded)- Prepare Metro runtime or reload React Native apps. Required: action.
network(cwd, udid, debug, limit, runId, action, device, serial, target, tenant, include, leaseId, session, platform, stateDir, deviceTarget, daemonBaseUrl, daemonAuthToken, iosSimulatorDeviceSet, androidDeviceAllowlist)- Show recent HTTP traffic.
open(app, cwd, url, udid, debug, runId, device, serial, target, tenant, leaseId, session, surface, activity, noRecord, platform, relaunch, stateDir, launchArgs, saveScript, deviceTarget, daemonBaseUrl, launchConsole, daemonAuthToken, iosSimulatorDeviceSet, androidDeviceAllowlist)- Open an app, deep link, URL, or platform surface.
perf(cwd, udid, debug, runId, device, serial, target, tenant, leaseId, session, platform, stateDir, deviceTarget, daemonBaseUrl, daemonAuthToken, iosSimulatorDeviceSet, androidDeviceAllowlist)- Show session performance metrics.
press(cwd, raw, udid, count, debug, depth, runId, scope, device, holdMs, serial, target, tenant, leaseId, session, jitterPx, platform, stateDir, doubleTap, intervalMs, deviceTarget, daemonBaseUrl, daemonAuthToken, iosSimulatorDeviceSet, androidDeviceAllowlist)- Press a semantic UI target by ref, selector, or point. Required: target.
push(app, cwd, udid, debug, runId, device, serial, target, tenant, leaseId, payload, session, platform, stateDir, deviceTarget, daemonBaseUrl, daemonAuthToken, iosSimulatorDeviceSet, androidDeviceAllowlist)- Deliver a push payload. Required: app, payload.
react-native(cwd, udid, debug, runId, action, device, serial, target, tenant, leaseId, session, platform, stateDir, deviceTarget, daemonBaseUrl, daemonAuthToken, iosSimulatorDeviceSet, androidDeviceAllowlist)- Run supported React Native app automation helpers. Required: action.
record(cwd, fps, path, udid, debug, runId, action, device, serial, target, tenant, leaseId, quality, session, platform, stateDir, hideTouches, deviceTarget, daemonBaseUrl, daemonAuthToken, iosSimulatorDeviceSet, androidDeviceAllowlist)- Start or stop screen recording. Required: action.
reinstall(app, cwd, udid, debug, runId, device, serial, target, tenant, appPath, leaseId, session, platform, stateDir, deviceTarget, daemonBaseUrl, daemonAuthToken, iosSimulatorDeviceSet, androidDeviceAllowlist)- Reinstall an app binary. Required: app, appPath.
replay(cwd, env, path, udid, debug, runId, device, serial, target, tenant, update, backend, leaseId, maestro, session, platform, stateDir, deviceTarget, daemonBaseUrl, daemonAuthToken, iosSimulatorDeviceSet, androidDeviceAllowlist)- Replay a recorded session. Required: path.
rotate(cwd, udid, debug, runId, device, serial, target, tenant, leaseId, session, platform, stateDir, orientation, deviceTarget, daemonBaseUrl, daemonAuthToken, iosSimulatorDeviceSet, androidDeviceAllowlist)- Rotate device orientation. Required: orientation.
screenshot(cwd, path, udid, debug, runId, device, serial, target, tenant, leaseId, maxSize, session, surface, platform, stateDir, stabilize, fullscreen, overlayRefs, deviceTarget, daemonBaseUrl, daemonAuthToken, iosSimulatorDeviceSet, androidDeviceAllowlist)- Capture a screenshot.
scroll(cwd, udid, debug, runId, amount, device, pixels, serial, target, tenant, leaseId, session, platform, stateDir, direction, deviceTarget, daemonBaseUrl, daemonAuthToken, iosSimulatorDeviceSet, androidDeviceAllowlist)- Scroll in a direction or to an edge. Required: direction.
session(cwd, udid, debug, runId, action, device, serial, target, tenant, leaseId, session, platform, stateDir, deviceTarget, daemonBaseUrl, daemonAuthToken, iosSimulatorDeviceSet, androidDeviceAllowlist)- List active sessions.
settings(app, cwd, mode, udid, debug, runId, state, device, serial, target, tenant, leaseId, session, setting, latitude, platform, stateDir, longitude, permission, deviceTarget, daemonBaseUrl, daemonAuthToken, iosSimulatorDeviceSet, androidDeviceAllowlist)- Change OS settings and app permissions. Required: setting, state.
snapshot(cwd, raw, udid, debug, depth, runId, scope, device, serial, target, tenant, compact, leaseId, session, platform, stateDir, forceFull, deviceTarget, daemonBaseUrl, daemonAuthToken, interactiveOnly, iosSimulatorDeviceSet, androidDeviceAllowlist)- Capture an accessibility snapshot.
swipe(to, cwd, from, udid, count, debug, runId, device, serial, target, tenant, leaseId, pattern, pauseMs, session, platform, stateDir, durationMs, deviceTarget, daemonBaseUrl, daemonAuthToken, iosSimulatorDeviceSet, androidDeviceAllowlist)- Swipe between two points. Required: from, to.
test(cwd, env, udid, debug, paths, runId, device, serial, target, tenant, update, backend, leaseId, maestro, retries, session, failFast, platform, stateDir, timeoutMs, reportJunit, artifactsDir, deviceTarget, daemonBaseUrl, daemonAuthToken, iosSimulatorDeviceSet, androidDeviceAllowlist)- Run one or more replay scripts. Required: paths.
trace(cwd, path, udid, debug, runId, action, device, serial, target, tenant, leaseId, session, platform, stateDir, deviceTarget, daemonBaseUrl, daemonAuthToken, iosSimulatorDeviceSet, androidDeviceAllowlist)- Start or stop trace capture. Required: action.
trigger-app-event(cwd, udid, debug, event, runId, device, serial, target, tenant, leaseId, payload, session, platform, stateDir, deviceTarget, daemonBaseUrl, daemonAuthToken, iosSimulatorDeviceSet, androidDeviceAllowlist)- Trigger an app-defined event. Required: event.
type(cwd, text, udid, debug, runId, device, serial, target, tenant, delayMs, leaseId, session, platform, stateDir, deviceTarget, daemonBaseUrl, daemonAuthToken, iosSimulatorDeviceSet, androidDeviceAllowlist)- Type text in the focused field. Required: text.
wait(cwd, raw, ref, kind, text, udid, debug, depth, runId, scope, device, serial, target, tenant, leaseId, session, platform, selector, stateDir, timeoutMs, durationMs, deviceTarget, daemonBaseUrl, daemonAuthToken, iosSimulatorDeviceSet, androidDeviceAllowlist)- Wait for duration, text, ref, or selector.
Last successful function declaration observed on
.
Source: pkg:npm/agent-device. We list what the server declared;
we do not call any of these functions.
Endpoint status observed on
.
Source: pkg:npm/agent-device.
Signals
These are separate measurements of different things. They are deliberately not combined into one score, because a popularity number that mixes website traffic with saves and stars cannot be checked or acted on.
| Signal | Value | What it measures | Window | Observed | Source |
|---|---|---|---|---|---|
| GitHub stars | 3,993 | Number of GitHub accounts that bookmarked this repository since it was created. It is a bookmark count, not installs, not active users and not quality. | cumulative, all time | GitHub | |
| Last commit | 2026-08-06 | Date of the most recent push to any branch. This is the strongest cheap indicator of whether the project is still maintained. | point in time | GitHub | |
| Open issues | 57 | Open issues plus open pull requests, as GitHub counts them together. A high number can mean an active project or an abandoned one. | as of fetch | GitHub | |
| Latest published version | 0.16.9 | Latest version string the maintainer published to the registry. | as of fetch | Model Context Protocol | |
| Registry record last updated | 2026-06-01 | When the registry record was last updated by its maintainer. | point in time | Model Context Protocol | |
| License | MIT | Licence GitHub detected in the repository. Detection can be wrong; the LICENSE file is authoritative. | as of fetch | GitHub | |
| First listed in the MCP Registry | 2026-06-01 | Date this server was first published to the official MCP Registry. Not a usage or quality measure. | point in time | Model Context Protocol | |
| repository status | active | The repository exists on GitHub and is not archived. This says nothing about how recently it was worked on. | as of fetch | GitHub | |
| mcp tools declared | 46 tools | Number of functions the server declared when started and asked to list them. It says what the server offers an agent, not how well any of it works. | as of probe | npm |
|
| mcp endpoint status | ok | The server listed 46 functions when asked. | as of probe | npm |
|
| package install scripts | none | This package declares no install-time scripts, so installing it does not execute any of its code. | as of probe | npm |
Where to get it
Related, by what their authors tagged them
-
io.github.aarwitz/tapp
— last commit 2026-07-30, shares e2e-testing, ios-simulator, testing
Autonomous QA for iOS + web — agents get a deterministic ship/no-ship verdict, no test code
-
io.github.hoainho/podium-mcp
— shares e2e-testing, ios-simulator, mobile-testing
Mobile E2E MCP (51 tools): iOS + Android, native UI + canvas/WebGL, no-vision, RN debug
-
Drengr
— last commit 2026-08-01, shares agentic-ai, e2e-testing, mobile-testing
Eyes and hands for AI agents on Android and iOS devices.
-
io.github.ai-dashboad/flutter-skill
— last commit 2026-07-23, shares automation, e2e-testing, flutter
AI-powered E2E testing for 10 platforms. 253 MCP tools. Zero test code needed.
-
Ghost in the Droid
— last commit 2026-07-31, shares adb, automation
Give any LLM agent a real Android or iPhone as its body. 62 MCP tools for mobile automation.
-
App Store Trends API
— last commit 2026-08-03, shares mobile
App downloads and chart ranking trends for iOS and Android. Free key at trendsapi.ai
-
Antigravity Link
— last commit 2026-06-04, shares mobile
MCP server and OpenAPI-backed mobile companion for controlling Antigravity IDE sessions
-
io.github.fullread/deepadb
— last commit 2026-08-07, shares adb
Full-featured ADB MCP server — 204 tools across 45 modules, from UI to baseband.
-
CometChat Docs
— last commit 2026-07-20, shares flutter, react-native
CometChat docs search + implementation bundles: add chat, voice, video & moderation to your app.
-
Vibe Test — Browser Testing Agent
— last commit 2026-06-08, shares e2e-testing, testing
Code-aware browser testing agent — 13 Playwright tools for AI code editors via MCP
These share tags the maintainers applied themselves, such as e2e-testing, ios-simulator, testing, xcuitest. Common tags like "mcp" or "ai" are ignored for this: agreeing with six hundred other projects is not a similarity.
This is not a recommendation and not a test result. It is a map of what the authors said their work is about.
How the author describes it
Topics the maintainer set on GitHub: adb, agentic-ai, agents, ai-agents, android-emulator, automation, e2e-testing, expo, flutter, ios-simulator, mcp, mobile, mobile-testing, performance-optimization, react-native, testing, xcuitest.
This record as data
Every field on this page, with its source and observation date, is in the catalog JSON. Fetch the whole kind at once instead of parsing this HTML.
GET /api/v1/entries/mcp_server.json