From aef110a8f851a980607ddd6efae7a82e9c27e22b Mon Sep 17 00:00:00 2001 From: jackwener Date: Sun, 15 Mar 2026 15:54:08 +0800 Subject: [PATCH] feat(browser): support OPENCLI_BROWSER_EXECUTABLE_PATH env var to specify custom Playwright MCP browser path (Resolves #8) --- src/browser.ts | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/browser.ts b/src/browser.ts index 15e5208..efee67e 100644 --- a/src/browser.ts +++ b/src/browser.ts @@ -221,10 +221,15 @@ export class PlaywrightMCP { return new Promise((resolve, reject) => { const timer = setTimeout(() => reject(new Error(`Timed out connecting to browser (${timeout}s)`)), timeout * 1000); - this._proc = spawn('node', [mcpPath, '--extension'], { - stdio: ['pipe', 'pipe', 'pipe'], - env: { ...process.env, ...(process.env.PLAYWRIGHT_MCP_EXTENSION_TOKEN ? { PLAYWRIGHT_MCP_EXTENSION_TOKEN: process.env.PLAYWRIGHT_MCP_EXTENSION_TOKEN } : {}) }, - }); + const mcpArgs = [mcpPath, '--extension']; + if (process.env.OPENCLI_BROWSER_EXECUTABLE_PATH) { + mcpArgs.push('--executablePath', process.env.OPENCLI_BROWSER_EXECUTABLE_PATH); + } + + this._proc = spawn('node', mcpArgs, { + stdio: ['pipe', 'pipe', 'pipe'], + env: { ...process.env, ...(process.env.PLAYWRIGHT_MCP_EXTENSION_TOKEN ? { PLAYWRIGHT_MCP_EXTENSION_TOKEN: process.env.PLAYWRIGHT_MCP_EXTENSION_TOKEN } : {}) }, + }); // Increase max listeners to avoid warnings this._proc.setMaxListeners(20);