- Bài toán: AI agent ngày càng thao tác trực tiếp trên website, nhưng cách cũ (chụp màn hình rồi đoán chỗ bấm) vừa chậm vừa dễ sai.
- Giải pháp: WebMCP để website tự khai báo 'công cụ' qua API navigator.modelContext, agent đọc schema và gọi đúng một lượt.
- Kết quả: một khung 4 trục để đánh giá và chuẩn bị website cho kỷ nguyên agent — dù WebMCP còn ở giai đoạn preview.
WebMCP (Web Model Context Protocol) là một API trình duyệt mới — navigator.modelContext — cho phép website tự khai báo các "công cụ" (hành động có thể gọi) để AI agent dùng trực tiếp, thay vì phải chụp màn hình rồi đoán chỗ bấm. Với chủ website, đây là lớp tiếp theo sau SEO/AEO: không chỉ để được AI trích dẫn, mà để được AI agent thao tác đúng. Hiện WebMCP còn ở giai đoạn preview (origin trial trên Chrome 149, sau bản Canary đầu 2026), do Google và Microsoft phát triển trong nhóm W3C — nên bài này là để hiểu và chuẩn bị, không phải để triển khai production ngay.
TL;DR (Executive Summary)
- Bài toán: Agent đang chuyển từ "đọc web" sang "thao tác web". Cách hiện tại — chụp màn hình, đưa vào vision model, đoán toạ độ, bấm — vừa tốn, vừa chậm, vừa dễ vỡ khi giao diện đổi.
- Giải pháp: WebMCP đảo ngược thế cờ. Website chủ động đưa cho agent một danh sách tool có schema rõ ràng; agent gọi đúng một lượt thay vì dò dẫm.
- Kết quả: Một khung 4 trục để đánh giá độ sẵn sàng của website — làm được ngay cả khi WebMCP còn preview, vì phần lớn là dọn nền tảng.
WebMCP thực ra giải quyết chuyện gì (góc web owner)
Suốt hai năm qua, tối ưu web cho AI xoay quanh được đọc và được trích dẫn: đó là AEO/GEO. WebMCP mở một mặt trận khác — được thao tác. Khi một AI agent thay người dùng đặt lịch, lọc sản phẩm, hay điền một form nhiều bước, nó phải làm gì đó trên trang, không chỉ đọc.
Cách agent làm việc đó hôm nay chủ yếu là "nhìn màn hình như người": chụp ảnh trang → đưa vào mô hình thị giác → đoán nút nằm đâu → bấm → chụp lại → lặp. Cách này mong manh: đổi CSS một chút là gãy, mỗi bước là một vòng token đắt đỏ, và trang web không hề biết agent đang cố làm gì.
WebMCP lật ngược: thay vì để agent đọc ngược giao diện, website chủ động khai báo những việc nó làm được. Agent nhận một danh sách tool kèm mô tả và schema tham số (kiểu JSON Schema), rồi gọi đúng tool nó cần — một lượt, có cấu trúc, ít đoán mò. Điểm mấu chốt mà một MCP server thường ở backend khó chạm tới: trang web đang giữ sẵn trạng thái đăng nhập, dữ liệu phiên và logic nghiệp vụ; WebMCP chạy ngay trong trình duyệt nên tận dụng được hết mà không phải dựng lại một server riêng.
So sánh cách AI agent thao tác website — trước và với WebMCP:
| # | Trước WebMCP (agent tự dò DOM) | Với WebMCP (site khai tool) |
|---|---|---|
| 1 | Chụp màn hình trang | Đọc danh sách tool + schema |
| 2 | Đoán toạ độ để bấm | Gọi đúng tool — một lượt |
| 3 | Click / nhập vào DOM | Nhận kết quả có cấu trúc |
| → | Lặp nhiều vòng, dễ vỡ khi UI đổi | Website chủ động, ổn định hơn |
WebMCP đảo chiều: thay vì agent đọc ngược giao diện, website chủ động khai báo việc nó làm được.
Hai cách khai báo tool: declarative và imperative
WebMCP cho hai lối, ứng với hai mức phức tạp:
- Declarative (qua HTML form). Với những hành động vốn đã là form — tìm kiếm, lọc, đăng ký — bạn chỉ cần chú thích thêm vào markup form sẵn có (tên tool, mô tả) để nó thành một WebMCP tool. Ít code nhất, hợp với phần lớn trang nội dung/thương mại.
- Imperative (qua JavaScript). Với luồng động, nhiều bước, cần logic — bạn định nghĩa tool bằng JS qua
navigator.modelContext.provideContext(...), mỗi tool cóname,description, mộtinputSchema(JSON Schema) và một hàm thực thi. Về hình dạng, nó giống cách định nghĩa tool khi gọi API của OpenAI hay Anthropic — nhưng chạy hoàn toàn client-side, trong trình duyệt.
Một phác thảo tối giản của lối imperative (API còn đang thay đổi theo spec, xem như minh hoạ hình dạng chứ không phải mã production):
// Website khai báo một tool cho AI agent, ngay trong trình duyệt
navigator.modelContext.provideContext({
tools: [
{
name: "search_products",
description: "Tìm sản phẩm theo từ khoá và khoảng giá",
inputSchema: {
type: "object",
properties: {
query: { type: "string" },
maxPrice: { type: "number" },
},
required: ["query"],
},
async execute({ query, maxPrice }) {
// Tận dụng chính logic + trạng thái phiên của trang
const results = await store.search(query, { maxPrice });
return { results };
},
},
],
});
Agent không cần biết nút "Tìm" nằm ở đâu trên màn hình; nó đọc search_products, gửi tham số đúng schema, nhận kết quả có cấu trúc.
Ranh giới an toàn (đừng bỏ qua)
Vì WebMCP để agent chạy hành động trên trang, bảo mật là phần không được xem nhẹ:
- Chỉ chạy trong secure context — HTTPS, và trên tài liệu được origin-isolated. Không có chuyện phơi tool bừa trên trang http.
- Cùng chính sách của nền web — same-origin, CSP áp dụng như mọi tính năng khác.
- Permission/consent — được kiểm soát qua Permissions Policy
tools(mặc địnhself); iframe khác origin phải cóallow="tools". Nghĩa là bạn quyết ai được phơi tool, không phải mặc định mở.
Nguyên tắc delivery tôi giữ: tool ghi/không đảo ngược thì luôn có xác nhận. Cho agent tra cứu, lọc, xem — thoải mái; cho agent "đặt đơn", "huỷ lịch", "thanh toán" — phải có bước người xác nhận, y như khi thiết kế bất kỳ tool nguy hiểm nào.
Khung sẵn sàng WebMCP cho website (4 trục)
Đây là phần làm được ngay bây giờ, dù WebMCP còn preview — vì phần lớn là dọn nền tảng, không phải cược vào một API chưa chốt. Tôi soi bốn trục:
| Trục | Câu hỏi | Làm gì ngay |
|---|---|---|
| 1. Tool nào? | Đâu là những "hành động có giá trị" trên site — cái agent (và người) thực sự muốn làm? | Liệt kê: đặt lịch, tra cứu, lọc, thêm giỏ, đăng ký... Đây chính là danh sách tool tương lai. |
| 2. Tầng nào? | Hành động đó đã là form sẵn (→ declarative) hay là luồng động cần JS (→ imperative)? | Ưu tiên biến các form quan trọng thành form có ngữ nghĩa rõ; luồng phức tạp thì khoanh vùng logic. |
| 3. An toàn tới đâu? | Hành động nào đọc, hành động nào ghi/không đảo ngược? | HTTPS sạch, đánh dấu sớm những hành động phải có xác nhận người dùng. |
| 4. Đo & bàn giao | Khi bật tool, agent gọi cái gì, có nên phơi không? | Chuẩn bị chỗ log lời gọi tool; quy ước tool nào KHÔNG bao giờ phơi (thanh toán trực tiếp, xoá dữ liệu...). |
Cách đọc khung cho gọn: chưa cần viết một dòng WebMCP nào, bạn vẫn có thể "sẵn sàng" bằng cách biết rõ tool của mình là gì, form nào sạch, hành động nào nguy hiểm. Khi API ổn định, phần bổ sung chỉ còn là kỹ thuật.
WebMCP nằm ở đâu trong bức tranh (đừng nhầm)
| Để làm gì | Chạy ở đâu | |
|---|---|---|
| SEO / AEO / GEO | Được tìm thấy & được AI trích dẫn | Nội dung trang của bạn |
| MCP server | Cho agent gọi tool/hệ thống của bạn | Backend/server bạn dựng riêng |
| WebMCP | Cho agent thao tác ngay trên trang | Trong trình duyệt, trên chính website |
Ba thứ bổ trợ nhau, không thay thế nhau. AEO/GEO lo được đọc; WebMCP lo được làm. Nếu bạn đang tối ưu để AI trích dẫn (xem khung 5 trục AEO/GEO), thì WebMCP là bước kế: chuẩn bị cho ngày agent không chỉ đọc mà còn bấm.
Cảnh báo: còn sớm, đừng cược lớn
Thành thật: WebMCP mới ở preview. API còn đổi, mới Chrome hỗ trợ (sau cờ), các trình duyệt khác chưa cam kết mốc thời gian. Vì vậy:
- Đừng đổ resource lớn để "làm WebMCP cho production" lúc này — spec chưa chốt.
- Đừng nhầm WebMCP với MCP server: một cái chạy trong trình duyệt trên trang bạn, một cái là server backend.
- Nên làm bốn trục ở khung trên — chúng có giá trị bất kể WebMCP về đích thế nào, và giúp bạn bật nhanh khi nó ổn định.
Đây đúng kiểu cửa sổ mà tôi thích chuẩn bị sớm: đủ mới để chưa ai chắc, đủ có căn cứ (Google + Microsoft + W3C, đã có bản chạy) để không phải hype suông.
Kết
WebMCP là mảnh còn thiếu giữa AI agent và web: để agent làm việc trên trang mà không phải dò dẫm giao diện. Với chủ website, nó là lời nhắc rằng "tối ưu cho AI" sắp không dừng ở được-trích-dẫn, mà tiến tới được-thao-tác. Chưa cần vội code, nhưng nên bắt đầu nghĩ theo ngôn ngữ "tool": site của bạn cho phép làm những gì, cái nào an toàn để một agent gọi thay người dùng.
Đọc thêm trong cùng mạch: nền tảng giao thức MCP ở ghi chú khoá Model Context Protocol và bản nâng cao; còn khi bạn xây agent để dùng những tool này, xem Claude Agent SDK vs Claude API vs Claude Code. Toàn bộ lộ trình học Claude/agent gom ở /learn/claude.
Câu hỏi thường gặp
WebMCP là gì?
WebMCP (Web Model Context Protocol) là một API trình duyệt mới — navigator.modelContext — cho phép website khai báo các hành động của mình thành 'công cụ' có cấu trúc để AI agent gọi trực tiếp, thay vì agent phải chụp màn hình rồi đoán chỗ bấm trên giao diện.
WebMCP khác MCP thường ở đâu?
MCP (server) chạy ở backend và thường phải dựng lại logic nghiệp vụ ở đó. WebMCP chạy ngay trong trình duyệt, trên chính trang web của bạn, nên tận dụng được trạng thái đăng nhập, dữ liệu phiên và logic sẵn có mà không phải xây lại một server riêng.
WebMCP dùng được chưa?
Chưa cho production. Tính đến giữa 2026, WebMCP mới ở giai đoạn preview: bản đầu ra trên Chrome 146 Canary (02/2026), hiện thử nghiệm qua origin trial trên Chrome 149 sau cờ chrome://flags/#enable-webmcp-testing. Spec còn thay đổi và do Google, Microsoft phát triển trong nhóm W3C.
Chủ website nên làm gì ngay bây giờ với WebMCP?
Chưa cần đổ resource lớn. Việc đáng làm là xác định đâu là những 'hành động có giá trị' trên site (đặt lịch, tra cứu, lọc, thêm giỏ...) — vì đó chính là các tool agent sẽ muốn gọi — và giữ nền tảng sạch (HTTPS, form có ngữ nghĩa rõ) để khi WebMCP ổn định thì bổ sung nhanh.