tapflow MCP Server

tapflow MCP server: an agent controls iOS simulators and Android emulators on your Mac and replays flows for CI

  • 1,975 ★ on the repository
  • Last commit
  • MIT
MCP serverOfficial

Broad access

Why this level

  • The agent taps, types, installs and launches apps on your team's devices
  • A token with build-write rights opens the relay and the builds uploaded to it
  • Screenshots and the UI tree enter the model's context and may include personal data of test accounts
All reasons and checks

jo-duchan/tapflow

Install

Manual install

npm install -g @tapflowio/mcp-server

Needs a running tapflow relay: `npm install -g tapflow`, then `tapflow start`.

Access and checks

How we review

Broad accessThe tool can change data, run commands or handle secrets.

  • The agent taps, types, installs and launches apps on your team's devices
  • A token with build-write rights opens the relay and the builds uploaded to it
  • Screenshots and the UI tree enter the model's context and may include personal data of test accounts

This is third-party code. Review the repository files before installing.

What it does

The `@tapflowio/mcp-server` package exposes iOS simulators and Android emulators to LLM agents as tools. It is part of tapflow, a mobile QA alternative to Appetize and BrowserStack that you host yourself. A relay on your server links the team's browser to an agent on a Mac, and that agent drives the simulators and emulators. The server provides 17 tools. The agent lists devices, connects and boots them, takes screenshots, taps, swipes, types text, presses buttons, and installs and launches apps. `query_ui_tree` returns the accessibility tree with roles, labels and frames normalized from 0 to 1, so the agent taps an element and has no need to guess coordinates from an image. `run_flow` replays a YAML flow in the `@tapflowio/flow-runner` format with no LLM calls: write the flow once with the agent and repeat it deterministically. `list_runs` and `get_run` read the run records that `tapflow flow run` leaves, including the screen where a failed flow stopped. That lets the agent repair a CI flow and check it again.

Who it is for. For mobile developers and QA engineers who already run a tapflow relay and want Claude Code or Codex to check apps on simulators.

Good fit when

  • The agent must install a build on a simulator, walk through sign-up and take screenshots of each step
  • You want to write a check flow once with the agent and then run it in CI without spending tokens
  • A flow failed in CI and the agent needs to open the screen where it stopped and fix the steps
  • Taps should go to elements of the accessibility tree, each with a role and a label

Not a fit when

  • No tapflow relay is deployed: the MCP server has nothing to connect to
  • You need real phones: tapflow works with simulators and emulators and is not a device farm
  • You need an Appium or WebDriverAgent integration: the developer ruled it out and ships its own minimal flow runner

Example request

Boot an iPhone simulator in tapflow, install the latest build, go through sign-up and save a screenshot of every screen

MCP

Transport
stdio
Authentication
key is optional

Environment variables

TAPFLOW_RELAY_URL required
Address of the tapflow relay, for example ws://localhost:4000
TAPFLOW_TOKEN secret
API-type token with view and build-write rights; without it credentials.json is read

Limitations

  • Needs a running tapflow relay and an agent on a Mac. iOS requires macOS 26 or 27, Xcode 26 or 27 and the iOS Simulator runtime.
  • The project is at version 0.x, and releases can bring breaking changes.
  • The access token must be an API-type token with view and build-write rights. Without it the server reads `~/.config/tapflow/credentials.json`.
  • The relay runs on Linux and macOS, and the simulator agent runs only on a Mac.

How to disable. Remove the tapflow entry from `.mcp.json` or your agent's MCP configuration. `npm uninstall -g @tapflowio/mcp-server` removes the package. Revoke the token in the tapflow dashboard.

FAQ

How do I connect tapflow to Claude Code?

Run `npm install -g @tapflowio/mcp-server`, then add a server with the command `tapflow-mcp` and the variables `TAPFLOW_RELAY_URL` and `TAPFLOW_TOKEN` to `.mcp.json`. The relay starts with `tapflow start`.

Which tools does the tapflow MCP server provide?

They include `list_devices`, `connect_device`, `boot_device`, `screenshot`, `query_ui_tree`, `tap`, `swipe`, `type_text`, `install_app`, `launch_app` and `run_flow`. There are 17 in total; the package README has the full list.

How can the agent avoid spending tokens on repeated checks?

Write a flow with the agent and save it in the `@tapflowio/flow-runner` format. The `run_flow` tool repeats it with no model calls.

Does the MCP server need a token?

Yes, an API-type token with view and build-write rights. If `TAPFLOW_TOKEN` is not set, the server reads `~/.config/tapflow/credentials.json` and rereads it when the relay refuses a token.

Does this work on Linux or Windows?

Partly: the relay runs on Linux, but the simulator agent needs a Mac. Windows is not on the platform list.

Discussion

No questions or reviews yet.

CLI, MCP server and typed Node.js API so an agent can verify its changes in a live mobile app on iOS, Android and more

CLIExtended access5.4KRepository stars
Official

An agent gets a live session of your web, iOS or Android app, sees the screen, writes tests and checks its own edits.

MCP serverExtended access13.8KRepository stars
Official

kogiQA MCP gives an agent a browser that finds page elements without selectors, for debugging web apps and writing e2e tests

MCP serverExtended access88Repository stars

A Playwright-style iOS and Android framework: the agent drives a phone through the accessibility tree and a skill writes tests.

CLIExtended access471Repository stars

An MCP server for end-to-end testing: the agent sees a running Flutter, React Native, Electron or other app and drives it

MCP serverBroad access405Repository stars

Comparison with similar tools

Cards that share the main search query, and how they differ.

ToolOfficialAuthenticationRepository starsMain difference
tapflow MCP Server (this card)yeskey is optional1,975
iOS Simulator MCP Servernonot required2,217controls an iOS simulator on one machine, without a team relay or Android
Mobile MCPnonot required10,529general mobile device automation, without a team browser dashboard or YAML flow replay

README in short

The project README explains why mobile QA teams need tapflow and compares it with Appetize, BrowserStack and physical devices. It then shows a diagram of the relay, the agent and the browser dashboard, a quick start and the requirements. The `@tapflowio/mcp-server` package has its own README.

README badge

Report a problem