phantom-touch
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
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": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| pt_list_simulatorsA | List all available iOS simulators with their UDID, name, state (Booted/Shutdown), and runtime version. Use this first to find a simulator to work with. |
| pt_boot_simulatorA | Boot an iOS simulator by its UDID. The booted simulator becomes the active device for subsequent commands. |
| pt_shutdown_simulatorB | Shut down a running iOS simulator. |
| pt_launch_appA | Launch an iOS application by its bundle identifier (e.g. 'com.example.myapp'). The simulator must be booted first. |
| pt_terminate_appA | Terminate (force close) a running iOS application. |
| pt_list_appsA | List all installed apps on the simulator with their bundle IDs and display names. |
| pt_open_urlA | Open a URL or deep link on the simulator. Can be used to open web pages in Safari or trigger deep links into apps (e.g. 'myapp://screen/profile'). |
| pt_screenshotA | Take a screenshot of the current simulator screen. Returns the image as base64-encoded PNG. Use this to see what's currently displayed on screen. |
| pt_list_elementsA | List all visible UI elements on the current screen with their types, labels, values, and coordinates. Use this to find elements to tap or type into. Each element shows its position (x,y) and size. |
| pt_get_screen_sizeA | Get the screen dimensions (width and height in pixels) of the simulator. |
| pt_tapA | Tap on the screen at the specified (x, y) coordinates. Use pt_list_elements first to find the coordinates of the element you want to tap. |
| pt_swipeA | Swipe from one point to another on the screen. Use for scrolling, dismissing, or navigating between screens. |
| pt_type_textA | Type text into the currently focused field, or tap a field first then type. STRATEGIES:
IMPORTANT: For React Native apps, always use the "paste" strategy (the default). If you know the (x,y) coordinates of the text field, provide them to auto-tap and focus first. |
| pt_press_buttonA | Press a hardware button on the simulator (Home, Lock, Siri, Apple Pay). |
| pt_set_clipboardA | Set the simulator's clipboard/pasteboard content. Useful for preparing text to paste into fields. |
| pt_get_clipboardA | Read the current contents of the simulator's clipboard/pasteboard. |
| pt_fill_inputA | Fill a React Native TextInput by connecting to the Hermes debugger via CDP. This is the MOST RELIABLE method for filling React Native controlled TextInput fields. It walks the React fiber tree, finds the component matching your identifier, and calls its onChangeText callback directly inside the JS runtime. REQUIREMENTS:
The identifier is matched against accessibilityLabel, testID, or placeholder (case-insensitive partial match). |
| pt_list_inputsA | List all TextInput components currently rendered in the React Native app. Connects to the Hermes debugger via CDP and walks the React fiber tree to find all components with an onChangeText prop. Returns their name, placeholder, accessibilityLabel, testID, and current value. Use this to discover which inputs are available before calling pt_fill_input. |
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 18 tools
Most tools have clearly distinct purposes (e.g., pt_launch_app vs pt_list_apps). However, pt_type_text and pt_fill_input both handle text input, and pt_list_elements vs pt_list_inputs have some overlap, though descriptions clarify their specific use cases.
All tools consistently use the pt_ prefix with verb_noun snake_case naming (e.g., pt_boot_simulator, pt_get_clipboard, pt_list_inputs). The pattern is predictable and uniform across the entire set.
18 tools is on the higher end for simulator automation, but each tool covers a distinct operation (simulator control, app management, interaction, input). The count feels slightly heavy yet justified for the comprehensive feature set.
The server covers core simulator workflows: controlling simulators, launching apps, UI interaction, text input, and screen inspection. Missing features like device orientation or push notification simulation, but these are secondary and do not block primary automation tasks.