From ab6f09074619b10e9aee2d8e0b9661ce01dd4fd9 Mon Sep 17 00:00:00 2001 From: Gustav Louv Date: Thu, 29 Oct 2026 15:58:01 +0100 Subject: [PATCH 1/2] instructions: the web goes through the Chrome the person already uses; work inside pages is Browser MCP's, or name it once Gustav 29/10: computer-mcp should always use the person's normal, signed-in Chrome for the web, and hand in-page work to browser-mcp when it is in the session. This server does not see inside pages (its own instructions say so), so the in-page part is browser-mcp's; without it, the agent names Browser MCP once with its install line and never installs. test/laering.mjs 1c-1f pin the text; each check mutation-proven. Co-Authored-By: Claude Opus 5.5 --- CHANGELOG.md | 8 ++++++++ mcp-server/index.js | 12 ++++++++++++ test/laering.mjs | 5 +++++ 3 files changed, 25 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 19c072e1..565d8a1c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,14 @@ Dates are the day the version was tagged. Everything here was measured before it was written down; where a claim has a test, the test is named. +## 0.4.1 (in progress) + +**The web goes through the Chrome you already use.** The instructions the server sends with it now say that a step +on the web uses the Chrome the person normally uses and is signed in to - not Safari, a new profile or another +browser. This server does not see inside pages, so when Browser MCP's tools are in the session, the work inside +the page is theirs; when they are not and the task is mostly in web pages, the agent says once that Browser MCP +does that, with its install line, and never installs it itself. Test: `test/laering.mjs` 1c-1f. + ## 0.4.0 (in progress) **A stop lets go of the mouse button and starts nothing new.** A drag holds the diff --git a/mcp-server/index.js b/mcp-server/index.js index 6ace6e82..3cf0a884 100644 --- a/mcp-server/index.js +++ b/mcp-server/index.js @@ -264,6 +264,18 @@ or [cut: ...], the answer is PART of the tree - narrow it with \`computer_find\` rather than trusting what came back. It does not see inside web pages; that is what a browser tool is for. +The web: when a step needs a web page, use the Chrome the person normally uses - +the profile whose windows are open, signed in to their accounts - not Safari, a +new profile or another browser, unless they ask for one. \`computer_windows\` +with app "Google Chrome" shows its windows. This server does not see inside +pages, so if Browser MCP's tools (browser_*) are in this session, let them do +the work inside the page - they work in that same Chrome - and keep this server +for what is outside it: the file picker, an OS dialog, another app. If they are +not here and the task is mostly inside web pages, tell the person once that +Browser MCP does that (https://browsermcp.dev, by the same maker: a Chrome +extension plus \`claude mcp add --scope user browser-mcp -- npx @agent360/browser-mcp@latest\`). +Do not install it yourself. + Everything is written to an append-only audit log with a rolling chain.`; const server = new Server( diff --git a/test/laering.mjs b/test/laering.mjs index e18a8240..fdced284 100644 --- a/test/laering.mjs +++ b/test/laering.mjs @@ -35,6 +35,11 @@ try { check('1 værktøjet findes', vaerktoejer.some(t => t.name === 'computer_learning')); const vejl = (await rpc('initialize', { protocolVersion: '2024-11-05', capabilities: {}, clientInfo: { name: 'x', version: '1' } })).result?.instructions || ''; check('1b vejledningen peger på det, når et trin intet gjorde', /computer_learning/.test(vejl)); + // 29/10 (Gustav): nettet går gennem den Chrome personen bruger og er logget ind i, og arbejdet inde i siden er Browser MCP's. + check('1c nettet går gennem personens egen, indloggede Chrome', /use the Chrome the person normally uses/.test(vejl) && /signed in to their accounts - not Safari/.test(vejl)); + check('1d arbejdet inde i siden gives til Browser MCP, når den er her', /if Browser MCP's tools \(browser_\*\) are in this session, let them do/.test(vejl)); + check('1e mangler Browser MCP, får personen den rigtige installation', /claude mcp add --scope user browser-mcp -- npx @agent360\/browser-mcp@latest/.test(vejl) && /a Chrome\s+extension plus/.test(vejl)); + check('1f agenten installerer aldrig selv', /Do not install it yourself\./.test(vejl)); const r = await kald('computer_learning', { kind: 'workaround', app: 'net.whatsapp.WhatsApp', tool: 'computer_set_value', From 995f07cf5c8ddf32991b205e33a3fe18bb88fdc5 Mon Sep 17 00:00:00 2001 From: Gustav Louv Date: Thu, 29 Oct 2026 16:50:45 +0100 Subject: [PATCH 2/2] instructions: ask when the Chrome profile is unclear; browser_* works in its extension's profile (P183) Opus P183: GODKENDT MED RETTELSER - C1 applied verbatim, checks 1g/1h added (each proven red when its phrase is removed). Co-Authored-By: Claude Opus 5.5 --- CHANGELOG.md | 8 +++++--- mcp-server/index.js | 17 ++++++++++------- test/laering.mjs | 2 ++ 3 files changed, 17 insertions(+), 10 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 565d8a1c..fc56f74e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,9 +7,11 @@ was written down; where a claim has a test, the test is named. **The web goes through the Chrome you already use.** The instructions the server sends with it now say that a step on the web uses the Chrome the person normally uses and is signed in to - not Safari, a new profile or another -browser. This server does not see inside pages, so when Browser MCP's tools are in the session, the work inside -the page is theirs; when they are not and the task is mostly in web pages, the agent says once that Browser MCP -does that, with its install line, and never installs it itself. Test: `test/laering.mjs` 1c-1f. +browser - and that the agent asks the person when it cannot tell which profile a task belongs to. This server does +not see inside pages, so when Browser MCP's tools are in the session, the work inside the page is theirs, in the +profile where their extension is installed; when they are not and the task is mostly in web pages, the agent says +once that Browser MCP does that, with its install line, and never installs it itself. Test: `test/laering.mjs` +1c-1h. ## 0.4.0 (in progress) diff --git a/mcp-server/index.js b/mcp-server/index.js index 3cf0a884..71ebd1ca 100644 --- a/mcp-server/index.js +++ b/mcp-server/index.js @@ -267,13 +267,16 @@ what a browser tool is for. The web: when a step needs a web page, use the Chrome the person normally uses - the profile whose windows are open, signed in to their accounts - not Safari, a new profile or another browser, unless they ask for one. \`computer_windows\` -with app "Google Chrome" shows its windows. This server does not see inside -pages, so if Browser MCP's tools (browser_*) are in this session, let them do -the work inside the page - they work in that same Chrome - and keep this server -for what is outside it: the file picker, an OS dialog, another app. If they are -not here and the task is mostly inside web pages, tell the person once that -Browser MCP does that (https://browsermcp.dev, by the same maker: a Chrome -extension plus \`claude mcp add --scope user browser-mcp -- npx @agent360/browser-mcp@latest\`). +with app "Google Chrome" shows its windows. If you cannot tell which profile the +task belongs to - windows from several are open, or the titles do not say - ask +the person once with \`computer_ask_user\` - never pick one yourself. This server +does not see inside pages, so if Browser MCP's tools (browser_*) are in this session, let them do +the work inside the page - they work in the Chrome profile where their extension +is installed, which browser_about names, so check it is that same profile - and +keep this server for what is outside it: the file picker, an OS dialog, another +app. If they are not here and the task is mostly inside web pages, tell the +person once that Browser MCP does that (https://browsermcp.dev, by the same +maker: a Chrome extension plus \`claude mcp add --scope user browser-mcp -- npx @agent360/browser-mcp@latest\`). Do not install it yourself. Everything is written to an append-only audit log with a rolling chain.`; diff --git a/test/laering.mjs b/test/laering.mjs index fdced284..cd826c42 100644 --- a/test/laering.mjs +++ b/test/laering.mjs @@ -40,6 +40,8 @@ try { check('1d arbejdet inde i siden gives til Browser MCP, når den er her', /if Browser MCP's tools \(browser_\*\) are in this session, let them do/.test(vejl)); check('1e mangler Browser MCP, får personen den rigtige installation', /claude mcp add --scope user browser-mcp -- npx @agent360\/browser-mcp@latest/.test(vejl) && /a Chrome\s+extension plus/.test(vejl)); check('1f agenten installerer aldrig selv', /Do not install it yourself\./.test(vejl)); + check('1g flere profiler: agenten spørger og vælger ikke selv', /cannot tell which profile[\s\S]{0,160}computer_ask_user/.test(vejl) && /never pick one yourself/.test(vejl)); + check('1h browser_* arbejder i udvidelsens profil - tjek at det er den', /profile where their extension\s+is installed, which browser_about names/.test(vejl)); const r = await kald('computer_learning', { kind: 'workaround', app: 'net.whatsapp.WhatsApp', tool: 'computer_set_value',