Skip to main content

Powerful MCP server for Termux — let AI agents run shell commands on your Android device in real time

Project description

Termux-MCP

A lightweight HTTP server that runs inside Termux on Android, exposing shell execution and device capabilities as a streaming API. Built for AI agents, LLM tool-calling, and automation scripts.

AI Agent --> POST /run {"cmd": "ls -la"} --> Termux-MCP --> Termux Shell
                                                  |
                      <-- chunked streaming output -+

Installation

pkg update && pkg install python git -y
git clone https://github.com/termuxgpt/termux-mcp
cd termux-mcp
python -m termux_mcp

Or via the package repository:

curl -fSL https://termux-mcp.pages.dev/add-repo.sh | bash
pkg install termux-mcp
termux-mcp

Quick Test

curl http://localhost:8080/ping
curl -X POST http://localhost:8080/run -H "Content-Type: application/json" -d '{"cmd": "ls ~"}'

Configuration

Variable Default Description
TERMUX_MCP_PORT 8080 HTTP listen port
TERMUX_MCP_HOST 127.0.0.1 Bind address. Use 127.0.0.1 for local-only.
TERMUX_MCP_TIMEOUT 120 Command timeout in seconds
TERMUX_MCP_AUTH_TOKEN (none) Bearer token for authentication

Set TERMUX_MCP_AUTH_TOKEN to a value 16+ characters long to require authentication on all endpoints. When binding to a non-loopback address, authentication is mandatory.

Endpoints

Shell & Filesystem

Endpoint Method Parameters Description
/run POST cmd (string, required) Execute a shell command with streaming output. Maintains persistent cd state across requests.
/ls POST path (string, default .), detailed (bool) List directory contents
/read POST path (string, required) Read a file (first 500 lines)
/write POST path, content Write content to a file via base64 encoding
/mkdir POST path Create directory (mkdir -p)
/delete POST path, recursive (bool), confirmed (bool) Delete file or directory. Requires confirmation.
/search POST path, pattern (or query/name) Find files by name pattern
/cancel POST Cancel currently running command

System Monitor & Management

Endpoint Method Parameters Description
/system-info POST Live CPU%, RAM, disk, temperature, uptime as JSON
/process-list POST limit (int, default 20) List running processes sorted by CPU usage
/process-kill POST pid (int), signal (int, default 15) Terminate a process by PID
/health POST Full diagnostic: core packages, Termux:API, storage, network, permissions

Cron Scheduler

Endpoint Method Parameters Description
/cron-add POST schedule, command, label Add a cron job. Schedule format: 0 3 * * * for daily at 3am.
/cron-list POST List all cron jobs
/cron-remove POST label (optional) Remove cron jobs matching a label, or all if no label given

Backup, Restore & Cloud Sync

Endpoint Method Parameters Description
/backup POST target (home/packages/configs), output, include Create a tar.gz backup of home, packages, or configs
/restore POST file, target Restore from a backup file
/cloud-sync POST action (backup/restore/list), target, output, file Create backups and provide cloud upload instructions

Code & Files

Endpoint Method Parameters Description
/diff POST file, file2 (optional) Show diff between files, or file stats for a single file
/patch POST file, patch Apply a diff patch to a file

Device & Sensors

Endpoint Method Parameters Description
/battery POST Battery status via termux-battery-status
/location POST provider (gps/network, default gps) GPS coordinates via termux-location
/wifi-info POST WiFi connection details
/wifi-scan POST Scan nearby WiFi networks
/camera-photo POST camera_id (0/1), output Take a photo
/camera-info POST List available cameras
/screenshot POST output Take a screenshot
/sensor POST sensor, limit Read sensor data
/fingerprint POST Fingerprint authentication
/vibrate POST duration_ms Vibrate the device
/torch POST state (on/off) Toggle flashlight
/brightness POST level Get/set screen brightness
/volume POST stream, level Get/set volume

Communication

Endpoint Method Parameters Description
/notify POST title, content, priority, id Send an Android notification
/notify-remove POST id Remove a notification
/sms-send POST number, text Send an SMS
/sms-inbox POST limit Read SMS inbox
/tts-speak POST text, rate, pitch Text-to-speech
/speech-to-text POST Speech recognition
/toast POST text Show an Android toast
/dialog POST title, message Show a confirmation dialog
/share POST text or file Share via Android intent
/clipboard-get POST Read clipboard
/clipboard-set POST text Set clipboard
/call POST number Initiate a phone call
/contacts POST List contacts
/list-apps POST List installed apps

Network

Endpoint Method Parameters Description
/open-url POST url Open URL in browser
/download POST url, description, title Download a file
/public-ip POST Get public IP address
/weather POST city Weather via wttr.in
/speedtest POST Internet speed test
/web-server POST action (start/stop/status), port, directory Start a Python HTTP server

Media

Endpoint Method Parameters Description
/image-process POST action, input, output, width, height Image operations via ImageMagick
/video-process POST action, input, output, crf, start, duration Video operations via FFmpeg
/text-extract POST input, lang OCR via Tesseract
/qrcode POST text, output Generate QR code
/scan-barcode POST camera_id, output Scan barcode via camera
/screen-record POST output, action (start/stop) Screen recording
/microphone-record POST output, limit_seconds, action Microphone recording
/wallpaper POST file, lockscreen Set wallpaper

Smart Tools

Endpoint Method Parameters Description
/smart-install POST packages, manager, dry_run Intelligent package install with conflict detection
/diagnose POST intent (python/pip/node/git/storage/packages/all) Run diagnostics for a specific tool
/pkg-smart POST intent, install Intent-based package discovery (60+ mappings)
/dev-env POST intent, name One-click development environment setup
/profile POST profile, dry_run Pre-configured Termux profiles (dev, python, web, hacker, etc.)
/optimize POST Performance analysis and recommendations
/error-explain POST error, command Gather context to help AI explain errors
/permission-fix POST target Diagnose and fix permission issues
/storage-audit POST Find large files and suggest cleanup
/deps-tree POST package Show package dependency tree
/config-fix POST config Check Termux configuration issues
/review POST file Static analysis (syntax check, linting)
/log-analyze POST file Extract errors and warnings from log files
/script-gen POST description, type, output Generate shell or Python script templates
/regex POST pattern, test Test regex patterns with grep
/db-design POST schema, output Create SQLite database from schema description
/db-query POST database, query Execute SQLite query
/translate POST text, target_lang, source_lang Text translation
/tutorial POST topic Interactive Termux learning guide

Git Operations

Endpoint Method Parameters Description
/git-op POST action (clone/status/log/diff/pull/push/branch), url, directory, repo_dir General git operations
/git-smart POST action (diff-summary/log-recent/suggest-commit/fix-conflict), repo_dir AI-friendly smart git operations

SSH, Services & Migration

Endpoint Method Parameters Description
/ssh-wizard POST action (setup/status/stop) Full SSH server setup with key generation
/service-guard POST action, name, cmd Background service management
/history-insight POST file, limit Analyze shell usage patterns, suggest aliases
/quick-cmd POST action, name, cmd Alias and shortcut management
/port-manage POST action, port Network port visibility
/migrate POST action (backup/restore/preview), output, file Full Termux environment migration

Other

Endpoint Method Parameters Description
/ping GET Health check
/env GET Environment info (cwd, home, pid)
/explain POST cmd Explain what a shell command does
/telephony-deviceinfo POST Device telephony info
/telephony-cellinfo POST Cell tower info
/infrared POST frequency, pattern IR blaster
/media-player POST action Media playback control
/storage-get POST output Get file via Android SAF

Streaming Output

The /run endpoint and most tool endpoints use HTTP chunked transfer encoding. Output is sent line-by-line as the command produces it. Clients should read the response as a stream and process each chunk as it arrives.

For long-running commands, a watchdog thread enforces the timeout. Package install commands automatically receive -y flags and DEBIAN_FRONTEND=noninteractive to prevent prompts.

Security

  • All commands are checked against a risk assessment system. Dangerous patterns (like rm -rf / or writes to /dev/) are blocked.
  • Paths targeting /dev/, /proc/, or /sys/ are rejected with canonical path resolution.
  • Numeric parameters are validated before shell interpolation to prevent injection.
  • When TERMUX_MCP_AUTH_TOKEN is set, all POST endpoints require a Bearer token.
  • Non-loopback binding enforces mandatory authentication.
  • Request body size is capped at 5 MB.

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

termux_mcp-0.6.3.tar.gz (41.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

termux_mcp-0.6.3-py3-none-any.whl (43.9 kB view details)

Uploaded Python 3

File details

Details for the file termux_mcp-0.6.3.tar.gz.

File metadata

  • Download URL: termux_mcp-0.6.3.tar.gz
  • Upload date:
  • Size: 41.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.0

File hashes

Hashes for termux_mcp-0.6.3.tar.gz
Algorithm Hash digest
SHA256 abdedf220f0bac4a986e7c943f376488ed356148dd51146457f965abb22c1d31
MD5 85cc1b0f0febc6cc752a82b3f7e16bb5
BLAKE2b-256 d49182a9ef127c894720b29639db7eea4c9d41e20074f5845e09b44149456da2

See more details on using hashes here.

File details

Details for the file termux_mcp-0.6.3-py3-none-any.whl.

File metadata

  • Download URL: termux_mcp-0.6.3-py3-none-any.whl
  • Upload date:
  • Size: 43.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.0

File hashes

Hashes for termux_mcp-0.6.3-py3-none-any.whl
Algorithm Hash digest
SHA256 6e18215d5b67d13b0e01ebb36b1d70477491bc6265d51c8cdc3c269c8c9362d1
MD5 d8c48ab0b854ab9b50b9699b136b85b7
BLAKE2b-256 b96ddf59f0ade2a96d2fb798895c494ad6e4152fa015b219249971b70596f880

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page