Monocle
FreeNot checkedGives AI agents the ability to interact with iOS simulators through 21+ tools for mobile app testing.
About
Gives AI agents the ability to interact with iOS simulators through 21+ tools for mobile app testing.
README
Playwright for Mobile — Give AI agents the ability to test any iOS mobile app.
Monocle is an open-source MCP server + visual dashboard that lets AI agents (Claude Code, Cursor, etc.) interact with iOS simulators through 21+ tools: tap, swipe, type, screenshot, inspect elements, wait for conditions, record sessions, and more.
Architecture
┌─────────────────────────────────────────────────────┐
│ Monocle Dashboard (Next.js) │
│ Live Simulator View + Agent Chat + Action Timeline │
└───────────────────────┬─────────────────────────────┘
│ HTTP + WebSocket (:7200)
┌───────────────────────▼─────────────────────────────┐
│ Monocle Server (Node.js) │
│ MCP Server (stdio+HTTP) + REST API + WS Streaming │
│ 21+ tools • Element refs (@e1) • Session recording │
└───────────┬────────────────────────┬────────────────┘
│ │
idb_companion xcrun simctl
(accessibility, (screenshots,
tap, swipe, type) recording, lifecycle)
Quick Start
# Prerequisites: Xcode 15+, Node.js 20+, idb_companion
npm install
npm run dev
# Or use via MCP (stdio mode for Claude Code):
npx tsx packages/server/src/index.ts --stdio
MCP Configuration
{
"mcpServers": {
"monocle": {
"command": "npx",
"args": ["tsx", "/path/to/monocle/packages/server/src/index.ts", "--stdio"]
}
}
}
Tools (21+)
| Category | Tools |
|---|---|
| Screen | screenshot, getScreenText |
| Interact | tap, tapByText, tapById, doubleTap, longPress, swipe, type, typeInto, pressKey |
| Inspect | listElements, findElement, getElementInfo |
| Wait | waitForElement, waitForText, assertVisible |
| Device | listDevices, launchApp, terminateApp, getDeviceInfo, openUrl |
| Record | startRecording, stopRecording |
Element Refs
Monocle assigns short refs (@e1, @e2, ...) to every UI element. Use them anywhere:
Agent: "tap @e3" → taps the Login button
Agent: "type into @e5 '[email protected]'" → types into email field
Refs are stable within a session — same element keeps the same ref across calls.
Packages
packages/server— MCP server, iOS bridges, streaming, sessionspackages/dashboard— Next.js visual dashboardpackages/cli— CLI (monocle start,monocle devices,monocle screenshot)
Prerequisites
- macOS with Xcode 15+
- At least one iOS Simulator booted
idb_companioninstalled (brew install idb-companion)- Python 3.11 venv with
fb-idb(for accessibility tree)
License
MIT — Pivot Studio AI
Installing Monocle
This server has no published package — it is built from source. Open the repository and follow its README.
▸ github.com/per-simmons/monocleFAQ
Is Monocle MCP free?
Yes, Monocle MCP is free — one-click install via Unyly at no cost.
Does Monocle need an API key?
No, Monocle runs without API keys or environment variables.
Is Monocle hosted or self-hosted?
Self-hosted: the server runs locally on your machine via the install command above.
How do I install Monocle in Claude Desktop, Claude Code or Cursor?
Open Monocle on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Related MCPs
Fetch
Web content fetching and conversion for efficient LLM usage.
AWS KB Retrieval
Retrieval from AWS Knowledge Base using Bedrock Agent Runtime.
by modelcontextprotocolSpring AI MCP Server
Provides auto-configuration for setting up an MCP server in Spring Boot applications.
llm-analysis-assistant
A very streamlined mcp client that supports calling and monitoring stdio/sse/streamableHttp, and can also view request responses through the /logs page. It also
by xuzexin-hzCompare Monocle with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All ai MCPs
