BrowserStack MCP server
BrowserStack's official server runs manual and automated tests on real browsers and devices, and debugs the failures.
BrowserStack MCP Server is BrowserStack's official Model Context Protocol server, exposing the company's real-device cloud and Test Platform to an agent. Instead of describing a bug, you ask the agent to reproduce it: it can launch a live interactive session on a real browser or mobile device, run automated web and app test suites on BrowserStack's grid, and pull back screenshots, logs, and AI root-cause analysis when something fails.
The surface is broad. It covers Test Management — creating projects, folders, test cases, test runs, and test plans, plus generating cases from a PRD or PDF with an AI agent. It covers Automate and App Automate setup for Selenium, Appium, Espresso, and XCUITest, App Live and Live browser sessions, accessibility scans with a dedicated WCAG expert tool, Percy visual testing, and self-healing selectors that repair flaky locators after DOM changes. It runs locally over stdio via npx using your BROWSERSTACK_USERNAME and BROWSERSTACK_ACCESS_KEY, and BrowserStack also hosts a remote endpoint at https://mcp.browserstack.com/mcp. For QA and developer teams already on BrowserStack, it lets an agent drive the whole test-debug-fix loop from inside the editor.
Quick install
Copy-paste configs are provided for all 8 supported clients. Pick your client below.
Add to ~/.claude.json
{
"mcpServers": {
"browserstack": {
"type": "http",
"url": "https://mcp.browserstack.com/mcp"
}
}
}claude mcp add --transport http browserstack https://mcp.browserstack.com/mcpHeads up
- First tool call opens a browser to authorize.
Available tools
| Tool | Description |
|---|---|
| createProjectOrFolder | Creates a project and/or folder in BrowserStack Test Management to organize test cases. |
| createTestCase | Creates a manual test case in BrowserStack Test Management. |
| updateTestCase | Updates an existing test case, changing any subset of its fields such as steps, priority, status, owner, or tags. |
| listTestCases | Lists test cases in a project, optionally scoped to a folder, with filters for case type, priority, status, and tags. |
| createTestCasesFromFile | Generates test cases from an uploaded file using the Test Case Generator AI agent. |
| uploadProductRequirementFile | Uploads a PRD, PDF, or screenshot to Test Management and returns a file mapping ID used for generating test cases. |
| createTestRun | Creates a test run for selected test cases in a project. |
| updateTestRun | Updates a test run, including its status, tags, notes, and associated test cases. |
| listTestRuns | Lists test runs in a project with optional filters for date range, assignee, and state. |
| addTestResult | Adds a manual execution result (passed, failed, blocked, or skipped) to a test run. |
| listFolders | Lists folders in a Test Management project with case and sub-folder counts; pass a parent ID to list sub-folders. |
| getTestPlan | Fetches a test plan (TP-*) with its metadata, linked test runs, total case count, and status summary. |
| listTestPlans | Lists test plans in a project with identifiers, status, dates, and active/closed run counts, with pagination. |
| getSubTestPlan | Fetches a sub-test-plan (STP-*) under a parent plan, returning metadata and linked test runs. |
| listSubTestPlans | Lists sub-test-plans under a parent test plan, with pagination. |
| setupBrowserStackAutomateTests | Sets up and runs automated web tests on BrowserStack using the BrowserStack SDK. |
| setupBrowserStackAppAutomateTests | Sets up BrowserStack App Automate SDK integration for Appium-based mobile app testing. |
| runAppTestsOnBrowserStack | Executes pre-built native mobile test suites (Espresso, XCUITest) by uploading compiled .apk/.ipa files to BrowserStack. |
| fetchAutomationScreenshots | Fetches and processes screenshots captured during a BrowserStack Automate session. |
| takeAppScreenshot | Launches an app on a specified device and captures a verification screenshot for visual testing or debugging. |
| runAppLiveSession | Starts a manual App Live session to interactively test an app on a real mobile device in the cloud. |
| runBrowserLiveSession | Launches a BrowserStack Live session for website testing on a desktop or mobile browser. |
| getBuildId | Gets the BrowserStack build ID for a given project and build name. |
| listTestIds | Lists test IDs from a BrowserStack Automate build, optionally filtered by status. |
| getFailureLogs | Fetches logs of various types from an Automate or App Automate session. |
| getFailuresInLastRun | Debugs failures in the last run of the test suite when a browserstack.yml file is present in the project root. |
| fetchRCA | Retrieves AI root-cause-analysis data for an Automate or App Automate session to explain test failures. |
| fetchBuildInsights | Fetches insights about a build by combining build details and quality-gate results. |
| fetchSelfHealedSelectors | Fetches AI self-healed selectors and the test source code to fix flaky tests caused by DOM changes. |
| prepareSelfHealingPlan | Builds a self-healing edit plan that bundles locator pairs with the test source for repair. |
| createLCASteps | Generates Low Code Automation steps for a test case using the Low Code Automation agent. |
| listTestFiles | Lists all test files for a given set of directories. |
| accessibilityExpert | Answers accessibility, a11y, and WCAG questions using BrowserStack's dedicated expert tool. |
| startAccessibilityScan | Starts a web accessibility scan and returns a local CSV report path. |
| fetchAccessibilityIssues | Fetches accessibility issues from a completed scan, with cursor-based pagination. |
| createAccessibilityAuthConfig | Creates an authentication configuration (form-based or basic) for accessibility scans behind a login. |
| getAccessibilityAuthConfig | Retrieves an existing accessibility authentication configuration by ID. |
| expandPercyVisualTesting | Sets up or expands Percy visual testing configuration for existing projects, covering Percy Web Standalone and Percy Automate. |
| percyVisualTestIntegrationAgent | Integrates Percy visual testing into a new project and demonstrates visual change detection with a guided simulation. |
| addPercySnapshotCommands | Adds Percy snapshot commands to the specified test files. |
| runPercyScan | Runs a Percy visual test scan or build. |
| fetchPercyChanges | Retrieves and summarizes the visual changes Percy detected between the latest and previous builds. |
| managePercyBuildApproval | Approves or rejects a Percy build. |
Required configuration
- BROWSERSTACK_USERNAMERequired
Your BrowserStack username, found in your account settings.
- BROWSERSTACK_ACCESS_KEYRequired
Your BrowserStack access key, found in your account settings.
What you can do with it
Reproduce a bug on the exact device a user reported
Ask the agent to launch a Live or App Live session on the specific browser, OS, or mobile device, then capture screenshots and logs to confirm the issue.
Run and debug a test suite, then fix the flaky locators
Run web or app automation on BrowserStack's grid, pull AI root-cause analysis on the failures, and apply self-healed selectors to repair brittle tests.
FAQ
- Is it free?
- The server itself is open source under AGPL-3.0, but it runs against your BrowserStack account, which is a paid product with a limited free trial; you need active credentials to use it.
- Does it support remote/OAuth?
- Yes. BrowserStack hosts a remote endpoint at https://mcp.browserstack.com/mcp; the local stdio mode authenticates with your BROWSERSTACK_USERNAME and BROWSERSTACK_ACCESS_KEY.
- Does it test mobile apps as well as websites?
- Yes. It covers desktop and mobile browsers via Live and Automate, plus native mobile apps via App Live and App Automate, including Appium, Espresso, and XCUITest suites.