TestDriver

MCP server, agent and skills for end-to-end UI tests where the agent drives the computer through vision on cloud machines

MCP serverOfficial

High risk

We rate an entry high when the tool writes to external systems, handles money, production databases or secrets, or runs arbitrary commands. The CLI installs it only with your consent.

Why this level

  • Performs real UI actions and can run commands
  • Sends the app and data to the vendor cloud
  • Requires a secret access key
All reasons and checks

testdriverai/testdriverai

Install

In your terminal, with SkillFoxx CLI

npx skillfoxx add mcp/testdriver

Detects the agents on your machine, checks the risk and pins the version.

Other ways to install

This entry is high risk, so there is no one-click install. Review the code and add the config by hand.

Run in a terminal

claude mcp add --transport stdio --env 'TD_API_KEY=<your TD_API_KEY>' testdriver -- npx -p testdriverai testdriverai-mcp

Or add to the file .mcp.json, in the project

{
  "mcpServers": {
    "testdriver": {
      "command": "npx",
      "args": [
        "-p",
        "testdriverai",
        "testdriverai-mcp"
      ],
      "env": {
        "TD_API_KEY": "<your TD_API_KEY>"
      }
    }
  }
}

If the file already exists, add the server inside the mcpServers key.

Keys and settings

TD_API_KEYsecret, required

Replace the values in angle brackets with your own. Keys never go into install links and are not stored by us.

Add to the file ~/.cursor/mcp.json, for all projects

{
  "mcpServers": {
    "testdriver": {
      "command": "npx",
      "args": [
        "-p",
        "testdriverai",
        "testdriverai-mcp"
      ],
      "env": {
        "TD_API_KEY": "<your TD_API_KEY>"
      }
    }
  }
}

If the file already exists, add the server inside the mcpServers key. For a single project, put the same block into .cursor/mcp.json.

Keys and settings

TD_API_KEYsecret, required

Replace the values in angle brackets with your own. Keys never go into install links and are not stored by us.

Run in a terminal

code --add-mcp '{"name":"testdriver","type":"stdio","command":"npx","args":["-p","testdriverai","testdriverai-mcp"],"env":{"TD_API_KEY":"<your TD_API_KEY>"}}'

Or add to the file .vscode/mcp.json, in the project

{
  "servers": {
    "testdriver": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-p",
        "testdriverai",
        "testdriverai-mcp"
      ],
      "env": {
        "TD_API_KEY": "<your TD_API_KEY>"
      }
    }
  }
}

If the file already exists, add the server inside the servers key.

Keys and settings

TD_API_KEYsecret, required

Replace the values in angle brackets with your own. Keys never go into install links and are not stored by us.

Run in a terminal

codex mcp add testdriver --env 'TD_API_KEY=<your TD_API_KEY>' -- npx -p testdriverai testdriverai-mcp

Or add to the file ~/.codex/config.toml, for all projects

[mcp_servers.testdriver]
command = "npx"
args = ["-p", "testdriverai", "testdriverai-mcp"]
env = { TD_API_KEY = "<your TD_API_KEY>" }

If the file already exists, append the block to the end.

Keys and settings

TD_API_KEYsecret, required

Replace the values in angle brackets with your own. Keys never go into install links and are not stored by us.

Add to the file ~/.gemini/settings.json, for all projects

{
  "mcpServers": {
    "testdriver": {
      "command": "npx",
      "args": [
        "-p",
        "testdriverai",
        "testdriverai-mcp"
      ],
      "env": {
        "TD_API_KEY": "<your TD_API_KEY>"
      }
    }
  }
}

If the file already exists, add the server inside the mcpServers key.

Keys and settings

TD_API_KEYsecret, required

Replace the values in angle brackets with your own. Keys never go into install links and are not stored by us.

Add to the file ~/.config/devin/mcp_config.json, for all projects

{
  "mcpServers": {
    "testdriver": {
      "command": "npx",
      "args": [
        "-p",
        "testdriverai",
        "testdriverai-mcp"
      ],
      "env": {
        "TD_API_KEY": "<your TD_API_KEY>"
      }
    }
  }
}

If the file already exists, add the server inside the mcpServers key. Legacy Cascade keeps the MCP config in ~/.codeium/windsurf/mcp_config.json.

Keys and settings

TD_API_KEYsecret, required

Replace the values in angle brackets with your own. Keys never go into install links and are not stored by us.

Formerly Windsurf.

Add to the file cline_mcp_settings.json, for all projects

{
  "mcpServers": {
    "testdriver": {
      "command": "npx",
      "args": [
        "-p",
        "testdriverai",
        "testdriverai-mcp"
      ],
      "env": {
        "TD_API_KEY": "<your TD_API_KEY>"
      }
    }
  }
}

If the file already exists, add the server inside the mcpServers key. Open the settings file in Cline: MCP Servers tab, Configure MCP Servers.

Keys and settings

TD_API_KEYsecret, required

Replace the values in angle brackets with your own. Keys never go into install links and are not stored by us.

Add to the file .roo/mcp.json, in the project

{
  "mcpServers": {
    "testdriver": {
      "command": "npx",
      "args": [
        "-p",
        "testdriverai",
        "testdriverai-mcp"
      ],
      "env": {
        "TD_API_KEY": "<your TD_API_KEY>"
      }
    }
  }
}

If the file already exists, add the server inside the mcpServers key.

Keys and settings

TD_API_KEYsecret, required

Replace the values in angle brackets with your own. Keys never go into install links and are not stored by us.

A fork of Roo Code, same .roo folders.

Add to the file opencode.json, in the project

{
  "mcp": {
    "testdriver": {
      "type": "local",
      "command": [
        "npx",
        "-p",
        "testdriverai",
        "testdriverai-mcp"
      ],
      "environment": {
        "TD_API_KEY": "<your TD_API_KEY>"
      }
    }
  }
}

If the file already exists, add the server inside the mcp key.

Keys and settings

TD_API_KEYsecret, required

Replace the values in angle brackets with your own. Keys never go into install links and are not stored by us.

Add to the file ~/.config/zed/settings.json, for all projects

{
  "context_servers": {
    "testdriver": {
      "command": "npx",
      "args": [
        "-p",
        "testdriverai",
        "testdriverai-mcp"
      ],
      "env": {
        "TD_API_KEY": "<your TD_API_KEY>"
      }
    }
  }
}

If the file already exists, add the server inside the context_servers key.

Keys and settings

TD_API_KEYsecret, required

Replace the values in angle brackets with your own. Keys never go into install links and are not stored by us.

Add to the file .codeassistant/mcp.json, in the project

{
  "mcpServers": {
    "testdriver": {
      "command": "npx",
      "args": [
        "-p",
        "testdriverai",
        "testdriverai-mcp"
      ],
      "env": {
        "TD_API_KEY": "<your TD_API_KEY>"
      }
    }
  }
}

If the file already exists, add the server inside the mcpServers key.

Keys and settings

TD_API_KEYsecret, required

Replace the values in angle brackets with your own. Keys never go into install links and are not stored by us.

You will need: Node.js

Checked against the repository on Sep 25, 2026, commit 97d4d35.

Text for your agent

Wire the testdriver MCP with npx -p testdriverai testdriverai-mcp and a TD_API_KEY, or in Claude Code run /plugin marketplace add testdriverai/testdriverai and /plugin install testdriver@testdriver. For a fresh project run npx testdriverai init.

Other ways from the author
npx testdriverai init

Creates the project, installs Vitest and configures MCP for the editor. Then vitest run executes a test.

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

What it does

The repository ships an MCP server, an expert agent and a set of skills for Claude Code and Codex to author and run end-to-end tests by driving the interface. Tests are stated in plain language: find an element, click, assert that something is visible, and the engine relies on vision rather than selectors. A run happens on an ephemeral cloud machine that launches a browser or app and returns a result with a video replay. A CLI sets up the project and wires it into Vitest, and there is a standalone npm package.

Who it is for. For QA engineers and developers who need end-to-end tests of hard flows: desktop apps, extensions, OAuth, PDF, iframe and canvas.

Good fit when

  • You need to cover a flow that is hard to test with selector-based tools
  • You want to describe test steps in words and run them from the agent
  • You need a cloud run with a video replay and a report

Not a fit when

  • Plain unit or selector tests without a cloud are enough
  • You cannot expose the app and data to an external service

Example request

Write a test: open the site, sign in via OAuth and check that the username is visible

Limitations

It needs a TestDriver account and a TD_API_KEY, runs happen on the vendor's cloud machines, and billing follows their terms. Availability from Russia without a VPN is not verified. Tests perform real UI actions and can run commands, so they belong in test environments rather than production.

How to disable. Uninstall the testdriver plugin via /plugin, remove the testdriver MCP block from the agent config, and drop the testdriverai package from the project.

MCP

Transport
stdio
Authentication
API key
Environment variables
Environment variables
TD_API_KEY
required, secret
Access key for the TestDriver cloud from the account console.

Security check

  • Performs real UI actions and can run commands
  • Sends the app and data to the vendor cloud
  • Requires a secret access key

README in short

The README presents TestDriver as an end-to-end testing tool where the agent drives the interface through vision. Quick start: npx testdriverai init creates the project, installs Vitest and configures MCP for VS Code, Cursor or Claude Desktop, then vitest run executes a test on a cloud machine with a video replay. The repository holds an MCP server, an agent, dozens of per-action skills, a CLI and an editor extension. It claims support for desktop apps, browser extensions, OAuth, PDF, iframe and canvas.

FAQ

Do I need a paid account?

You need a TestDriver account and a TD_API_KEY, and runs happen in their cloud. Sign-up is free; further limits and pricing are on the vendor's side.

How is it different from Playwright or Cypress?

A test is written in words and relies on computer vision rather than selectors, so it covers desktop apps, extensions, OAuth, PDF, iframe and canvas.

Editors’ pick

A CLI for testing and red teaming LLM applications: compares models, runs automated CI checks and finds vulnerabilities

CLIMedium risk25.5KRepository stars

Playwright CLI

playwright-cli

Editors’ pick

Microsoft's official Playwright CLI with an agent skill: drive a browser through short commands without heavy MCP schemas

CLIMedium riskNo VPN needed13.6KRepository stars
Editors’ pick

The official MCP server debugger: web UI, automation CLI and terminal UI in one package

CLIMedium riskNo VPN needed11KRepository stars
Official

SonarSource's official MCP server: quality and security issues, quality gates and code analysis from SonarQube Server and Cloud

MCP serverMedium risk655Repository stars
Foxx AITestDriver

I am Foxx AI and I have already vetted this tool. Ask about install, setup or anything else, and I will keep it simple.