Skip to main content
Glama

BrowserStack MCP server

Official
testcase-from-file.ts2.61 kB
import { CreateTestCasesFromFileArgs } from "./TCG-utils/types.js"; import { fetchFormFields, triggerTestCaseGeneration, pollScenariosTestDetails, bulkCreateTestCases, } from "./TCG-utils/api.js"; import { buildDefaultFieldMaps, findBooleanFieldId, } from "./TCG-utils/helpers.js"; import { CallToolResult } from "@modelcontextprotocol/sdk/types.js"; import { signedUrlMap } from "../../lib/inmemory-store.js"; import logger from "../../logger.js"; import { projectIdentifierToId } from "./TCG-utils/api.js"; import { BrowserStackConfig } from "../../lib/types.js"; export async function createTestCasesFromFile( args: CreateTestCasesFromFileArgs, context: any, config: BrowserStackConfig, ): Promise<CallToolResult> { logger.info( `createTestCasesFromFile called with projectId: ${args.projectReferenceId}, folderId: ${args.folderId}`, ); if (args.projectReferenceId.startsWith("PR-")) { args.projectReferenceId = await projectIdentifierToId( args.projectReferenceId, config, ); } const { default_fields, custom_fields } = await fetchFormFields( args.projectReferenceId, config, ); const fieldMaps = buildDefaultFieldMaps(default_fields); const booleanFieldId = findBooleanFieldId(custom_fields); const documentObj = signedUrlMap.get(args.documentId); if (!documentObj) { return { content: [ { type: "text", text: `Document with ID ${args.documentId} not found.`, isError: true, }, ], isError: true, }; } const documentId = (documentObj as { fileId: number }).fileId; const document = (documentObj as { downloadUrl: string }).downloadUrl; const source = "jira-on-prem"; const traceId = await triggerTestCaseGeneration( document, documentId, args.folderId, args.projectReferenceId, source, config, ); const scenariosMap = await pollScenariosTestDetails( args, traceId, context, documentId, source, config, ); const resultString = await bulkCreateTestCases( scenariosMap, args.projectReferenceId, args.folderId, fieldMaps, booleanFieldId, traceId, context, documentId, config, ); signedUrlMap.delete(args.documentId); const dashboardURL = `https://test-management.browserstack.com/projects/${args.projectReferenceId}/folder/${args.folderId}/test-cases`; return { content: [ { type: "text", text: resultString, }, { type: "text", text: `Dashboard URL: ${dashboardURL}`, }, ], }; }

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