Skip to main content
Glama

BrowserStack MCP server

Official
java.ts5.68 kB
// Java instructions and commands for App SDK utilities import { createStep, combineInstructions, createEnvStep, PLATFORM_UTILS, } from "../index.js"; // Java-specific constants and mappings export const MAVEN_ARCHETYPE_GROUP_ID = "com.browserstack"; export const MAVEN_ARCHETYPE_ARTIFACT_ID = "junit-archetype-integrate"; export const MAVEN_ARCHETYPE_VERSION = "1.0"; // Version mapping for different frameworks export const JAVA_APP_FRAMEWORK_VERSION_MAP: Record<string, string> = { testng: "1.4", selenide: "1.4", junit5: "1.0", junit4: "1.0", jbehave: "1.0", cucumberTestng: "1.0", cucumberJunit4: "1.0", cucumberJunit5: "1.0", cucumber: "1.0", serenity: "1.0", }; // Framework mapping for Java Maven archetype generation for App Automate export const JAVA_APP_FRAMEWORK_MAP: Record<string, string> = { testng: "testng-archetype-integrate", junit5: "browserstack-sdk-archetype-integrate", selenide: "selenide-archetype-integrate", jbehave: "browserstack-sdk-archetype-integrate", junit4: "browserstack-sdk-archetype-integrate", cucumberTestng: "browserstack-sdk-archetype-integrate", cucumberJunit4: "browserstack-sdk-archetype-integrate", cucumberJunit5: "browserstack-sdk-archetype-integrate", cucumber: "browserstack-sdk-archetype-integrate", serenity: "browserstack-sdk-archetype-integrate", }; // Common Gradle setup instructions for App Automate (platform-independent) export const GRADLE_APP_SETUP_INSTRUCTIONS = ` **For Gradle setup:** 1. Add browserstack-java-sdk to dependencies: compileOnly 'com.browserstack:browserstack-java-sdk:latest.release' 2. Add browserstackSDK path variable: def browserstackSDKArtifact = configurations.compileClasspath.resolvedConfiguration.resolvedArtifacts.find { it.name == 'browserstack-java-sdk' } 3. Add javaagent to gradle tasks: jvmArgs "-javaagent:\${browserstackSDKArtifact.file}" `; export function getJavaAppInstructions(): string { const baseRunStep = createStep( "Run your App Automate test suite:", `\`\`\`bash mvn test \`\`\``, ); return baseRunStep; } export function getJavaAppFrameworkForMaven(framework: string): string { return JAVA_APP_FRAMEWORK_MAP[framework] || framework; } export function getJavaAppFrameworkVersion(framework: string): string { return JAVA_APP_FRAMEWORK_VERSION_MAP[framework] || MAVEN_ARCHETYPE_VERSION; } function getMavenCommandForWindows( framework: string, mavenFramework: string, version: string, username: string, accessKey: string, appPath?: string, ): string { let command = `mvn archetype:generate -B ` + `-DarchetypeGroupId="${MAVEN_ARCHETYPE_GROUP_ID}" ` + `-DarchetypeArtifactId="${mavenFramework}" ` + `-DarchetypeVersion="${version}" ` + `-DgroupId="${MAVEN_ARCHETYPE_GROUP_ID}" ` + `-DartifactId="${mavenFramework}" ` + `-Dversion="${version}" ` + `-DBROWSERSTACK_USERNAME="${username}" ` + `-DBROWSERSTACK_ACCESS_KEY="${accessKey}"`; // Add framework parameter for browserstack-sdk-archetype-integrate if (mavenFramework === "browserstack-sdk-archetype-integrate") { command += ` -DBROWSERSTACK_FRAMEWORK="${framework}"`; } // Add app path if provided if (appPath) { command += ` -DBROWSERSTACK_APP="${appPath}"`; } return command; } function getMavenCommandForUnix( framework: string, mavenFramework: string, version: string, username: string, accessKey: string, appPath?: string, ): string { let command = `mvn archetype:generate -B ` + `-DarchetypeGroupId="${MAVEN_ARCHETYPE_GROUP_ID}" ` + `-DarchetypeArtifactId="${mavenFramework}" ` + `-DarchetypeVersion="${version}" ` + `-DgroupId="${MAVEN_ARCHETYPE_GROUP_ID}" ` + `-DartifactId="${mavenFramework}" ` + `-Dversion="${version}" ` + `-DBROWSERSTACK_USERNAME="${username}" ` + `-DBROWSERSTACK_ACCESS_KEY="${accessKey}"`; // Add framework parameter for browserstack-sdk-archetype-integrate if (mavenFramework === "browserstack-sdk-archetype-integrate") { command += ` -DBROWSERSTACK_FRAMEWORK="${framework}"`; } // Add app path if provided if (appPath) { command += ` -DBROWSERSTACK_APP="${appPath}"`; } return command; } export function getJavaSDKCommand( framework: string, username: string, accessKey: string, appPath?: string, ): string { const { isWindows = false, getPlatformLabel } = PLATFORM_UTILS || {}; const mavenFramework = getJavaAppFrameworkForMaven(framework); const version = getJavaAppFrameworkVersion(framework); let mavenCommand: string; if (isWindows) { mavenCommand = getMavenCommandForWindows( framework, mavenFramework, version, username, accessKey, appPath, ); } else { mavenCommand = getMavenCommandForUnix( framework, mavenFramework, version, username, accessKey, appPath, ); } const envStep = createEnvStep( username, accessKey, isWindows, getPlatformLabel(), ); const mavenStep = createStep( "Install BrowserStack SDK using Maven Archetype for App Automate", `Maven command for ${framework} (${getPlatformLabel()}): \`\`\`bash ${mavenCommand} \`\`\` Alternative setup for Gradle users: ${GRADLE_APP_SETUP_INSTRUCTIONS}`, ); const argsLineStep = createStep( "Verifying dependency and argsLine", `Verify browserstack-java-sdk with LATEST is added as dependency and add this line in pom.xml if not added: \`\`\`xml <argLine>-javaagent:"\${com.browserstack:browserstack-java-sdk:jar}"</argLine> \`\`\``, ); return combineInstructions(envStep, mavenStep, argsLineStep); }

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/browserstack/mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server