Termux MCP Server
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": 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
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- 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