Browser MCP: Tự động hóa trình duyệt với Cursor, Claude, VS Code
(browsermcp.io)- Browser MCP kết nối ứng dụng AI với trình duyệt của người dùng, cho phép tự động hóa việc nhập biểu mẫu, kiểm thử và các tác vụ web lặp lại
- Tự động hóa chạy trên máy cục bộ, giúp giảm độ trễ mạng, và hoạt động trong trình duyệt không được gửi lên máy chủ từ xa
- Sử dụng nguyên hồ sơ trình duyệt hiện có để duy trì trạng thái đăng nhập, đồng thời dùng dấu vân tay trình duyệt thật để tránh phát hiện bot cơ bản và CAPTCHA
- Quy trình bắt đầu gồm 3 bước: cài tiện ích mở rộng trình duyệt, thêm MCP server vào ứng dụng AI, và tạo workflow tự động hóa
- Cung cấp các công cụ cần thiết để thao tác trình duyệt như điều hướng URL, nhấp chuột, kéo và thả, snapshot, screenshot, xem console log
Tự động hóa các tác vụ trình duyệt khó thực hiện chỉ bằng ứng dụng AI
- Những tác vụ tự động hóa cần thao tác trình duyệt, chẳng hạn như điền biểu mẫu lặp đi lặp lại trên website, khó có thể xử lý chỉ bằng các ứng dụng AI như Cursor hay Claude
- Browser MCP kết nối ứng dụng AI với trình duyệt của người dùng để có thể thay họ thực hiện các tác vụ web
- Có hai trường hợp sử dụng chính
- Kiểm thử tự động: Trình biên tập AI kiểm thử mã theo kiểu end-to-end, xác minh luồng người dùng và các phần tử UI, đồng thời kiểm tra hành vi của ứng dụng trong nhiều kịch bản
- Tự động hóa công việc: Xử lý các tác vụ dựa trên web lặp lại như thu thập dữ liệu, điền biểu mẫu và tự động hóa workflow
Quy trình cài đặt và cách chạy cục bộ
- Việc bắt đầu gồm ba bước
- Cài tiện ích mở rộng Browser MCP vào trình duyệt
- Thêm MCP server Browser MCP vào ứng dụng AI để kết nối với tiện ích mở rộng trình duyệt
- Bắt đầu tạo workflow tự động hóa để trợ lý AI xử lý các tác vụ lặp lại trong trình duyệt
- Tự động hóa chạy trên máy cục bộ của người dùng
- Nhằm mang lại hiệu năng tốt hơn và giảm độ trễ mạng
- Hoạt động trong trình duyệt không được gửi lên máy chủ từ xa mà vẫn nằm trên thiết bị
- Sử dụng hồ sơ trình duyệt hiện có để duy trì trạng thái đăng nhập vào dịch vụ
- Sử dụng dấu vân tay trình duyệt thật để tránh phát hiện bot cơ bản và CAPTCHA
Công cụ cung cấp và đối tượng được hỗ trợ
- Cung cấp các công cụ cần thiết để thao tác trình duyệt
- Navigate, Go Back, Go Forward, Wait
- Press Key, Click, Drag & Drop, Hover, Type Text
- Snapshot, Screenshot, Get Console Logs
- Các đối tượng được hỗ trợ bao gồm Cursor, Claude, Windsurf, VSCode
- Có thể xem tài liệu tại Documentation
1 bình luận
Các ý kiến trên Hacker News
[!warning!] Tiện ích mở rộng Chrome của dự án này gửi dữ liệu đo lường từ xa chi tiết đến PostHog và Amplitude: https://storage.googleapis.com/cobrowser-images/telemetry.pn..., https://storage.googleapis.com/cobrowser-images/pings.png
Ngoài ra, mã nguồn máy chủ MCP cục bộ thì có, nhưng không có mã nguồn tiện ích Chrome; có vẻ như họ đã đóng gói https://github.com/ruifigueira/playwright-crx mà không ghi nguồn, nên rất đáng ngờ
Nhìn vào lưu lượng mạng, bạn có thể xác nhận rằng hoàn toàn không có thông tin cá nhân hóa hay có thể định danh nào được gửi đi. Mục đích là thu thập dữ liệu sử dụng đã ẩn danh, giống như cách một website đếm số khách truy cập, để biết tiện ích mở rộng được dùng nhiều đến đâu. Tôi đang chia thời gian cho nhiều dự án, nên việc biết số người dùng hoạt động giúp tôi quyết định nên tập trung vào đâu
Toàn bộ tiện ích mở rộng là do tôi tự viết, và lý do kho hiện tại chỉ chứa máy chủ MCP đã được tôi ghi trong issue GitHub này: https://github.com/BrowserMCP/mcp/issues/1#issuecomment-2784...
Tóm lại, tôi dùng một monorepo chứa mã dùng chung cho tất cả các tiện ích mở rộng, nên để tách riêng tiện ích này và duy trì đồng bộ nhiều monorepo sẽ cần khá nhiều công sức. Bạn có thể không hài lòng với cách tổ chức dự án, nhưng không có gì ác ý ở đây
Website tuyên bố “dùng fingerprint trình duyệt thật để tránh bot detection và CAPTCHA”, nhưng thực tế thì không phải vậy
Vài tuần trước, tôi đã để AI điều khiển trình duyệt trong một phiên đã đăng nhập bằng một hệ thống tương tự do tôi tự làm, và CAPTCHA bắt đầu xuất hiện ngay cả trong phiên do người dùng thật sử dụng; cuối cùng tôi bị chặn trên nhiều website. Khi tôi ngừng dùng phiên trình duyệt theo cách đó, các lệnh chặn dần biến mất theo thời gian, nhưng cách này không phải giải pháp vạn năng và bạn có thể mất luôn quyền truy cập của mình
Ngoài ra, tiện ích mở rộng này trông khá dễ bị nhận ra, nên có lẽ Cloudflare bot detection sẽ không mất nhiều thời gian để bắt được nó như với Playwright
Vì vậy mới có dự án kiểu này: https://github.com/Kaliiiiiiiiii-Vinyzu/patchright. Nó che phần debugging khỏi JavaScript
Làm quá nhiều thao tác quá nhanh cũng là vấn đề, nhưng thời điểm giữa các thao tác cũng có thể là dấu hiệu. Ngay cả khi từng cú nhấp không nhanh, độ trễ quá đều đặn cũng là một tín hiệu phi con người khác
“Tránh bot detection và CAPTCHA” rốt cuộc có nghĩa là những cơ chế đó tồn tại vì những người như bạn. Nếu thật sự cần truy cập, bạn nên yêu cầu API; có thể phải trả phí hoặc không. Bạn có thể được cấp, hoặc chủ site có thể từ chối, và trong trường hợp đó bạn nên chấp nhận rằng hành vi hay use case của mình không được mong muốn
Có cảm giác tôi vừa ngủ một ngày mà giờ MCP xuất hiện khắp nơi. Tôi không biết MCP là gì, và đến lúc này thì cũng sợ không dám hỏi
Khi bạn cho mô hình biết tên phương thức, tham số, kiểu đầu ra và mục đích, LLM sẽ yêu cầu máy chủ MCP gọi hàm, xem kết quả rồi nếu cần sẽ gọi hàm tiếp theo. Hiện tại khó mà bảo ChatGPT “mở Google Maps bằng tài khoản của tôi, tìm cửa hàng xe đạp gần New York rồi lấy số điện thoại”, nhưng nếu có browser MCP thì ChatGPT có thể gửi cho trình duyệt các chỉ thị như “mở Google Maps”, “cho xem ảnh chụp màn hình”, “nhấp vào vị trí đó”
Với người bình thường, khái niệm này hơi bị đảo ngược và không trực quan, nhưng với developer thì nó trông giống các công cụ họ vẫn dùng nên họ thường không thấy bối rối
Sẽ thật tuyệt nếu trên một trang mua sắm, ta có thể nói với trình duyệt: “Hãy xem qua tất cả các sideboard trong danh sách này và chỉ lọc những cái cao hơn 155 cm và thấp hơn 100 cm. Ưu tiên loại bằng gỗ tối màu và có chỗ để đặt đĩa vinyl cao 31,43 cm.”
Nếu có thể trích xuất chi tiết từ trang thì có vẻ cực kỳ hữu ích; tôi tự hỏi liệu đã có trình duyệt nào làm được việc như vậy chưa
Ví dụ kiểu: “Ưu tiên các kết quả nói về X và có xu hướng Y, còn các kết quả đang cố bán thứ gì đó thì hạ thấp xuống.” Có thể dùng thử tại https://matterrank.ai
Tôi cũng muốn nghe thêm về các use case bạn đang hình dung. Không rõ đó là một tiện ích mở rộng trình duyệt hoạt động trên trang bạn đang xem, một dịch vụ tổng hợp mua sắm cung cấp tính năng này, hay một hình thức hoàn toàn khác
Làm tốt đấy. Tôi thử trên Claude Desktop thì nó chạy mượt, và ít rườm rà hơn Playwright rất nhiều. Đang đi đúng hướng
Không biết bạn đã làm chưa, nhưng sẽ tốt nếu khi phát hiện CAPTCHA trên trang thì tạm dừng tự động hóa và báo cho người dùng rằng cần can thiệp. Playwright thì cứ cố vượt tiếp cả CAPTCHA
Tác vụ tìm thông tin trên web rồi đưa kết quả vào bảng tính Google Sheets ban đầu gần như hoàn hảo, nhưng 8–10 lần thử sau đó thì thất bại hoàn toàn
Tôi tự hỏi liệu có vấn đề về độ trễ giữa những gì xảy ra trong trình duyệt và ứng dụng MCP, ở đây là Claude Desktop, hay không. Ở lần thử đầu, tôi bấm quyền “Allow for this chat” đủ nhanh; còn những lần sau, cảm giác là đến lúc tôi bấm quyền thì LLM đã báo “có vẻ đã gặp vấn đề khi nhấp. Tôi sẽ thử lại bằng một tham chiếu khác”
Những thao tác như nhấp vào tiêu đề Google Sheets rồi nhập tên, vốn chạy hoàn hảo ở lần đầu, sau đó thất bại 100%. Việc nhận diện ô như A1, B1 và nhập hàng cũng vậy. Trải nghiệm tự thân rất mượt, cấu hình và thực thi đều tuyệt, nhưng vì độ trễ và tốc độ bấm nút cho phép, có vẻ thực tế là khó dùng trên Claude Desktop
Sẽ tốt hơn nếu có một máy chủ MCP như vậy, nhưng cung cấp công cụ chuyên biệt để LLM có thể đọc và ghi ô Google Sheets. Thay vì tương tác chung chung với trang web, nếu đưa ra một abstraction cụ thể hơn thì những tác vụ này sẽ được xử lý tốt hơn nhiều
Ví dụ: https://x.com/xing101/status/1903391600040083488
Thiết lập: https://github.com/xing5/mcp-google-sheets
Cũng giống lý do vì sao mọi người liên tục nghĩ phiên bản ChatGPT mới bị nerf. Thực ra là ban đầu bạn gặp may, rồi dựa trên kết quả tích cực đầu tiên đó để hình thành kỳ vọng không thực tế. Đây không phải bug hay khiếm khuyết, mà gần với việc xác suất thống kê để thực hiện đúng hành vi mong muốn vốn thấp, nhưng ngay lượt đầu bạn lại gieo được xúc xắc tốt
--Error: Cannot access a chrome-extension:// URL of different extensionNhững thứ như thế này khiến tôi rất kỳ vọng cho các việc thủ công như yêu cầu hoàn tiền chi phí. Mỗi tháng tôi phải vào trang của nhà cung cấp dịch vụ, đăng nhập, tìm và tải sao kê, tạo Google Doc điền chi tiết, tải xuống, soạn email mới rồi tải tất cả tệp lên
Để kiểm tra lại xem tệp đính kèm có đúng không, đôi khi tôi còn phải tải xuống lần nữa vì không xem trực tiếp được trong email. Bản thân việc tự động hóa thì đã có thể làm được, và một ứng dụng theo dõi chi tiêu tốt sẽ loại bỏ được một nửa công việc này, nhưng công cụ AI có tiềm năng giảm đáng kể gánh nặng lập các bản kê chi tiết lặt vặt. Những workflow kiểu này đặc biệt quan trọng vì chúng thường xuyên có các thay đổi nhỏ
Với hầu hết mọi người ở đây có thể là hiển nhiên, nhưng để chạy máy chủ MCP thì cần cài Node.js. Chi tiết quan trọng này không có trong hướng dẫn thiết lập
https://docs.browsermcp.io/setup-server#node-js
Tôi đã làm một thứ tương tự, cho phép điều khiển synthesizer phần cứng để thiết kế âm thanh mà không cần chạm vào knob thật: https://github.com/zerubeus/elektron-mcp
Có thể hình dung việc điều khiển plugin từ xa, để LLM dùng các công cụ hiện có thực hiện mastering và chỉnh âm sắc. UI phức tạp và quá nặng đồ họa của VST có thể là rào cản hiệu năng, nhưng có thể nối vào một giao diện MIDI mapping có nhãn để điều khiển knob và level
Sẽ tốt nếu có thể duyệt trang bằng cây khả năng truy cập của Chrome DevTools thay vì phụ thuộc vào ảnh chụp màn hình: https://developer.chrome.com/blog/full-accessibility-tree