[!warning!]<p>1) this projects' chrome extension sends detailed telemetry to posthog and amplitude:<p>- <a href="https://storage.googleapis.com/cobrowser-images/telemetry.png" rel="nofollow">https://storage.googleapis.com/cobrowser-images/telemetry.pn...</a><p>- <a href="https://storage.googleapis.com/cobrowser-images/pings.png" rel="nofollow">https://storage.googleapis.com/cobrowser-images/pings.png</a><p>2) this project includes source for the local mcp server, but not for its chrome extension, which is likely bundling <a href="https://github.com/ruifigueira/playwright-crx">https://github.com/ruifigueira/playwright-crx</a> without attribution<p>super suss
So the website claims:<p>"Avoids bot detection and CAPTCHAs by using your real browser fingerprint."<p>Yeah, not really.<p>I've used a similar system a few weeks back (one I wrote myself), having AI control my browser using my logged in session, and I started to get Captcha's during my human sessions in the browser and eventually I got blocked from a bunch of websites. Now that I've stopped using my browser session in that way, the blocks eventually went away, but be warned, you'll lose access yourself to websites doing this, it isn't a silver bullet.
When I go to a shopping website I want to be able to tell my browser "hey please go through all the sideboards on this list and filter out for the ones that are larger than 155cm and smaller than 100cm, prioritise the ones with dark wood and space for vinyl records which are 31.43cm tall" for example.<p>Is there any browser that can do this yet as it seems extremely useful to be able to extract details from the page!
Well done, just tested on Claude Desktop and it worked smoothly and a lot less clunky than playwright. This is the right direction to go in.<p>I don't know if you've done it already, but it would be great to pause automation when you detect a captcha on the page and then notify the user that the automation needs attention. Playwright keeps trying to plough through captchas.
Crazy, in looking up some info on the web and creating a Spreadsheet on Google Sheets to insert the results, it worked almost perfectly the first time and completely failed subsequently on 8-10 different tries.<p>Is there an issue with the lag between what is happening in the browser and the MCP app (in my case Claude Desktop)?<p>I have a feeling the first time I tried it, I was fast enough clicking the "Allow for this chat" permissions, whereas by the time I clicked the permission on subsequent chats, the LLM just reports "It seems we had an issue with the click. Let me try again with a different reference.".<p>Actions which worked flawlessly the first time (rename a Google spreadsheet by clicking on the title and inputting the name) fail 100% of subsequent attempts.<p>Same with identifying cells A1, B1, etc. and inserting into the rows.<p>Almost perfect on 1st try, not reproducible in 100% of attempts afterwards.<p>Kudos to how smooth this experience is though, very nice setup & execution!<p>EDIT 2:
The lag & speed to click the allow action make it seemingly unusable in Claude Desktop. :(
Stuff like this makes me giddy for manual tasks like reimbursement requests. Its such a chore (and it doesnt help our process isnt great).<p>Every month, go to service providers, log in, find and download statement, create google doc with details filled in, download it, write new email and upload all the files. Maybe double chek the attachments are right but that requires downloading them again instead of being able to view in email).<p>Automating this is already possible (and a real expense tracking app can eliminate about half of this work) but I think AI tools have the potential to elminate a lot of the nittier-grittier specification of it. This is especially important because these sorts of workflows are often subject to little changes.
Did something similar but controls a hardware synth, allowing me to do sound design without touching the physical knobs: <a href="https://github.com/zerubeus/elektron-mcp">https://github.com/zerubeus/elektron-mcp</a>
Would be nice if it could use the Accessibility Tree from chrome dev tools to navigate the page instead of relying on screenshots (<a href="https://developer.chrome.com/blog/full-accessibility-tree" rel="nofollow">https://developer.chrome.com/blog/full-accessibility-tree</a>)
Doesn't work on Windows:<p>2025-04-07T18:43:26.537Z [browsermcp] [info] Initializing server...
2025-04-07T18:43:26.603Z [browsermcp] [info] Server started and connected successfully
2025-04-07T18:43:26.610Z [browsermcp] [info] Message from client: {"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"claude-ai","version":"0.1.0"}},"jsonrpc":"2.0","id":0}
node:internal/errors:983
const err = new Error(message);
^<p>Error: Command failed: FOR /F "tokens=5" %a in ('netstat -ano ^| findstr :9009') do taskkill /F /PID %a
at genericNodeError (node:internal/errors:983:15)
at wrappedFn (node:internal/errors:537:14)
at checkExecSyncError (node:child_process:882:11)
at execSync (node:child_process:954:15)
What I used this for:<p>"Go to <a href="https://news.ycombinator.com/upvoted?id=josefrichter">https://news.ycombinator.com/upvoted?id=josefrichter</a>, summarize what topics I am interested in, and then from the homepage pick articles I might be interested in."<p>Works like a charm.
I don't see how an MCP can be useful for browsing the net and doing things like shopping as has been suggested. Large companies such as CloudFlare have spent millions on, and made a business from, bot detection and blocking.<p>Do we suppose they will just create a backdoor to allow _some_ bots in? If they do that how long will it be before other bots impersonate them? It seems like a bit of a fad from my small mind.<p>Suppose it does become a thing, what then? We end up with an internet which is heavily optimised for bots (arguably it already is to an extent) and unusable for humans?<p>Wild.
Ideally, shouldn't this be the native experience of most "sites" on the internet? We've built an entire user experience around serving users rich, two dimensional visual content that is not machine-readable and are now building a natural language command line layer on top of it. Why not get rid of the middleware and present users a direct natural language interface to the application layer?
In the Task Automation demo, how does it know all of the attributes of the motorcycle he is trying to sell? Is it relying on the underlying LLM's embedded knowledge? But then how would it know the price and mileage? Is there some underlying document not referenced in the demo? Because that information is not in the prompt.
I mean no disrespect, but this looks like an outdated clone of <a href="https://github.com/microsoft/playwright-mcp">https://github.com/microsoft/playwright-mcp</a><p><a href="https://github.com/microsoft/playwright-mcp/blob/main/src/tools/tool.ts">https://github.com/microsoft/playwright-mcp/blob/main/src/to...</a>
<a href="https://github.com/BrowserMCP/mcp/blob/main/src/tools/tool.ts">https://github.com/BrowserMCP/mcp/blob/main/src/tools/tool.t...</a>
I just run into a bunch of errors on my Windows machine + Chrome when connected over remote-ssh. Extension installed, tab enabled, npx updated/installed, etc.<p>2025-04-07 10:57:11.606 [info] rmcp: Starting new stdio process with command: npx @browsermcp/mcp@latest<p>2025-04-07 10:57:11.606 [error] rmcp: Client error for command spawn npx ENOENT<p>2025-04-07 10:57:11.606 [error] rmcp: Error in MCP: spawn npx ENOENT<p>2025-04-07 10:57:11.606 [info] rmcp: Client closed for command<p>2025-04-07 10:57:11.606 [error] rmcp: Error in MCP: Client closed<p>2025-04-07 10:57:11.606 [info] rmcp: Handling ListOfferings action<p>2025-04-07 10:57:11.606 [error] rmcp: No server info found<p>---<p>EDIT: Ended up fixing it by patching index.js. killProcessOnPort() was the problem. Can hit me up if you have questions, I cannot figure out how to put readable code in HN after all these years with the fake markdown syntax they use.
This is really well done! Very cool.<p>I wonder if it's possible to add such plugins to election apps (e.g.: Slack).
It would be such a nice experience if I could just connect my AI of choice to a local app.
Setting this up for claude desktop and cursor was alright.
Works well out of the box with little setup, and I like that it attached to my active browser tab. Keep up the good work.
I literally started working on the same exact idea last night haha. Great work OP. I'm curious, how are you feeding the web data to the LLM? Are you just passing the entire page contents to it and then having it interact with the page based on CSS selectors/xpath? Also, what are your thoughts on letting it do its own scripting to automate certain tasks?
Bot Detection Evasion is becoming an increasingly relevant topic. Even for non-abusive automation, it's now a necessary consideration.<p>Interesting research and reading via the HN search portal: <a href="https://hn.algolia.com/?q=bot+detection" rel="nofollow">https://hn.algolia.com/?q=bot+detection</a>
What I don't like about LLMs is that people keep re-inventing the wheel over and over. For example, we've been able to control browsers using GPT for about 2 years now:<p>- <a href="https://github.com/mayt/BrowserGPT">https://github.com/mayt/BrowserGPT</a><p>- <a href="https://github.com/TaxyAI/browser-extension">https://github.com/TaxyAI/browser-extension</a><p>- <a href="https://github.com/browser-use/browser-use">https://github.com/browser-use/browser-use</a><p>- <a href="https://github.com/Skyvern-AI/skyvern">https://github.com/Skyvern-AI/skyvern</a><p>- <a href="https://github.com/m1guelpf/browser-agent">https://github.com/m1guelpf/browser-agent</a><p>- <a href="https://github.com/richardyc/Chrome-GPT">https://github.com/richardyc/Chrome-GPT</a><p>- <a href="https://github.com/handrew/browserpilot">https://github.com/handrew/browserpilot</a><p>- <a href="https://github.com/ishan0102/vimGPT">https://github.com/ishan0102/vimGPT</a><p>- <a href="https://github.com/Jiayi-Pan/GPT-V-on-Web">https://github.com/Jiayi-Pan/GPT-V-on-Web</a>
Or just use Playwright MCP: <a href="https://github.com/microsoft/playwright-mcp">https://github.com/microsoft/playwright-mcp</a>
thank you for this. Using my own browser helps me automate tasks on sites I 'd typically get detected using automation. Works like a charm! Hope you continue to work on the repo.
> Private
> Since automation happens locally, your browser activity stays on your device and isn't sent to remote servers.<p>I think this is bullshit. Isn't the dom or whatever sent to the model api?
WARNING for Cursor users:<p>Cursor is currently stuck using an outdated snapshot of the VSCode Marketplace, meaning several extensions within Cursor remain affected by high-severity CVEs that have already been patched upstream in VSCode. As a result, Cursor users unknowingly remain vulnerable to known security issues.
This issue has been acknowledged but remains unresolved: <a href="https://github.com/getcursor/cursor/issues/1602#issuecomment-2654870021">https://github.com/getcursor/cursor/issues/1602#issuecomment...</a><p>Given Cursor's rising popularity, users should be aware of this gap in security updates. Until the Cursor team resolves the marketplace sync issue, caution is advised when using certain extensions.<p>I've flagged it here, apologies for the repost: <a href="https://news.ycombinator.com/item?id=43609572">https://news.ycombinator.com/item?id=43609572</a>