OpenChrome - Máy chủ MCP tự động hóa song song cho trình duyệt Chrome
(github.com/shaun0927)Playwright là một công cụ tự động hóa web hữu ích giúp thao tác các hành động như nhấp chuột trên trình duyệt khi bạn muốn crawl dữ liệu bằng cách nào đó
hoặc thực hiện kiểm thử E2E trong môi trường production.
Dù đã ra mắt vào năm 2020,
đây vẫn là công cụ mà phần lớn lập trình viên sử dụng.
Nhưng chỉ cần bật một phiên thôi cũng tiêu tốn hơn 2GB RAM, nặng, chậm và dễ lỗi.
Trong kỷ nguyên AI, công cụ này cần được đổi mới,
đặc biệt là cần một công cụ tự động hóa trình duyệt có thể chạy ổn định ngay cả khi xử lý song song.
Chúng ta không còn muốn tự mình QA hay lang thang khắp các trang web nữa.
OpenChrome là một dự án bắt đầu từ mong muốn giải quyết vấn đề này.
Đây là một máy chủ MCP giúp thực hiện tự động hóa trình duyệt song song một cách nhanh chóng và thông minh.
Đây cũng là công cụ tôi dùng nhiều nhất gần đây trong công việc cá nhân.
Nó sử dụng đăng nhập của trình duyệt Chrome,
và nếu dùng nhiều tài khoản, bạn chỉ cần chỉ định tên tài khoản sẽ dùng khi giao việc.
Mặc định, nó hoạt động dựa trên trình duyệt Chrome đã đăng nhập sẵn.
Có thể xử lý song song trên hơn 20 trình duyệt và đã giảm mức sử dụng RAM xuống khoảng 300MB. Nó làm việc trong trạng thái Chrome đã đăng nhập, và trên thực tế gần như vô hiệu hóa hoàn toàn việc phát hiện bot. Nó cũng có thể tích hợp với Openclaw.
Ví dụ sử dụng như sau.
"Hãy crawl các bài viết mới nhất của 20 người nổi tiếng trên Twitter bằng oc."
(theo benchmark trên claude code, mất 3 phút 30 giây - phần lớn là thời gian suy luận của LLM)
Thực ra, vấn đề cố hữu của playwright là kiểu "LLM lang thang" đầy vô ích.
Ngay cả khi bạn giao những việc như đăng nhập, nó vẫn mất rất lâu để mò mẫm trang web, thử hết cái này đến cái khác,
rồi cuối cùng gửi thông báo rằng đã mất hơn 30 phút và thất bại.
Openchrome giải quyết điều này bằng phương thức Guided thay vì suy đoán.
Nó đăng nhập thẳng vào Chrome, và nếu bạn đưa link thì nó sẽ vào thẳng link đó.
Nó chụp screenshot ở mức tối thiểu và nhanh chóng xác định vị trí của các nút bấm, v.v.
Nếu có vấn đề xảy ra trong quá trình làm việc, nó sẽ nhớ lại để không lặp lại cùng một sai lầm.
Vì là máy chủ MCP, nó có thể được dùng ngay trong mọi môi trường thay cho Playwright hiện có.
Không chỉ trong phát triển MAC-claude code mà còn trên các hệ điều hành khác như Windows, Linux,
mà còn chạy được trên codex cli, cursor, v.v.
Cài đặt:
npx openchrome-mcp setup
Độ ổn định trong production quy mô lớn với độ phức tạp cao và mức tiêu thụ tài nguyên lớn vẫn cần được kiểm chứng thêm,
nếu bạn có phản hồi hay đề xuất, hãy đăng lên GitHub Issues, tôi sẽ phản ánh ngay.
Xin cảm ơn.
13 bình luận
Vậy là thay vì dùng giải pháp E2E hiện có, sẽ để AI trực tiếp quản lý và thực thi mã kiểm thử sao?
Nếu trước đây Playwright truy cập website theo phương pháp khá khuôn mẫu nên tiêu tốn nhiều token,
thì có thể hiểu openchrome là một khái niệm tiếp cận thân thiện với LLM hơn, giúp LLM nhanh chóng tham gia trực tiếp vào việc điều khiển hành vi của website. Có thể tự chạy các giải pháp e2e.
Ví dụ, trong môi trường production yêu cầu đăng nhập Google, bạn có thể cho nó thực hiện công việc QA khi đang đăng nhập bằng tài khoản quản trị. Nó cũng có thể tự cuộn trang, tự bấm vào các edge case và hầu như làm được đa số những tác vụ bạn hình dung. Đó là vì thay vì để Playwright tự động làm các công việc ngớ ngẩn một cách tự trị, LLM sẽ can thiệp ngay lập tức để điều khiển cách nó hoạt động.
Nếu chỉ nhìn vào lượng token sử dụng thì chẳng phải cách bài bản sẽ là chạy các test case E2E mà không có sự can thiệp của LLM, nên sẽ tốn ít hơn sao?
Trong phương pháp kiểm thử, ngoài TC còn bao gồm cả việc QA tự chủ động kiểm thử nữa,
liệu có thể xem là hiệu quả nếu đánh giá phần đó là tốt không?
Để trả lời theo hướng kỹ thuật hơn cho câu hỏi cụ thể của bạn,
MCP của Playwright hiện có hoạt động với 3 tầng trừu tượng như sau:
LLM → máy chủ MCP → máy chủ Playwright Node.js → CDP/Juggler → trình duyệt
Trong khi đó, OpenChrome hoạt động với 1 tầng trừu tượng như sau:
LLM → máy chủ MCP → CDP → trình duyệt
Càng ít tầng trừu tượng thì càng nhanh và khả năng điều khiển càng chính xác;
Playwright là công cụ dùng chung, còn OpenChrome sử dụng công cụ chuyên biệt.
Nếu ví như một bài toán, có thể hiểu là nén một lời giải dài 20 dòng xuống còn 4 dòng.
Playwright nhận phản hồi theo cách dựa trên văn bản thông qua cây trợ năng,
(về mặt lý thuyết thì rất tốt, nhưng đó cũng là lý do nó bị lỗi trên phần lớn website)
nên khả năng nắm bắt ngữ cảnh cũng bị hạn chế đáng kể.
Vì vậy, trên các website có triển khai trợ năng tốt (như Google và các domain nổi tiếng), Playwright vẫn hữu ích, nhưng
trên phần lớn website hoặc trong môi trường production thì OpenChrome vượt trội hơn hẳn.
Ngoài ra, vì "mật độ trong thiết kế công cụ" và "giảm cơ hội để LLM mắc lỗi" mới là những yếu tố quyết định hiệu năng thực chiến,
nên tôi cho rằng nên đo lường bằng các real-world task thay vì hiệu năng mang tính lý thuyết.
Cảm ơn bạn. Có vẻ là tôi đã không đọc kỹ phần nội dung chính.
Tôi đã bỏ sót phần nói rằng nó nhắm đến môi trường production.
Tôi cũng nhất định sẽ thử dùng.
Cảm ơn bạn đã trả lời rất đầy đủ cho câu hỏi chưa đúng của tôi~
Không đâu, cảm ơn bạn vì câu hỏi hay. Khi giải thích, bản thân tôi cũng tự sắp xếp lại được ý.
Đúng là nhanh và tốt thật.
Nhưng cứ hiện cảnh báo là nó bị đứng lại.
Tôi sẽ nhanh chóng cải thiện nội dung này.
Cũng tò mò muốn biết so sánh với Chrome DevTools MCP như thế nào!
Khi dùng thử thì tôi nhớ là Playwright còn tốt hơn hẳn chrome devtools mcp, sau này tôi sẽ thử bổ sung benchmark.
chrome devtools mcpkhông hiện cảnh báo large context, nhưng cảm giác hiệu năng cũng tương đương nên tôi đã dùng cái này! Mong chờ kết quả benchmark quá :DỒ, vậy là lượng token sử dụng cũng giảm phải không? Cảm ơn nhé!!
Có thể hiểu là nhờ bớt những lần đi sai hướng như vậy nên mức tiêu tốn token cũng giảm đi.