
Playwright CLI vs MCP: Nên Dùng Gì Với Claude Code?
So sánh Playwright CLI và Playwright MCP server cho Claude Code: khác biệt về cơ chế, khi nào agent nên gọi thẳng CLI để tiết kiệm token thay vì qua MCP.
Bạn set up Claude Code để agent tự động chạy test UI qua Playwright, và ngay lập tức phải chọn: cài Playwright MCP server, hay để agent tự gọi Playwright CLI qua shell có sẵn? Chọn sai hướng có thể khiến agent tốn thêm token và thời gian ở mỗi bước thao tác trình duyệt. Bài này so sánh trực tiếp hai cách tiếp cận, dựa trên phân tích mới từ cộng đồng Dev.to, để bạn chọn đúng ngay từ đầu cho dự án của mình.
Playwright MCP: lựa chọn quen thuộc nhất
Theo bài viết gốc, nếu bạn từng search "Claude Code + Playwright", thứ đầu tiên bạn thấy gần như chắc chắn là Playwright MCP server — đây là tích hợp gốc, được document nhiều nhất trong cộng đồng. Cách hoạt động: MCP server đứng giữa Claude Code và Playwright, advertise ra một tập tool có typed input (click, fill, screenshot...), và agent gọi các tool đó qua giao thức MCP thay vì viết code trực tiếp.
Đây là lý do phần lớn hướng dẫn Claude Code + Playwright trên mạng đều đi theo hướng MCP: nó là con đường ít trở ngại nhất, cắm vào là chạy, không cần agent tự viết script.
Playwright CLI: option mới cho agent đã có shell access
Nhưng bài viết chỉ ra một lựa chọn mới hơn: Playwright CLI, được thiết kế riêng cho các agent như Claude Code vốn đã có sẵn quyền truy cập shell. Thay vì đi qua một lớp MCP server trung gian, agent gọi thẳng Playwright qua command line — giống cách một dev gõ lệnh terminal để chạy test, chỉ khác là agent làm thay.
Về bản chất, hai hướng giải quyết cùng một bài toán — điều khiển trình duyệt để test hoặc scrape — nhưng theo hai cơ chế khác nhau: một bên qua giao thức MCP với server riêng, một bên gọi trực tiếp qua shell mà agent đã có sẵn.
Xu hướng lớn hơn: khi nào MCP server là lớp trung gian thừa
Câu hỏi "MCP server hay CLI trực tiếp" không chỉ nằm ở Playwright. Một bài viết khác cùng ngày trên Dev.to, về việc build MCP server nối với Postgres, đặt đúng câu hỏi này ở quy mô rộng hơn: theo tác giả, phần lớn MCP server trong thực tế "chỉ là những wrapper mỏng quanh một database — tìm bản ghi này, tạo dòng kia, sửa field nọ", và bản thân server "chủ yếu là một bộ dịch giữa JSON-RPC và SQL". Tác giả đặt câu hỏi ngược lại: nếu MCP server suốt ngày chỉ nói chuyện với Postgres, tại sao nó lại thường không chạy ngay cạnh nơi nó cần nói chuyện cùng?
Đặt cạnh nhau, hai bài viết cho thấy cùng một logic: khi agent đã có sẵn quyền truy cập trực tiếp (shell, hoặc mạng nội bộ tới database), một lớp MCP server trung gian có thể chỉ thêm độ trễ và chi phí vận hành mà không thêm giá trị tương ứng. MCP vẫn là lựa chọn đúng khi bạn cần chuẩn hoá tool cho nhiều agent/nhiều client dùng chung — nhưng không phải lựa chọn mặc định cho mọi tình huống.
Ví dụ minh hoạ: agent gọi Playwright CLI trực tiếp
# Minh hoạ cách agent có shell access gọi Playwright trực tiếp,
# không qua MCP server trung gian
npx playwright test tests/checkout.spec.ts --project=chromium
Đây chỉ là ví dụ minh hoạ cú pháp CLI thông thường của Playwright, không phải trích dẫn từ nguồn — dùng để hình dung sự khác biệt so với việc gọi qua MCP tool.
Vậy khi nào nên chọn CLI, khi nào nên giữ MCP?
Từ hai bài viết trên, có thể rút ra hướng chọn thực dụng cho dự án Việt Nam:
- Nếu Claude Code của bạn đã chạy trong môi trường có sẵn shell access (máy dev, CI runner riêng), thử Playwright CLI trước — bớt một lớp trung gian nghĩa là bớt token và độ trễ cho mỗi bước.
- Nếu bạn cần expose cùng một bộ tool test cho nhiều agent hoặc nhiều client khác nhau (không chỉ Claude Code), MCP server vẫn hợp lý hơn vì nó chuẩn hoá interface.
- Với MCP server nói chung (không riêng Playwright), nếu server chỉ làm nhiệm vụ dịch qua lại với một database hoặc service mà agent có thể truy cập trực tiếp, cân nhắc bỏ lớp MCP và để agent gọi thẳng.
Đây là phần phân tích chung dựa trên logic hai bài viết, không phải số liệu benchmark cụ thể — nếu bạn cần con số chính xác về token/thời gian tiết kiệm được, nên tự đo trên workflow thật của mình trước khi quyết định chuyển hẳn sang CLI.
Việc tiếp theo nên làm
Nếu team bạn đang dùng Playwright MCP cho Claude Code, thử benchmark nhanh: chạy cùng một test suite qua MCP và qua CLI, so sánh số token và thời gian thực tế trước khi đổi setup. Đồng thời, rà lại các MCP server nội bộ khác của team — server nào chỉ là wrapper mỏng quanh một service agent có thể gọi trực tiếp, đó là ứng viên đầu tiên nên thử bỏ bớt lớp trung gian.
Không spam, hủy đăng ký bất kỳ lúc nào.
Bài viết liên quan


Chặn Claude Code tốn tiền: kiểm soát chi phí AI agent
12 thg 7, 2026