BrowserStack's Official MCP Server
Drift inferred · capture-to-capture
No drift recorded — single capability capture; advisories appear once its surface changes.
transport stdio
verified
reported
listed in the official MCP registry counts 45 tools · 0 res
· 0 prompts
permission surface via code analysis
tools
-
accessibilityExpert
-
addPercySnapshotCommands
-
addTestResult
-
createAccessibilityAuthConfig
-
createLCASteps
-
createProjectOrFolder
-
createTestCase
-
createTestCasesFromFile
-
createTestRun
-
expandPercyVisualTesting
-
fetchAccessibilityIssues
-
fetchAutomationScreenshots
-
fetchBuildInsights
-
fetchPercyChanges
-
fetchRCA
-
fetchSelfHealedSelectors
-
getAccessibilityAuthConfig
-
getBuildId
-
getFailureLogs
-
getFailuresInLastRun
-
getSubTestPlan
-
getTestPlan
-
listBuildId
-
listFolders
-
listSubTestPlans
-
listTestCaseTemplates
-
listTestCases
-
listTestFiles
-
listTestIds
-
listTestPlans
-
listTestRuns
-
managePercyBuildApproval
-
percyVisualTestIntegrationAgent
-
prepareSelfHealingPlan
-
runAppLiveSession
-
runAppTestsOnBrowserStack
-
runBrowserLiveSession
-
runPercyScan
-
setupBrowserStackAppAutomateTests
-
setupBrowserStackAutomateTests
-
startAccessibilityScan
-
takeAppScreenshot
-
updateTestCase
-
updateTestRun
-
uploadProductRequirementFile
evidence-backed
findings quoted directly from the published source artifact — not inferred
code files: 304
filesystem 8
- fs package/dist/lib/apiClient.js :5
import * as fs from "fs"; - fs package/dist/lib/device-cache.js :1
import fs from "fs"; - fs package/dist/lib/upload-validator.js :1
import fs from "fs"; - fs package/dist/tools/appautomate-utils/native-execution/appautomate.js :1
import fs from "fs"; - fs package/dist/tools/applive-utils/upload-app.js :3
import fs from "fs"; - fs package/dist/tools/applive.js :2
import fs from "fs"; - fs package/dist/tools/percy-snapshot-utils/detect-test-files.js :1
import fs from "fs"; - fs package/dist/tools/testmanagement-utils/upload-file.js :4
import fs from "fs";
shell / exec 1
- shell package/dist/lib/local.js :2
import { execSync } from "child_process";
network 11
- net package/dist/lib/apiClient.js :1
import axios from "axios"; - net package/dist/lib/error.js :1
import { AxiosError } from "axios"; - net package/dist/lib/utils.js :32
const res = await fetch(url, { - net package/dist/tools/rca-agent-utils/get-build-id.js :7
const response = await fetch(url.toString(), { - net package/dist/tools/rca-agent-utils/get-failed-test-id.js :20
const response = await fetch(url, { - net package/dist/tools/rca-agent-utils/rca-data.js :71
const response = await fetch(url, { headers }); - net package/dist/tools/review-agent-utils/build-counts.js :4
const response = await fetch(apiUrl, { - net package/dist/tools/review-agent-utils/percy-approve-reject.js :18
const response = await fetch("https://percy.io/api/v1/reviews", { - net package/dist/tools/review-agent-utils/percy-diffs.js :3
const response = await fetch(apiUrl, { - net package/dist/tools/review-agent-utils/percy-snapshots.js :19
const response = await fetch(urlStr, { - net package/dist/tools/sdk-utils/percy-web/fetchPercyToken.js :11
const response = await fetch(url, { headers: { Authorization: authHeader } });
secrets 4
- secrets package/dist/index.js :17
const accessKey = process.env.BROWSERSTACK_ACCESS_KEY; - secrets package/dist/tools/appautomate-utils/appium-sdk/languages/nodejs.js :57
key: process.env.BROWSERSTACK_ACCESS_KEY || '<your_browserstack_access_key>', - secrets package/dist/tools/sdk-utils/bstack/constants.js :347
key: process.env.BROWSERSTACK_ACCESS_KEY, - secrets package/dist/tools/sdk-utils/percy-automate/constants.js :213
key: process.env.BROWSERSTACK_ACCESS_KEY || 'YOUR_ACCESS_KEY',
tool registrations 45
- accessibilityExpert package/dist/tools/accessibility.js :212
- startAccessibilityScan package/dist/tools/accessibility.js :225
- createAccessibilityAuthConfig package/dist/tools/accessibility.js :245
- getAccessibilityAuthConfig package/dist/tools/accessibility.js :306
- fetchAccessibilityIssues package/dist/tools/accessibility.js :317
- takeAppScreenshot package/dist/tools/appautomate.js :197
- runAppTestsOnBrowserStack package/dist/tools/appautomate.js :235
- setupBrowserStackAppAutomateTests package/dist/tools/appautomate.js :261
- runAppLiveSession package/dist/tools/applive.js :57
- fetchAutomationScreenshots package/dist/tools/automate.js :54
- setupBrowserStackAutomateTests package/dist/tools/bstack-sdk.js :8
- fetchBuildInsights package/dist/tools/build-insights.js :62
- getFailureLogs package/dist/tools/get-failure-logs.js :101
- runBrowserLiveSession package/dist/tools/live.js :91
- getFailuresInLastRun package/dist/tools/observability.js :35
- percyVisualTestIntegrationAgent package/dist/tools/percy-sdk.js :33
- expandPercyVisualTesting package/dist/tools/percy-sdk.js :48
- addPercySnapshotCommands package/dist/tools/percy-sdk.js :63
- listTestFiles package/dist/tools/percy-sdk.js :78
- runPercyScan package/dist/tools/percy-sdk.js :93
- fetchPercyChanges package/dist/tools/percy-sdk.js :108
- managePercyBuildApproval package/dist/tools/percy-sdk.js :123
- fetchRCA package/dist/tools/rca-agent.js :133
- getBuildId package/dist/tools/rca-agent.js :148
- listBuildId package/dist/tools/rca-agent.js :163
- listTestIds package/dist/tools/rca-agent.js :178
- fetchSelfHealedSelectors package/dist/tools/selfheal.js :429
- prepareSelfHealingPlan package/dist/tools/selfheal.js :492
- createProjectOrFolder package/dist/tools/testmanagement.js :435
- createTestCase package/dist/tools/testmanagement.js :442
- updateTestCase package/dist/tools/testmanagement.js :449
- listTestCases package/dist/tools/testmanagement.js :456
- listFolders package/dist/tools/testmanagement.js :463
- listTestCaseTemplates package/dist/tools/testmanagement.js :470
- createTestRun package/dist/tools/testmanagement.js :477
- listTestRuns package/dist/tools/testmanagement.js :484
- updateTestRun package/dist/tools/testmanagement.js :491
- addTestResult package/dist/tools/testmanagement.js :498
- uploadProductRequirementFile package/dist/tools/testmanagement.js :505
- createTestCasesFromFile package/dist/tools/testmanagement.js :512
- createLCASteps package/dist/tools/testmanagement.js :519
- listTestPlans package/dist/tools/testmanagement.js :526
- getTestPlan package/dist/tools/testmanagement.js :533
- listSubTestPlans package/dist/tools/testmanagement.js :540
- getSubTestPlan package/dist/tools/testmanagement.js :547
declared dependencies 24
- @modelcontextprotocol/sdk@^1.29.0
- @types/form-data@^2.5.2
- axios@^1.15.0
- browserstack-local@^1.5.12
- csv-parse@^6.2.1
- dotenv@^17.4.0
- form-data@^4.0.5
- pino@^10.3.1
- pino-pretty@^13.1.3
- sharp@^0.34.5
- uuid@^13.0.0
- webdriverio@^9.27.0
- zod@^4.3.6
- @eslint/js@^9.39.2
- @types/csv-parse@^1.2.5
- @types/node@^25.0.3
- @types/uuid@^11.0.0
- eslint@^9.39.2
- prettier@^3.7.4
- tsx@^4.21.0
- typescript@^5.9.3
- typescript-eslint@^8.50.0
- vite@^7.3.0
- vitest@^4.0.16
obfuscation 1
- dynamic require()/import() package/dist/tools/sdk-utils/percy-automate/constants.js :177
const caps = require("../" + conf_file).capabilities;