BrowserStack MCP ServerCAUTION
BrowserStack's Official MCP Server
Overview
From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.
Comprehensive Test Platform
Manage test cases, execute manual or automated tests, debug issues, and even fix code—directly within tools like Cursor, Claude, or any MCP-enabled client, using plain English.
Test from anywhere:
Easily connect the BrowserStack Test Platform to your favourite AI tools, such as IDEs, LLMs, or agentic workflows.
Test with natural language:
Manage, execute, debug tests, and even fix code using plain English prompts.
Reduced context switching:
Stay in flow—keep all project context in one place and trigger actions directly from your IDE or LLM.
⚡️ One Click MCP Setup
Click on the buttons below to install MCP in your respective IDE:
Note: The hosted Remote MCP server (mcp.browserstack.com) is now fully stateless over Streamable HTTP — any Streamable-HTTP client (Claude, 06b0e342956fOBSERVED · 2026-10-12Connect
Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control. Replace the environment placeholders with a token scoped to the least it needs.
claude mcp add mcp-server --env BROWSERSTACK_ACCESS_KEY=${BROWSERSTACK_ACCESS_KEY} -- npx -y @browserstack/[email protected]Exposed tools (55)
43 read · 12 write · 0 destructive.
| Tool | Risk | Description |
|---|---|---|
Homepage | read | Button color changed |
P | read | d |
accessibilityExpert | read | Answer accessibility, a11y, and WCAG questions using BrowserStack |
addPercySnapshotCommands | read | |
addTestResult | write | Add a test result to a specific test run via BrowserStack Test Management API. |
askBrowserStackAI | read | |
createAccessibilityAuthConfig | write | Create an authentication configuration for accessibility scans. Supports both form-based and basic authentication. |
createLCASteps | read | Generate Low Code Automation (LCA) steps for a test case in BrowserStack Test Management using the Low Code Automation Agent. |
createProjectOrFolder | write | Create a project and/or folder in BrowserStack Test Management. |
createTestCase | write | Use this tool to create a test case in BrowserStack Test Management. |
createTestCasesFromFile | read | Generate test cases from a file in BrowserStack Test Management using the Test Case Generator AI Agent. |
createTestRun | write | Create a test run in BrowserStack Test Management. |
describeCapability | read | The full contract for ONE capability you picked from searchCapability: its |
describeEntity | read | Describe one entity: what it is, what identifies it, what it relates to, and the |
expandPercyVisualTesting | read | |
fetchAccessibilityIssues | read | Fetch accessibility issues from a completed scan with pagination support. Use cursor parameter to get subsequent pages of results. |
fetchAutomationScreenshots | read | Fetch screenshots captured during an Automate/App Automate session. |
fetchBuildInsights | read | Fetch build details and quality gate results. Includes hashed_id and session_type for listSessions. |
fetchPercyChanges | read | Retrieves and summarizes all visual changes detected by Percy AI between the latest and previous builds, helping quickly review what has changed in your project. |
fetchRCA | read | Fetch AI Root Cause Analysis for the current user |
fetchSelfHealedSelectors | read | Fetch BrowserStack self-healed selectors plus the test source code for |
getAccessibilityAuthConfig | read | Retrieve an existing authentication configuration by ID. |
getBuildId | read | Get the BrowserStack build ID for a given project and build name, scoped to the current user |
getFailureLogs | read | Fetch logs, or the session video URL, for an Automate/App Automate session. |
getFailuresInLastRun | write | Use this tool to debug failures in the last run of the test suite on BrowserStack. Use only when browserstack.yml file is present in the project root. |
getSubTestPlan | read | Fetch a sub-test-plan (STP-*) under a parent plan (TP-*). Returns metadata and linked test runs. |
getTestPlan | read | Fetch a test plan by identifier (TP-*) from BrowserStack Test Management. Returns plan metadata, the full list of linked test runs, total test-case count across runs, and a status summary — suitable for generating test documentation or QA status reports. |
invokeCapability | read | Call a capability whose contract you have from describeCapability. Pass |
listBuildId | read | Get the latest build ID for a project and build name, across all users (no user filter). |
listFolders | read | List folders in a BrowserStack Test Management project, returning each folder |
listProducts | read | List the BrowserStack products this surface can reach: what each one does, the |
listSessions | read | List sessions for a hashed Automate/App Automate build: session IDs, status, OS, browser/device, dashboard URL. |
listSubTestPlans | read | List sub-test-plans under a parent test plan (TP-*) in a Test Management project. Supports pagination. |
listTestCaseTemplates | read | List test-case templates with their numeric template_id. Use the id with createTestCase to apply a custom template (the |
listTestCases | read | List test cases in a project, optionally scoped to a specific folder. Omit folder_id to list all test cases in the project; provide folder_id (discoverable via listFolders) to list only that folder |
listTestFiles | read | |
listTestIds | read | List all tests of a BrowserStack build (each with its status and session id); optional status filter. |
listTestPlans | read | List test plans in a BrowserStack Test Management project. Returns each plan |
listTestRuns | read | List test runs in a project with optional filters (date ranges, assignee, state, etc.) |
managePercyBuildApproval | read | Approve or reject a Percy build |
percyVisualTestIntegrationAgent | read | |
prepareSelfHealingPlan | write | Build a self-healing edit plan that bundles locator pairs with test |
runAppLiveSession | read | Use this tool when user wants to manually check their app on a particular mobile device using BrowserStack |
runAppTestsOnBrowserStack | read | |
runBrowserLiveSession | read | Launch a BrowserStack Live session (desktop or mobile). |
runPercyScan | write | Run a Percy visual test scan. Example prompts : Run this Percy build/scan. Never run percy scan/build without this tool |
searchCapability | read | Find endpoints this surface can call, by plain language, within ONE product. |
setupBrowserStackAppAutomateTests | read | |
setupBrowserStackAutomateTests | read | |
startAccessibilityScan | write | Start an accessibility scan via BrowserStack and retrieve a local CSV report path. |
takeAppScreenshot | read | Use this tool to take a screenshot of an app running on a BrowserStack device. This is useful for visual testing and debugging. |
updateTestCase | write | Update an existing test case in BrowserStack Test Management. Any subset of the following fields may be changed: name, description, preconditions, test_case_steps, owner, priority, case_type, automation_status, status, tags, issues, custom_fields. Only the supplied fields are modified. |
updateTestRun | write | Update a test run |
uploadProductRequirementFile | write | Upload files (e.g., PDRs, PDFs) to BrowserStack Test Management and retrieve a file mapping ID. This is utilized for generating test cases from files and is part of the Test Case Generator AI Agent in BrowserStack. |
wf | read | d |
Trust audit
CAUTIONgrade B · trust 84/100 Install with care. The audit found things worth knowing before you trust its output.
| Layer | What it checks | Result |
|---|---|---|
| L0 | Provenance & inventory | PASS |
| L1 | Static analysis of the code | WARN |
| L2 | Instruction surface (what it tells the agent) | PASS |
| L3 | Class-specific surface | PASS |
| L4 | Behavioural (sandbox) | SKIPPED |
What the source does
- Filesystem
- declared (5 observation(s))
- Network
- declared (5 observation(s))
- Shell
- declared (5 observation(s))
- Dependencies
- not all pinned
- Secrets in source
- found
Findings (21)
password: "super-secret-site-password",
password: "super-secret-site-password",
capabilityRegistrySearchEval.test.ts
it("rejects a file inside a hidden directory (e.g. ~/.ssh/key.txt)", () => {const file = path.join(hidden, "id_rsa.txt");
const packageJson = require("../../package.json");import { apiClient } from "../../lib/apiClient.js";import { wrapUntrusted } from "../../lib/untrusted-content.js";import { getBrowserStackAuth } from "../../lib/get-auth.js";import { BrowserStackConfig } from "../../lib/types.js";links: { test_runs: 'http://169.254.169.254/latest/meta-data/' },expect(enrichmentCall.url).not.toContain('169.254.169.254');[http://127.0.0.1:6274](http://127.0.0.1:6274)
it.each(["http://localhost:3000", "http://127.0.0.1:8080"])(
base = `http://127.0.0.1:${(server.address() as AddressInfo).port}`;links: { test_runs: 'http://169.254.169.254/latest/meta-data/' },@modelcontextprotocol/sdk, @types/form-data, axios, browserstack-local, csv-parse, dotenv, form-data, pino
capability/tm.capability-index.json
capability/tra.capability-index.json
tests/fixtures/capability/tm.capability-index.json
tests/fixtures/capability/tra.capability-index.json
Gates applied: no_behavioural_pass.
06b0e342956ffull audit observations/trust-audit/mcp-server/browserstack__mcp-server.json · Report an issue / request a re-scanAudit history
Every audit this server has had. A grade with a past is a grade somebody is still checking.
| Date | Source | Verdict | Grade | Score | Change |
|---|---|---|---|---|---|
| 2026-10-12 | 06b0e342956f | CAUTION | B | 84 | first audit |
Questions
What is the @browserstack/mcp-server MCP server?
BrowserStack's Official MCP Server
What tools does @browserstack/mcp-server expose?
55 in total: 43 read-only, 12 that write, and 0 that can delete or overwrite. Every one is listed on this page with its risk.
Is @browserstack/mcp-server safe to connect to an agent?
With care. The audit graded it B (84/100) and found 21 things worth knowing before you trust this server, listed below with the exact line each was found on.
What credentials does @browserstack/mcp-server need?
It reads ASK_BROWSERSTACK_AUTH_TOKEN_URL, BROWSERSTACK_ACCESS_KEY and CAPABILITY_REGISTRY_AUTH_TOKEN_URL from the environment. Give it a token scoped to the least it needs — an agent that can be talked into calling a tool can be talked into calling it with your credentials.
How does @browserstack/mcp-server run?
It speaks stdio and streamable-http, so it runs as a local process your client starts. It is published on npm as @browserstack/mcp-server at 2.2.1.
How current is this page?
The grade is for one exact copy of the source (06b0e342956f), read on 2026-10-12. The repository is watched and re-audited when it changes.