Skip to main content
Glama
browserstack

BrowserStack MCP server

Official
tm-base-url.ts1.56 kB
import { apiClient } from "./apiClient.js"; import logger from "../logger.js"; import { BrowserStackConfig } from "./types.js"; import { getBrowserStackAuth } from "./get-auth.js"; const TM_BASE_URLS = [ "https://test-management.browserstack.com", "https://test-management-eu.browserstack.com", "https://test-management-in.browserstack.com", ] as const; let cachedBaseUrl: string | null = null; export async function getTMBaseURL( config: BrowserStackConfig, ): Promise<string> { if (cachedBaseUrl) { logger.debug(`Using cached TM base URL: ${cachedBaseUrl}`); return cachedBaseUrl; } logger.info( "No cached TM base URL found, testing available URLs with authentication", ); const authString = getBrowserStackAuth(config); const [username, password] = authString.split(":"); const authHeader = "Basic " + Buffer.from(`${username}:${password}`).toString("base64"); for (const baseUrl of TM_BASE_URLS) { try { const res = await apiClient.get({ url: `${baseUrl}/api/v2/projects/`, headers: { Authorization: authHeader }, raise_error: false, }); if (res.ok) { cachedBaseUrl = baseUrl; logger.info(`Selected TM base URL: ${baseUrl}`); return baseUrl; } } catch (err) { logger.debug(`Failed TM base URL: ${baseUrl} (${err})`); } } throw new Error( "Unable to connect to BrowserStack Test Management. Please check your credentials and network connection.Please open an issue on GitHub if the problem persists", ); }

Latest Blog Posts

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