D

BrowserStack MCP Server

Official BrowserStack MCP server for automated browser/app testing, accessibility scanning, Percy visual testing, self-healing selectors, build insights, RCA, and test management.

Overall Score47/100

Score Breakdown

Server Info

Package
@browserstack/mcp-server
Registry
npm
Maintainer
BrowserStackVendor
Category
Developer Tools
Tags
testingbrowserautomation
Last Scanned
28 May 2026

Findings

11 issues

Authentication & Identity

CRITICALStdio-only transport - no per-request token support

Stdio-only transport (StdioServerTransport). Authentication requires BROWSERSTACK_USERNAME and BROWSERSTACK_ACCESS_KEY environment variables; both are validated at startup and passed as Basic Auth credentials in all API requests. No HTTP/SSE transport. No MCP OAuth spec (.well-known endpoints not pr... Platform cannot pass per-request tokens; must spawn one server instance per user.

Remediation

Add HTTP/SSE transport to accept per-request Authorization headers.

HIGHNo MCP OAuth spec implementation

Server does not implement the MCP OAuth authorization server spec. The platform must handle the full OAuth flow, token management, and credential injection externally.

Remediation

Implement the MCP OAuth spec (.well-known/oauth-authorization-server) for native per-user authentication.

HIGHEnv var credentials with no rotation mechanism

Credentials (BROWSERSTACK_USERNAME, BROWSERSTACK_ACCESS_KEY) are read from environment variables at startup. Rotation requires restarting the server process. All requests share the same service account credential.

Remediation

Support dynamic credential refresh or secrets manager integration.

Tool Schema Quality

HIGHRequired fields missing on 5 write operations

Write tools without required field declarations: setupBrowserStackAutomateTests, setupPercyVisualTesting, addPercySnapshotCommands, runPercyScan, setupBrowserStackAppAutomateTests.

Remediation

Add required arrays to all write/delete tool schemas.

MEDIUMOnly 2 of 43 schemas have parameter constraints

Most schemas lack maxLength, enum, or pattern constraints on string parameters.

Remediation

Add constraints to string parameters, especially on write operations.

Permission Granularity

LOWTool descriptions lack resource scope

Descriptions don't specify what data types or resources they access.

Remediation

Add resource type statements to descriptions.

LLM Safety

MEDIUM2 tool descriptions are too vague

Short or generic descriptions make tool selection unreliable.

Remediation

Expand descriptions with specific actions, data types, and side effects.

HIGHTool descriptions contain instructional language

Descriptions include directives that could influence LLM behavior beyond tool selection.

Remediation

Remove instructional language. Descriptions should be purely factual.

Data Exposure

MEDIUM8 list operations lack pagination

fetchAccessibilityIssues supports cursor-based pagination. listTestCases, listTestRuns, listTestPlans, listSubTestPlans support pagination parameters per their descriptions. listFolders, listTestFiles, and several read tools have no pagination or result caps documented. No field selection support. API responses are returned as-is from BrowserStack APIs. Binary content (screenshots) returned as base64 image content blocks.

Remediation

Add limit/offset or cursor-based pagination.

LOWNo field selection on responses

Responses return full records rather than projected fields.

Remediation

Implement field selection to return only relevant fields.

Maintenance & Trust

HIGH17 dependency vulnerabilities (2 critical, 11 high)

npm audit found 2 critical and 11 high severity CVEs.

Remediation

Run `npm audit fix` and update vulnerable dependencies.

Tools

43 total
NameDescriptionRisk
accessibilityExpertAgent-mode tool for accessibility/a11y/WCAG questions. Description contains instructional prompt: 'REQUIRED: Use this tool for any accessibility/a11y/WCAG questions. Do NOT answer accessibility questions directly'.read
startAccessibilityScanStart an accessibility scan on a URL using BrowserStack.write
createAccessibilityAuthConfigCreate an authentication config for protected pages, supports form and basic auth types.write
getAccessibilityAuthConfigGet an existing accessibility auth config for a project.read
fetchAccessibilityIssuesFetch accessibility issues for a scan, with cursor-based pagination.read
setupBrowserStackAutomateTestsSet up BrowserStack Automate integration in a project.write
fetchAutomationScreenshotsFetch and process screenshots from a BrowserStack Automate session.read
percyVisualTestIntegrationAgentAgent-mode tool for Percy visual testing integration.read
setupPercyVisualTestingSet up Percy visual testing in a project.write
addPercySnapshotCommandsAdd Percy snapshot commands to test files.write
listTestFilesList test files in a project directory.read
runPercyScanRun a Percy visual scan.write
fetchPercyChangesFetch visual changes detected by Percy.read
managePercyBuildApprovalApprove or reject a Percy build.write
runBrowserLiveSessionStart a browser live (interactive) session on BrowserStack.write
runAppLiveSessionStart an app live (interactive) session on BrowserStack.write
takeAppScreenshotTake a screenshot from a BrowserStack App Automate session.read
runAppTestsOnBrowserStackRun mobile app tests on BrowserStack App Automate.write
setupBrowserStackAppAutomateTestsSet up BrowserStack App Automate integration for a project.write
getFailureLogsFetch failure logs from a BrowserStack test session.read
fetchBuildInsightsFetch build insights and analytics for a BrowserStack build.read
fetchRCAFetch root cause analysis for a failing test.read
getBuildIdGet the BrowserStack build ID for a given test run.read
listTestIdsList test IDs in a BrowserStack build.read
fetchSelfHealedSelectorsFetch self-healed CSS/XPath selectors for a BrowserStack session.read
prepareSelfHealingPlanGenerate a self-healing plan for flaky selectors.read
getFailuresInLastRunDebug failures in the last test run using BrowserStack Observability. Only applicable when browserstack.yml is present.read
createProjectOrFolderCreate a project or folder in BrowserStack Test Management.write
createTestCaseCreate a test case in Test Management.write
updateTestCaseUpdate an existing test case in Test Management.write
listTestCasesList test cases in a project, with optional folder scope and filters including case_type, priority, and pagination.read
listFoldersList folders in a Test Management project.read
createTestRunCreate a test run in Test Management.write
listTestRunsList test runs in a Test Management project.read
updateTestRunUpdate a test run in Test Management.write
addTestResultAdd a test result to a test run.write
uploadProductRequirementFileUpload a product requirement document for AI test case generation. Uses upload-validator.ts path validation to prevent path traversal.write
createTestCasesFromFileGenerate test cases from an uploaded requirements file.write
createLCAStepsCreate low-code automation (LCA) steps for test cases.write
listTestPlansList test plans in a Test Management project. Supports pagination.read
getTestPlanGet a specific test plan by ID.read
listSubTestPlansList sub-test-plans under a parent test plan. Supports pagination.read
getSubTestPlanGet a specific sub-test-plan.read

Deploy BrowserStack MCP Server securely

CompleteFlow adds per-user authentication, permission scoping, and audit logging to any MCP server out of the box.

Deploy on CompleteFlow