iPhone Control MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PGID | No | Owner group ID of the data directory (id -g). | |
| PUID | No | Owner user ID of the data directory (id -u). | |
| BARK_KEY | No | Bark key for notifications. | |
| HTTP_PROXY | No | Proxy for Apple and GitHub, if you need one. | |
| TG_CHAT_ID | No | Telegram chat ID for notifications. | |
| BARK_SERVER | No | Bark server URL for notifications. | |
| HTTPS_PROXY | No | Proxy for Apple and GitHub, if you need one. | |
| TG_BOT_TOKEN | No | Telegram bot token for notifications. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| iphone_statusA | 查看连接状态:WDA 是否就绪、是否锁屏、当前前台 App、屏幕尺寸。 |
| iphone_screenshotA | 截取当前屏幕。图像已缩放到点尺寸,像素坐标可直接用于点击和滑动。 看不清小图标、小字时,传 x/y/width/height(点)放大这块区域:从原始高清截图裁剪, 小区域再额外放大。返回文字里有放大倍数,图中坐标换算回屏幕点:x + 像素/倍数。 |
| iphone_list_elementsA | 列出屏幕上带文字的界面元素:类型、标签、中心点坐标、尺寸。 filter: 只返回标签/名字/值里包含该文字的元素(不区分大小写)。 注意:按坐标判断是否在屏幕内,被弹窗遮住的元素也可能列出来,不确定时截图核对。 |
| iphone_tapC | 点击屏幕坐标(点)。 |
| iphone_tap_elementA | 按文字点击元素:先找标签/名字完全相同的,找不到再找包含该文字的。 index: 匹配到多个时点第几个(从 0 开始,顺序同 iphone_list_elements)。 |
| iphone_long_pressC | 长按屏幕坐标(点)。 |
| iphone_swipeB | 从一点滑到另一点(点坐标)。向上滑看下面的内容:from_y 大、to_y 小。 |
| iphone_type_textA | 在当前获得焦点的输入框里输入文字(支持中文)。需要先点中输入框。submit=True 时末尾按回车。 |
| iphone_press_buttonA | 按硬件键:home(回主屏幕)、volume_up、volume_down、lock(锁屏;配置了密码时之后的操作会自动解锁)。 |
| iphone_list_appsA | 列出已安装的 App(名字和 Bundle ID)。include_system=True 时列出系统 App。 |
| iphone_launch_appA | 启动 App 并切到前台。app 可以是 Bundle ID,也可以是显示名(如「设置」「微信」)。 |
| iphone_terminate_appB | 结束 App 进程。app 可以是 Bundle ID 或显示名。 |
| iphone_open_urlB | 用系统默认方式打开链接或 URL Scheme(网页会在 Safari 打开)。 |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 13 tools
Each tool targets a distinct action: status, element listing, coordinate tap, text-based tap, long press, swipe, text input, hardware buttons, app listing/launch/terminate, URL open, and screenshot. The only near-pair, iphone_tap vs iphone_tap_element, is clearly differentiated (coordinate vs label matching) in the descriptions. No two tools appear to do the same thing.
All tools share a consistent iphone_ prefix in snake_case with verb_noun structure (iphone_tap_element, iphone_launch_app, iphone_press_button). Minor deviations are iphone_status and iphone_screenshot, which are noun-only rather than verb-based, but the overall pattern is highly predictable.
13 tools is well within the ideal 3-15 range and each tool covers a necessary UI-automation primitive. The set is neither padded nor thin for a device-control server.
The surface covers status, discovery, gesture input, text entry, hardware keys, app lifecycle, URL opening, and screenshots, which spans the core UI-automation loop. Minor gaps remain, such as long-press-by-element (only coordinate-based), double-tap, and explicit wait/scroll-to-element helpers, but agents can work around these via coordinates and swipe.