2A

2005selene2005-a11y/susu-phone-agent

Developer tools

이 페이지는 AI로 자동 번역되었습니다. 기술적인 세부 사항은 원문을 확인하세요. 원문 보기

38 stars 1 forks 품질 75 트렌드 20MIT

MCP + Shizuku를 통해 Claude 코드의 Android 장치 브리지. 뿌리 없음, 모델 오염 없음.

개요

MCP + Shizuku를 통해 Claude Code에서 실제 안드로이드 폰을 제어 - 루트 없음, 전화의 Claude credentials, 모델 오염 없음. TODO : 데모 GIF 추가 - Claude 유형 "Open Xiaohongshu" → 앱은 실제 폰에서 열립니다 (mcp/phone mcp.py) - FastMCP stdio 서버. Claude Code는 다른 MCP 도구와 같이 호출합니다. 전화 브리지를 요청합니다. (bridge/bridge.py) - 서버에서 FastAPI 작업 큐. MCP는 작업을 밀어; 안드로이드 APK는 그들을 밖으로 끌어. 전화에 아무 것도 밀어. (android/) - 전경 서비스. 무선 ADB 모드에서 Shizuku 내장. 어떤 루트 필요. 전화는 일반 HTTPS를 통해 다리를 오염시킵니다. AI inference가 장치에서 발생하지 않습니다. 인터넷에 ADB는 fragile이고, 개방 항구를 요구하고, 네트워크 변화에 틈. 연결하기 — 전화가 서버를 오염시킵니다. — NAT 뒤에 모바일 데이터에서 작동합니다. 접근성 서비스는 Android 13+에 크게 제한됩니다.

개요(AI 번역)

**Give Claude 코드 실제 안드로이드 장치. **

MCP + Shizuku를 통해 Claude Code에서 실제 안드로이드 폰을 제어 - 루트 없음, 전화의 Claude credentials, 모델 오염 없음.


무엇 그것

| 라고 | 일러스트 | |—||| | ※“어떤 앱을 사용하나요?”* | [T0] | | * “홈”※ | 런처로 돌아가기 | | “Xiahongshu를 엽니 다.” | 앱이 실제 기기에서 열립니다 |


데모

TODO : 데모 GIF 추가 - Claude 유형 “Open Xiaohongshu” → 앱은 실제 전화에서 열립니다


어떻게 작동합니까?

3개의 성분, 주인에 모든 yours:

1. 전화 MCP ([T1]]) - FastMCP stdio 서버. Claude Code는 다른 MCP 도구와 같이 호출합니다. 전화 브리지를 요청합니다.

**2. 전화 브리지 ** ([T2]]) - 서버에서 FastAPI 작업 큐. MCP는 작업을 밀어; 안드로이드 APK는 그들을 밖으로 끌어. 전화에 아무 것도 밀어.

3. Android Agent APK ([T3]]) - 최전선 서비스. 무선 ADB 모드에서 Shizuku 내장. 어떤 루트 필요. 전화는 일반 HTTPS를 통해 다리를 오염시킵니다. AI inference가 장치에서 발생하지 않습니다.

왜 서버에서 ADB가 아닌가?

이 페이지는 AI로 자동 번역되었습니다. 기술적인 세부 사항은 원문을 확인하세요.

README

원문 README의 일부입니다. 원문 보기.

Susu Phone Agent

Give Claude Code a real Android device.

Control a real Android phone from Claude Code through MCP + Shizuku — no root, no Claude credentials on the phone, no model polling.


What it does

You
 ↓
Claude Code
 ↓  MCP tool call
Susu Phone MCP
 ↓  HTTPS job queue
Susu Phone Bridge
 ↓  polling (phone-initiated)
Android Agent APK
 ↓  Shizuku UserService (uid=2000)
📱 Real Android phone
You say What happens
“What app am I using?” → com.xingin.xhs
“Go home.” Phone returns to launcher
“Open Xiaohongshu.” App opens on the real device

Demo

TODO: add demo GIF — Claude types “Open Xiaohongshu” → app opens on real phone


How it works

Three components, all yours to host:

1. Phone MCP (mcp/phone_mcp.py) — a FastMCP stdio server. Claude Code calls it like any other MCP tool. It forwards requests to the Phone Bridge.

2. Phone Bridge (bridge/bridge.py) — a FastAPI job queue on your server. The MCP pushes jobs in; the Android APK pulls them out. Nothing is pushed to the phone.

3. Android Agent APK (android/) — a foreground service. Built with Shizuku in wireless ADB mode. No root required. The phone polls your Bridge over ordinary HTTPS. No AI inference happens on the device.

Why not ADB from the server?

ADB over the internet is fragile, requires open ports, and breaks on network change. Inverting the connection — phone polls your server — works over mobile data, behind NAT, anywhere.

Why Shizuku instead of accessibility services?

Accessibility services are heavily restricted on Android 13+. Shizuku provides direct shell-level access (uid=2000) via the wireless debugging channel already built into Android. Commands like input keyevent, dumpsys window, and monkey work reliably without root.

Why MCP?

The Android device never receives Claude or Anthropic credentials. Claude Code invokes the MCP server locally on the host machine. Phone polling is ordinary HTTPS traffic — it does not invoke a model.


Quick Start

Prerequisites

  • Android phone with Shizuku installed (wireless ADB mode)
  • A server with Python 3.11+, nginx (or another reverse proxy)
  • Claude Code with a Claude subscription
  • JDK 17+ and Android SDK API 34 (for building the APK)
GitHub에서 전체 README 보기

설치

This server does not publish a one-line install command.

Open the repository installation guide MCP 초보자라면? mcpskill.org 가이드부터 시작하세요 →

설정

{ "mcpServers": { "phone": { "type": "stdio", "command": "python3", "args": ["/path/to/mcp/phone_mcp.py"] } } }