Manzanas logo

Manzanas

Drives iOS simulators through accessibility-based MCP tools with leased simulator allocation and journaled evidence.

Install Manzanas

Pick your client, then add it in one click or paste the config.

STDIONode.js
~/Library/Application Support/Claude/claude_desktop_config.json
claude_desktop_config.json
{
  "mcpServers": {
    "manzanas": {
      "command": "npx",
      "args": [
        "-y",
        "manzanasd-client@latest"
      ]
    }
  }
}

Settings → Developer → Edit Config, merge this into mcpServers, then fully quit and reopen Claude Desktop.

We couldn’t confirm it starts correctly

The install command didn't complete successfully in our automated test.

npx -y manzanasd-client@latest

ivate — set GITHUB_TOKEN/GH_TOKEN to authorize the download) npm error manzanasd-client: install failed. Set MANZANAS_BINARY_PATH to a local manzanas binary to skip the download. npm notice npm notice New major version of npm available! 10.9.9 -> 12.2.1 npm notice Changelog: https://github.com/npm/cli/releases/tag/v12.2.1 npm notice To update run: npm install -g npm@12.2.1 npm notice npm error A complete log of this run can be found in: /home/user/.npm/_logs/2026-10-23T19_41_48_083Z-debug-0.log

This is an experimental automated check and can have false negatives — missing environment variables, a slow cold install, etc. It doesn’t necessarily mean something’s wrong. Last checked .

Overview

The manzanas MCP server lets Claude Code, Cursor, and other MCP-capable agents lease and drive iOS simulators through accessibility labels rather than screen coordinates. It exposes UI inspection, tapping, typing, waiting, and scrolling tools over stdio, while a Mac daemon manages simulator leases, queues, warm instances, and action state. Reach for it when multiple agents need isolated simulator access or when automated runs must produce evidence of whether each UI action changed the interface.

Use cases

  • Drive iOS simulator test flows by accessibility label
  • Share simulator capacity across multiple agents
  • Generate journaled Markdown evidence for UI runs
  • Run declarative YAML workflows against mock or real simulators

Key features

  • Accessibility-based UI inspection and interaction
  • TTL leases with FIFO queuing
  • Warm simulator park and thaw
  • Per-action UI-change reporting
  • Journaled artifacts and Markdown evidence export
  • stdio MCP interface for agent clients

Security & health

What it can reach and how reliably it runs — from our own checks, not the maintainer’s claims.

ActiveLast checked

Recent health check succeeded.

19/20 checks healthy over the last 95d

Supply-chain signal

No high-severity advisories surfaced by our automated scan.

Critical 0High 0Medium 0Low 0

Scanned 8d ago via OSV.dev · manzanasd-client@latest (npm)

Adoption & maintenance

Factual signals from GitHub, npm, and our automated checks — not a rating.

GitHub stars22Stargazers on the source repository.
npm downloads22Package downloads in the last 30 days.
Last commit4d agoMost recent push to the default branch.
MaintenanceActively maintainedStatus declared by the project or listing owner.
Install checkInconclusiveInstall command did not finish in our automated test.
Directory activity2 upvotesConfig copies, upvotes, and views on AllMCPs.

How Manzanas works

What the manzanas MCP server does

The manzanas MCP server connects MCP-capable agents to iOS simulators. Agents can inspect the accessibility UI tree, locate elements by label or identifier, tap controls, enter text, wait for elements, and scroll to elements. These operations are intended for simulator interaction without relying on screenshot coordinates.

The MCP facade is provided by the manzanas mcp command and communicates with the host daemon. The daemon owns simulator registration, leases, action backends, streaming, state, and the run journal. A session automatically releases its leases when it ends, and tool errors describe their own context.

How it works

A Mac host runs manzanasd, which discovers available simulators and assigns them through TTL-based exclusive leases. FIFO queues handle contention, so multiple agents can share a host without driving the same simulator at the same time. Idle simulators can remain parked and resume when a lease is granted; the README reports approximately 0.28 seconds from lease to a live simulator in the measured setup, compared with roughly 7 seconds for a cold boot.

Clients are thin and communicate with the daemon using a versioned JSON protocol over HTTP and WebSocket. The MCP process itself uses stdio for the agent connection. MANZANASD_ADDR can point the client at a daemon host and port, such as mac-host:7433; a local daemon uses its default configuration without flags.

Each mutating operation under a lease is journaled. Runs can produce artifacts and an exportable Markdown evidence file, and actions report whether the UI actually changed. The repository also documents a mock mode that supplies a fake fleet and action backend for environments without a Mac or Xcode.

Setup and configuration

For a Mac with Xcode, the documented setup installs manzanasd through the project’s Homebrew tap, starts it as a service, and runs manzanas doctor to diagnose the host. The daemon enumerates simulators from simctl. Physical iPhones, iPhone Mirroring, and multi-Mac brokering are optional documented chapters rather than prerequisites for simulator use.

The README also provides an npm wrapper. Running npx manzanasd-client@latest doctor downloads the platform release and performs setup diagnosis. After the client and daemon are available, configure an MCP client to launch manzanas mcp and, when needed, set MANZANASD_ADDR to the daemon address.

Tools and capabilities

The manzanas MCP server exposes the core UI actions named in the project description:

  • ui_tree for inspecting the current accessibility hierarchy.
  • tap_element for activating an element by accessibility information.
  • type_into_element for entering text into a selected element.
  • wait_for_element for waiting until an element appears.
  • scroll_to_element for bringing an element into view.

The wider daemon and CLI support leases, simulator targets, screenshots and streaming, snapshots, fixtures, auto-reset, recordings, and journal exports. YAML runs can combine leasing, booting, application steps, evidence collection, and release into one declarative execution.

Limitations and notes

Real simulator operation requires a Mac host with Xcode and a running daemon. The mock mode is available for development or non-Mac environments, but it uses a fake fleet and mock action backend. Accessibility-based actions depend on elements being discoverable through the simulator’s accessibility interface; the material does not claim that every app or control is supported. Physical iPhone support and iPhone Mirroring require their separately documented setup paths.

Reviews

No reviews yet — be the first to share how it worked for you.

Frequently Asked Questions about Manzanas

The npm wrapper can also download the release binary with npx manzanasd-client@latest doctor.

Claude Desktop is not specifically mentioned.

The Mac daemon assigns TTL-bounded exclusive leases, uses FIFO queues for contention, and automatically releases leases when an MCP session ends.

The repository documents a mock mode that runs a fake fleet and mock action backend, allowing the lease, action, and evidence workflow to be exercised without a Mac.

Related MCP servers

Add a badge to your READMEShow it’s listed — live SVG, Markdown or HTML.

AllMCPs Directory Badge

Full Badge Customizer

Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.

Badge Style:
Live Dynamic SVG PreviewManzanas AllMCPs Directory Badge
Markdown (GitHub README)
[![AllMCPs](https://allmcps.com/api/badge/manzanas?style=directory)](https://allmcps.com/mcp/manzanas)
HTML Embed
<a href="https://allmcps.com/mcp/manzanas"><img src="https://allmcps.com/api/badge/manzanas?style=directory" alt="Manzanas on AllMCPs" /></a>