- Telephone Operator
Telephone Operator
An MCP server that provides iOS device automation capabilities through Appium, primarily focused on iOS 18.2 and iPhone 16 Pro.
Features
- iOS Safari automation
- Device interaction controls
- Touch gesture simulation
- Physical button control
- Element interaction
- Built using MCP Python SDK and Appium
Prerequisites
- macOS (required for Xcode and iOS development)
- Xcode with iOS 18.2 simulator
- Node.js and npm (for Appium)
- Appium Server
- Python 3.x
Installation
- Install UV if you haven't already:
curl -LsSf https://astral.sh/uv/install.sh | sh
- Install Appium and required drivers:
npm install -g appium
appium driver install xcuitest
- Create and set up the environment:
# Create project and virtual environment
uv init telephone-operator
cd telephone-operator
uv venv
# Activate virtual environment
source .venv/bin/activate
Running the Server
Start the server using UV:
uv run server.py
Available Tools
The server provides the following tools:
-
get_page_source: Get the current page source of Safari- Returns: Current page HTML source
-
tap_element: Tap an element on screen- Parameters:
element_id: Element identifierby: Locator strategy (accessibility_id, xpath, name, class_name)
- Parameters:
-
press_physical_button: Simulate physical button press- Parameters:
button: Button to press (home, volumeup, volumedown, power)
- Parameters:
-
swipe: Perform swipe gestures- Parameters:
direction: Swipe direction (up, down, left, right)
- Parameters:
-
send_input: Input text into elements- Parameters:
element_id: Target element identifiertext: Text to inputby: Locator strategy
- Parameters:
-
navigate_to: Navigate Safari to URL- Parameters:
url: Target URL
- Parameters:
Configuration with Cursor
- Open Cursor Settings
- Go to Features > MCP
- Click "+ Add New MCP Server"
- Fill out the form:
- Type: stdio
- Name: telephone-operator
- Command:
python3 /absolute/path/to/server.py
Configuration with Claude for Desktop
Add the following to your Claude for Desktop configuration:
{
"mcpServers": {
"telephone-operator": {
"command": "uv",
"args": [
"--directory",
"/ABSOLUTE/PATH/TO/PARENT/FOLDER",
"run",
"server.py"
]
}
}
}
Logging
The server maintains detailed logs in the logs directory, with timestamps for each session.
Testing
You can test this server using:
- The MCP Inspector tool
- Cursor
- Claude for Desktop
- Any other MCP client
Note
This server is configured to work with iPhone 16 Pro running iOS 18.2. Make sure you have the appropriate simulator installed through Xcode.