Termux MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_battery_statusA | Get phone battery status including level, charging state, temperature, etc. |
| get_wifi_infoA | Get current WiFi connection information (SSID, IP, signal strength, etc.). |
| scan_wifiB | Scan for nearby WiFi networks. |
| get_telephony_infoB | Get telephony device info (carrier, phone type, SIM state, etc.). |
| get_telephony_cell_infoB | Get detailed cellular network information. |
| get_locationA | Get the phone's current GPS location. Args: provider: Location provider - 'gps', 'network', or 'passive' (default: gps) request: 'once' for single reading, 'last' for last known location, 'updates' for continuous |
| adb_setup_statusA | Check if ADB is set up and connected. On Android 12+, ADB is required for screencap, input, uiautomator, am, etc. to work from Termux. If not connected, follow the instructions in the output to set up. |
| adb_connectA | Connect ADB to this device wirelessly. Required on Android 12+. Step 1: If pair_code and pair_port are given, pair first. Step 2: If connect_port is given (or after pairing), connect. Find these in: Settings → Developer Options → Wireless Debugging Args: pair_code: Pairing code from wireless debugging (for first-time pairing) pair_port: Pairing port from wireless debugging (e.g. '37123') connect_port: Connection port shown on wireless debugging main page (e.g. '5555' or '45678') |
| list_running_appsA | List currently running processes/apps on the phone with CPU and memory usage. |
| list_installed_packagesB | List all installed Termux packages. |
| open_urlB | Open a URL in the default browser on the phone. Args: url: The URL to open |
| open_appB | Launch an Android app or activity using am (Activity Manager). Args: package_or_action: Package name (e.g. 'com.whatsapp') or intent action. Common examples: - com.whatsapp - com.tencent.mm (WeChat) - com.android.chrome - com.android.settings - com.android.camera2 |
| list_android_packagesB | List installed Android apps/packages. Args: filter_keyword: Optional keyword to filter package names (e.g. 'camera', 'wechat') |
| take_screenshotB | Take a screenshot of the current phone screen. Returns the screenshot as base64 image data. Args: output_path: Where to save the screenshot file |
| get_screen_sizeA | Get the phone screen resolution (width x height in pixels). |
| tap_screenA | Tap the screen at specific coordinates. Use take_screenshot + dump_ui first to find the right coordinates. Args: x: X coordinate (pixels from left) y: Y coordinate (pixels from top) |
| long_pressA | Long press at specific screen coordinates. Args: x: X coordinate y: Y coordinate duration_ms: Press duration in milliseconds (default: 1000) |
| swipe_screenA | Swipe on the screen from one point to another. Args: x1: Start X coordinate y1: Start Y coordinate x2: End X coordinate y2: End Y coordinate duration_ms: Swipe duration in milliseconds (default: 300) |
| input_textA | Type text into the currently focused input field. Note: This works best with ASCII text. For Chinese/Unicode text, use set_clipboard + input_keyevent(keycode='279') (paste) instead. Args: text: Text to type (spaces are supported) |
| input_chinese_textA | Input Chinese/Unicode text by copying to clipboard and pasting. This is the reliable way to input non-ASCII text (Chinese, Japanese, emoji, etc.). Args: text: The text to input (any language) |
| input_keyeventA | Send a key event to the phone. Args: keycode: Android keycode name or number. Common ones: - '3' or 'KEYCODE_HOME' = Home button - '4' or 'KEYCODE_BACK' = Back button - '26' or 'KEYCODE_POWER' = Power button - '24' = Volume Up, '25' = Volume Down - '66' or 'KEYCODE_ENTER' = Enter/Confirm - '67' or 'KEYCODE_DEL' = Backspace/Delete - '61' or 'KEYCODE_TAB' = Tab - '82' or 'KEYCODE_MENU' = Menu - '187' or 'KEYCODE_APP_SWITCH' = Recent apps - '279' or 'KEYCODE_PASTE' = Paste - '84' or 'KEYCODE_SEARCH' = Search |
| dump_uiA | Dump the current UI hierarchy (XML). Shows all visible UI elements with their text, content-desc, bounds (coordinates), class name, and clickable state. Use this to find the right element/coordinates before tapping. Args: output_path: Where to save the XML dump |
| find_and_tapA | Find a UI element by its text and tap on it. This combines dump_ui + tap_screen: dumps the UI hierarchy, finds an element matching the given text, and taps its center. Args: text: Text to search for in UI elements (partial match, case-insensitive) |
| go_homeA | Press the Home button to go to the home screen. |
| go_backB | Press the Back button. |
| open_recent_appsA | Open the recent apps / app switcher. |
| get_current_appA | Get the currently focused app (package name and activity). |
| take_photoA | Take a photo using the phone camera. Args: camera_id: Camera ID - '0' for back camera, '1' for front camera output_path: Where to save the photo |
| get_camera_infoB | Get information about available cameras on the device. |
| list_photosB | List photo files in a directory. Args: directory: Directory to list photos from (default: phone camera folder) limit: Maximum number of files to list |
| read_photoA | Read a photo file and return it as base64 encoded data for viewing. Args: file_path: Path to the image file |
| list_smsB | List SMS messages. Args: limit: Number of messages to retrieve (default: 10) type: Message type - 'inbox', 'sent', 'draft', 'all' (default: inbox) |
| send_smsC | Send an SMS message. Args: number: Phone number to send to message: Message text |
| list_contactsB | List all contacts from the phone. |
| get_clipboardA | Get the current clipboard content. |
| set_clipboardB | Set the clipboard content. Args: text: Text to copy to clipboard |
| send_notificationA | Send a notification to the phone. Args: title: Notification title content: Notification body text id: Notification ID for updates/removal vibrate: Whether to vibrate (default: True) |
| show_toastB | Show a toast message on the phone screen. Args: text: Text to show short: True for short display, False for long (default: True) |
| set_volumeA | Set a volume level on the phone. Args: stream: Volume stream - 'music', 'ring', 'alarm', 'notification', 'system', 'call' volume: Volume level (0-15 typical range, depends on device) |
| get_volumeA | Get current volume levels for all audio streams. |
| toggle_torchA | Turn the flashlight (torch) on or off. Args: enabled: True to turn on, False to turn off |
| vibrateA | Vibrate the phone. Args: duration_ms: Vibration duration in milliseconds (default: 1000) force: Vibrate even in silent mode (default: False) |
| text_to_speechB | Speak text aloud using text-to-speech. Args: text: Text to speak language: Language code (e.g. 'en', 'zh', 'ja') (default: zh) rate: Speech rate, 1.0 is normal (default: 1.0) |
| get_fingerprintA | Prompt for fingerprint authentication on the device. |
| media_playerB | Control the media player. Args: action: One of 'play', 'pause', 'stop', 'info'. Use 'play' with file_path to play a file. file_path: Path to media file (required for 'play' action) |
| share_fileC | Share a file using Android's share dialog. Args: file_path: Path to the file to share |
| download_fileA | Download a file using Android's download manager. Args: url: URL to download description: Download description shown in notification |
| list_directoryA | List contents of a directory with file sizes. Args: directory_path: Path to directory (default: current directory) show_hidden: Show hidden files (default: False) |
| read_fileB | Read the contents of a text file. Args: file_path: Path to the file to read |
| write_fileC | Write content to a file. Args: file_path: Path to the file content: Content to write |
| execute_commandC | Execute a shell command on the phone. Args: command: Shell command to execute working_directory: Working directory (default: current) timeout: Timeout in seconds (default: 30) |
| get_storage_infoA | Get phone storage usage information (disk space). |
| get_device_infoA | Get comprehensive device information (model, Android version, etc.). |
| get_screen_brightnessA | Get current screen brightness level. |
| set_screen_brightnessB | Set screen brightness level. Args: level: Brightness level 0-255 |
| get_sensor_listA | List all available sensors on the device. |
| read_sensorA | Read data from a specific sensor. Args: sensor_name: Name of the sensor (use get_sensor_list to see available sensors) count: Number of readings to take (default: 1) |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/xlisp/termux-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server