Termux MCP Server
README.md
# Termux MCP Server (Ubuntu PRoot Distro) 📱🤖
This is a Model Context Protocol (MCP) server designed to run inside **Ubuntu (PRoot Distro)** on Termux.
Using Ubuntu inside Termux allows you to use standard pre-compiled binary packages (wheels), meaning **no long build wait times or compiling errors** (like the `rpds-py` Rust compiler error) while still retaining full access to Termux API commands to control your Android device.
---
## Quick One-Line Installation
Open the **Termux** app on your phone and run this single command to clone the repo, install Ubuntu, set up a virtual environment, and configure everything automatically:
```bash
curl -sSL https://raw.githubusercontent.com/AbuZar-Ansarii/Termux-MCP-Server/main/setup.sh -o setup.sh && chmod +x setup.sh && ./setup.sh
```
---
## 5-Step Setup Guide
### Step 1: Install Termux & Termux:API on Android
1. Download **Termux** and the **Termux:API** app.
- *Important*: Do **NOT** install them from the Google Play Store (they are outdated and broken). Download them from [F-Droid](https://f-droid.org/packages/com.termux/) or [GitHub Releases](https://github.com/termux/termux-app).
2. Install both apps on your phone.
---
### Step 2: Grant Android Permissions
1. Go to your Android Settings -> **Apps** -> **Termux:API**.
2. Grant the following permissions to let the AI control your device:
- **Camera** (for photos)
- **Location** (for GPS coordinates)
- **SMS** (for messages)
- **Notifications** (for popups)
---
### Step 3: Run the Auto-Installer inside Termux
Run the one-line installer in Termux:
```bash
curl -sSL https://raw.githubusercontent.com/AbuZar-Ansarii/Termux-MCP-Server/main/setup.sh -o setup.sh && chmod +x setup.sh && ./setup.sh
```
*This will automatically update Termux, install `proot-distro` Ubuntu, set up a python virtual environment (`venv`) inside it, and install all dependencies instantly.*
---
### Step 4: Configure Passwordless SSH Access
The AI client runs non-interactively on your PC and needs to log into Termux automatically.
1. **In Termux**, set a password and start the SSH server:
```bash
passwd
sshd
whoami # Check your username (e.g. u0_a123)
ifconfig # Check your phone's IP address (e.g. 192.168.1.50)
```
2. **On your PC**, copy your SSH public key over to your phone:
- **Windows PowerShell**:
```powershell
cat ~/.ssh/id_rsa.pub | ssh -p 8022 u0_a123@192.168.1.50 "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys"
```
- **macOS/Linux Terminal**:
```bash
ssh-copy-id -p 8022 u0_a123@192.168.1.50
```
3. Verify passwordless access from your PC:
```bash
ssh -p 8022 u0_a123@192.168.1.50
```
If it logs in without asking for a password, you are ready!
---
### Step 5: Connect Claude Desktop on your PC
Update your PC's Claude Desktop config file to launch the server inside the Ubuntu virtual environment.
1. Open your Claude Desktop config file:
- **Windows**: `%APPDATA%\Claude\claude_desktop_config.json`
- **macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`
2. Add the server configuration under `mcpServers` (replace the username and IP address with yours):
```json
{
"mcpServers": {
"termux": {
"command": "ssh",
"args": [
"-p", "8022",
"-o", "StrictHostKeyChecking=accept-new",
"u0_a123@192.168.1.50",
"proot-distro login ubuntu -- env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/data/data/com.termux/files/usr/bin /root/venv/bin/python3 /root/termux_mcp.py"
]
}
}
}
```
3. Restart Claude Desktop. The AI can now command your phone!
---
## Alternative: Connecting via HTTP / SSE (Remote Server)
If you want to run the server as a standalone web application instead of launching it over SSH stdio:
1. **In Termux**, run the server inside Ubuntu in SSE mode:
```bash
proot-distro login ubuntu -- env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/data/data/com.termux/files/usr/bin /root/venv/bin/python3 /root/termux_mcp.py sse --port 8000
```
2. **On your PC**, configure your Claude Desktop config to point directly to your phone's IP:
```json
{
"mcpServers": {
"termux-remote": {
"url": "http://your_phone_ip:8000/sse"
}
}
}
```
This server cannot be deployed
Maintenance
ActivityMaintained
ResponsivenessSyncing