@browserstack/mcp-server 1.5.0-beta.21 → 1.5.0-beta.23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (95) hide show
  1. package/README.md +32 -48
  2. package/capability/loadtesting.capability-index.json +1876 -0
  3. package/capability/tm.capability-index.json +50104 -0
  4. package/dist/config.d.ts +1 -4
  5. package/dist/config.js +2 -23
  6. package/dist/index.d.ts +1 -2
  7. package/dist/index.js +3 -7
  8. package/dist/lib/constants.d.ts +0 -3
  9. package/dist/lib/constants.js +0 -3
  10. package/dist/lib/instrumentation.d.ts +2 -14
  11. package/dist/lib/instrumentation.js +29 -104
  12. package/dist/lib/upload-validator.d.ts +2 -3
  13. package/dist/lib/upload-validator.js +15 -18
  14. package/dist/lib/utils.js +3 -10
  15. package/dist/lib/version-resolver.d.ts +5 -0
  16. package/dist/lib/version-resolver.js +2 -8
  17. package/dist/logger.js +10 -1
  18. package/dist/server-factory.js +6 -10
  19. package/dist/tools/accessibility.js +5 -9
  20. package/dist/tools/accessiblity-utils/accessibility-rag.js +1 -3
  21. package/dist/tools/appautomate-utils/native-execution/constants.js +2 -4
  22. package/dist/tools/appautomate.js +1 -3
  23. package/dist/tools/applive.js +1 -1
  24. package/dist/tools/automate.d.ts +0 -7
  25. package/dist/tools/automate.js +1 -104
  26. package/dist/tools/bstack-sdk.js +2 -2
  27. package/dist/tools/build-insights.js +2 -41
  28. package/dist/tools/capability-registry/bind.d.ts +29 -0
  29. package/dist/tools/capability-registry/bind.js +329 -0
  30. package/dist/tools/capability-registry/config.d.ts +62 -0
  31. package/dist/tools/capability-registry/config.js +218 -0
  32. package/dist/tools/capability-registry/discovery.d.ts +44 -0
  33. package/dist/tools/capability-registry/discovery.js +99 -0
  34. package/dist/tools/capability-registry/egress.d.ts +44 -0
  35. package/dist/tools/capability-registry/egress.js +174 -0
  36. package/dist/tools/capability-registry/index-loader.d.ts +133 -0
  37. package/dist/tools/capability-registry/index-loader.js +404 -0
  38. package/dist/tools/capability-registry/register.d.ts +48 -0
  39. package/dist/tools/capability-registry/register.js +604 -0
  40. package/dist/tools/capability-registry/resolve.d.ts +38 -0
  41. package/dist/tools/capability-registry/resolve.js +45 -0
  42. package/dist/tools/capability-registry/search.d.ts +170 -0
  43. package/dist/tools/capability-registry/search.js +709 -0
  44. package/dist/tools/capability-registry/types.d.ts +282 -0
  45. package/dist/tools/capability-registry/types.js +33 -0
  46. package/dist/tools/failurelogs-utils/app-automate.js +3 -4
  47. package/dist/tools/failurelogs-utils/automate.js +4 -5
  48. package/dist/tools/get-failure-logs.js +11 -30
  49. package/dist/tools/observability.js +1 -3
  50. package/dist/tools/percy-sdk.js +9 -9
  51. package/dist/tools/rca-agent-utils/format-rca.js +4 -5
  52. package/dist/tools/rca-agent-utils/get-failed-test-id.js +0 -12
  53. package/dist/tools/rca-agent-utils/types.d.ts +0 -1
  54. package/dist/tools/rca-agent.js +2 -5
  55. package/dist/tools/review-agent.js +1 -2
  56. package/dist/tools/sdk-utils/common/constants.d.ts +1 -1
  57. package/dist/tools/sdk-utils/common/constants.js +1 -2
  58. package/dist/tools/selfheal.js +3 -6
  59. package/dist/tools/testmanagement-utils/TCG-utils/api.js +7 -26
  60. package/dist/tools/testmanagement-utils/TCG-utils/config.d.ts +0 -2
  61. package/dist/tools/testmanagement-utils/TCG-utils/config.js +0 -5
  62. package/dist/tools/testmanagement-utils/testcase-from-file.js +1 -2
  63. package/dist/tools/testmanagement-utils/upload-file.js +2 -16
  64. package/dist/tools/testmanagement.js +17 -39
  65. package/package.json +11 -5
  66. package/dist/lib/node-version-notice.d.ts +0 -1
  67. package/dist/lib/node-version-notice.js +0 -9
  68. package/dist/lib/tool-latency.d.ts +0 -4
  69. package/dist/lib/tool-latency.js +0 -16
  70. package/dist/lib/untrusted-content.d.ts +0 -15
  71. package/dist/lib/untrusted-content.js +0 -24
  72. package/dist/tools/ask-browserstack/central-oauth.d.ts +0 -120
  73. package/dist/tools/ask-browserstack/central-oauth.js +0 -277
  74. package/dist/tools/ask-browserstack/config.d.ts +0 -102
  75. package/dist/tools/ask-browserstack/config.js +0 -140
  76. package/dist/tools/ask-browserstack/egress.d.ts +0 -34
  77. package/dist/tools/ask-browserstack/egress.js +0 -31
  78. package/dist/tools/ask-browserstack/register.d.ts +0 -61
  79. package/dist/tools/ask-browserstack/register.js +0 -416
  80. package/dist/tools/ask-browserstack/relay.d.ts +0 -201
  81. package/dist/tools/ask-browserstack/relay.js +0 -577
  82. package/dist/tools/ask-browserstack/stream.d.ts +0 -116
  83. package/dist/tools/ask-browserstack/stream.js +0 -236
  84. package/dist/tools/ask-browserstack/types.d.ts +0 -196
  85. package/dist/tools/ask-browserstack/types.js +0 -14
  86. package/dist/tools/automate-utils/list-session-ids.d.ts +0 -28
  87. package/dist/tools/automate-utils/list-session-ids.js +0 -87
  88. package/dist/tools/automate-utils/resolve-hashed-build-id.d.ts +0 -30
  89. package/dist/tools/automate-utils/resolve-hashed-build-id.js +0 -124
  90. package/dist/tools/failurelogs-utils/resolve-app-build-id.d.ts +0 -2
  91. package/dist/tools/failurelogs-utils/resolve-app-build-id.js +0 -5
  92. package/dist/tools/failurelogs-utils/video.d.ts +0 -3
  93. package/dist/tools/failurelogs-utils/video.js +0 -25
  94. package/dist/tools/tool-handoff.d.ts +0 -66
  95. package/dist/tools/tool-handoff.js +0 -78
package/README.md CHANGED
@@ -43,7 +43,7 @@ Click on the buttons below to install MCP in your respective IDE:
43
43
 
44
44
  > **Note:** The hosted Remote MCP server (`mcp.browserstack.com`) is now fully stateless over Streamable HTTP — any Streamable-HTTP client (Claude, Cursor, VS Code, ChatGPT) connects with no configuration change.
45
45
 
46
- #### Note : Ensure you are using Node version >= `20.9`
46
+ #### Note : Ensure you are using Node version >= `18.0`
47
47
  - Check your node version using `node --version`. Recommended version: `v22.15.0` (LTS)
48
48
  - To Upgrade Node :
49
49
  - 1. On macOS `(Homebrew) - brew update && brew upgrade node or if using (nvm) - nvm install 22.15.0 && nvm use 22.15.0 && nvm alias default 22.15.0`
@@ -158,7 +158,7 @@ Generate test cases from PRDs, convert manual tests to low-code automation, and
158
158
  ## 🛠️ Installation
159
159
 
160
160
  ### 📋 Prerequisites for MCP Setup
161
- #### Note : Ensure you are using Node version >= `20.9`
161
+ #### Note : Ensure you are using Node version >= `18.0`
162
162
  - Check your node version using `node --version`. Recommended version: `v22.15.0` (LTS)
163
163
 
164
164
  ### **One Click MCP Setup**
@@ -178,7 +178,7 @@ Click on the buttons below to install MCP in your respective IDE:
178
178
 
179
179
  - Once you have an account (and purchased appropriate plan), note down your `username` and `access_key` from [Account Settings](https://www.browserstack.com/accounts/profile/details).
180
180
 
181
- 2. #### Note : Ensure you are using Node version >= `20.9`
181
+ 2. #### Note : Ensure you are using Node version >= `18.0`
182
182
  - Check your node version using `node --version`. Recommended version: `v22.15.0` (LTS)
183
183
 
184
184
 
@@ -292,11 +292,9 @@ Select the “Installed” tab. Click the “Configure MCP Servers” button at
292
292
  }
293
293
  ```
294
294
 
295
- > **File & app uploads:** tools that upload a local file/app (`uploadProductRequirementFile`, `takeAppScreenshot`, `runAppTestsOnBrowserStack`, `runAppLiveSession`) require the `MCP_UPLOAD_BASE_DIR` env var set to a directory containing those files; uploads are restricted to it.
296
-
297
295
  ### 💡 List of BrowserStack MCP Tools
298
296
 
299
- As of now we support 46 tools.
297
+ As of now we support 44 tools.
300
298
 
301
299
  > **Remote MCP note:** Tools marked _(not available in Remote MCP)_ rely on local file/process state and are disabled in the multi-tenant [Remote MCP Server](#-remote-mcp-server). They are available in the local (npx) setup.
302
300
 
@@ -428,25 +426,18 @@ As of now we support 46 tools.
428
426
  Get screenshots from Automate session ID abc123xyz for my desktop test run
429
427
  ```
430
428
 
431
- 18. `listSessions` — List the sessions in an Automate/App Automate build. Each record carries `sessionId`, `name`, `status`, `os`, `osVersion`, `browser`, `device`, `browserUrl` (dashboard link), and `videoUrl`, with optional `limit` / `offset` paging and a client-side `status` filter. Takes either the **hashed** build ID from the dashboard URL or the observability build id returned by `getBuildId` / `listBuildId` — an observability id is resolved to the hashed id automatically via the build's sessions. Returned `sessionId` values work with `getFailureLogs`, `fetchAutomationScreenshots`, and `fetchSelfHealedSelectors`.
432
- **Prompt example**
433
-
434
- ```text
435
- List sessions for Automate hashed build ID <hashed build id>
436
- ```
437
-
438
429
  ---
439
430
 
440
431
  ## 🔍 Observability
441
432
 
442
- 19. `getFailureLogs` — Retrieve error logs for Automate/App Automate sessions. App Automate log endpoints are build-scoped, so a hashed build ID is required there — pass one if you have it, otherwise it is resolved from the session automatically.
433
+ 18. `getFailureLogs` — Retrieve error logs for Automate/App Automate sessions (optionally by Build ID for App Automate).
443
434
  **Prompt example**
444
435
 
445
436
  ```text
446
- Get the Appium logs for App Automate session ID <session id>
437
+ Get the error logs from the session ID: 21a864032a7459f1e7634222249b316759d6827f, Build ID: dt7ung4wmjittzff8kksrjadjax9gzvbscoyf9qn of App Automate test session
447
438
  ```
448
439
 
449
- 20. `fetchBuildInsights` — Fetch insights about a BrowserStack build by combining build details and quality-gate results. Includes `hashed_id` (the hashed build id `listSessions` takes) and `session_type`, resolved through the build's sessions when the build ran on Automate / App Automate.
440
+ 19. `fetchBuildInsights` — Fetch insights about a BrowserStack build by combining build details and quality-gate results.
450
441
  **Prompt example**
451
442
 
452
443
  ```text
@@ -457,7 +448,7 @@ As of now we support 46 tools.
457
448
 
458
449
  ## 📱 App Live
459
450
 
460
- 21. `runAppLiveSession` — Start a manual app testing session on a real device in the cloud.
451
+ 20. `runAppLiveSession` — Start a manual app testing session on a real device in the cloud.
461
452
  **Prompt example**
462
453
 
463
454
  ```text
@@ -468,7 +459,7 @@ As of now we support 46 tools.
468
459
 
469
460
  ## 💻 Live
470
461
 
471
- 22. `runBrowserLiveSession` — Start a Live session for website testing on desktop or mobile browsers.
462
+ 21. `runBrowserLiveSession` — Start a Live session for website testing on desktop or mobile browsers.
472
463
  **Prompt example**
473
464
 
474
465
  ```text
@@ -479,21 +470,21 @@ As of now we support 46 tools.
479
470
 
480
471
  ## 📲 App Automate
481
472
 
482
- 23. `takeAppScreenshot` — Launch the app on a specified device and capture a quick verification screenshot to confirm your app has launched.
473
+ 22. `takeAppScreenshot` — Launch the app on a specified device and capture a quick verification screenshot to confirm your app has launched.
483
474
  **Prompt example**
484
475
 
485
476
  ```text
486
477
  Take a screenshot of my app on Google Pixel 6 with Android 12 while testing on App Automate. App file path: /Users/xyz/app-debug.apk
487
478
  ```
488
479
 
489
- 24. `runAppTestsOnBrowserStack` — Run pre-built native mobile test suites (Espresso/XCUITest) by direct upload of compiled .apk/.ipa test files.
480
+ 23. `runAppTestsOnBrowserStack` — Run pre-built native mobile test suites (Espresso/XCUITest) by direct upload of compiled .apk/.ipa test files.
490
481
  **Prompt example**
491
482
 
492
483
  ```text
493
484
  Run Espresso tests from /tests/checkout.zip on Galaxy S21 and Pixel 6 with Android 12. App path is /apps/beta-release.apk under project 'Checkout Flow'
494
485
  ```
495
486
 
496
- 25. `setupBrowserStackAppAutomateTests` — Set up BrowserStack App Automate SDK integration for Appium-based mobile app testing.
487
+ 24. `setupBrowserStackAppAutomateTests` — Set up BrowserStack App Automate SDK integration for Appium-based mobile app testing.
497
488
  **Prompt example**
498
489
 
499
490
  ```text
@@ -504,35 +495,35 @@ As of now we support 46 tools.
504
495
 
505
496
  ## ♿ Accessibility
506
497
 
507
- 26. `accessibilityExpert` — Ask the A11y Expert (WCAG 2.0/2.1/2.2, mobile/web usability, best practices).
498
+ 25. `accessibilityExpert` — Ask the A11y Expert (WCAG 2.0/2.1/2.2, mobile/web usability, best practices).
508
499
  **Prompt example**
509
500
 
510
501
  ```text
511
502
  What WCAG guidelines apply to form field error messages on mobile web?
512
503
  ```
513
504
 
514
- 27. `startAccessibilityScan` — Start a web accessibility scan and retrieve a local CSV report path.
505
+ 26. `startAccessibilityScan` — Start a web accessibility scan and retrieve a local CSV report path.
515
506
  **Prompt example**
516
507
 
517
508
  ```text
518
509
  Run accessibility scan for "www.example.com"
519
510
  ```
520
511
 
521
- 28. `createAccessibilityAuthConfig` — Create an authentication configuration (form-based or basic) for accessibility scans behind a login.
512
+ 27. `createAccessibilityAuthConfig` — Create an authentication configuration (form-based or basic) for accessibility scans behind a login.
522
513
  **Prompt example**
523
514
 
524
515
  ```text
525
516
  Create a basic-auth accessibility config named 'site-login' for https://www.example.com with username testuser and password <password>
526
517
  ```
527
518
 
528
- 29. `getAccessibilityAuthConfig` — Retrieve an existing accessibility authentication configuration by ID.
519
+ 28. `getAccessibilityAuthConfig` — Retrieve an existing accessibility authentication configuration by ID.
529
520
  **Prompt example**
530
521
 
531
522
  ```text
532
523
  Get accessibility auth config with ID <config-id>
533
524
  ```
534
525
 
535
- 30. `fetchAccessibilityIssues` — Fetch accessibility issues from a completed scan, with pagination support.
526
+ 29. `fetchAccessibilityIssues` — Fetch accessibility issues from a completed scan, with pagination support.
536
527
  **Prompt example**
537
528
 
538
529
  ```text
@@ -543,49 +534,49 @@ As of now we support 46 tools.
543
534
 
544
535
  ## 🎨 Percy Visual Testing
545
536
 
546
- 31. `percyVisualTestIntegrationAgent` — Integrate Percy visual testing into a new project and demonstrate visual change detection with a step-by-step simulation.
537
+ 30. `percyVisualTestIntegrationAgent` — Integrate Percy visual testing into a new project and demonstrate visual change detection with a step-by-step simulation.
547
538
  **Prompt example**
548
539
 
549
540
  ```text
550
541
  Integrate Percy for this project
551
542
  ```
552
543
 
553
- 32. `expandPercyVisualTesting` — Set up or expand Percy visual testing coverage for existing projects (Percy Web Standalone and Percy Automate).
544
+ 31. `expandPercyVisualTesting` — Set up or expand Percy visual testing coverage for existing projects (Percy Web Standalone and Percy Automate).
554
545
  **Prompt example**
555
546
 
556
547
  ```text
557
548
  Expand Percy coverage for this project
558
549
  ```
559
550
 
560
- 33. `addPercySnapshotCommands` — Add Percy snapshot commands to the specified test files. _(not available in Remote MCP)_
551
+ 32. `addPercySnapshotCommands` — Add Percy snapshot commands to the specified test files. _(not available in Remote MCP)_
561
552
  **Prompt example**
562
553
 
563
554
  ```text
564
555
  Add Percy snapshot commands to my Cypress test files
565
556
  ```
566
557
 
567
- 34. `listTestFiles` — List all test files for a given set of directories. _(not available in Remote MCP)_
558
+ 33. `listTestFiles` — List all test files for a given set of directories. _(not available in Remote MCP)_
568
559
  **Prompt example**
569
560
 
570
561
  ```text
571
562
  List the test files under my ./tests directory
572
563
  ```
573
564
 
574
- 35. `runPercyScan` — Run a Percy visual test scan. _(not available in Remote MCP)_
565
+ 34. `runPercyScan` — Run a Percy visual test scan. _(not available in Remote MCP)_
575
566
  **Prompt example**
576
567
 
577
568
  ```text
578
569
  Run this Percy build
579
570
  ```
580
571
 
581
- 36. `fetchPercyChanges` — Retrieve and summarize visual changes detected by Percy AI between the latest and previous builds.
572
+ 35. `fetchPercyChanges` — Retrieve and summarize visual changes detected by Percy AI between the latest and previous builds.
582
573
  **Prompt example**
583
574
 
584
575
  ```text
585
576
  Summarize the visual changes Percy detected in my latest build
586
577
  ```
587
578
 
588
- 37. `managePercyBuildApproval` — Approve or reject a Percy build.
579
+ 36. `managePercyBuildApproval` — Approve or reject a Percy build.
589
580
  **Prompt example**
590
581
 
591
582
  ```text
@@ -596,68 +587,61 @@ As of now we support 46 tools.
596
587
 
597
588
  ## 🤖 BrowserStack AI Agents
598
589
 
599
- 38. `uploadProductRequirementFile` — Upload a PRD/screenshot/PDF and get a file mapping ID (used with `createTestCasesFromFile`). _(not available in Remote MCP)_
590
+ 37. `uploadProductRequirementFile` — Upload a PRD/screenshot/PDF and get a file mapping ID (used with `createTestCasesFromFile`). _(not available in Remote MCP)_
600
591
  **Prompt example**
601
592
 
602
593
  ```text
603
594
  Upload PRD from /Users/xyz/Desktop/login-flow.pdf and use BrowserStack AI to generate test cases
604
595
  ```
605
596
 
606
- 39. `createLCASteps` — Generate Low Code Automation (LCA) steps from a manual test case in Test Management.
597
+ 38. `createLCASteps` — Generate Low Code Automation (LCA) steps from a manual test case in Test Management.
607
598
  **Prompt example**
608
599
 
609
600
  ```text
610
601
  Convert the manual test case 'Add to Cart' in the 'Shopping App' project into LCA steps
611
602
  ```
612
603
 
613
- 40. `fetchSelfHealedSelectors` — Retrieve AI self-healed selectors (plus test source) to fix flaky tests caused by DOM changes.
604
+ 39. `fetchSelfHealedSelectors` — Retrieve AI self-healed selectors (plus test source) to fix flaky tests caused by DOM changes.
614
605
  **Prompt example**
615
606
 
616
607
  ```text
617
608
  Fetch and fix flaky test selectors in Automate session ID session_9482 using MCP
618
609
  ```
619
610
 
620
- 41. `prepareSelfHealingPlan` — Build a self-healing edit plan that bundles locator pairs with test source for your LLM to apply. Does NOT modify files itself.
611
+ 40. `prepareSelfHealingPlan` — Build a self-healing edit plan that bundles locator pairs with test source for your LLM to apply. Does NOT modify files itself.
621
612
  **Prompt example**
622
613
 
623
614
  ```text
624
615
  Prepare a self-healing plan from the self-healed selectors for my build
625
616
  ```
626
617
 
627
- 42. `fetchRCA` — Fetch AI Root Cause Analysis for your failed Automate/App-Automate tests (by numeric test ID). Suggests fixes only; never auto-applies.
618
+ 41. `fetchRCA` — Fetch AI Root Cause Analysis for your failed Automate/App-Automate tests (by numeric test ID). Suggests fixes only; never auto-applies.
628
619
  **Prompt example**
629
620
 
630
621
  ```text
631
622
  Fetch the root cause analysis for failed test IDs 101 and 102 on BrowserStack
632
623
  ```
633
624
 
634
- 43. `getBuildId` — Get the BrowserStack build ID for a given project and build name, scoped to your builds.
625
+ 42. `getBuildId` — Get the BrowserStack build ID for a given project and build name, scoped to your builds.
635
626
  **Prompt example**
636
627
 
637
628
  ```text
638
629
  Get the build ID for build 'nightly-regression' in project 'Checkout Flow'
639
630
  ```
640
631
 
641
- 44. `listBuildId` — Get the latest build ID for a project and build name, across all users (no user filter).
632
+ 43. `listBuildId` — Get the latest build ID for a project and build name, across all users (no user filter).
642
633
  **Prompt example**
643
634
 
644
635
  ```text
645
636
  Get the latest build ID for build 'nightly-regression' in project 'Checkout Flow'
646
637
  ```
647
638
 
648
- 45. `listTestIds` — List the tests in a BrowserStack build (Automate or App Automate) with each test's `status` and `session_id`, optionally filtered by status (passed/failed/pending/skipped). The `session_id` feeds `getFailureLogs` and `fetchAutomationScreenshots` directly.
639
+ 44. `listTestIds` — List test IDs from a BrowserStack Automate build, filtered by status (passed/failed/pending/skipped).
649
640
  **Prompt example**
650
641
 
651
642
  ```text
652
643
  List the failed test IDs from build UUID <your-build-uuid> on BrowserStack
653
644
  ```
654
- 46. `askBrowserStackAI` *(Alpha, limited availability)* — Hand a multi-step task to BrowserStack's agent in plain language; it decides which calls to make and returns the answer plus the steps it took. Covers Test Management and Test Reporting & Analytics. Anything that would change data pauses for your confirmation in your own client; deletes are refused outright. Requires the account to be enrolled — otherwise it returns an entitlement error and nothing runs.
655
- **Prompt example**
656
-
657
- ```text
658
- Find all payment test cases in project Shopping App and add the 'regression' tag to them
659
- ```
660
-
661
645
 
662
646
  ## 🚀 Remote MCP Server
663
647