學習用 mobile-mcp 等工具串接 ADB,讓 Claude Code/Codex 透過截圖與座標點擊自動操作 Instagram App 發布限時動態,附完整安裝步驟與避坑指南。
為什麼選擇 MCP + ADB 路線
Instagram Graph API 對個人帳號幾乎不開放 Stories 發布權限,僅限綁定 Facebook Page 的 Business/Creator 帳號透過特定合作夥伴使用。社群共識是:對個人帳號而言,UI 自動化(像人一樣點選 App 介面)是目前唯一可行方案。
MCP(Model Context Protocol)提供標準化介面,讓 AI agent(Claude Code、Codex、Cursor 等)透過本地 MCP server 發送指令,再由 server 驅動 ADB(Android Debug Bridge)操作實體或模擬器裝置。核心優勢在於 vision-driven 流程:AI 先「看」螢幕截圖與 UI 結構,再決定下一步點擊、滑動或輸入,比寫死座標更能應對 App 版本更新。
主流開源專案快速比較
| 專案 | 特色 | 適用場景 |
|---|---|---|
| mobile-next/mobile-mcp | 跨平台(iOS/Android/模擬器),社群最活躍,支援 Claude/Cursor/Copilot,內建 UI 樹解析 | 通用型首選,穩定度最高 |
| JuanCF/scrcpy-mcp | ADB + scrcpy,截圖延遲約 33ms,輸入速度號稱比純 ADB 快 10-50 倍,提供 34 個工具 | 追求低延遲、高頻操作 |
| hao-cyber/phone-mcp | 純 ADB 指令控制,輕量通用 | 簡單腳本、不需視覺模型 |
| srmorete/mobile-device-mcp | 多裝置同時操作,用 UIAutomator 讀取無障礙樹 | 精準元件辨識、多手機管理 |
| hah23255/adb-android-control | 專為 Claude Code 設計,內建 338 測試案例 | 工程化流程、嚴謹測試需求 |
| AlexGladkov/claude-in-mobile | 同時支援 Android (ADB) 與 iOS Simulator (simctl) | 跨平台雙系統開發 |
| aradotso Open-AutoGLM | 9B 參數視覺語言模型直接生成 ADB 指令 | 複雜多步驟自然語言任務 |
建議起手專案:
mobile-next/mobile-mcp—— 文件完整、安裝最簡單(npx一鍵啟動)、工具集最完整(截圖、UI 列表、點擊、滑動、輸入、啟動 App 等)。
先決條件
- Node.js 22+
- Android Platform Tools(含
adb指令) - Android 實體裝置 或 Emulator
- 實機:開啟「開發者選項」→「USB 偵錯」,並授權電腦
- 執行
adb devices確認裝置上線
- Claude Code 或 Codex(或其他 MCP client)
mobile-mcp 安裝與設定(最小可行流程)
1. 在 AI Client 註冊 MCP Server
Claude Code:
claude mcp add mobile-mcp -- npx -y @mobilenext/mobile-mcp@latest
Codex:
codex mcp add mobile-mcp npx "@mobilenext/mobile-mcp@latest"
或手動編輯 ~/.codex/config.toml:
[mcp_servers.mobile-mcp]
command = "npx"
args = ["-y", "@mobilenext/mobile-mcp@latest"]
通用 JSON 設定(適用 Cursor、Copilot 等):
{
"mcpServers": {
"mobile-mcp": {
"command": "npx",
"args": ["-y", "@mobilenext/mobile-mcp@latest\n }
}
}
2. 驗證連線與基本能力
依序測試下列工具(可在 AI 對話框直接呼叫):
mobile_list_available_devices—— 確認裝置被偵測mobile_take_screenshot—— 驗證截圖正常回傳mobile_launch_app/mobile_open_app—— 開啟 Instagram(package name:com.instagram.android)mobile_list_elements_on_screen—— 取得 UI 元件樹,輔助定位座標mobile_click_on_screen_at_coordinates/mobile_swipe_on_screen/mobile_type_keys—— 基本互動
提示:若 UI 元件辨識不穩,優先用
mobile_list_elements_on_screen取得資源 ID 或 bounds,再搭配座標點擊,比純截圖推理更穩健。
Instagram Story 自動化實作流程
步驟拆解(建議先人工走一遍,記錄關鍵畫面與座標)
- 開啟 Instagram App
mobile_launch_app(package_name="com.instagram.android\
2. **進入相簿/相機介面**
- 點擊右上角「+」或左滑進入 Story 建立頁
- 或用 `mobile_swipe_on_screen` 從左緣右滑
3. **選取最新照片**
- `mobile_list_elements_on_screen` 找相簿縮圖元件
- `mobile_click_on_screen_at_coordinates` 點選目標照片
4. **編輯畫面(可選:加文字、貼圖、標記)**
- 依需求串接點擊、輸入文字工具
5. **發布到限時動態**
- 找「分享」/「發布」按鈕座標並點擊
- 確認彈出視窗選「限時動態」
6. **驗證發布成功**
- 截圖檢查是否出現「已分享」提示
### 範例 Prompt 給 AI Agent
> 「請用 mobile-mcp 幫我發 Instagram Story:開啟 IG App → 進入 Story 建立頁 → 選取相簿最新一張照片 → 不加文字直接發布到限時動態 → 最後截圖確認是否成功。每步驟完成前先截圖給我看。」
## 避坑指南與最佳實務
| 風險 | 緩解策略 |
|------|----------|
| **App 版本更新導致 UI 位移** | 改用 `mobile_list_elements_on_screen` 抓資源 ID(`resource-id`)而非死座標;建立版本對應表 |
| **誤發/重複發布** | 保留「人工二次確認」機制:AI 執行到發布前一步截圖給使用者確認,收到回覆才點擊最終發布 |
| **ADB 連線不穩** | 使用優質 USB 線、關閉手機省電模式、鎖定螢幕不熄滅(開發者選項 → 保持螢幕常亮) |
| **多裝置衝突** | `mobile_list_available_devices` 先確認 serial number,指定 `device_id` 參數 |
| **操作過快導致 App 來不及反應** | 關鍵步驟間插入 `sleep 1-2 秒` 或等待特定 UI 元件出現再續行 |
| **權限彈窗干擾** | 首次執行前手動處理完所有權限彈窗(儲存空間、相機、麥克風等) |
## 進階擴充方向
- **排程自動化**:搭配 `cron` 或 GitHub Actions 定時觸發腳本
- **多帳號管理**:建立帳號對應裝置/模擬器映射表,輪流執行
- **內容生成整合**:前接 LLM 生成文案、Midjourney/Stable Diffusion 生成圖片,存入手機相簿再觸發發布流程
- **錯誤通知**:失敗時透過 Webhook 發送 Slack/Discord/Telegram 警報
- **視覺模型輔助**:引入 `scrcpy-mcp` 或 `Open-AutoGLM` 讓 VLM 直接推理下一步動作,減少手寫座標
## 結語
MCP + ADB 讓 AI 獲得「手腳」,能在真實 Android 環境中完成 Instagram Story 等無官方 API 的自動化任務。以 **mobile-mcp** 為起點,先跑通「截圖 → 開 App → 點擊 → 發布」最小閉環,再逐步加入 UI 樹解析、人工確認閘、排程與錯誤處理,即可建立穩定可維運的自動發布管線。核心心法:**讓 AI 看得到畫面、決策可追蹤、關鍵動作有人把關**。