Skip to main content
Glama
wujie272

Android MCP Server

by wujie272

🀖 Termux MCP Server

让 AI 盎接操控䜠的 Android 手机 — 120+ 工具的 MCP 服务运行圚 Termux 侊

Version License Python PRs

基于 xlisp/termux-mcp-server 党面重构采甚 FastMCP 框架分层加蜜、智胜重试、安党闚控。


✹ 亮点速览

特性

诎明

🛠 120+ 工具

屏幕操控 · 文件管理 · 应甚管理 · 通信 · 䌠感噚 · 媒䜓 · 倩气 · Shizuku · GitHub

📡 8 䞪 Resources

电池/讟倇/WiFi/蜂窝/存傚/健康/䌠感噚/前台 — 可盎接订阅

📝 5 䞪 Prompts

健康巡检/取证分析/屏幕向富/厩溃调查/自劚化操䜜 — 暡板化工䜜流

🚀 分层加蜜

栞心工具 0s → 垞甚 3s → 䜎频 10s启劚即甚䞍等埅

🔒 安党闚控

只读暡匏 + Shell 匀关环境变量控制零代码入䟵

🧠 智胜定䜍

按文本/ID/类名扟元玠䞀次调甚定䜍+点击+验证

🏗 䞉层特权

Shizuku (rish) 🥇 → ADB 🥈 → Direct (Termux) 🥉自劚降级最高权限䌘先


📡 快速匀始

# 通过管理工具掚荐
bash ~/mcp-manager.sh android

# 或盎接运行
cd ~/mcp-servers/termux-mcp

# stdio 暡匏适合 Claude Desktop 本地调甚
python3 server.py

# HTTP/SSE 暡匏适合远皋访问端口 3000
python3 http_server.py

# 健康检查
curl http://手机IP:3000/health

MCP 客户端配眮

{
  "mcpServers": {
    "termux-mcp": {
      "type": "sse",
      "url": "http://192.168.1.102:3000/sse"
    }
  }
}

⚠ 将 192.168.1.102 替换䞺手机实际 IP可甚 bash ~/mcp-manager.sh wifi-ip 查看


🏗 架构讟计

┌─────────────────────────────────────────────────────┐
│                   MCP Client                         │
│           (Claude Desktop / RikkaHub / Cursor)       │
└────────────────────┬────────────────────────────────┘
                     │ MCP Protocol (SSE / stdio)
                     ▌
┌─────────────────────────────────────────────────────┐
│              termux-mcp (FastMCP)                    │
│                                                       │
│  ┌─────────────────────────────────────────────┐     │
│  │  🚀 Layer 1: 栞心工具 (0s)                    │     │
│  │  device_info · ui_automation · ui_smart      │     │
│  │  github · aggregation · prompts · resources  │     │
│  ├──────────────────────────────────────────────     │
│  │  ⏳ Layer 2: 垞甚工具 (3s)                    │     │
│  │  file_system · app_management               │     │
│  │  communication · system_control             │     │
│  ├──────────────────────────────────────────────     │
│  │  🐌 Layer 3: 䜎频工具 (10s)                  │     │
│  │  media · adb                                 │     │
│  └─────────────────────────────────────────────┘     │
│                                                       │
│  ┌─── 🔒 Security Gate ─────────────────────────┐   │
│  │  TERMUX_MCP_READONLY    → 犁止写入操䜜       │   │
│  │  TERMUX_MCP_ALLOW_SHELL → 犁止 Shell 执行    │   │
│  └──────────────────────────────────────────────┘   │
│                                                       │
│  ┌─── 🏗 Privilege Chain ───────────────────────┐   │
│  │  Shizuku (rish) 🥇 → ADB 🥈 → Direct 🥉   │   │
│  │  自劚降级最高权限䌘先                      │   │
│  └──────────────────────────────────────────────┘   │
└─────────────────────────────────────────────────────┘
         │                  │                  │
         ▌                  ▌                  ▌
   ┌──────────┐    ┌──────────────┐    ┌────────────┐
   │ Termux:API│    │ Shizuku/rish │    │    ADB     │
   │ 䌠感噚/盞机│    │ 截囟/UI dump │    │ 无线调试   │
   │ 短信/TTS  │    │ 蟓入泚入     │    │ (倇选)     │
   └──────────┘    └──────────────┘    └────────────┘

📡 MCP Resources — 讟倇数据源

Resources 是可订阅的声明匏数据源Client 可䞻劚读取或订阅曎新。

Resource

URI

诎明

🔋 电池

device://battery

电量/枩床/充电状态/电压/电流/健康床

📱 讟倇

device://info

型号/品牌/Android版本/SDK/内栞/架构/运行时闎

📶 WiFi

device://network/wifi

SSID/信号区床/速率/频段/IP

📡 蜂窝

device://network/telephony

运营商/眑络类型/SIM状态/挫枞

💟 存傚

device://storage

总量/已甚/剩䜙/䜿甚率

🩺 健康

device://health

电池+WiFi+存傚䞀键快照

🎯 䌠感噚

device://sensors

可甚䌠感噚列衚及数量

📌 前台

device://app/foreground

圓前前台运行的 App


📝 MCP Prompts — 暡板化工䜜流

5 䞪预定义工䜜流暡板Client 调甚后 AI 自劚执行倚步骀任务

Prompt

适甚场景

执行流皋

device_health_check

讟倇卡顿/发热/耗电快时排查

电池→健康→存傚→眑络→讟倇→前台 → 报告

app_forensic_audit

审计第䞉方 App 安党性

包信息→权限审计→内存→Activity→数据 → 审计报告

screen_interaction_wizard

倚步骀 UI 自劚操䜜

截囟→识别→点击→验证(埪环)

crash_investigation

App 闪退/系统匂垞排查

健康基线→内存→存傚→近期变曎 → 事故报告

automation_operator

筟到/打卡等重倍任务

拆解步骀→逐䞪执行→验证→报告


🛠 聚合工具

䞀次调甚获取倚绎数据告别倚次蜮询

工具

诎明

数据来源数

device_health()

🔥 讟倇健康报告 — 电池 + 存傚 + 内存 + WiFi + CPU + 进皋7路匂步并发

⚡ 7

analyze_app(pkg)

🔍 包信息 + 权限 + 内存 + Activity + 进皋党绎床审计

📋 5

screen_diagnostics()

📺 分蟚率 + 方向 + 亮床 + 前台 + UI 节点统计

🖥 5


🔒 安党闚系统

环境变量控制无需改代码

# 只读暡匏 — 犁止所有写入操䜜截囟/点击/发短信/删文件等
TERMUX_MCP_READONLY=true

# Shell 控制 — 犁止 Shell/ADB 呜什执行
TERMUX_MCP_ALLOW_SHELL=false

每䞪工具标泚安党等级

等级

标识

瀺䟋

⚡ 䞭风险

亀互操䜜

tap_screen(), input_text(), swipe_screen()

🚚 高风险

数据变曎

send_sms(), write_file(), force_stop_app()


🛠 党郚工具䞀览100+

🧠 智胜定䜍8 䞪

工具

诎明

find_element(text)

按文本/ID/类名/描述查扟 UI 元玠返回坐标和属性

click_by_text(text)

按文本查扟并点击䞍受垃局变化圱响最皳健

click_by_id(id)

按资源 ID 查扟并点击

click_by_class(cls)

按类名Button/Switch 等查扟并点击

wait_for_element(text)

等埅元玠出现蜮询超时可配适合匂步加蜜

get_foreground_app()

获取圓前前台应甚包名+Activity

get_ui_state(scale)

结构化界面状态 + 可选标泚截囟䞀键到䜍

dump_ui_with_screenshot(scale)

标泚所有可亀互元玠的截囟 + 完敎元玠列衚

🖥 UI 自劚化20 䞪

工具

诎明

dump_ui(mode)

UI 树分析summary / full / json 䞉暡匏

tap_screen(x, y)

粟确点击指定坐标

long_press(x, y, ms)

长按可讟时长

swipe_screen(x1,y1 → x2,y2)

滑劚操䜜可调速

input_text(text)

蟓入 ASCII 文本

input_chinese_text(text)

蟓入䞭文/倚语蚀文本剪莎板+Paste 方案

input_keyevent(keycode)

发送按键事件3=Home / 4=Back / 26=Power / 66=Enter / 67=Del / 187=Recent

go_home() / go_back()

䞻页 / 返回

open_recent_apps()

最近应甚

screen_on() / screen_off()

亮屏 / 息屏

rotate_device(rot)

旋蜬屏幕0=竖屏 / 1=暪屏 / 2=反向竖屏 / 3=反向暪屏

expand_notifications()

䞋拉通知栏

expand_settings()

展匀快捷讟眮面板

collapse_panels()

收起通知栏/讟眮面板

screen_record(secs)

圕屏最长 180s可星瀺觊摞点

📱 讟倇信息18 䞪

工具

诎明

get_battery_status()

电池电量/枩床/充电状态/电压/电流/健康床

get_battery_health()

深床电池健康埪环次数/容量/电压dumpsys

get_wifi_info()

WiFi 连接诊情SSID/BSSID/信号/速率/频段/IP

scan_wifi()

扫描附近 WiFi 热点

wifi_qr_code()

生成圓前 WiFi 二绎码可扫码连接

get_telephony_info()

蜂窝眑络信息运营商/4G/5G/SIM 状态/IMEI

get_telephony_cell_info()

基站信息CID/LAC/信号区床/ARFCN

get_location(provider)

GPS 定䜍gps/network/passive · 单次/持续/最近

get_sensor_list()

列出所有可甚䌠感噚

read_sensor(name)

读取䌠感噚实时数据

get_device_info()

党面讟倇信息型号/Android 版本/内栞/架构/运行时闎

get_screen_size()

屏幕分蟚率

get_screen_brightness()

圓前亮床需 Shizuku/ADB

set_screen_brightness(level)

讟眮亮床 0-255需 Shizuku/ADB

device_health_report()

MCP 服务健康状态运行时闎/PID/日志倧小

list_adb_devices()

列出所有 ADB 连接讟倇USB + WiFi含型号

restart_android(reason)

重启 termux-mcp 服务~2-3s 自愈

📁 文件系统15 䞪

工具

诎明

read_file(path)

读取文本文件自劚检测猖码

write_file(path, content)

写入文件自劚创建父目圕

edit_file(path, old, new)

文本替换猖蟑支持 dry-run 预览

file_editor(path, action, ...)

🔧 智胜行级猖蟑 — 插入/删陀/替换/正则/泚释/撀销。预览 → 确讀 → 倇仜 → 回滚党皋保技

search_files(query)

🔍 统䞀搜玢匕擎文件名(fd) + 内容(rg) + 元数据过滀 + 暡糊匹配(fzf)

file_copy(source, dest)

倍制文件/目圕自劚防芆盖加后猀

file_move(source, dest)

移劚/重呜名文件/目圕

file_delete(path)

安党删陀先预览再确讀䞍可恢倍

file_trash(path)

移到回收站 ~/.trash/可还原

file_symlink(source, link)

创建笊号铟接

dir_create(path)

创建目圕mkdir -p 行䞺

get_file_info(path)

文件元信息倧小/日期/权限

list_directory(path)

列出目圕内容

list_allowed_directories()

列出可访问的目圕癜名单

📊 应甚管理9 䞪

工具

诎明

list_installed_packages()

列出 Termux 已装包dpkg

list_android_packages(keyword)

列出 Android 应甚可关键词过滀

list_running_apps()

运行䞭进皋 + CPU + 内存占甚

app_usage_stats(days)

应甚䜿甚统计近 N 倩

open_app(package)

启劚应甚MAIN intent → 已知 Activity → monkey倚级降级

force_stop_app(package)

区制停止应甚

get_current_app()

圓前聚焊应甚包名+Activity

analyze_app(package)

🔍 深床分析包信息+权限+内存+Activity+进皋

💬 通信15 䞪

工具

诎明

list_sms(limit, type)

短信列衚inbox/sent/draft/all

send_sms(number, msg)

发送短信䌚产生实际莹甚

list_contacts()

通讯圕姓名/电话/邮箱

get_clipboard()

读取剪莎板Termux:API → 内存回退

set_clipboard(text)

写入剪莎板

clipboard_history(limit)

剪莎板历史记圕

clipboard_history_clear()

枅空历史

send_notification(title, msg)

发送通知可振劚

dismiss_notification(id)

按 ID 移陀通知

list_notifications()

列出所有掻跃通知

show_toast(text)

星瀺 Toast 消息

🔊 系统控制9 䞪

工具

诎明

get_volume()

查看所有音频流音量music/ring/alarm/notification/system/call

set_volume(stream, level)

讟眮音量0-15

toggle_torch(on)

手电筒匀关

vibrate(ms, force)

震劚支持静音暡匏区制震劚

text_to_speech(text, lang)

文字蜬语音朗读支持倚语蚀

get_fingerprint()

指纹讀证

open_url(url)

浏览噚打匀 URL

📷 媒䜓7 䞪

工具

诎明

take_photo(camera_id)

拍照0=后眮 / 1=前眮

get_camera_info()

可甚盞机列衚及参数

list_photos(dir, limit)

列出照片文件jpg/png/gif/webp/heic

media_player(action, path)

媒䜓播攟控制play/pause/stop/info

share_file(path)

分享文件系统分享面板

download_file(url)

䞋蜜文件系统䞋蜜管理噚

🌀 倩气5 䞪

工具

诎明

get_weather(city)

诊细倩气枩床/湿床/风速/气压 + 未来 3 倩预报

get_weather_short(city)

䞀句话快速获取圓前倩气抂况支持城垂名或坐标

get_weather_by_coords(lat, lng)

通过 GPS 经纬床粟准查倩气

get_air_quality(city)

空气莚量指数 AQI + PM2.5/PM10/O₃ 等污染物

🔌 ADB2 䞪

工具

诎明

adb_status()

ADB/Shizuku 安装和连接状态诊断

adb_connect(pair_code, ports)

Android 12+ 无线调试配对连接

🎭 Shizuku 管理6 䞪

工具

诎明

shizuku_status()

查看 Shizuku 党面状态App 进皋/守技进皋/rish 可甚性/小窗䜍眮

shizuku_hide()

隐藏 Shizuku 小窗猩到右䞊角极小尺寞 + force-stop UI

shizuku_show()

星瀺/启劚 Shizuku App 窗口

shizuku_resize(l,t,r,b)

调敎小窗䜍眮和倧小可从党屏到小点自由控制

shizuku_restart()

重启 Shizuku App卡死时恢倍守技进皋䞍受圱响

💻 GitHub10 䞪

工具

诎明

github_repo(owner, repo)

仓库诊情Star/Fork/描述/讞可证

github_list_repos(username)

列出甚户仓库

github_search(query, type)

搜玢仓库/代码/Issue

github_get_file(owner, repo, path)

读取文件或列目圕

github_list_issues(owner, repo)

列出 Issue

github_repo_languages(owner, repo)

猖皋语蚀占比

github_list_branches(owner, repo)

列出分支

github_refresh_token()

手劚刷新 GitHub Token


⚙ 䟝赖

䟝赖

甹途

安装方匏

Termux:API

电池/WiFi/䌠感噚/盞机/短信/TTS/剪莎板

pkg install termux-api + 安装 Termux:API App

Shizuku 🥇

截囟/UI dump/圕屏/蟓入泚入掚荐

Shizuku 官眑 匀启 + 将 rish 攟入 $HOME

ADB 🥈

Shizuku 䞍可甚时的降级方案

pkg install android-tools + 匀启无线调试

Pillow

截囟劣化/标泚截囟

pip install Pillow

特权配眮

# 方案 AShizuku掚荐
# 1. 安装 Shizuku App 并授权
# 2. 确保 ~/rish 文件存圚䞔可执行
# 3. 服务自劚检测无需额倖配眮

# 方案 BADB 无线调试倇选
# 1. 匀启 匀发者选项 → 无线调试
# 2. adb connect 192.168.1.102:5555
# 3. adb devices 确讀连接

🏗 项目结构

termux-mcp/
├── server.py                    # 🚀 stdio 入口
├── http_server.py               # 🌐 HTTP/SSE 入口端口 3000
├── http_termux_server.py        # 🔄 HTTP 兌容版
├── pyproject.toml               # 📊 项目配眮v0.4.0
├── diagnose.sh                  # 🔧 环境诊断脚本
├── keepalive.sh                 # ♻ 保掻监控30s 自愈
├── _scan_tools.py               # 📋 工具扫描
└── termux_mcp/                 # 🧠 栞心代码
    ├── __init__.py              # 包入口
    ├── __main__.py              # python -m 支持
    ├── app.py                   # FastMCP 实䟋 + 分层加蜜策略
    ├── prompts.py               # 📝 5 䞪 Prompt 暡板
    ├── resources.py             # 📡 8 䞪 Resource 数据源
    ├── lib/
    │   ├── constants.py         # 📌 集䞭路埄垞量
    │   ├── utils.py             # 🔧 呜什执行 + 日志蜮蜬 + 安党闚
    │   └── adb.py               # 🔌 ADB 连接管理
    └── tools/
        ├── aggregation.py       # 🔥 聚合工具device_health 等 3 䞪
        ├── ui_smart.py          # 🧠 智胜元玠定䜍find/click by text 等
        ├── ui_automation.py     # 🖥 截囟/点击/蟓入/屏幕控制20 䞪
        ├── device_info.py       # 📱 讟倇信息18 䞪
        ├── file_system.py       # 📁 文件操䜜15 䞪含 file_editor
        ├── app_management.py    # 📊 应甚管理9 䞪
        ├── communication.py     # 💬 通信15 䞪
        ├── system_control.py    # 🔊 系统控制9 䞪
        ├── media.py             # 📷 盞机/媒䜓7 䞪
        ├── weather.py           # 🌀 倩气5 䞪
        ├── shizuku.py           # 🎭 Shizuku 管理6 䞪
        ├── adb.py               # 🔌 ADB 工具2 䞪
        └── github.py            # 💻 GitHub10 䞪

🔧 环境变量

变量

默讀倌

诎明

TERMUX_MCP_READONLY

false

讟䞺 true 犁止所有写入操䜜

TERMUX_MCP_ALLOW_SHELL

true

讟䞺 false 犁止 Shell 呜什执行

HOST

0.0.0.0

HTTP 服务监听地址

PORT

3000

HTTP 服务监听端口


🩺 健康检查

HTTP 暡匏䞋提䟛 /health 端点

curl http://localhost:3000/health

# 返回:
# {
#   "status": "ok",
#   "service": "termux-mcp",
#   "uptime_sec": 3600,
#   "uptime_str": "1h 0m 0s",
#   "version": "0.2.0"
# }

保掻监控脚本 keepalive.sh 每 30 秒蜮询䞀次服务挂了自劚拉起䞎内郚重启圢成「双层保险」。


❓ 垞见问题

工具执行倱莥

# 运行诊断脚本
cd ~/mcp-servers/termux-mcp && bash diagnose.sh

Shizuku 连接倱莥

# 检查 rish 是吊存圚
ls -la ~/rish

# 测试 rish 连通性
~/rish -c "echo ok"

截囟/点击䞍生效

确保 Shizuku 或 ADB 已连接

# 检查特权状态
bash ~/mcp-manager.sh status

# 测试截屏
screencap -p /sdcard/test.png && ls -la /sdcard/test.png

端口被占甚

lsof -i :3000

📄 讞可

MIT — 基于 xlisp/termux-mcp-server


Latest Blog Posts

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/wujie272/termux-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server