Sicurezza dello strumento WebMCP

Julia Pagnucco
Julia Pagnucco
Alexandra Klepper
Alexandra Klepper

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 aggiungere untrustedContentHint allo 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 readOnlyHint sugli 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 postComment a trustedExample.com, ma non a evilExample.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:

Se stai creando un agente, ti consigliamo di leggere Considerazioni sulla sicurezza degli agenti per WebMCP.