Pubblicato: 9 giugno 2026
Puoi utilizzare il Model Context Protocol web (WebMCP) per creare ed esporre strumenti strutturati agli agenti AI in esecuzione nel browser, inclusi gli agenti basati su estensioni. Un agente utilizza un modello linguistico di grandi dimensioni (LLM), regole, memoria e strumenti per eseguire azioni per conto dell'utente.
Poiché i modelli LLM trattano tutto il testo, le istruzioni e i dati utente come una singola sequenza di token, sono soggetti all'injection indiretta di prompt, un'inclusione di istruzioni dannose da parte di un malintenzionato. Il nostro team ha scritto questo documento sulla sicurezza degli strumenti per aiutarti a proteggere il tuo sito web e i tuoi utenti da malintenzionati.
Sebbene alcuni modelli abbiano livelli che gestiscono l'injection di prompt, è impossibile garantire la sicurezza all'interno di un modello linguistico di grandi dimensioni (LLM). I modelli sono probabilistici per natura. È importante ricordare che sono stati registrati attacchi di prompt injection ripetibili contro sistemi agentici che utilizzano LLM all'avanguardia e la prevalenza di attacchi sul web è in aumento.
Per rispondere a queste preoccupazioni, abbiamo fornito indicazioni preliminari sulla sicurezza per chi crea strumenti con WebMCP.
Utilizzare i suggerimenti per le annotazioni
Ecco alcuni suggerimenti da aggiungere quando crei i tuoi strumenti:
- Utilizza
untrustedContentHint, se opportuno. Se uno strumento restituisce contenuti generati dagli utenti (UGC) o dati provenienti da fonti esterne, valuta la possibilità di aggiungereuntrustedContentHintallo strumento. Questo campo etichetta esplicitamente il payload come non attendibile, per contribuire a proteggere l'integrità del tuo sito fornendo un segnale all'agente che indica che questi dati richiedono un maggiore controllo. - Utilizza
readOnlyHintsugli strumenti che non cambiano stato. Ciò consente all'agente di prendere decisioni migliori su quando chiedere le conferme degli utenti.
Esporre gli strumenti con attenzione
L'API WebMCP document.modelContext.registerTool espone solo la funzionalità dello strumento agli agenti. Per impostazione predefinita, altri siti web o iframe cross-origin
non possono osservare o interagire con i tuoi strumenti.
Puoi fornire l'accesso al tuo strumento con l'opzione
exposedTo in
registerTool a una serie di origini specifiche e sicure. In questo modo, lo strumento
viene esposto a queste origini quando è incorporato nel tuo sito e quando il tuo sito è incorporato in
quell'origine.
// https://partner.org
document.modelContext.registerTool({
name: 'my_shared_tool',
description: 'Shared across origins',
// ...
}, {
exposedTo: ['https://trusted.com', 'https://example.com']
});
Esporre i tuoi strumenti solo alle origini di cui ti fidi. Ciò è particolarmente importante quando gli strumenti gestiscono i dati degli utenti o influiscono in altro modo sull'utente.
- Uno strumento di sola lettura, come
getFavoriteProducts, può rivelare informazioni su un utente. Devi esporre questi strumenti solo ai siti web con cui altrimenti condivideresti direttamente questi dati. - Gli strumenti con accesso in lettura e scrittura eseguono azioni per conto di un utente. Questi strumenti
devono essere esposti solo alle origini che decidi di considerare attendibili quando agiscono
per conto del tuo utente. Ad esempio, potresti voler esporre
postCommentatrustedExample.com, ma non aevilExample.com.
Impostare i budget dei personaggi
Per evitare di incorrere nelle misure di protezione dell'agente, scrivi descrizioni e output degli strumenti succinti. Per ottenere risultati migliori, consigliamo i seguenti limiti di caratteri:
- 500 caratteri per la descrizione dello strumento
- 150 caratteri per descrizione del parametro
- 30 caratteri per nome dello strumento e nome del parametro
- Limite di 1500 caratteri per l'output di ogni singolo strumento
È probabile che ci sia una certa variazione tra gli agenti e potresti voler modificare i budget dei caratteri in base al feedback degli utenti.
Passaggi successivi
Continuiamo a fare ricerche e a lavorare per creare un'infrastruttura sicura per
il web agentico. Ad esempio, è in corso una
discussione sulla gestione del consenso
tra le parti e la bozza delle specifiche include
requestUserInteraction()
per richiedere in modo asincrono l'input dell'utente durante l'esecuzione dello strumento.
Come prevedi di implementare WebMCP nella tua applicazione? Hai altri dubbi, di sicurezza o di altro tipo? Se ti registri alla prova dell'origine WebMCP, ci piacerebbe conoscere la tua esperienza:
- Condividi il tuo feedback sulla forma dell'API commentando un problema esistente o aprine uno nuovo nella spiegazione di WebMCP su GitHub.
- Se hai feedback sull'implementazione di Chrome, segnala un bug di Chromium.
- Partecipa al programma di anteprima per dare un'occhiata in anteprima alle nuove API e accedere alla nostra mailing list.
- Esamina l'implementazione per Chrome su Stato di Chrome.
Se stai creando un agente, ti consigliamo di leggere Considerazioni sulla sicurezza degli agenti per WebMCP.