@roverlyai/mcp
v0.1.1
Published
Model Context Protocol server for Roverly — let a coding assistant read your app's map and run UI tests against it.
Maintainers
Readme
@roverlyai/mcp
An MCP server that lets a coding assistant read what Roverly has learned about your app, and run UI tests against it.
Install
You need a Roverly API key with the read and trigger scopes, minted from
the dashboard under Settings → API keys.
Claude Code
claude mcp add roverly -e ROVERLY_API_KEY=rvly_xxx -- npx -y @roverlyai/mcpCodex — add to ~/.codex/config.toml:
[mcp_servers.roverly]
command = "npx"
args = ["-y", "@roverlyai/mcp"]
env = { ROVERLY_API_KEY = "rvly_xxx" }ROVERLY_API overrides the API host; it defaults to https://api.roverly.ai.
Tools
| Tool | What it does |
|---|---|
| list_projects | The projects this key can act on, and whether any agent host is online. Call this first. |
| describe_app | Screens and navigation edges from crawls that already happened. Reads only — starts nothing. |
| upload_build | Upload an .apk/.ipa. Returns an artifact_id. |
| start_test | Start a goal-directed run. Returns a run_id; the run is asynchronous. |
| check_run | Poll a run to a terminal status. |
| get_verdict | The pass/fail verdict and a summary. |
| get_findings | Every finding the run produced. |
Three things worth knowing before you wire it up
Runs are not fast, and they are not instant to start. A triggered run is
deferred ~2 minutes so an agent host can claim it, and hosts poll every ~30
seconds — so expect ~2.5 minutes before a run leaves pending, then minutes
more while it crawls. Poll check_run; do not treat the delay as a hang.
A mobile run must name a build. Runs execute on the tenant's paired agent
hardware, which may be a developer machine, dedicated test hardware, or a
device farm. There is no assumption that it is the machine you are typing on.
So for android and ios projects, start_test requires an artifact_id
from upload_build: without one, the run would install nothing and test
whatever build already happened to be on the host that claimed it. For web
projects, target_url must be a deployment reachable from the agent host —
a preview URL, not a local dev server.
No screenshots cross this boundary. Findings come back as text. Roverly redacts personal and payment data on-device specifically so captures do not travel; handing signed image URLs to whichever model is driving your session would undo that. Open the run in the dashboard to look at an image.
Licence
MIT — see LICENSE. The client is open; the Roverly service it talks to is not, and using it needs an API key and an account.
