Back to Directory/Security & Auth

BenchFleet

Let AI agents use your real Android phones safely, with permissions, approvals and an audit log.

Security & AuthJavaScriptv1.0.4

benchfleet-mcp

npm

Let AI agents use your real Android phones, safely. benchfleet-mcp connects Claude Code, Codex, Cursor, Claude Desktop and any other MCP client to BenchFleet, the self-hosted control hub for real Android phones. The agent can list your phones, look at their screens, read the elements on them, tap, type, open apps and run your published workflows — only on the phones and with the actions you allow, with approvals for anything sensitive and every step in BenchFleet's audit log.

It is a thin connector: it forwards MCP messages to the BenchFleet app running on the same computer and reaches nothing else. The tools, the permissions and the phones are all in the app.

Set up

  1. Install BenchFleet from https://benchfleet.com/download and connect your phones (or use its demo phones).

  2. In BenchFleet: Settings → AI clients → Connect an AI client…, choose what the client may do (Look only, Look and operate, or chosen capabilities) and on which phones, and copy the token it shows once.

  3. Add the server to your client:

    Claude Code

    claude mcp add benchfleet --env BENCHFLEET_TOKEN=<token> -- npx -y benchfleet-mcp
    

    Codex (~/.codex/config.toml)

    [mcp_servers.benchfleet]
    command = "npx"
    args = ["-y", "benchfleet-mcp"]
    env = { BENCHFLEET_TOKEN = "<token>" }
    

    Claude Desktop, Cursor and other clients (mcpServers)

    {
      "mcpServers": {
        "benchfleet": {
          "command": "npx",
          "args": ["-y", "benchfleet-mcp"],
          "env": { "BENCHFLEET_TOKEN": "<token>" }
        }
      }
    }
    

The app must be running. Disconnect in BenchFleet stops the token at once.

Tools

list_devices, get_device, get_screen, get_ui_tree, find_element, read_text, wait_for, tap_element, long_press_element, type_text, type_secret (a password from BenchFleet's vault, never its value), swipe, scroll_to, press_key, launch_app, stop_app, take_screenshot, get_device_logs, list_workflows, run_workflow, queue_task (a workflow, or a goal in plain words for the phones' AI agents), get_task_status, pause_device, resume_device, request_manual_control. A client sees only the tools its access allows. There is no shell, file transfer or install tool. A phone a person is controlling, a paused phone and a phone without Automation allowed refuse every action; CAPTCHAs and other human-only checks stop the agent and ask a person.

Settings

VariableMeaning
BENCHFLEET_TOKENRequired: the client's token from the app (CONTROLHUB_TOKEN also works)
BENCHFLEET_URLOptional: the app's address, when it is not found in its data folder
CONTROLHUB_HOMEOptional: the app's data folder, when it is not the default one

Plans: AI clients need BenchFleet Pro or Team (https://benchfleet.com/pricing); the personal edition has no limits. Support: support@benchfleet.com.

Use it in Claude Code as a plugin

/plugin marketplace add benchfleet/benchfleet-mcp
/plugin install benchfleet@benchfleet-plugins

Set BENCHFLEET_TOKEN in your environment first (the token from BenchFleet: Settings → AI clients).

Use it in Gemini CLI

gemini extensions install https://github.com/benchfleet/benchfleet-mcp

Installation

Source-derived launch command. Check the maintainer’s required arguments and credentials before running:

bash
npx -y benchfleet-mcp

Set up in your AI client

Merge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.

json
{
  "mcpServers": {
    "io-github-jimbob1414-benchfleet": {
      "command": "npx",
      "args": [
        "-y",
        "benchfleet-mcp"
      ]
    }
  }
}

Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.

Claude Desktop setup reference

Package

benchfleet-mcpnpm

Compatible MCP Clients

BenchFleet works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.

  • Claude Desktop~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.
  • Cursor~/.cursor/mcp.jsonRestart Cursor for changes to take effect.
  • VS Code.vscode/mcp.jsonReload VS Code window for changes to take effect.
  • Windsurf~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect.
  • Claude Code.mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.

Learn More