diff --git a/package-lock.json b/package-lock.json index 69a1d53..0932f5e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@browserstack/mcp-server", - "version": "1.2.11", + "version": "1.2.13", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@browserstack/mcp-server", - "version": "1.2.11", + "version": "1.2.13", "license": "ISC", "dependencies": { "@modelcontextprotocol/sdk": "^1.25.2", diff --git a/package.json b/package.json index 1bdaca6..c31d80b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@browserstack/mcp-server", - "version": "1.2.12", + "version": "1.2.13", "description": "BrowserStack's Official MCP Server", "mcpName": "io.github.browserstack/mcp-server", "main": "dist/index.js", diff --git a/server.json b/server.json index 8019232..a6037a7 100644 --- a/server.json +++ b/server.json @@ -11,7 +11,7 @@ { "registryType": "npm", "identifier": "@browserstack/mcp-server", - "version": "1.2.12", + "version": "1.2.13", "transport": { "type": "stdio" }, diff --git a/src/tools/accessibility.ts b/src/tools/accessibility.ts index 912877e..beae4fd 100644 --- a/src/tools/accessibility.ts +++ b/src/tools/accessibility.ts @@ -195,7 +195,12 @@ async function fetchAccessibilityIssues( } async function executeAccessibilityScan( - args: { name: string; pageURL: string; authConfigId?: number }, + args: { + name: string; + pageURL: string; + authConfigId?: number; + advancedRules?: boolean; + }, context: ScanProgressContext, server: McpServer, config: BrowserStackConfig, @@ -213,6 +218,7 @@ async function executeAccessibilityScan( context, config, args.authConfigId, + args.advancedRules, ); } catch (error) { return handleMCPError("startAccessibilityScan", server, config, error); @@ -368,10 +374,16 @@ async function runAccessibilityScan( context: ScanProgressContext, config: BrowserStackConfig, authConfigId?: number, + advancedRules?: boolean, ): Promise { const scanner = await initializeScanner(config); - const startResp = await scanner.startScan(name, [pageURL], authConfigId); + const startResp = await scanner.startScan( + name, + [pageURL], + authConfigId, + advancedRules, + ); const scanId = startResp.data!.id; const scanRunId = startResp.data!.scanRunId; @@ -431,6 +443,10 @@ export default function addAccessibilityTools( .number() .optional() .describe("Optional auth config ID for authenticated scans"), + advancedRules: z + .boolean() + .optional() + .describe("Enable advanced accessibility rules in the scan settings"), }, async (args, context) => { return await executeAccessibilityScan(args, context, server, config); diff --git a/src/tools/accessiblity-utils/scanner.ts b/src/tools/accessiblity-utils/scanner.ts index f5e9c12..8ea6b4f 100644 --- a/src/tools/accessiblity-utils/scanner.ts +++ b/src/tools/accessiblity-utils/scanner.ts @@ -31,6 +31,7 @@ export class AccessibilityScanner { name: string, urlList: string[], authConfigId?: number, + advancedRules?: boolean, ): Promise { if (!this.auth?.username || !this.auth?.password) { throw new Error( @@ -84,6 +85,9 @@ export class AccessibilityScanner { urlList: transformedUrlList, recurring: false, ...(authConfigId && { authConfigId }), + ...(advancedRules !== undefined && { + scanSettings: { advancedRules }, + }), }; let requestBody = baseRequestBody;