MCP Android 自動化:讓 AI 操作手機發 Instagram Story 完整教學

學習用 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 等)。

先決條件

  1. Node.js 22+
  2. Android Platform Tools(含 adb 指令)
  3. Android 實體裝置Emulator
    • 實機:開啟「開發者選項」→「USB 偵錯」,並授權電腦
    • 執行 adb devices 確認裝置上線
  4. Claude CodeCodex(或其他 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 對話框直接呼叫):

  1. mobile_list_available_devices —— 確認裝置被偵測
  2. mobile_take_screenshot —— 驗證截圖正常回傳
  3. mobile_launch_app / mobile_open_app —— 開啟 Instagram(package name: com.instagram.android
  4. mobile_list_elements_on_screen —— 取得 UI 元件樹,輔助定位座標
  5. mobile_click_on_screen_at_coordinates / mobile_swipe_on_screen / mobile_type_keys —— 基本互動

提示:若 UI 元件辨識不穩,優先用 mobile_list_elements_on_screen 取得資源 ID 或 bounds,再搭配座標點擊,比純截圖推理更穩健。

Instagram Story 自動化實作流程

步驟拆解(建議先人工走一遍,記錄關鍵畫面與座標)

  1. 開啟 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 看得到畫面、決策可追蹤、關鍵動作有人把關**。