ZBS Index What actually exists in applied AI, with the source next to it

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

Sources

  1. callstackincubator/agent-device on GitHub — GitHub, observed , trust tier 3.
  2. Official MCP Registry — Model Context Protocol, observed , trust tier 1.
  3. agent-device started in an isolated container — npm, observed , trust tier 1.