Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,16 @@
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 - 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)

**A stop lets go of the mouse button and starts nothing new.** A drag holds the
Expand Down
15 changes: 15 additions & 0 deletions mcp-server/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -264,6 +264,21 @@ 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. 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.`;

const server = new Server(
Expand Down
7 changes: 7 additions & 0 deletions test/laering.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,13 @@ 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));
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',
Expand Down
Loading