About Shipvo
Shipvo MCP lets AI agents operate a Shipvo React Native app in a simulated phone, including screen inspection and device interactions. It also exposes owner controls for changing app content, prices, and offers.
Key features
- 01Read accessibility-tree screens
- 02Tap, type, scroll, and navigate
- 03Capture screenshots and device logs
- 04Simulate device state and notifications
- 05Change content and offers through owner tools
Use cases
- 01Test an app flow without a physical phone
- 02Inspect permission and payment prompts
- 03Check backend requests made by an app
- 04Publish content or price changes to phones
MCP support
Exposes app, device, notification, and owner tools to MCP clients. It can run locally or over Streamable HTTP; remote requests require a valid key.
Configuration
Remote servers need no local install. Pick your client, then copy the config or install in one click.
https://sim.shipvo.dev/mcpclaude mcp add --transport http shipvo-shipvo https://sim.shipvo.dev/mcp{"mcpServers":{"shipvo-shipvo":{"type":"http","url":"https://sim.shipvo.dev/mcp"}}}Open in Cursor{"servers":{"shipvo-shipvo":{"type":"http","url":"https://sim.shipvo.dev/mcp"}}}Open in VS Code{"mcpServers":{"shipvo-shipvo":{"type":"http","url":"https://sim.shipvo.dev/mcp"}}}{"mcpServers":{"shipvo-shipvo":{"serverUrl":"https://sim.shipvo.dev/mcp"}}}Run commands in a terminal; paste JSON into the client’s MCP config and restart. Servers that need sign-in will prompt on first connect.
https://sim.shipvo.dev/mcpAuth requiredTools
Details
From the project 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.
{ "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:
{ "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).
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.