Shipvo

io.github.shipvo由 GitHub 帳號 shipvo 發布v0.0.6更新於 Nov 1, 2026

Open a React Native app in a simulated phone: read the screen, tap, type, set device state.

已驗證Streamable HTTP可網頁執行瀏覽器自動化開發者工具商業與電商

概覽

AI 產生的概覽

讓助理在模擬手機中操作 React Native 應用程式:讀取畫面、點擊、輸入、捲動,並設定裝置狀態。

可以做什麼
  • 列出並開啟應用程式,在全新的手機尺寸工作階段中執行,並可在重新連線後接續已開啟的工作階段。
  • 以無障礙樹讀取目前畫面、擷取 PNG 截圖,並執行點擊、輸入、捲動與返回。
  • 模擬裝置條件:位置、鏡頭前的條碼、權限狀態、指紋是否相符、付款是否核准、網路開關。
  • 傳送推播通知、讀取通知列、開啟通知,並查看權限提示、掃描、付款、分享等裝置紀錄。
  • 重設模擬手機,結束工作階段並取得步驟報告與應用程式送給後端的訂單。
  • 列出並執行擁有者指令(內容、價格、優惠、訂單、發布),作用於線上應用程式。
適用情境
適合需要助理在沒有實機或模擬器的情況下端到端走查 React Native 應用程式:跑完流程、檢查畫面、測試原生提示,或核對應用程式送給後端的資料。也適合應用程式擁有者讓助理修改內容、價格或優惠並發布。
執行需求
可使用託管端點 sim.shipvo.dev,或在本機透過 stdio 執行 npm 套件 @shipvo/mcp,並先在應用程式中啟動模擬器(shipvo sim)。必須提供 Authorization 標頭中的 bearer API 金鑰,透過 npx @shipvo/cli login 取得;擁有者指令另需 PN_OWNER_TOKEN。自架 HTTP 模式使用 PN_API_KEYS,並應置於 HTTPS 之後。
安裝前請注意
Authorization 中的 bearer 金鑰屬於憑證,沒有有效金鑰的請求會被拒絕。擁有者指令會修改線上應用程式的內容、價格與優惠,publish 會在數秒內讓變更在所有手機上生效;變更會被稽核。工作階段會作用於真實應用程式後端,訂單等寫入會實際送出。託管服務計畫依帳號發放具 test、owner、read 範圍的金鑰。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Shipvo,將其新增到工作區。
  2. 連接 Authorization token 憑證。它們會被私密儲存,絕不會在公開頁面上展示。
  3. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/io.github.shipvo%2Fshipvo/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。

{
  "mcpServers": {
    "shipvo": {
      "type": "http",
      "url": "https://sim.shipvo.dev/mcp",
      "headers": {
        "Authorization": "Bearer <YOUR_TOKEN>"
      }
    }
  }
}

README

@shipvo/mcp

Lets AI agents (Claude, Cursor, Claude Code, PiPilot…) use a Shipvo app without a phone: open it, read the screen as an accessibility tree, tap, type, scroll, go back, take screenshots, and read what the app sent to its backend. Plus the owner API: change content, prices and offers, and publish to every phone.

json
{ "mcpServers": { "shipvo": {  "command": "npx", "args": ["-y", "@shipvo/mcp"],  "env": { "PN_SIM": "http://localhost:4545", "PN_OWNER_TOKEN": "…optional…" } } } }

Start the simulator first (shipvo sim in the app). The hosted version needs no local setup: { "url": "https://<host>/mcp/<key>" }.

Tools: list_apps, open_app, screen, tap, type, scroll, back, screenshot, set_device, push_notification, notifications, open_notification, device_log, end_session, owner_describe, owner_command.

Native features work with no phone: the simulated device (see @shipvo/device) shows permission dialogs, the camera, the fingerprint prompt, payment prompts, notification banners and the share sheet as real dialogs in the tree; set_device decides what the phone has (location, a barcode in view, whether the fingerprint matches, whether a payment is approved, network off).

The simulator shows only what a phone would: a horizontal rail lists the visible items, so agents swipe it (scroll right with the rail's ref) exactly as on a device. Measured against a real Android emulator and iPhone simulator, see docs/parity-results.md.

Remote (Streamable HTTP)

Run the server where the simulator runs and put it behind HTTPS (a Cloudflare Tunnel is enough):

PN_API_KEYS="key-for-claude,key-for-pipilot" shipvo-mcp --http 8787

Clients connect with a URL instead of a command:

json
{ "mcpServers": { "shipvo": { "url": "https://sim.shipvo.dev/mcp", "headers": { "Authorization": "Bearer key-for-claude" } } } }

Each client connection gets its own MCP session; each open_app gets its own phone. Requests without a valid key are refused. The hosted version at sim.shipvo.dev will issue keys per account with scopes (test, owner, read).

來源:packages/mcp/README.md,提交 04866d2

工具

18

list_apps

Apps this server can open, with what each one does. Optional query filters by name, description or category (e.g. 'shop', 'douala').

輸入參數query

open_app

Open an app in a fresh phone-sized session and return its first screen.

輸入參數app必填darksessionseed_cart

list_sessions

Open simulator sessions (phones) on this server: id, app, release and when each started. Use to resume after a reconnect.

無需輸入參數。

screen

The current screen as an accessibility tree with refs.

輸入參數session必填

tap

Tap a button, link or choice by ref. Returns the new screen.

輸入參數ref必填session必填

type

Type into a text field by ref (replaces its content). Returns the new screen.

輸入參數ref必填text必填entersession必填

scroll

Scroll the page (down/up) or a horizontal rail (right/left, give the rail's ref). Returns the new screen.

輸入參數refsession必填direction必填

back

Go back one screen.

輸入參數session必填

screenshot

A PNG of the phone screen (for checking layout, colours, images). The tree from `screen` is usually enough to act.

輸入參數session必填

set_device

Change what the simulated phone has: location, a barcode in front of the camera, permission states, whether the fingerprint will match, whether a payment will be approved, network on/off. Takes effect for the next action.

輸入參數cameraonlinepaymentsession必填locationbiometricspermissions

push_notification

Deliver a push notification to the simulated phone; it appears as a banner the agent can tap.

輸入參數body必填datatitle必填session必填

notifications

The notification shade: notifications delivered to the simulated phone in this session (their banners vanish after 5 s, like a heads-up on a real phone).

輸入參數session必填

open_notification

Tap a notification from the shade (newest if no id is given): the app handles it exactly as if its banner was tapped.

輸入參數idsession必填

device_log

What the app did with the device in this session: permission prompts and answers, location reads, scans, fingerprint checks, payments, notifications, shares.

輸入參數session必填

device_reset

Put the simulated phone back to a known state (permissions undetermined, default location, nothing in front of the camera, log cleared), optionally with a new profile.

輸入參數apisession必填platform

end_session

Close the session and get a report: steps taken, and the orders the app sent to its backend during the session.

輸入參數session必填

owner_describe

List the owner commands of an app (content, prices, offers, orders, publish). Needs PN_OWNER_TOKEN.

輸入參數app必填

owner_command

Run an owner command against the live app (changes are audited; `publish` makes them live on every phone within seconds).

輸入參數app必填argscommand必填

版本歷史

1
  1. v0.0.6最新Nov 1, 2026

評分

已滿足適用檢查項的 100%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分