Dipublikasikan: 9 Juni 2026
Anda dapat menggunakan Web Model Context Protocol (WebMCP) untuk membuat dan mengekspos alat terstruktur ke agen AI yang berjalan dalam browser, termasuk agen yang didukung oleh ekstensi. An 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 indirect prompt injection, yaitu penyertaan petunjuk berbahaya oleh penyerang. Tim kami telah menulis dokumen ini tentang keamanan alat, untuk membantu Anda melindungi situs dan pengguna dari pihak tidak bertanggung jawab.
Meskipun beberapa model memiliki lapisan yang menangani prompt injection, tidak mungkin menjamin keamanan di dalam model bahasa besar (LLM). Model bersifat probabilistik. Penting untuk diingat bahwa telah terjadi serangan prompt injection yang dapat diulang terhadap sistem agen yang menggunakan LLM canggih, dan prevalensi serangan di web semakin meningkat.
Untuk mengatasi masalah 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 eksternal, pertimbangkan untuk menambahkanuntrustedContentHintke alat. 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 pengawasan yang lebih ketat. - Gunakan
readOnlyHintpada alat yang tidak mengubah status. Hal ini memungkinkan agen membuat keputusan yang lebih baik tentang kapan harus meminta konfirmasi pengguna.
Mengekspos alat dengan hati-hati
WebMCP document.modelContext.registerTool API hanya mengekspos fungsi alat ke agen. Secara default, situs lain atau iframe lintas asal tidak dapat mengamati atau berinteraksi dengan alat Anda.
Anda dapat memberikan akses ke alat Anda dengan opsi
exposedTo di
registerTool ke array asal tertentu 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
document.modelContext.registerTool({
name: 'my_shared_tool',
description: 'Shared across origins',
// ...
}, {
exposedTo: ['https://trusted.com', 'https://example.com']
});
Hanya ekspos alat Anda ke asal yang Anda percayai. Hal ini sangat penting jika alat mengelola data pengguna atau memengaruhi pengguna.
- Alat hanya baca, seperti
getFavoriteProducts, dapat mengungkapkan informasi tentang pengguna. Anda hanya boleh mengekspos alat ini ke situs yang akan Anda gunakan untuk berbagi data ini secara langsung. - Alat dengan akses baca dan tulis mengambil tindakan atas nama pengguna. Alat ini hanya boleh diekspos ke asal yang Anda tentukan dapat dipercaya saat bertindak atas nama pengguna. Misalnya, Anda mungkin ingin mengekspos
postCommentketrustedExample.com, tetapi Anda tidak ingin mengeksposnya keevilExample.com.
Menetapkan anggaran karakter
Untuk menghindari pelanggaran batasan agen, tulis deskripsi dan output alat yang ringkas. Sebaiknya gunakan batas karakter berikut untuk mendapatkan 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 seluruh 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 agen. Misalnya, ada diskusi yang sedang berlangsung
tentang pengelolaan izin
di seluruh pihak, dan draf spesifikasi mencakup
requestUserInteraction()
untuk meminta input pengguna secara asinkron saat eksekusi alat.
Bagaimana Anda berencana menerapkan WebMCP di aplikasi Anda? Apakah Anda memiliki masalah lain, keamanan, atau lainnya? Jika Anda mendaftar ke uji coba origin WebMCP, kami ingin mengetahui pengalaman Anda:
- Bagikan masukan Anda tentang bentuk API dengan memberikan komentar pada masalah yang ada atau membuka masalah baru di penjelasan WebMCP di GitHub.
- Jika Anda memiliki masukan tentang penerapan Chrome, laporkan bug Chromium.
- Bergabunglah ke program pratinjau awal untuk melihat API baru dan mengakses milis kami.
- Tinjau penerapan untuk Chrome di Status Chrome.
Jika Anda membuat agen, sebaiknya baca Pertimbangan keamanan agen untuk WebMCP.