PhoneOnCloud MCP Server
讓 Claude Code、Claude Desktop、Codex、Cursor 或任何 MCP 工具直接操控你的雲端 Android 機器。
截圖與操控指令都是你的電腦與機器之間的 P2P WebRTC 直連,只有一開始建立連線的 握手會碰到 PhoneOnCloud 的伺服器。
1. 產生 token
- 開 https://poc200.web.app 登入。
- 在要操控的那台機器上,點 ⋯ 選單 → AI / MCP。
- 填名稱(例如
MacBook — Claude Code)、選有效期限(預設 30 天)與要授予的權限。 - 按 產生 token。
這串只會顯示一次,請立刻複製保存。遺失只能重新產生,救不回來。
Token 開頭是 poc_mcp_。把它當密碼看:在到期之前,它對你選的機器擁有你勾選的
全部權限。
2. 安裝
需要 Node.js 18 或更新的版本。
Claude Code
claude mcp add phoneoncloud -- npx -y @zerohuman-ai/poc-mcp --token poc_mcp_… --device <DEVICE_ID>
Claude Desktop
在 AI / MCP 面板下載 poc-mcp.mcpb(也可以到
最新 release 抓),雙擊
安裝。Claude Desktop 會跳出來問你的 token,並存進作業系統的 keychain。
Codex、Cursor 與其他吃 JSON 設定的工具
{
"mcpServers": {
"phoneoncloud": {
"command": "npx",
"args": ["-y", "@zerohuman-ai/poc-mcp", "--token", "poc_mcp_…", "--device", "<DEVICE_ID>"]
}
}
}
也可以用環境變數 POC_MCP_TOKEN 代替命令列參數——這樣 token 不會留在 shell
歷史,也不會被寫進可能被 commit 的設定檔。
3. 參數
每個參數都有 flag 與環境變數兩種寫法,flag 優先。
如果覺得 AI 容易分心,可以試 --profile core:tool 清單短一點,模型挑對動作的
機率明顯較高。
Inspector
加 --inspector 會在 http://127.0.0.1:7333 開一個頁面,把 AI 收到的每一張截圖
連同它點的、拖的位置一起標出來,旁邊是它呼叫過什麼的即時紀錄。你也可以直接在那個
頁面自己操控機器。網址固定,可以加書籤。
預設關閉:一個 stdio server 悄悄佔一個埠很奇怪,而且同時開兩個 MCP 連線會互搶。 那個埠只聽 127.0.0.1,跨來源請求會被拒絕,寫入還要求一個其他網站設不出來的自訂 header。
4. Tool 清單
座標一律是 0–1000 的比例值,不是實際像素:(0,0) 是左上角、(1000,1000) 是右下角、
(500,500) 正中央。不論裝置解析度是多少、也不論截圖有沒有被縮小,這個對應都成立——
所以沒有任何東西需要換算。x 與 y 各自獨立正規化,長螢幕上 100 單位的垂直距離
比 100 單位的水平距離長。
0.2.0 變更。 座標以前是實際像素。如果你的 prompt 或
CLAUDE.md裡寫死了像素 座標,現在會被當成比例而點到錯的位置,請一併更新。
螢幕
操控
檔案與 App
自動化與定位
診斷
5. 要知道的幾件事
第一次 tool 呼叫可能要 40 秒。 建立連線會順便啟動機器的螢幕擷取管線,之後就 很快。如果那台機器已經有瀏覽器連著,連線會很快完成。
連著就等於機器在忙。 只要 MCP session 開著,機器就會一直跑螢幕擷取的編碼器 ——即使 MCP 從不要求視訊,因為觸控指令走的是同一條管線。閒置 30 分鐘會自動斷, 下次呼叫再自動連回來。
自動化腳本跑在 Otto,是 ES5 引擎,不是 Node。箭頭函式、模板字串、Promise、
async/await、Map、Set、展開運算子、解構全部不能用,會直接 parse 失敗。
請用 var、function () {}、字串相加。
撤銷 token 在下一次建立連線時才生效。 已經建好的 P2P DataChannel 不會因為 撤銷而中斷。要立刻切斷就把 AI 工具關掉。
6. 疑難排解
先看 get_connection_status,再看 get_logs。
要看 server 自己在做什麼就看 stderr,MCP 工具通常會把它寫進自己的 log。 stdout 只走 JSON-RPC,不會有別的東西。
7. 安全性
- Token 在到期前,對你選的機器擁有你勾選的全部權限。AI 用不到的話, 執行自動化腳本、安裝 App、讀寫檔案這三個請取消勾選——這三個加起來 等於機器的完整控制權。
- 只想讓 AI 看、不要它動手,就加
--readonly。 - Token 會存在你的 MCP 工具放設定的地方。Claude Desktop 用 OS keychain;
其他工具可能是專案裡的一個明文檔案。建議用環境變數
POC_MCP_TOKEN, 不要把值寫進會被 commit 的檔案。 - 不用的 token 請到 AI / MCP 面板撤銷。
8. 專案位置
發佈與問題回報:https://github.com/zerohuman-ai/poc-mcp
英文版說明見 English。