Agent Device vs Ios Agent

A side-by-side look at the Agent Device and Ios Agent MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.

Agent Device logoAgent DeviceOS AutomationMCP server for mobile app automation: verify, control, and debug iOS, Android, TV, and desktop apps45FairAuth: no auth requiredIos Agent logoIos AgentOS Automation · Local subprocess (stdio)Drive a real iPhone or an iOS Simulator with an AI agent, through XCUIAutomation.59GoodAuth: not declared

Verdict: choose Agent Device for os automation work; choose Ios Agent for os automation as a local process. You can also run both side by side in one mcpServers block.

Which MCP server should you choose?

Agent Device logoChoose Agent Device when

  • You need dedicated capabilities in the OS Automation domain.
  • Its auth model fits you: No auth required.
Explore Agent Device

Ios Agent logoChoose Ios Agent when

  • You need dedicated capabilities in the OS Automation domain.
  • You prefer a local stdio subprocess transport.
  • You want tools like ios_doctor, ios_list_devices, ios_open_session.
Explore Ios Agent

Feature & specification comparison

Rows where the two servers differ are marked.

SpecAgent Device logoAgent DeviceIos Agent logoIos Agent
CategoryOS AutomationOS Automation
Quality signal45/100 · Fair59/100 · Good
Install commandNot confirmed yetConfirmed
Transport—Local subprocess (stdio)
AuthNo auth requiredNot declared
PricingFreeNot declared
Required env varsNone listedNone listed
Verified ownerCommunity listingCommunity listing
GitHub stars5,1333
Directory activity 5 views 0 installs 0 upvotes 1 views 0 installs 0 upvotes
ToolsNot listed31

Tools & capabilities

Agent Device tools

No tool names declared yet. Check the project README from the listing page.

Ios Agent tools 31

  • ios_doctorCheck that this machine can drive an iOS device, and say how to fix what it can't. Run this first when a session fails to start, when a device does not appear, or after an Xcode or iOS upgrade. Every failing check comes with a concrete remedy.
  • ios_list_devicesList iOS Simulators and attached physical iPhones available for automation. `ready` is false when something blocks automation; `blockers` says what.
  • ios_open_sessionAttach to a device and start driving it. Boots the simulator or verifies the phone, starts WebDriverAgent, and opens a tuned session. Omitting `device` prefers an already-booted simulator over a connected iPhone, so acting on a real device is always a deliberate choice.
  • ios_session_statusReport the current session: device, foreground app, and safety state.
  • ios_close_sessionRelease the device and shut down its WebDriverAgent runner.
  • ios_list_appsList apps installed on the device, with their bundle identifiers.
  • ios_launch_appBring an app to the foreground and return its screen.
  • ios_terminate_appForce-quit an app.
  • ios_open_urlOpen a URL or deep link. Usually the cheapest way to reach a screen: a deep link skips the navigation an agent would otherwise have to tap through.
  • ios_install_appInstall an app from a local .app or .ipa.
  • ios_observeRead the screen as a compact list of elements with short refs. Each line is one element: `e7 button "Send" @(340,70)`. Pass those refs to the action tools rather than coordinates. If the result says elements were omitted, narrow with `query` or `region` instead of raising `budget`; a smaller answer is usually the more useful one.
  • ios_screenshotCapture the screen as an image. Use this when an element has no accessibility label, when the layout matters, or when `ios_observe` cannot find something you can plainly see. With `annotate_refs` each element is boxed and labelled with its ref, so you can pick one by eye and pass it to an action tool. Annotating re-reads the screen first, so the refs on the image are the current ones rather than whatever was observed last. That costs a tree fetch, and needs the `vision` extra installed.
  • +19 more on the listing page

Ready-to-paste client configs

Paste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.

Agent Device

No confirmed install command for Agent Device yet — follow the setup steps linked from its listing page rather than a guessed package name.

Ios Agent

mcpServers (Claude Desktop / Cursor)
{
  "mcpServers": {
    "ios-agent": {
      "command": "uvx",
      "args": [
        "ios-mcp"
      ]
    }
  }
}

Frequently asked questions

Agent Device is categorized under OS Automation and uses an install path we have not confirmed yet. Ios Agent belongs to OS Automation and uses a local stdio subprocess. Pick Agent Device for os automation work and Ios Agent for os automation.

Copy the mcpServers block from the config section on this page into your client's config (for example claude_desktop_config.json or ~/.cursor/mcp.json), then fully restart the client. Agent Device has no confirmed install command yet — follow its own setup instructions.

Agent Device is listed as free. Auth: no auth required. Ios Agent has no declared pricing — check the project's own site. If a server needs environment variables such as API keys, define them under the env key in your client's MCP config.

Yes. MCP clients support multiple servers: add agent-device and ios-agent as separate keys in the same mcpServers object, and your assistant will call tools from either one.

On AllMCPs, Agent Device has a quality signal of 45/100 (Fair) with 5 views, 0 installs and 5,133 GitHub stars. Ios Agent has 59/100 (Good) with 1 views, 0 installs and 3 GitHub stars.