File tree Expand file tree Collapse file tree 7 files changed +61
-44
lines changed Expand file tree Collapse file tree 7 files changed +61
-44
lines changed Original file line number Diff line number Diff line change 11{
22 "name" : " @browserstack/mcp-server" ,
3- "version" : " 1.2.5 " ,
3+ "version" : " 1.2.6 " ,
44 "description" : " BrowserStack's Official MCP Server" ,
55 "mcpName" : " io.github.browserstack/mcp-server" ,
66 "main" : " dist/index.js" ,
Original file line number Diff line number Diff line change @@ -99,15 +99,6 @@ Alternative setup for Gradle users:
9999${ GRADLE_SETUP_INSTRUCTIONS } `;
100100}
101101
102- function getPythonSDKInstructions ( username : string , accessKey : string ) : string {
103- return `---STEP---
104- Install BrowserStack Python SDK and setup:
105- \`\`\`bash
106- pip install browserstack-sdk
107- browserstack-sdk setup --username "${ username } " --key "${ accessKey } "
108- \`\`\`` ;
109- }
110-
111102// Main function to get SDK setup commands based on language and framework
112103export function getSDKPrefixCommand (
113104 language : SDKSupportedLanguage ,
@@ -121,8 +112,7 @@ export function getSDKPrefixCommand(
121112
122113 case "java" :
123114 return getJavaSDKInstructions ( framework , username , accessKey ) ;
124- case "python" :
125- return getPythonSDKInstructions ( username , accessKey ) ;
115+
126116 default :
127117 return "" ;
128118 }
Original file line number Diff line number Diff line change 11import { ValidatedEnvironment } from "../common/device-validator.js" ;
2-
3- export function generateBrowserStackYMLInstructions ( config : {
4- validatedEnvironments ?: ValidatedEnvironment [ ] ;
5- platforms ?: string [ ] ;
6- enablePercy ?: boolean ;
7- projectName : string ;
8- } ) : string {
2+ import { BrowserStackConfig } from "../../../lib/types.js" ;
3+ import { getBrowserStackAuth } from "../../../lib/get-auth.js" ;
4+
5+ export function generateBrowserStackYMLInstructions (
6+ config : {
7+ validatedEnvironments ?: ValidatedEnvironment [ ] ;
8+ platforms ?: string [ ] ;
9+ enablePercy ?: boolean ;
10+ projectName : string ;
11+ } ,
12+ browserStackConfig : BrowserStackConfig ,
13+ ) : string {
914 const enablePercy = config . enablePercy || false ;
1015 const projectName = config . projectName || "BrowserStack Automate Build" ;
1116
17+ // Get credentials from config
18+ const authString = getBrowserStackAuth ( browserStackConfig ) ;
19+ const [ username , accessKey ] = authString . split ( ":" ) ;
20+
1221 // Generate platform configurations using the utility function
1322 const platformConfigs = generatePlatformConfigs ( config ) ;
1423
@@ -22,6 +31,9 @@ export function generateBrowserStackYMLInstructions(config: {
2231# BrowserStack Reporting
2332# ======================
2433
34+ userName: ${ username }
35+ accessKey: ${ accessKey }
36+
2537# TODO: Replace these sample values with your actual project details
2638projectName: ${ projectName }
2739buildName: ${ buildName }
Original file line number Diff line number Diff line change @@ -32,7 +32,7 @@ browserstack-sdk pytest <path-to-test-directory>
3232} ;
3333
3434export const generatePythonFrameworkInstructions =
35- ( framework : string ) => ( ) => {
35+ ( framework : string ) => ( username : string , accessKey : string ) => {
3636 const setup = `
3737---STEP---
3838
@@ -41,6 +41,13 @@ Install the BrowserStack SDK:
4141\`\`\`bash
4242python3 -m pip install browserstack-sdk
4343\`\`\`
44+
45+ ---STEP---
46+
47+ Setup the BrowserStack SDK with framework-specific configuration:
48+ \`\`\`bash
49+ browserstack-sdk setup --framework "${ framework } " --username "${ username } " --key "${ accessKey } "
50+ \`\`\`
4451` ;
4552
4653 const run = `
Original file line number Diff line number Diff line change @@ -86,20 +86,6 @@ export async function runBstackSDKOnly(
8686 } ) ;
8787 }
8888
89- const ymlInstructions = generateBrowserStackYMLInstructions ( {
90- validatedEnvironments,
91- enablePercy : false ,
92- projectName : input . projectName ,
93- } ) ;
94-
95- if ( ymlInstructions ) {
96- steps . push ( {
97- type : "instruction" ,
98- title : "Configure browserstack.yml" ,
99- content : ymlInstructions ,
100- } ) ;
101- }
102-
10389 const frameworkInstructions = getInstructionsForProjectConfiguration (
10490 input . detectedBrowserAutomationFramework as SDKSupportedBrowserAutomationFramework ,
10591 input . detectedTestingFramework as SDKSupportedTestingFramework ,
@@ -116,7 +102,26 @@ export async function runBstackSDKOnly(
116102 content : frameworkInstructions . setup ,
117103 } ) ;
118104 }
105+ }
119106
107+ const ymlInstructions = generateBrowserStackYMLInstructions (
108+ {
109+ validatedEnvironments,
110+ enablePercy : false ,
111+ projectName : input . projectName ,
112+ } ,
113+ config ,
114+ ) ;
115+
116+ if ( ymlInstructions ) {
117+ steps . push ( {
118+ type : "instruction" ,
119+ title : "Configure browserstack.yml" ,
120+ content : ymlInstructions ,
121+ } ) ;
122+ }
123+
124+ if ( frameworkInstructions ) {
120125 if ( frameworkInstructions . run && ! isPercyAutomate ) {
121126 steps . push ( {
122127 type : "instruction" ,
Original file line number Diff line number Diff line change @@ -106,14 +106,17 @@ export function runPercyWithBrowserstackSDK(
106106 } ) ;
107107 }
108108
109- const ymlInstructions = generateBrowserStackYMLInstructions ( {
110- platforms :
111- ( ( input as any ) . devices as string [ ] [ ] | undefined ) ?. map ( ( t ) =>
112- t . join ( " " ) ,
113- ) || [ ] ,
114- enablePercy : true ,
115- projectName : input . projectName ,
116- } ) ;
109+ const ymlInstructions = generateBrowserStackYMLInstructions (
110+ {
111+ platforms :
112+ ( ( input as any ) . devices as string [ ] [ ] | undefined ) ?. map ( ( t ) =>
113+ t . join ( " " ) ,
114+ ) || [ ] ,
115+ enablePercy : true ,
116+ projectName : input . projectName ,
117+ } ,
118+ config ,
119+ ) ;
117120
118121 if ( ymlInstructions ) {
119122 steps . push ( {
You can’t perform that action at this time.
0 commit comments