diff --git a/src/bridge.ts b/src/bridge.ts index 7c7ac76..e20f899 100644 --- a/src/bridge.ts +++ b/src/bridge.ts @@ -668,6 +668,10 @@ export function shouldRunHeaded(): boolean { export function buildTransportArgs(): string[] { const args: string[] = []; + // opera-devtools-mcp 0.6+ requires pageId on page-scoped tools by default. + // We never route by pageId — disable it so every tool works on the selected page. + args.push("--no-page-id-routing"); + const browserUrl = process.env.OPERA_CLI_BROWSER_URL; const userDataDir = process.env.OPERA_CLI_USER_DATA_DIR; const executablePath = process.env.OPERA_CLI_EXECUTABLE_PATH; diff --git a/test/bridge.test.ts b/test/bridge.test.ts index 3377329..d7a0ed2 100644 --- a/test/bridge.test.ts +++ b/test/bridge.test.ts @@ -157,15 +157,15 @@ describe("buildTransportArgs", () => { process.env.OPERA_CLI_EXECUTABLE_PATH = savedEnv.OPERA_CLI_EXECUTABLE_PATH; }); - it("defaults to headless and isolated", () => { + it("defaults to headless and isolated with no-page-id-routing", () => { const args = buildTransportArgs(); - expect(args).toEqual(["--isolated", "--headless"]); + expect(args).toEqual(["--no-page-id-routing", "--isolated", "--headless"]); }); it("omits --headless when OPERA_CLI_HEADED=1", () => { process.env.OPERA_CLI_HEADED = "1"; const args = buildTransportArgs(); - expect(args).toEqual(["--isolated"]); + expect(args).toEqual(["--no-page-id-routing", "--isolated"]); }); it("forwards chrome args via --chrome-arg=", () => {