@tapflowio/mcp-server
MCP server for tapflow — lets LLM agents control iOS/Android simulators via Model Context Protocol
Versions
0.17.0latest0.16.00.15.00.14.00.13.0-experimental.1+ show 19 moreshow less
0.12.0-experimental.10.11.1-experimental.10.11.0-experimental.10.10.0-experimental.10.9.2-experimental.10.9.1-experimental.10.9.0-experimental.10.8.2-experimental.10.8.1-experimental.20.8.1-experimental.10.8.0-experimental.10.7.0-experimental.10.6.1-experimental.10.6.0-experimental.10.5.1-experimental.10.5.0-experimental.10.4.1-experimental.10.3.1-experimental.10.3.1-experimental.0Tools 16
list_builds List all apps and their builds available on the relay. Use this to find buildId before calling install_app or launch_app.
list_devices List all available simulators and emulators registered on the tapflow relay.
connect_device Join a device session so you can control it. Required before boot_device, install_app, and launch_app.
disconnect_device End a device session and release the connection.
boot_device Boot a simulator/emulator. Requires connect_device first. Waits up to 30 seconds for the device to be ready.
shutdown_device Shut the session\'s booted simulator/emulator down — powers the device off to free resources or force a
query_ui_tree Query the accessibility tree of the current screen: interactive and text-bearing elements as
run_flow Replay a tapflow flow (YAML) deterministically — no LLM in the loop. Use this for verified scenarios instead of
screenshot Capture the current screen of a device. Returns the image so you can analyze it.
tap Tap at a pixel coordinate matching the screenshot. Use the width and height from the screenshot tool response.
swipe Swipe from one pixel coordinate to another. Use the width and height from the screenshot tool response.
type_text Type text into the currently focused input field (tap the field first).
press_key Press a keyboard key by its KeyboardEvent.code name: "Enter", "Backspace", "Escape", "Tab",
press_button Press a hardware button by a cross-platform name: "home", "lock", "volume_up", "volume_down" work on both
install_app Install an app on the device. Requires connect_device first. Waits up to 60 seconds.
launch_app Launch an installed app on the device. Requires connect_device first. Waits up to 15 seconds.
Permissions 4
network medium filesystem low shell high env_vars low