Dipublikasikan: 9 Juni 2026, Terakhir diperbarui: 1 September 2026
| Video penjelasan | Web | Ekstensi | Status Chrome | Intent |
|---|---|---|---|---|
| GitHub | Uji coba origin |
View | Maksud untuk Bereksperimen |
Anda dapat menggunakan Web Model Context Protocol (WebMCP) untuk membangun dan mengekspos alat terstruktur ke agen AI yang berjalan dalam browser, termasuk agen yang didukung oleh ekstensi. Agen menggunakan model bahasa besar (LLM), aturan, memori, dan alat untuk menjalankan tindakan atas nama pengguna.
Karena LLM memperlakukan semua teks, petunjuk, dan data pengguna sebagai satu urutan token, LLM rentan terhadap injeksi perintah tidak langsung, yaitu penyertaan petunjuk berbahaya oleh penyerang. Tim kami telah menulis dokumen ini tentang keamanan alat, untuk membantu Anda melindungi situs dan pengguna Anda dari pihak tidak bertanggung jawab.
Meskipun beberapa model memiliki lapisan yang menangani injeksi perintah, tidak mungkin untuk menjamin keamanan di dalam model bahasa besar (LLM). Model bersifat probabilistik. Penting untuk diingat bahwa telah terjadi serangan injeksi perintah yang dapat diulang terhadap sistem agentik yang menggunakan LLM canggih, dan prevalensi serangan di web meningkat.
Untuk mengatasi kekhawatiran ini, kami telah memberikan panduan awal tentang keamanan bagi mereka yang membuat alat dengan WebMCP.
Menggunakan petunjuk anotasi
Ada beberapa petunjuk yang harus Anda tambahkan saat membuat alat:
- Gunakan
untrustedContentHintjika sesuai. Jika alat menampilkan konten buatan pengguna (UGC) atau data yang bersumber dari luar, sebaiknya tambahkanuntrustedContentHintke alat tersebut. Kolom ini secara eksplisit memberi label payload sebagai tidak tepercaya, untuk membantu melindungi integritas situs Anda sekaligus memberikan sinyal kepada agen bahwa data ini memerlukan pemeriksaan yang lebih ketat. - Gunakan
consequentialHintuntuk tindakan yang berisiko tinggi atau tidak dapat dibatalkan. Jika mengeksekusi alat menghasilkan tindakan yang signifikan, seperti memesan perjalanan atau mentransfer uang, tetapkanconsequentialHint: truesehingga agen atau browser dapat meminta konfirmasi pengguna sebelum eksekusi. - Gunakan
readOnlyHintpada alat yang tidak mengubah status. Hal ini memungkinkan agen membuat keputusan yang lebih baik tentang kapan harus meminta konfirmasi pengguna.
Tampilkan alat Anda dengan hati-hati
API WebMCP document.modelContext.registerTool hanya mengekspos fungsi alat ke agen. Secara default, situs lain atau iframe lintas origin
tidak dapat mengamati atau berinteraksi dengan alat Anda.
Anda dapat memberikan akses ke alat Anda dengan opsi
exposedTo di
registerTool ke serangkaian origin spesifik yang aman. Hal ini akan mengekspos alat Anda
ke asal tersebut saat disematkan di situs Anda, dan saat situs Anda disematkan di
asal tersebut.
// https://partner.org
await document.modelContext.registerTool({
name: 'my_shared_tool',
description: 'Shared across origins',
// ...
}, {
exposedTo: ['https://trusted.com', 'https://example.com']
});
Hanya ekspos alat Anda ke origin yang Anda percayai. Hal ini sangat penting jika alat mengelola data pengguna atau memengaruhi pengguna dengan cara lain.
- Alat hanya baca, seperti
getFavoriteProducts, dapat mengungkapkan informasi tentang pengguna. Anda hanya boleh mengekspos alat ini ke situs yang secara langsung Anda izinkan untuk mengakses data ini. - Alat dengan akses baca dan tulis mengambil tindakan atas nama pengguna. Alat ini hanya boleh diekspos ke origin yang Anda putuskan dapat dipercaya saat bertindak atas nama pengguna Anda. Misalnya, Anda mungkin ingin mengekspos
postCommentketrustedExample.com, tetapi Anda tidak ingin mengeksposnya keevilExample.com.
Menetapkan anggaran karakter
Untuk menghindari batasan agen, tulis deskripsi dan output alat yang ringkas. Sebaiknya gunakan batas karakter berikut untuk hasil yang lebih baik:
- 500 karakter per deskripsi alat
- 150 karakter per deskripsi parameter
- 30 karakter per nama alat dan nama parameter
- Batas 1.500 karakter per output alat individual
Kemungkinan ada beberapa variasi di antara agen, dan Anda mungkin ingin menyesuaikan anggaran karakter dengan masukan pengguna.
Langkah berikutnya
Kami terus melakukan riset dan berupaya membangun infrastruktur yang aman untuk web berbasis agen. Misalnya, ada diskusi berkelanjutan tentang pengelolaan izin di antara para pihak, dan draf spesifikasi mencakup requestUserInteraction() untuk meminta input pengguna secara asinkron saat eksekusi alat.
Bagaimana rencana Anda menerapkan WebMCP di aplikasi Anda? Apakah ada masalah lain, terkait keamanan atau lainnya? Jika Anda mendaftar ke uji coba origin WebMCP, kami ingin mengetahui pengalaman Anda:
- Sampaikan masukan Anda tentang bentuk API dengan memberikan komentar pada masalah yang ada atau membuka masalah baru di penjelasan WebMCP di GitHub.
- Jika ada masukan tentang penerapan Chrome, laporkan bug Chromium.
- Bergabunglah dengan program pratinjau awal untuk melihat lebih awal API baru dan mendapatkan akses ke milis kami.
- Tinjau penerapan untuk Chrome di Status Chrome.
Jika Anda membangun agen, sebaiknya baca Pertimbangan keamanan agen untuk WebMCP.