Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
118 commits
Select commit Hold shift + click to select a range
0ea454a
Merge pull request #127 from ruturaj-browserstack/accessibility-auth-…
gaurav-singh-9227 Aug 20, 2025
7b2c99a
chore: bump version to 1.2.3 in package.json and package-lock.json
tech-sushant Aug 20, 2025
cf44ae7
Merge pull request #129 from tech-sushant/bump-v
gaurav-singh-9227 Aug 20, 2025
9a6df70
feat: Add support in App Automate for Appium
tech-sushant Aug 22, 2025
feb301d
Refactoring ++
tech-sushant Aug 25, 2025
326c64a
Enhance App SDK support for additional testing frameworks
tech-sushant Aug 26, 2025
e096ad3
Additional improvements
tech-sushant Aug 26, 2025
d7eeeae
Percy setup agent integration
tech-sushant Aug 28, 2025
e2796b8
refactor: Improve code formatting and structure across multiple files
tech-sushant Aug 28, 2025
7517950
fix : Update Maven command functions
tech-sushant Aug 29, 2025
ea2cd5a
Percy Integration with new flow
tech-sushant Aug 30, 2025
d2e2374
Merge pull request #130 from tech-sushant/app-automate
gaurav-singh-9227 Sep 1, 2025
3190749
fix: remove redundant note about AI Summary availability in Percy cha…
tech-sushant Sep 1, 2025
6955360
refactor: update Percy integration to fetch changed snapshot IDs and …
tech-sushant Sep 2, 2025
2ff9176
include browser IDs in build info and snapshot fetching
tech-sushant Sep 2, 2025
be33a72
refactor: streamline browser ID extraction and update authentication …
tech-sushant Sep 2, 2025
8b5a86c
refactor: enhance walkDir function to support depth parameter for dir…
tech-sushant Sep 2, 2025
96b6b99
fix: Improve cache handling and data retrieval in getDevicesAndBrowse…
tech-sushant Sep 2, 2025
a95b196
adding remote mcp installation instruction images
pushkarbw Sep 2, 2025
ed0f5b2
Adding Remote MCP setup instructions with screenshots
pushkarbw Sep 2, 2025
0de1ffe
RemoteMCP Instructions
pushkarbw Sep 2, 2025
4377f1c
RemoteMCP Instructions
pushkarbw Sep 2, 2025
35c8a32
RemoteMCP Installation Instructions
pushkarbw Sep 2, 2025
c0057c7
Merge pull request #134 from pushkarbw/main
gaurav-singh-9227 Sep 4, 2025
8c3a224
feat: Add RCA tools for fetching and formatting Root Cause Analysis data
tech-sushant Sep 5, 2025
8d21d7c
Refactor RCA tools and add new types for improved functionality and r…
tech-sushant Sep 8, 2025
3c0fec9
RCA data fetching by improving pagination handling
tech-sushant Sep 8, 2025
ff81d6e
refactor: Simplify build ID retrieval and enhance tool descriptions f…
tech-sushant Sep 9, 2025
7858d84
fix: Update timeout value in getRCAData function and improve descript…
tech-sushant Sep 9, 2025
eac1aa6
Enhance descriptions for test ID and project/build name inputs in RCA…
tech-sushant Sep 9, 2025
6706142
fix: Improve progress calculation and centralize API state mapping fo…
tech-sushant Sep 9, 2025
8823dec
refactor: update formatToolResult to accept runType parameter and enh…
tech-sushant Sep 9, 2025
0f5c13a
chore(deps-dev): bump vite from 6.3.5 to 6.3.6
dependabot[bot] Sep 10, 2025
bc804f9
Updating instructions for one click setup
pushkarbw Sep 10, 2025
3788168
Merge branch 'browserstack:main' into main
pushkarbw Sep 10, 2025
ceede72
Merge pull request #138 from pushkarbw/main
gaurav-singh-9227 Sep 10, 2025
b17a879
refactoring for RCA Tool
tech-sushant Sep 10, 2025
a8ead54
feat: Add build insights tool to fetch and display build details and …
tech-sushant Sep 10, 2025
9c5f3d5
refactor: Remove logger and adjust test ID
tech-sushant Sep 10, 2025
d12c3ce
Update src/tools/rca-agent.ts
tech-sushant Sep 10, 2025
0b9c146
Replace console.error with logger
tech-sushant Sep 10, 2025
2e84e81
Merge previous commit
tech-sushant Sep 10, 2025
d61c9a2
Update src/tools/build-insights.ts
tech-sushant Sep 10, 2025
c553dec
Renaming to review agent
tech-sushant Sep 10, 2025
82cc762
refactor: Move parameter definitions to constants for RCA tools
tech-sushant Sep 10, 2025
bd0fc04
Merge pull request #132 from tech-sushant/percy-new-flow
gaurav-singh-9227 Sep 10, 2025
fdf7614
Merge pull request #133 from tech-sushant/live-cache
gaurav-singh-9227 Sep 10, 2025
058ad08
Merge pull request #136 from tech-sushant/rca-agent
gaurav-singh-9227 Sep 10, 2025
4fe3a2a
Merge branch 'main' into tra-insights
tech-sushant Sep 10, 2025
32eead6
Merge pull request #139 from tech-sushant/tra-insights
gaurav-singh-9227 Sep 10, 2025
1f4f3fb
fix : Instrumentation,refactoring and bump version
tech-sushant Sep 10, 2025
58c50ac
chore: update version to 1.2.4 and add mcpName field
tech-sushant Sep 10, 2025
a23d6c3
instrumentation ++
tech-sushant Sep 10, 2025
a1c2f26
linting ++
tech-sushant Sep 10, 2025
b67bea9
refactor: update params and improve descriptions
tech-sushant Sep 10, 2025
9f7d1a6
Updated Remote MCP instructions on Readme page
pushkarbw Sep 11, 2025
672d307
Merge branch 'browserstack:main' into main
pushkarbw Sep 11, 2025
31ca77f
Update README.md
pushkarbw Sep 11, 2025
ff65385
Merge pull request #141 from pushkarbw/main
gaurav-singh-9227 Sep 11, 2025
e8a653f
refactor: enhance error handling in validateSupportforAppAutomate
tech-sushant Sep 11, 2025
6532db2
refactor: add logging for directory read failures in walkDir function
tech-sushant Sep 12, 2025
3e45dbc
Merge pull request #140 from tech-sushant/refactoring-bump
gaurav-singh-9227 Sep 12, 2025
9df0732
chore(deps): bump axios from 1.8.4 to 1.12.0
dependabot[bot] Sep 12, 2025
982c4c9
Enhance One Click MCP Setup section in README
tech-sushant Sep 12, 2025
82cd9a6
Add files via upload
tech-sushant Sep 12, 2025
78970a3
Fix installation link for MCP in README
tech-sushant Sep 12, 2025
2aff478
Update README.md
tech-sushant Sep 12, 2025
742a9fd
Revise One Click MCP Setup section in README
tech-sushant Sep 12, 2025
6262eab
Update README.md
tech-sushant Sep 12, 2025
3aebfeb
Merge pull request #143 from tech-sushant/one-click-buttons
gaurav-singh-9227 Sep 12, 2025
4e943e5
fix: Enhance ApiClient with URL validation
tech-sushant Sep 15, 2025
077c9e5
Updated prompt
pushkarbw Sep 16, 2025
3b09f6b
Merge branch 'browserstack:main' into main
pushkarbw Sep 16, 2025
84c7f9e
Update README.md
pushkarbw Sep 16, 2025
2f52076
Merge pull request #147 from pushkarbw/main
gaurav-singh-9227 Sep 16, 2025
bca14ea
Adding initial frameworks
tech-sushant Sep 17, 2025
7566b37
Java Adjustments
tech-sushant Sep 17, 2025
3a61131
Initial device validations
tech-sushant Sep 18, 2025
a68e754
feat : Adding setup tool for pery
tech-sushant Sep 18, 2025
167ea43
fix : linting ++
tech-sushant Sep 18, 2025
61847da
feat: introduce validations for BrowserStack devices
tech-sushant Sep 18, 2025
58a2b24
refactor: update device validation and configuration generation for B…
tech-sushant Sep 18, 2025
50f5273
enhance device validation and configuration
tech-sushant Sep 18, 2025
8da4c98
Advancements ++
tech-sushant Sep 19, 2025
cacc90d
Refactor Maven command construction in Java SDK utilities
tech-sushant Sep 19, 2025
7e3d764
Linting ++
tech-sushant Sep 19, 2025
b2dccfe
Merge pull request #148 from tech-sushant/devices-validation
gaurav-singh-9227 Sep 23, 2025
3fb77f9
Merge pull request #150 from tech-sushant/app-automate-java
gaurav-singh-9227 Sep 23, 2025
5571de9
Merge pull request #149 from tech-sushant/simulate-tool
gaurav-singh-9227 Sep 23, 2025
567334e
Merge pull request #146 from tech-sushant/axios-fix
gaurav-singh-9227 Sep 23, 2025
6a42d1d
Merge pull request #137 from browserstack/dependabot/npm_and_yarn/vit…
gaurav-singh-9227 Sep 24, 2025
8697f0f
Merge pull request #142 from browserstack/dependabot/npm_and_yarn/axi…
gaurav-singh-9227 Sep 24, 2025
dcd95f4
chore : bump version to 1.2.5
tech-sushant Sep 24, 2025
b442528
Merge pull request #152 from tech-sushant/version-bump
gaurav-singh-9227 Sep 24, 2025
047e6cd
chore(deps): bump tar-fs from 3.0.9 to 3.1.1
dependabot[bot] Sep 24, 2025
52d1d5b
Merge pull request #153 from browserstack/dependabot/npm_and_yarn/tar…
gaurav-singh-9227 Oct 7, 2025
4f44b9d
refactor: change testId type from string to number across RCA-related…
tech-sushant Oct 7, 2025
a7c5d39
Merge pull request #155 from tech-sushant/rca-fix
gaurav-singh-9227 Oct 8, 2025
c31ee98
Adding mcp registry workflow
tech-sushant Oct 10, 2025
828370d
fix: Enhance ApiClient to support responseType in requests
tech-sushant Oct 13, 2025
a8929a0
Merge pull request #159 from tech-sushant/screenshot-array
gaurav-singh-9227 Oct 13, 2025
e17c31b
feat: Enhance test file handling by supporting specific file paths an…
tech-sushant Oct 13, 2025
9340833
feat: Refactor in-memory storage for Percy results and enhance test f…
tech-sushant Oct 14, 2025
66803a0
Simplify in-memory test file management by removing UUID references
tech-sushant Oct 14, 2025
c468b36
refactor: Update Python instructions
tech-sushant Oct 15, 2025
aedc11b
refactor: Simplify pythonInstructions by removing unused parameters
tech-sushant Oct 15, 2025
47c707e
Add Python SDK setup instructions to commands
tech-sushant Oct 15, 2025
d1f4a99
update browser configuration instructions
tech-sushant Oct 15, 2025
0ea6358
Merge pull request #162 from tech-sushant/playwright-instruction
gaurav-singh-9227 Oct 16, 2025
fce92b2
Merge pull request #160 from tech-sushant/percy-file-support
gaurav-singh-9227 Oct 16, 2025
56f311c
chore: Bump version to 1.2.6 and refactor SDK setup instructions for …
tech-sushant Oct 16, 2025
af9064e
Merge pull request #163 from tech-sushant/minor-fixes
gaurav-singh-9227 Oct 16, 2025
c858b22
Merge pull request #157 from tech-sushant/mcp-registry
gaurav-singh-9227 Oct 16, 2025
d6b5f9c
Update MCP Publisher download URL to v1.1.0
tech-sushant Oct 16, 2025
6e0a494
Merge pull request #164 from tech-sushant/tech-sushant-patch-1
gaurav-singh-9227 Oct 16, 2025
ef0c7cf
Adding server.json
tech-sushant Oct 16, 2025
52c8910
Changing version
tech-sushant Oct 16, 2025
1385177
Merge pull request #165 from tech-sushant/server-json
gaurav-singh-9227 Oct 16, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
73 changes: 73 additions & 0 deletions .github/workflows/beta-release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
name: "Beta Release"

on:
workflow_dispatch:

permissions:
contents: read

jobs:
publish-beta:
runs-on: ubuntu-latest
steps:
- name: "Checkout source code"
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: "Set up Node.js"
uses: actions/setup-node@v4
with:
node-version: 22.x
registry-url: "https://registry.npmjs.org/"

- name: "Install dependencies"
run: npm ci

- name: "Create build"
run: npm run build

- name: "Get version and package name from package.json and create beta version"
id: get_version
run: |
PACKAGE_NAME=$(node -p 'require("./package.json").name')
BASE_VERSION=$(node -p 'require("./package.json").version')

# Fetch all published versions for this package
ALL_VERSIONS=$(npm view $PACKAGE_NAME versions --json 2>/dev/null || echo "[]")

# Get latest beta for this base version
LATEST_BETA=$(echo $ALL_VERSIONS | jq -r '.[] | select(startswith("'"$BASE_VERSION"'-beta."))' | sort -V | tail -n 1)

if [ -z "$LATEST_BETA" ]; then
COUNTER=1
else
COUNTER=$(echo $LATEST_BETA | sed -E 's/.*-beta\.([0-9]+)$/\1/')
COUNTER=$((COUNTER + 1))
fi

BETA_VERSION="$BASE_VERSION-beta.$COUNTER"

echo "package=$PACKAGE_NAME" >> $GITHUB_OUTPUT
echo "version=$BETA_VERSION" >> $GITHUB_OUTPUT
echo "Beta version: $BETA_VERSION for package: $PACKAGE_NAME"

- name: "Check if beta version already exists on NPM"
run: |
PACKAGE_NAME=${{ steps.get_version.outputs.package }}
BETA_VERSION=${{ steps.get_version.outputs.version }}
if npm view $PACKAGE_NAME@$BETA_VERSION version 2>/dev/null; then
echo "Error: Beta version $BETA_VERSION already exists on NPM!"
exit 1
fi
echo "Beta version $BETA_VERSION is available for release"

- name: "Update package.json with beta version"
run: |
npm version ${{ steps.get_version.outputs.version }} --no-git-tag-version

- name: "Publish beta to NPM"
run: npm publish --tag beta --access public
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}

41 changes: 41 additions & 0 deletions .github/workflows/mcp-registry-publish.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
name: Publish to MCP Registry

on:
workflow_dispatch:
push:
tags: ["v*"]

jobs:
publish:
runs-on: ubuntu-latest
permissions:
id-token: write
contents: read

steps:
- name: Checkout code
uses: actions/checkout@v5

- name: Setup Node.js
uses: actions/setup-node@v5
with:
node-version: "lts/*"

- name: Install dependencies
run: npm ci

- name: Run tests
run: npm run test --if-present

- name: Build package
run: npm run build --if-present

- name: Install MCP Publisher
run: |
curl -L "https://github.com/modelcontextprotocol/registry/releases/download/v1.1.0/mcp-publisher_1.1.0_$(uname -s | tr '[:upper:]' '[:lower:]')_$(uname -m | sed 's/x86_64/amd64/;s/aarch64/arm64/').tar.gz" | tar xz mcp-publisher

- name: Login to MCP Registry
run: ./mcp-publisher login github-oidc

- name: Publish to MCP Registry
run: ./mcp-publisher publish
102 changes: 96 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,10 +35,21 @@ 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
## ⚡️ One Click MCP Setup

[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install_Server-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](http://mcp.browserstack.com/one-click-setup?client=vscode)   [![Install in Cursor](https://img.shields.io/badge/Cursor-Install_Server-24bfa5?style=flat-square&color=000000&logo=visualstudiocode&logoColor=white)](http://mcp.browserstack.com/one-click-setup?client=cursor)
Click on the buttons below to install MCP in your respective IDE:

<a href="http://mcp.browserstack.com/one-click-setup?client=vscode"><img src="assets/one-click-vs-code.png" alt="Install in VS Code" width="160" height="80"></a>&nbsp;&nbsp;&nbsp;<a href="http://mcp.browserstack.com/one-click-setup?client=cursor"><img src="assets/one-click-cursor.png" alt="Install in Cursor" width="150" height="70"></a>

#### Note : Ensure you are using Node version >= `18.0`
- Check your node version using `node --version`. Recommended version: `v22.15.0` (LTS)
- To Upgrade Node :
- 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`
- 2. On Windows `(nvm-windows) : nvm install 22.15.0 && nvm use 22.15.0`
- 👉 <a href="https://nodejs.org/en/download" target="_blank">Or directly download the Node.js LTS Installer</a>

.

## 💡 Usage Examples

### 📱 Manual App Testing
Expand Down Expand Up @@ -142,10 +153,15 @@ Generate test cases from PRDs, convert manual tests to low-code automation, and

## 🛠️ Installation

### 📋 Prerequisites for MCP Setup
#### Note : Ensure you are using Node version >= `18.0`
- Check your node version using `node --version`. Recommended version: `v22.15.0` (LTS)

### **One Click MCP Setup**

[![Install in VS Code](https://img.shields.io/badge/VS_Code-Install_Server-0098FF?style=flat-square&logo=visualstudiocode&logoColor=white)](http://mcp.browserstack.com/one-click-setup?client=vscode) &nbsp; [![Install in Cursor](https://img.shields.io/badge/Cursor-Install_Server-24bfa5?style=flat-square&color=000000&logo=visualstudiocode&logoColor=white)](http://mcp.browserstack.com/one-click-setup?client=cursor)
Click on the buttons below to install MCP in your respective IDE:

<a href="http://mcp.browserstack.com/one-click-setup?client=vscode"><img src="assets/one-click-vs-code.png" alt="Install in VS Code" width="160" height="80"></a>&nbsp;&nbsp;&nbsp;<a href="http://mcp.browserstack.com/one-click-setup?client=cursor"><img src="assets/one-click-cursor.png" alt="Install in Cursor" width="150" height="70"></a>

### **Alternate ways to Setup MCP server**

Expand All @@ -158,7 +174,9 @@ Generate test cases from PRDs, convert manual tests to low-code automation, and

- 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).

2. Ensure you are using Node version >= `18.0`. Check your node version using `node --version`. Recommended version: `v22.15.0` (LTS)
2. #### Note : Ensure you are using Node version >= `18.0`
- Check your node version using `node --version`. Recommended version: `v22.15.0` (LTS)


3. **Install the MCP Server**

Expand Down Expand Up @@ -404,14 +422,14 @@ As of now we support 20 tools.
**Prompt example**

```text
Take a screenshot of my app on Google Pixel 6 with Android 14 while testing on App Automate. App file path: /Users/xyz/app-debug.apk
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
```

15. `runAppTestsOnBrowserStack` — Run automated mobile tests (Espresso/XCUITest, etc.) on real devices.
**Prompt example**

```text
Run Espresso tests from /tests/checkout.zip on Galaxy S21 and Pixel 6 with Android 14. App path is /apps/beta-release.apk under project 'Checkout Flow'
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'
```

---
Expand Down Expand Up @@ -456,7 +474,79 @@ As of now we support 20 tools.
```text
Upload PRD from /Users/xyz/Desktop/login-flow.pdf and use BrowserStack AI to generate test cases
```
## 🚀 Remote MCP Server

Remote MCP comes with all the functionalities of an MCP server without the hassles of complex setup or local installation.

### Key benefits:

- ✅ Works seamlessly in enterprise networks without worrying about firewalls or binaries or where local installation is not allowed.

- ✅ Secure OAuth integration – no password sharing or manual credential handling.

### Limitations:

- ❌ No Local Testing support (cannot test apps behind VPNs, firewalls, or localhost). If you have to do Local Testing, you would have to use a BrowserStack Local MCP server.
- ❌ Latency can be slightly higher, but nothing considerable — you generally won’t notice it in normal use.

### Installation Steps:

- On VSCode (Copilot - Agent Mode): `.vscode/mcp.json`:

- Locate or Create the Configuration File:
- In the root directory of your project, look for a folder named .vscode. This folder is usually hidden so you will need to find it as mentioned in the expand.
- If this folder doesn't exist, create it.
- Inside the .vscode folder, create a new file named mcp.json
- To setup Remote BrowserStack MCP instead of local BrowserStack MCP you can add the following JSON content :
<div align="center">
<img src="assets/remotemcp_json_file.png" alt="Remote MCP JSON file" height="300" width="300">
</div>

### Alternative way to Setup Remote MCP

- Step 1.Click on the gear icon to Select Tools

<div align="center">
<img src="assets/select_tools.png" alt="Select Tools" height="300" width="300">
</div>

- Step 2. A tool menu would appear at the top-centre, scroll down on the menu at the top and then Click on Add MCP Server

<div align="center">
<img src="assets/add_mcp_server.png" alt="Add MCP Server" height="300" width="300">
</div>

- Step 3. Click on HTTP option
<div align="center">
<img src="assets/http_option.png" alt="HTTP Option" height="300" width="300">
</div>

- Step 4. Paste Remote MCP Server URL : https://mcp.browserstack.com/mcp
<div align="center">
<img src="assets/server_url.png" alt="Remote MCP Server URL" height="300" width="300">
</div>

- Step 5. Give server id as : browserstack

<div align="center">
<img src="assets/server_id.png" alt="Remote MCP Server ID" height="300" width="300">
</div>

- Step 6. In VSCode Click on start MCP Server and then click on "Allow"

<div align="center">
<img src="assets/authentication1.png" alt="authentication1" height="300" width="300">
</div>

<div align="center">
<img src="assets/authentication2.png" alt="authentication2" height="300" width="300">
</div>

<div align="center">
<img src="assets/signin_success.png" alt="Sign_in_success" height="300" width="300">
</div>



## 🤝 Recommended MCP Clients

Expand Down
Binary file added assets/authentication1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/authentication2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/http_option.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/one-click-cursor.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/one-click-vs-code.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/remotemcp_json_file.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/server_id.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/server_url.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/signin_success.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Loading