1. Conduid
  2. Gaming
  3. Agent Device MCP
MCP server · Gaming

Agent Device MCP

MCP server for controlling iOS simulators and Android emulators via accessibility tree. Claude Code plugin with 14 tools for structured device interaction.

34Low

Scored a month ago · breakdown

About Agent Device MCP

Agent Device MCP is an MCP server published by edimuj in the Gaming category: mCP server for controlling iOS simulators and Android emulators via accessibility tree. Claude Code plugin with 14 tools for structured device interaction.

The repository has 1 stars and 0 forks, with the last commit 3 months ago. Recent commit activity is the strongest signal that reported issues will get attention.

Install

From source
git clone https://github.com/edimuj/agent-device-mcp

This server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.

Tools (21)

device_appstateReturn current app/session state

Parameters not published.

device_backNavigate back

Parameters not published.

device_bootBoot a named iOS simulator or Android emulator

Parameters not published.

device_choicesReturn tappable choice buttons and refs

Parameters not published.

device_clickClick by ref or coordinates

Parameters not published.

device_closeClose a session

Parameters not published.

device_fillFocus and fill a text field

Parameters not published.

device_homeReturn to the device home screen

Parameters not published.

device_installInstall an app artifact

Parameters not published.

device_interactReturn visible messages, choices, and text inputs

Parameters not published.

Show all 21 tools
device_listList simulators/emulators

Parameters not published.

device_messagesReturn visible chat messages

Parameters not published.

device_openOpen or relaunch an app session

Parameters not published.

device_pingVerify the pinned agent-device CLI is reachable and list targets

Parameters not published.

device_pressPress by ref or coordinates

Parameters not published.

device_screenshotCapture a screenshot

Parameters not published.

device_shutdownClose a session and shut down its simulator/emulator

Parameters not published.

device_snapshotReturn the accessibility tree

Parameters not published.

device_swipeSwipe on iOS; use agent-device scroll semantics on Android

Parameters not published.

device_typeType into the focused field

Parameters not published.

device_waitWait for a duration

Parameters not published.

Ask AI

✦

Ask AI about Agent Device MCP

Powered by Claude · Grounded in docs

I know everything about Agent Device MCP. Ask me about installation, configuration, usage, or troubleshooting.

Security checks

Static checks derived from the repository 4 days ago. Heuristics on the source, not an audit.

  • ✓README presentThe repository ships documentation.
  • !License declaredNo license file. Legally you have no right to use it in a product.
  • ✓Tests presentA test suite exists in the repository.
  • ✓Dependencies pinnedA lockfile pins dependency versions.
  • !No dynamic code executionSource scan found eval or shell execution. Review how tool inputs reach it before granting credentials.

1 check has not been run yet.

README

agent-device-mcp

MCP server that wraps Callstack's agent-device for explicitly targeted iOS simulator and Android emulator control. It uses the accessibility tree for structured interaction and keeps a curated 21-tool surface instead of exposing the upstream MCP's full command catalog.

Ships as a Claude Code plugin or runs as a standalone stdio MCP server.

Why accessibility trees?

  • Structured output — messages, controls, and text fields come back as JSON.
  • Stable selectors — interact by accessibility ref (for example @e31) instead of image coordinates.
  • Cross-platform targeting — every tool accepts the same optional platform, device, udid, serial, and session fields.
  • Token-efficient — the convenience tools return only messages, choices, and text inputs when a full tree is unnecessary.

Supported agent-device version

This adapter targets and checks for agent-device 0.20.0. Install that exact version on every local or SSH device host:

npm install -g agent-device@0.20.0
agent-device --version

The first adapter command performs a cached version preflight and returns a clear error if a different upstream version is found. We bump this pin when upstream publishes a new release; update the exact install command and rerun the fixture-based unit suite as part of that change. agent-device 0.20.0 requires Node.js 22.12 or newer even though the adapter itself can run on Node.js 18 or newer.

Tools

Tool Purpose
device_ping Verify the pinned agent-device CLI is reachable and list targets
device_list List simulators/emulators
device_boot Boot a named iOS simulator or Android emulator
device_install Install an app artifact
device_open Open or relaunch an app session
device_close Close a session
device_shutdown Close a session and shut down its simulator/emulator
device_interact Return visible messages, choices, and text inputs
device_messages Return visible chat messages
device_choices Return tappable choice buttons and refs
device_click Click by ref or coordinates
device_press Press by ref or coordinates
device_fill Focus and fill a text field
device_type Type into the focused field
device_snapshot Return the accessibility tree
device_screenshot Capture a screenshot
device_swipe Swipe on iOS; use agent-device scroll semantics on Android
device_home Return to the device home screen
device_back Navigate back
device_wait Wait for a duration
device_appstate Return current app/session state

All tools accept these optional target fields:

Field Use
platform ios or android
device Simulator/emulator name or identifier
udid Explicit iOS UDID
serial Explicit Android adb serial
session Named agent-device session

device_boot requires platform and device and routes to the current upstream syntax: boot --platform <platform> --device <name>.

Setup

As a Claude Code plugin

claude plugin marketplace add <your-github-user>/agent-device-mcp
claude plugin install agent-device-mcp@agent-device-mcp

As a standalone MCP server

{
  "mcpServers": {
    "agent-device": {
      "type": "stdio",
      "command": "node",
      "args": ["/path/to/agent-device-mcp/plugin/dist/server.js"],
      "env": {
        "AGENT_DEVICE_HOST": "user@remote-mac",
        "AGENT_DEVICE_ANDROID_SDK_ROOT": "/Users/user/Library/Android/sdk",
        "AGENT_DEVICE_STATE_DIR": "/Users/user/.agent-device-mcp"
      }
    }
  }
}

Configuration

Variable Default Description
AGENT_DEVICE_HOST (empty = local) SSH host for remote execution; localhost and 127.0.0.1 also run locally
AGENT_DEVICE_BIN agent-device Local or remote agent-device binary
AGENT_DEVICE_PATH_PREFIX (empty) Additional colon-separated PATH entries; appended without replacing the host's base PATH
AGENT_DEVICE_ANDROID_SDK_ROOT ANDROID_HOME, ANDROID_SDK_ROOT, or OS default Android SDK root; platform-tools and emulator are appended to PATH
AGENT_DEVICE_STATE_DIR (agent-device default) Dedicated daemon state directory passed through as --state-dir
AGENT_DEVICE_MIN_SPACING_MS 1000 Minimum delay between commands
AGENT_DEVICE_RETRY_MAX 3 Maximum retries for transient daemon/XCTest failures
AGENT_DEVICE_RETRY_INITIAL_DELAY_MS 1000 Initial retry delay, doubled after each retry

For SSH execution, the adapter preserves the remote login shell's PATH, then appends configured entries and both Android SDK tool directories. If no SDK root is configured, it checks the standard macOS ($HOME/Library/Android/sdk) and Linux ($HOME/Android/Sdk) locations. Set AGENT_DEVICE_ANDROID_SDK_ROOT when the SDK lives elsewhere.

Use a dedicated AGENT_DEVICE_STATE_DIR for this MCP instance. It prevents the adapter from reusing a daemon that was started earlier with a PATH that could not resolve adb.

Examples

Android:

device_ping { platform: "android", serial: "emulator-5554", session: "android-smoke" }
device_boot { platform: "android", device: "Medium_Phone_API_36.1", session: "android-smoke" }
device_open { bundleId: "com.example.app", platform: "android", serial: "emulator-5554", session: "android-smoke" }
device_interact { platform: "android", serial: "emulator-5554", session: "android-smoke" }
device_click { target: "@e31", platform: "android", serial: "emulator-5554", session: "android-smoke" }

iOS remains supported with the same shared target fields:

device_open { bundleId: "com.example.app", platform: "ios", udid: "<simulator-udid>", session: "ios-smoke" }
device_interact { platform: "ios", udid: "<simulator-udid>", session: "ios-smoke" }

License

MIT

README fetched from the repository 4 days ago. The original is authoritative.

Questions

About Agent Device MCP

How do I install Agent Device MCP?

No package has been published for this server, so install it from source: clone the repository and follow its README.

Is Agent Device MCP safe to use with an AI agent?

Its trust score is 34 out of 100 (low). It passes 3 of the 5 static security checks run so far; the failures are listed above. It has no ConduID identity yet, so agent calls to it are not receipted.

Is Agent Device MCP still maintained?

Yes — the last commit was 3 months ago. The repository has 1 stars and 0 forks and 3 open issues.