Poki MCP
Poki is a local macOS MCP server that hands an agent an iPhone or iOS Simulator: screen, taps, typing and app control.
- 402 ★ on the repository
- Last commit
Broad access
Why this level
- The agent controls a real iPhone: if asked, it sends messages and makes payments.
- Screen contents, including private chats, go to the configured model.
Install
- Works in
Manual install
git clone https://github.com/JosssphZhou/poki.gitThen `cd poki`, `./bin/setup`, `npm start` and register `node src/stdio.mjs` in the client.
Access and checks
How we reviewBroad accessThe tool can change data, run commands or handle secrets.
- The agent controls a real iPhone: if asked, it sends messages and makes payments.
- Screen contents, including private chats, go to the configured model.
This is third-party code. Review the repository files before installing.
What it does
Poki runs a local service on a Mac and exposes tools for driving a real iPhone or an iOS Simulator. The agent takes screenshots, reads the element tree through Accessibility or Vision OCR, taps, scrolls, types, opens links and launches apps. By default the tool list holds only phone-task commands; `POKI_MCP_TOOLS=all` enables the full catalog. The repository also ships a standalone terminal agent, Poki Agent, with iMessage and Telegram channels and memory of repeated tasks.
Who it is for. Mobile developers and testers who run scenarios on a live iPhone through Claude Code or Codex.
Good fit when
- An agent walks an app scenario in the simulator and compares screens.
- A bug has to be reproduced on a physical iPhone without manual taps.
- Screenshots and the element tree are collected for a bug report.
- A repeating phone task goes to an agent that remembers routes.
Not a fit when
- No Mac is available: the server runs only on macOS 15 or later with full Xcode.
- Screen contents cannot be sent to a model.
- A phone with private chats and payment apps would be connected without limits.
Example request
Open Chrome on the connected iPhone, search esp32 and summarize the top result, attaching a screenshot of each step.MCP
- Transport
- stdio, http
- Authentication
- not required
Environment variables
POKI_MCP_TOOLS- The value `all` exposes the full tool catalog.
POKI_NO_UPDATE_CHECK- The value `1` disables the daily release check.
Limitations
A build needs Xcode, Rust, Node.js 24+ and ffmpeg, and the first build takes a few minutes. Physical iPhone support was verified only with the Chinese interface and works in portrait only. App container export and direct links to Settings subpages are unavailable. The license is AGPL-3.0. Sensitive actions are covered by local approvals, and `poki_mcp_status` reports the approval mode. Connection setup problems are easier to trace through `poki_mcp_status`.
How to disable. Remove the `poki-mcp` entry from client settings and stop `npm start`. Unplug the iPhone from the Mac and remove its pairing in Xcode if you no longer use it.
FAQ
Which tools does the agent see by default?
Phone-task commands such as `list_elements`, `take_screenshot`, `tap`, `type_text`, `scroll`, `launch_app`, `open_url`, `wait_for` and `batch_commands`. `POKI_MCP_TOOLS=all` enables the full catalog.
Is a separate model subscription required?
No when Poki MCP is attached to Claude Code or Codex: your own subscription is used. The standalone Poki Agent has its own model setup.
What leaves the machine?
Screen contents go to the configured model. The service listens on `127.0.0.1` by default, and the release check is disabled with `POKI_NO_UPDATE_CHECK=1`.
Is Linux supported?
The repository targets macOS. For Linux the README points to a third-party port, `poki-for-linux`, maintained outside the project.
How do I connect Poki to Claude Code or Codex?
From the project directory run `claude mcp add --scope user poki-mcp -- node "$PWD/src/stdio.mjs"` for Claude Code or `codex mcp add poki-mcp -- node "$PWD/src/stdio.mjs"` for Codex.
Discussion
No questions or reviews yet.
Related
MCP serversAn open phone agent model and framework: it reads the screen and taps through Android, HarmonyOS and iOS apps from a text command
Artemis
artemis
A Google framework for driving a real Android device or an emulator from natural-language instructions: UI tests and everyday tasks, with an MCP server
An Android emulator in Docker with an MCP server: the agent drives the device over adb, opens apps and pages, presses buttons
Official set of 30 skills from the Android team: Jetpack Compose, AGP 9 upgrade, R8, Perfetto profiling, Navigation 3, CameraX, Google Play policies
An MCP server to drive iOS and Android: simulators, emulators and real devices via accessibility trees and screenshots
XcodeGen is an Xcode project generator that shares settings across targets, keeping configuration in a text specification.
Comparison with similar tools
Cards that share the main search query, and how they differ.
| Tool | Official | Authentication | Repository stars | Main difference |
|---|---|---|---|---|
| Poki (this card) | no | not required | 402 | |
| Mobile MCP | no | not required | 10,325 | mobile-mcp drives devices through a shared automation layer; Poki adds a terminal agent and routes it remembers |
| Appium MCP | yes | not required | 518 | appium-mcp builds on Appium; Poki installs its own bridge for iPhone and simulator |
README in short
The root `AGENTS.md` describes an install the agent performs itself, stopping whenever the owner must act. A physical iPhone must first be paired with the Mac over USB.