Agent Pilot
Agent Pilot trasforma il tuo sito WordPress in un server MCP (Model Context Protocol) remoto e sicuro. Installalo, connetti Claude — da claude.ai sul web, da Claude Desktop o da Claude Code — e il tuo sito diventa qualcosa che Claude può davvero gestire: cercare articoli e prodotti, redigere e modificare pagine in linea con il brand, aggiornare gli ordini WooCommerce, moderare i commenti, svuotare le cache e molto altro.
La parte difficile nel dare a un’AI l’accesso al tuo sito è farlo in modo sicuro. Agent Pilot è costruito attorno a questo problema. Ogni connessione passa per un handshake OAuth 2.1 completo, ogni token di accesso è legato a uno specifico utente WordPress e ogni tool ricontrolla le capability di quell’utente prima di essere eseguito. Claude non può mai fare di più della persona che lo ha autorizzato — e tutto ciò che fa viene scritto in un log di audit che puoi consultare e revocare in qualsiasi momento.

Punti di forza
- Basato su standard e indipendente dal client. Un server MCP conforme sul transport Streamable-HTTP con OAuth 2.1 completo (authorization code + PKCE + refresh, Dynamic Client Registration). Funziona da subito con i connettori personalizzati di claude.ai, con Claude Desktop e con Claude Code.
- Multi-utente e multi-istanza. Connetti più istanze di Claude — anche come utenti WordPress diversi. Ogni token è legato all’utente che lo ha approvato e limitato al ruolo di quell’utente. Il connettore di uno shop manager vede solo ciò che uno shop manager può fare.
- 25 tool integrati su quattro scope di permessi — lettura, creazione di contenuti, WooCommerce e gestione del sito — più uno scope opzionale di knowledge base di Chatbot Pilot e qualsiasi tool che altri plugin Pilot contribuiscono (fatturazione, posta transazionale, sicurezza, SEO, abbonamenti).
- Controllo dei tool per ruolo e per utente. Una schermata Tools dedicata abilita o disabilita ogni tool — o un intero scope — per qualsiasi ruolo WordPress o singolo utente. Gli amministratori ottengono tutto per impostazione predefinita; ogni altro ruolo parte vuoto e gli viene concesso esattamente ciò di cui ha bisogno.
- Modifiche chirurgiche ai contenuti.
wp_replace_in_postesegue modifiche mirate di tipo trova-e-sostituisci, così Claude può correggere un refuso su una pagina Divi o Elementor senza riscrivere migliaia di righe di markup del page builder. - Difesa in profondità. Una schermata di consenso, doppi controlli scope-su-capability, conferma per singola chiamata per le azioni distruttive, un log di audit completo, rate limiting, una allowlist IP opzionale e la rotazione delle chiavi con un click.
- Crittografato a riposo. La chiave di firma OAuth viene generata all’attivazione e memorizzata in forma crittografata con i salt di WordPress (oppure conservata in un file esterno al database, se preferisci).
- Nessun lock-in, nessuna telemetria. Self-hosted. I tuoi dati e le credenziali del tuo provider AI non passano mai dai nostri server.
Come funziona
Due standard aperti svolgono il lavoro pesante:
- OAuth 2.1 risponde alla domanda “chi può entrare, e per fare cosa?”. Quando un client Claude raggiunge il tuo sito per la prima volta non ha alcun token, quindi viene indirizzato a un flusso di login e consenso. Un amministratore approva un insieme di scope e il client riceve un token di accesso firmato e a tempo limitato.
- MCP (Model Context Protocol) risponde alla domanda “cosa può davvero fare
l’agente?”. Una volta autenticato, Claude chiama un unico endpoint che espone
una lista di tool —
wp_list_posts,wp_save_post,wc_list_orderse così via. Claude vede solo i tool che il suo token è autorizzato a usare.
La discovery, il login, il consenso e lo scambio del token avvengono tutti automaticamente la prima volta che aggiungi il connettore. Da quel momento in poi Claude si riconnette in modo silenzioso usando il suo refresh token.
Requisiti
| Componente | Consigliato |
|---|---|
| WordPress | 5.8 o successivo (testato fino alla 7.0) |
| PHP | 8.0 o successivo |
| WooCommerce | 7.0+ (opzionale — i tool Woo compaiono solo quando è attivo) |
| Chatbot Pilot | opzionale — i tool della knowledge base compaiono solo quando è attivo |
| HTTPS | Richiesto per claude.ai web; consigliato ovunque |
| Salt di WordPress | AUTH_KEY / SECURE_AUTH_KEY univoci in wp-config.php (usati per crittografare la chiave di firma) |
| Raggiungibilità | claude.ai si connette dal cloud Anthropic, quindi il sito deve essere raggiungibile pubblicamente per il client web (i client locali possono usare un URL locale) |
Installazione
- Apri Plugin → Aggiungi nuovo → Carica plugin nell’area admin di WordPress e carica il file ZIP di Agent Pilot.
- Attiva Agent Pilot. All’attivazione crea le sue tabelle nel database,
assegna la capability
manage_agent_pilotagli amministratori e genera automaticamente le chiavi di firma OAuth. - Apri Agent Pilot → Connectors. Copia l’URL dell’endpoint MCP mostrato in alto — è quell’indirizzo che fornisci a Claude.
- Aggiungi il connettore nel tuo client Claude (vedi sotto) e completa il login
- consenso una tantum.
Connettere Claude
Tutto ciò che serve a un client si trova nella schermata Connectors: l’endpoint MCP, l’issuer OAuth e un comando pronto da incollare per Claude Code.

claude.ai (web) e Claude Desktop
In Claude, apri Settings → Connectors → Add custom connector e incolla il
tuo endpoint MCP (ad esempio https://your-site.com/wp-json/agent-pilot/v1/mcp).
Claude apre la pagina di login del tuo sito, tu approvi la schermata di consenso
e il connettore è pronto. Il client web si connette dal cloud di Anthropic,
quindi il tuo sito deve essere raggiungibile su HTTPS pubblico.
Claude Code
claude mcp add --transport http agent-pilot https://your-site.com/wp-json/agent-pilot/v1/mcpClaude Code avvia il flusso OAuth nel tuo browser; dopo l’approvazione, i tool
sono disponibili nella tua sessione. Esegui /mcp per vederli, oppure chiedi
semplicemente a Claude di fare qualcosa — “elenca gli ultimi cinque articoli in
bozza”, “mostrami gli ordini in elaborazione di questa settimana”.
Scegliere come quale utente agisce l’agente
La schermata di consenso viene eseguita come l’utente WordPress autenticato
e il token risultante eredita le capability di quell’utente. Per una connessione
strettamente delimitata, crea un utente WordPress dedicato con un ruolo limitato
(più la capability manage_agent_pilot per consentirgli di autorizzare) e
approva il connettore mentre sei loggato come quell’utente. L’agente potrà
quindi fare esattamente ciò che quell’utente può fare — e niente di più.
Cosa può fare Claude
I tool sono raggruppati in quattro scope. Durante il consenso decidi quali scope riceve un connettore; al momento della chiamata ogni tool verifica inoltre la capability WordPress dell’utente legato. Entrambi i controlli devono andare a buon fine.
Lettura (wp.read)
Ispezione del sito in sola lettura. Sicura da concedere ampiamente.
| Tool | Cosa fa |
|---|---|
wp_get_site_info | Nome del sito, URL, versioni, tema attivo, stato di WooCommerce, conteggi dei contenuti |
wp_get_site_context | Tema, palette di colori, tipografia, block pattern e un articolo recente — così i contenuti generati rispettano il tuo stile |
wp_list_posts | Cerca ed elenca articoli, pagine e qualsiasi custom post type |
wp_get_post | Recupera un singolo articolo/pagina con il contenuto completo e i metadati |
wp_list_terms | Elenca i termini delle tassonomie (categorie, tag, categorie prodotto…) |
wc_list_products / wc_get_product | Cerca e leggi i prodotti WooCommerce |
wc_list_orders / wc_get_order | Cerca e leggi gli ordini con le relative voci |
wc_list_customers | Cerca i clienti con numero di ordini e spesa totale |
Scrittura contenuti (wp.content.write)
Crea e modifica contenuti. Le azioni distruttive richiedono un flag confirm
esplicito.
| Tool | Cosa fa |
|---|---|
wp_save_post | Crea un nuovo articolo/pagina/CPT o aggiorna completamente uno esistente |
wp_replace_in_post | Trova e sostituisci mirato all’interno di una pagina — il modo sicuro per correggere un refuso o una riga su una pagina creata con page builder (vedi sotto) |
wp_delete_post | Sposta nel cestino o elimina definitivamente un articolo (confirm richiesto) |
wp_upload_media | Importa un’immagine/file da un URL nella libreria media |
wc_save_product | Crea o aggiorna un prodotto WooCommerce |
wc_save_order | Aggiorna lo stato di un ordine o aggiungi una nota all’ordine |
wp_comments | Elenca e modera i commenti (approva, disapprova, spam, cestino) |
Gestione del sito (wp.manage)
Operazioni amministrative. Ogni modifica distruttiva richiede conferma.
| Tool | Cosa fa |
|---|---|
wp_options | Leggi o aggiorna un’opzione WordPress (gli aggiornamenti richiedono confirm; i segreti dei plugin sono bloccati) |
wp_plugins | Elenca, attiva o disattiva i plugin (confirm) |
wp_themes | Elenca i temi installati o cambia il tema attivo (confirm) |
wp_users | Elenca, leggi, crea, aggiorna o elimina utenti — con protezioni contro l’eliminazione di te stesso o dell’ultimo amministratore (confirm) |
wp_maintenance | Svuota la object cache, rigenera le rewrite rule, cancella i transient |
Knowledge base (wp.kb)
Disponibile solo quando Chatbot Pilot è attivo.
| Tool | Cosa fa |
|---|---|
kb_search | Ricerca semantica (embedding) sulla tua knowledge base di Chatbot Pilot |
kb_stats | Statistiche di indicizzazione: file scansionati/indicizzati, chunk, ultima esecuzione |
kb_reindex | Avvia una reindicizzazione in background (richiede la capability di gestione) |
Tool da altri plugin
Agent Pilot è estensibile: qualsiasi plugin può registrare i propri scope e tool MCP, che poi fluiscono automaticamente attraverso la discovery, la schermata di consenso e la schermata Tools. Ogni scope contribuito viene mappato su una capability WordPress proprio come quelli integrati, quindi si applica lo stesso doppio controllo scope-e-capability. In tutta la suite Pilot questo include già:
| Plugin | Aggiunge la possibilità di |
|---|---|
| Invoice Pilot | Leggere le fatture ed emetterne una a partire da un ordine WooCommerce |
| Mail Pilot | Sfogliare il log degli invii e inviare un’email tramite il mailer del sito |
| Security Pilot | Leggere lo stato di sicurezza e il log degli attacchi, bloccare o sbloccare un IP |
| AI SEO Pilot | Leggere i campi SEO di un articolo e impostarne meta description, focus keyword e schema |
| Subscriptions | Visualizzare gli abbonamenti degli utenti, lo stato e le date di fatturazione |
La schermata Tools — accesso per ruolo e per utente
Gli scope decidono a grandi linee cosa può fare un connettore; la schermata Agent Pilot → Tools ti consente di andare più nel dettaglio, abilitando o disabilitando singoli tool — o un intero scope — per un ruolo WordPress o un utente specifico.

- Impostazioni predefinite sicure per l’admin. Gli amministratori ottengono ogni tool per impostazione predefinita. Ogni altro ruolo parte con nessun tool — concedi esattamente ciò di cui ha bisogno, per scope o per singolo tool.
- Tre stati per riga. Predefinito, Attivato o Disattivato. Una regola a livello di tool prevale su una regola a livello di scope; tra i ruoli di un utente, un Disattivato vince sempre.
- Override per utente. Digita un nome o un’email per caricare un singolo utente e regolare il suo accesso indipendentemente dal suo ruolo.
- Solo restrittivo, e tracciato. Questo livello si colloca sopra il consenso agli scope OAuth e le capability di WordPress — può togliere tool, mai concedere qualcosa che l’utente legato non potesse già fare. Ogni chiamata bloccata viene scritta nel log di audit.
Modificare in sicurezza le pagine dei page builder
Le pagine costruite con Divi, Elementor, WPBakery e builder simili
memorizzano il loro layout come migliaia di righe di shortcode o JSON dentro
post_content. Riscrivere tutto solo per correggere un refuso è rischioso — un
solo carattere fuori posto può rompere la pagina.
wp_replace_in_post risolve questo problema. Invece di sovrascrivere l’intera
pagina, fornisci a Claude il testo esatto da trovare e la sua sostituzione, e
cambiano solo quei byte — il markup del builder circostante viene preservato byte
per byte. Supporta più modifiche in una singola chiamata (ad esempio un refuso e
una riga di FAQ), si rifiuta di agire quando il testo cercato non viene trovato e
per default richiede che lo snippet sia unico, così nulla viene cambiato per
errore.
Suggerimento: chiedi prima a Claude di leggere la pagina con
wp_get_postcosì copia il testo esatto, e di eseguirewp_maintenanceal termine se il builder mette in cache una versione statica della pagina.
Modello di sicurezza
Agent Pilot stratifica diverse protezioni indipendenti:
- OAuth 2.1, non una chiave condivisa. Grant di tipo authorization-code con PKCE e refresh token. I token di accesso sono JWT firmati a vita breve; non c’è alcuna password statica che possa trapelare.
- Legato a un utente. Ogni token porta con sé l’utente WordPress che lo ha approvato. Le chiamate ai tool vengono eseguite come quell’utente, quindi le regole di ruolo e capability si applicano esattamente come in wp-admin.
- Scope e capability. Uno scope dice “questo connettore può scrivere contenuti”; il controllo di capability dice “questo utente è effettivamente autorizzato a farlo.” Entrambi devono passare, a ogni chiamata.
- Limitazione dei tool per ruolo / per utente. Oltre agli scope, la schermata Tools può disabilitare singoli tool (o interi scope) per un ruolo o un singolo utente. È un livello solo restrittivo — sempre applicato, e ogni chiamata bloccata viene tracciata.
- Un consenso che puoi leggere. La schermata di approvazione indica il nome del connettore, mostra l’host richiedente ed elenca ogni permesso richiesto — segnalando quelli che il tuo account non può effettivamente concedere.
- Le azioni distruttive sono protette. Eliminare contenuti, cambiare
plugin/temi/utenti o aggiornare opzioni richiede un
confirmesplicito nella richiesta, a meno che tu non contrassegni deliberatamente un connettore come attendibile. - Tutto viene tracciato. Autorizzazioni, registrazioni, ogni chiamata a un tool e ogni tentativo fallito vengono registrati con utente, connettore, timestamp e IP.
- Rate limiting e allowlist IP. Limiti di richieste per connettore, più una allowlist CIDR opzionale per deployment a tenuta stagna.
- Revoca e rotazione. Disabilita un connettore o un singolo token con un click, oppure ruota le chiavi di firma per invalidare tutti i token in una sola volta.
La schermata Connectors
Agent Pilot → Connectors è la cabina di comando:
- Connect Claude to this site — l’endpoint MCP, l’issuer OAuth e l’URL dei metadata della risorsa protetta, più un comando da copiare e incollare per Claude Code.
- Registered connectors — ogni client che si è registrato (ciascuna istanza di Claude è una voce a sé), con il suo tipo e un Revoke con un click.
- Active access tokens — una riga per ogni connessione attiva, con l’utente, il connettore, gli scope concessi e la scadenza, ciascuno revocabile singolarmente.
- Signing keys — Rotate keys invalida immediatamente tutti i token emessi; i connettori semplicemente si riautorizzano.
- Recent activity — una traccia di audit in tempo reale. Una normale nuova
connessione appare come
auth_fail(la sonda di discovery iniziale) →dcr(registrazione) →authorize(approvata) → vocitool_callmentre Claude lavora. Le sonde non autenticate che appaiono comeauth_failsono attese per qualsiasi endpoint pubblico.
Riferimento impostazioni
Configura il comportamento sotto Agent Pilot → Settings.

| Impostazione | Scopo |
|---|---|
| Enable MCP server | Interruttore principale. Quando è disattivato, gli endpoint OAuth e MCP restituiscono 503. |
| Accept new connectors | Consente la Dynamic Client Registration. claude.ai web ne ha bisogno per auto-registrarsi; disattivala per congelare la lista dei connettori. |
| Trust connectors (skip confirmations) | Quando è attivo, i tool distruttivi vengono eseguiti senza il flag confirm per chiamata. Lascialo disattivato per sicurezza. |
| Access-token lifetime | Per quanto tempo è valido un token di accesso, in secondi (i refresh token estendono la sessione). |
| MCP rate limit | Numero massimo di richieste MCP al minuto, per connettore. |
| IP allowlist | Lista CIDR opzionale. Vuota = consenti tutti. Nota che claude.ai si connette da IP del cloud Anthropic. |
| Extra redirect hosts | Host di redirect OAuth aggiuntivi da accettare in fase di registrazione. claude.ai / claude.com e localhost sono sempre consentiti. |
| Audit-log retention | Per quanti giorni conservare le voci di audit prima della pulizia automatica. |
| Remove all data on uninstall | Quando è abilitato, eliminando il plugin si rimuovono le sue tabelle, opzioni e la capability. |
Multi-utente e multi-istanza
Poiché ogni token è legato a un utente WordPress, puoi connettere molti agenti contemporaneamente con raggio d’azione diverso:
- Connetti Claude Desktop come editor per i contenuti quotidiani e Claude Code come amministratore per la manutenzione del sito.
- Dai a un collega il suo connettore sotto il suo account WordPress — il log di audit attribuisce ogni azione alla persona giusta.
- Le connessioni concorrenti sono isolate; la sessione e i permessi di un agente non sconfinano mai in quelli di un altro.
Risoluzione dei problemi
Il connettore autorizza ma Claude non elenca mai i tool. È quasi sempre una discrepanza nell’URL. Assicurati di aver usato l’endpoint MCP esatto mostrato nella schermata Connectors e che il tuo sito sia raggiungibile su HTTPS dal client.
Ogni richiesta mostra auth_fail anche con un token. Alcune configurazioni
Apache/nginx rimuovono l’header Authorization prima che raggiunga PHP. Aggiungi
una regola di rewrite per farlo passare (la stessa correzione usata per le
application password di WordPress).
claude.ai non riesce a raggiungere il sito. Il client web si connette dal
cloud di Anthropic — un URL localhost non funzionerà. Usa un dominio HTTPS
raggiungibile pubblicamente.
Un tool restituisce “forbidden”. All’utente WordPress legato manca la capability per quell’azione. Autorizza come utente con il ruolo giusto, oppure concedi la capability.
Un tool distruttivo si rifiuta di eseguire. Ha bisogno di "confirm": true
nella richiesta (oppure abilita Trust connectors). Chiedi a Claude di
riprovare con la conferma.
Il sito è andato in white-screen dopo l’attivazione insieme a un altro plugin. Svuota l’opcache di PHP (o riavvia PHP) una volta dopo l’attivazione se il loader condiviso di un plugin affine è stato messo in cache in uno stato incoerente.
Disinstallazione
La disattivazione ferma il server e i job pianificati. L’eliminazione del plugin
ne rimuove il codice; lascia i tuoi dati al loro posto a meno che tu non
abbia abilitato Remove all data on uninstall nelle impostazioni, nel qual caso
le sue tabelle, opzioni e la capability manage_agent_pilot vengono rimosse.