From 871d863a4c3171f201136fd6653a46924b138664 Mon Sep 17 00:00:00 2001 From: Abhishek Gadekar Date: Thu, 18 Jun 2026 17:22:24 +0530 Subject: [PATCH] fix(mcp): create a context when remote browser has none Connecting to a remote browser via --endpoint forces isolated=false, so the server takes the browser.contexts()[0] branch. A browserType.connect()-ed browser has no contexts, so contexts()[0] is undefined and BrowserBackend crashes on the first tool call with "Cannot read properties of undefined (reading 'once')". Create a context when none exists. --- packages/playwright-core/src/tools/mcp/program.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/playwright-core/src/tools/mcp/program.ts b/packages/playwright-core/src/tools/mcp/program.ts index e29d72fed016c..e3435a6d9b89c 100644 --- a/packages/playwright-core/src/tools/mcp/program.ts +++ b/packages/playwright-core/src/tools/mcp/program.ts @@ -127,7 +127,7 @@ export function decorateMCPCommand(command: Command) { const sessionName = count > 1 ? `${clientInfo.clientName} (${count})` : clientInfo.clientName; await browser.bind(sessionName, { workspaceDir: clientInfo.cwd }); } - const browserContext = config.browser.isolated ? await browser.newContext(config.browser.contextOptions) : browser.contexts()[0]; + const browserContext = config.browser.isolated || !browser.contexts().length ? await browser.newContext(config.browser.contextOptions) : browser.contexts()[0]; return new BrowserBackend(config, browserContext, tools); }, disposed: async backend => {