
2005selene2005-a11y/susu-phone-agent
Developer toolsこのページは AI により自動翻訳されています。技術的な詳細は原文をご確認ください。 原文を見る
MCP + ShizukuによるClaudeコード用のAndroidデバイスブリッジ。 ルーティングなし、モデルポーリングなし.
概要
MCP + ShizukuによるClaudeコードから実際のAndroid携帯電話を制御 — ルートなし、電話のClaude認証情報なし、モデルポーリングなし。 TODO:デモGIFを追加 — クロードタイプ「Xiaohongshuを開く」 → アプリは実際の携帯電話で開きます (mcp/phone mcp.py) — FastMCP stdio サーバー Claude Code は他の MCP ツールのように呼びます。 電話橋へのリクエストを転送します。 (bridge/bridge.py) — サーバの FastAPI ジョブキュー。 MCP はジョブをプッシュします。; Android APK はそれらをプルします。. 電話では何も押しません。 (android/) — フォアグラウンドサービス。 ワイヤレス ADB モードで Shizuku で構築 ルートは必要ありません。 携帯電話は、通常のHTTPS上でブリッジをポーリングします。 デバイス上でAIの推論は起こりません。 インターネット上の ADB は壊れやすいです。, ポートを開く必要があります。, ネットワーク変更の破損. 接続を反転 — 電話がサーバーをポーリング — どこでも NAT の背後にあるモバイルデータ上で動作します。 アクセシビリティサービスは、Android 13+ に制限されています.
概要(AI 翻訳)
Give Claudeコードは、実際のAndroidデバイスです。
MCP + ShizukuによるClaudeコードから実際のAndroid携帯電話を制御 — ルートなし、電話のClaude認証情報なし、モデルポーリングなし。
お問い合わせ
それが何をするか
| お問い合わせ | お知らせ |
お問い合わせ
| ※「私が使っているアプリとは?」* | [→ com.xingin.xhs |
| ※「ご自宅」* | 発信者への電話リターン |
| ※「西尾本州」を開きます。* | アプリは実機で開きます |
お問い合わせ
デモ
TODO:デモGIFを追加 — クロードタイプ「Xiaaohongshuを開く」 → アプリは実際の携帯電話で開きます
お問い合わせ
使い方
3つのコンポーネント、ホストするすべてのコンポーネント:
1. 電話 MCP (mcp/phone_mcp.py) — FastMCP stdio サーバー。 Claude Code は他の MCP ツールのように呼びます。 電話橋へのリクエストを転送します。
2. 電話 Bridge (bridge/bridge.py) — サーバの FastAPI ジョブキュー。 MCP はジョブをプッシュします。; Android APK はそれらをプルします。. 電話では何も押しません。
3. Android Agent APK (android/) — フォアグラウンドサービス。 ワイヤレス ADB モードで Shizuku で構築 ルートは必要ありません。 携帯電話は、通常のHTTPS上でブリッジをポーリングします。 デバイス上でAIの推論は起こりません。
##サーバーから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)
インストール
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"]
}
}
}