npm JavaScript analyzed 1.3.1

@browserstack/mcp-server

v1.3.1
npm

BrowserStack's Official MCP Server

maintainer
browserstack-admin
license
ISC
first seen
2026-05-30
last seen
2026-09-05
releases · 30d
11
short id

Drift inferred · capture-to-capture

No drift recorded — single capability capture; advisories appear once its surface changes.

capabilities 45 tools
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
code evidence v1.3.1 · npm-tarball
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;