<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>MCP - Web Design | Creazione Siti Internet</title>
	<atom:link href="https://www.mrtux.it/tag/mcp/feed" rel="self" type="application/rss+xml" />
	<link>https://www.mrtux.it</link>
	<description>Sviluppo Siti Web - Assistenza WordPress</description>
	<lastBuildDate>Tue, 16 Jun 2026 03:20:47 +0000</lastBuildDate>
	<language>it-IT</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0.1</generator>

<image>
	<url>https://www.mrtux.it/wp-content/uploads/2022/06/favicon-150x150.png</url>
	<title>MCP - Web Design | Creazione Siti Internet</title>
	<link>https://www.mrtux.it</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Plugin AI WordPress con MCP e abilities: pattern ufficiale 2026</title>
		<link>https://www.mrtux.it/wp-plugin-ai-mcp-abilities-pattern</link>
					<comments>https://www.mrtux.it/wp-plugin-ai-mcp-abilities-pattern#respond</comments>
		
		<dc:creator><![CDATA[Emilio Petrozzi]]></dc:creator>
		<pubDate>Tue, 16 Jun 2026 03:20:46 +0000</pubDate>
				<category><![CDATA[sviluppo-web]]></category>
		<category><![CDATA[abilities]]></category>
		<category><![CDATA[AI agent]]></category>
		<category><![CDATA[MCP]]></category>
		<category><![CDATA[Plugin Team]]></category>
		<category><![CDATA[sviluppo plugin]]></category>
		<category><![CDATA[WordPress 7.0]]></category>
		<category><![CDATA[WP AI Client]]></category>
		<guid isPermaLink="false">https://www.mrtux.it/plugin-ai-wordpress-con-mcp-e-abilities-pattern-ufficiale-2026</guid>

					<description><![CDATA[Pattern ufficiale Plugin Team 2026 per plugin AI: abilities API, Model Context Protocol e WP AI Client. Codice, esempi e quando adottarlo davvero.]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Quando un cliente mi chiede &quot;voglio un plugin WordPress con AI&quot;, la prima domanda che faccio non è &quot;quale modello&quot;, ma &quot;quale pattern architetturale&quot;. Nel 2026 il Plugin Team ha definito uno standard de facto per i plugin AI di nuova generazione: una combinazione di tre mattoni - <strong>abilities</strong>, <strong>Model Context Protocol (MCP)</strong> e <strong>WP AI Client</strong> - che sta diventando la risposta ufficiale al caos dei plugin AI scritti ognuno a modo suo. Se hai letto la mia <a href="https://www.mrtux.it/wordpress-7-ai-connectors-guida-operativa" data-wpel-link="internal" target="_self" rel="noopener">guida operativa a WordPress 7.0 AI Connectors</a> o l&#x27;analisi di <a href="https://www.mrtux.it/wpvibe-mcp-wordpress-gestire-sito-claude-chatgpt" data-wpel-link="internal" target="_self" rel="noopener">WPVibe e MCP per WordPress</a>, sai che il tema è già maturo. Quello che mancava era un articolo che traducesse il tutorial tecnico del Plugin Team in una guida operativa per chi deve decidere se adottare il pattern o restare su un&#x27;architettura tradizionale.</p>



<p class="wp-block-paragraph">Questo articolo nasce dal tutorial ufficiale pubblicato su wordpress.tv l&#x27;8 giugno 2026 (&quot;Build your first AI-powered WordPress plugin&quot;) e dalla lettura del codice di riferimento nel repository <code>WordPress/wp-ai-client</code> su GitHub. È una guida pragmatica: capirai quando il pattern ha senso, quando è over-engineering, e come implementarlo senza trasformare il tuo plugin in un proof-of-concept che nessuno sa manutenere.</p>



<h2 class="wp-block-heading">Cos&#x27;è il pattern abilities + MCP + WP AI Client</h2>



<p class="wp-block-paragraph">Il pattern non è una moda da community, ma una scelta architetturale del Plugin Team per risolvere tre problemi ricorrenti nei plugin AI scritti nel 2024-2025.</p>



<h3 class="wp-block-heading">I tre problemi che il pattern risolve</h3>



<ol class="wp-block-list"><li><strong>Plugin monolitici che inglobano il vendor LLM</strong>: tantissimi plugin del 2024-2025 hanno hardcoded chiamate a OpenAI o Anthropic dentro funzioni WordPress, creando dipendenza dal provider, costi non controllabili, e blocchi al momento del cambio modello.</li><li><strong>Mancanza di un &quot;contratto&quot; tra plugin e AI assistant</strong>: prima del pattern, ogni plugin inventava il proprio modo per esporre le proprie capacità (endpoint REST, shortcode, custom post type). Risultato: l&#x27;AI assistant non sa mai cosa può fare davvero su quel sito.</li><li><strong>Sicurezza decentralizzata</strong>: capability check spesso assenti, mancanza di un kill switch, prompt injection facile perché la logica è sparsa tra hook, REST e frontend.</li></ol>



<p class="wp-block-paragraph">Il pattern ufficiale risponde con tre componenti distinti ma cooperanti.</p>



<h3 class="wp-block-heading">Le tre componenti in sintesi</h3>



<ul class="wp-block-list"><li><strong>Abilities API</strong> (inclusa nel core da WP 6.9, matura in WP 7.0): un modo standard per dichiarare cosa sa fare il tuo plugin. Ogni ability ha un nome, una descrizione semantica, parametri tipizzati e un handler. È il &quot;contratto&quot;.</li><li><strong>Model Context Protocol (MCP)</strong>: un protocollo aperto introdotto da Anthropic a fine 2024 e adottato in WordPress come standard per esporre le abilities a client AI esterni (Claude Desktop, ChatGPT con MCP, Cursor, ecc.). Il plugin pubblica un server MCP; l&#x27;AI client lo scopre e lo consuma.</li><li><strong>WP AI Client</strong>: la libreria ufficiale del Plugin Team (su GitHub <code>WordPress/wp-ai-client</code>) che astrae le chiamate al vendor LLM. Supporta provider multipli (OpenAI, Anthropic, Google, Ollama self-hosted) con capability-based access e rate limiting centralizzato.</li></ul>



<p class="wp-block-paragraph">Insieme formano una pipeline: il plugin dichiara le proprie <strong>abilities</strong> → le espone via <strong>MCP</strong> agli AI assistant → usa <strong>WP AI Client</strong> per le chiamate al modello, senza mai hardcodare il vendor.</p>



<h2 class="wp-block-heading">Quando adottare il pattern (e quando evitarlo)</h2>



<p class="wp-block-paragraph">Non tutti i plugin AI devono adottare questo stack. Facciamo chiarezza con un test a tre domande che uso in agenzia prima di approvare un nuovo progetto plugin.</p>



<h3 class="wp-block-heading">Test delle tre domande</h3>



<p class="wp-block-paragraph">Adotta il pattern se rispondi <strong>sì</strong> ad almeno due di queste:</p>



<ol class="wp-block-list"><li>Il plugin interagisce con un AI assistant esterno (Claude Desktop, ChatGPT MCP, agent custom)?</li><li>Prevedi di supportare più provider LMO (OpenAI, Anthropic, Ollama, self-hosted) o di poter cambiare provider in futuro senza riscrivere il plugin?</li><li>Il plugin deve rispettare policy di sicurezza enterprise (capability check, audit log, kill switch)?</li></ol>



<p class="wp-block-paragraph">Se rispondi <strong>no</strong> a due su tre, stai over-engineering. Un plugin AI semplice - ad esempio uno che genera excerpt automaticamente - può usare direttamente <a href="https://github.com/WordPress/wp-ai-client" target="_blank" rel="noopener nofollow external" data-wpel-link="external">WP AI Client</a> saltando abilities e MCP, oppure restare su <code>wp_remote_post()</code> per una singola API key fissa.</p>



<h3 class="wp-block-heading">Profili tipici di adozione</h3>



<ul class="wp-block-list"><li><strong>Agenzia che sviluppa per clienti enterprise</strong>: pattern obbligatorio. Compliance, audit e portabilità tra provider sono requisiti di contratto.</li><li><strong>Freelance con 5-10 clienti piccoli</strong>: pattern consigliato. Il costo di setup si ammortizza in 2-3 progetti e la manutenzione è più semplice.</li><li><strong>Hobbista con un solo progetto</strong>: pattern eccessivo. Meglio una funzione custom in <code>functions.php</code>.</li><li><strong>Plugin commerciale in vendita su .org</strong>: pattern raccomandato dal Plugin Team. La review del 2026 premia i plugin che adottano standard aperti.</li></ul>



<h2 class="wp-block-heading">Anatomia di un&#x27;ability WordPress</h2>



<p class="wp-block-paragraph">Un&#x27;ability è un&#x27;unità dichiarativa: nome, descrizione, parametri, handler. Vediamo l&#x27;implementazione minima tratta dal tutorial wordpress.tv.</p>



<h3 class="wp-block-heading">Registrare un&#x27;ability</h3>



<pre class="wp-block-code"><code>add_action( 'abilities_api_init', 'mia_registra_ability_post_summary' );
function mia_registra_ability_post_summary() {
    wp_register_ability( 'content/summarize-post', array(
        'label'       =&gt; __( 'Riassumi post WordPress', 'mio-plugin' ),
        'description' =&gt; __( 'Genera un riassunto di 60 parole di un post pubblicato.', 'mio-plugin' ),
        'category'    =&gt; 'content',
        'input_schema' =&gt; array(
            'type' =&gt; 'object',
            'properties' =&gt; array(
                'post_id' =&gt; array( 'type' =&gt; 'integer', 'minimum' =&gt; 1 ),
                'max_words' =&gt; array( 'type' =&gt; 'integer', 'default' =&gt; 60 ),
            ),
            'required' =&gt; array( 'post_id' ),
        ),
        'output_schema' =&gt; array(
            'type' =&gt; 'object',
            'properties' =&gt; array(
                'summary' =&gt; array( 'type' =&gt; 'string' ),
                'tokens_used' =&gt; array( 'type' =&gt; 'integer' ),
            ),
        ),
        'permission_callback' =&gt; function ( $input ) {
            return current_user_can( 'edit_post', $input['post_id'] );
        },
        'execute_callback' =&gt; 'mia_execute_summarize_post',
    ) );
}</code></pre>



<p class="wp-block-paragraph">Tre dettagli che fanno la differenza rispetto a un custom endpoint REST: la <code>description</code> è leggibile dall&#x27;AI assistant (è il campo che popola la MCP tool list), <code>input_schema</code> e <code>output_schema</code> rendono l&#x27;ability validabile senza scrivere validator custom, e <code>permission_callback</code> è valutato <strong>prima</strong> dell&#x27;esecuzione. Niente più capability check duplicati in cinque punti del codice.</p>



<h3 class="wp-block-heading">L&#x27;handler: cosa non fare</h3>



<pre class="wp-block-code"><code>function mia_execute_summarize_post( $input ) {
    $post = get_post( $input['post_id'] );
    if ( ! $post ) {
        return new WP_Error( 'post_not_found', __( 'Post non trovato.', 'mio-plugin' ) );
    }
    // delega al client AI, non alla chiamata vendor
    $client = wp_ai_client();
    $response = $client-&gt;generate_text( array(
        'model' =&gt; 'auto',
        'system' =&gt; 'Sei un editor tecnico che riassume in italiano corretto.',
        'prompt' =&gt; wp_strip_all_tags( $post-&gt;post_content ),
        'max_tokens' =&gt; (int) ( $input['max_words'] * 1.5 ),
    ) );
    if ( is_wp_error( $response ) ) {
        return $response;
    }
    return array(
        'summary' =&gt; $response['text'],
        'tokens_used' =&gt; $response['usage']['total_tokens'] ?? 0,
    );
}</code></pre>



<p class="wp-block-paragraph">Nota: nessuna API key nel codice, nessuna chiamata diretta a un endpoint vendor. <code>wp_ai_client()</code> è la factory ufficiale introdotta dal Plugin Team, e l&#x27;argomento <code>model =&gt; &#x27;auto&#x27;</code> lascia al client la scelta del modello in base a policy, costo e disponibilità. Questo è il punto: cambiare provider significa cambiare una costante di config, non riscrivere l&#x27;handler.</p>



<h2 class="wp-block-heading">Esposizione MCP: dal plugin al desktop AI</h2>



<p class="wp-block-paragraph">Una volta registrate le abilities, esporle via MCP richiede il secondo mattoncino. Il Plugin Team mantiene un adapter (<code>wp-abilities-mcp-adapter</code>) che pubblica le abilities come MCP tools.</p>



<h3 class="wp-block-heading">Setup dell&#x27;adapter MCP</h3>



<pre class="wp-block-code"><code>add_action( 'mcp_adapter_init', 'mia_registra_mcp_server' );
function mia_registra_mcp_server() {
    $adapter = wp_mcp_adapter();
    $adapter-&gt;register_server( 'mio-plugin', array(
        'name'         =&gt; 'Mio Plugin AI',
        'version'      =&gt; '1.0.0',
        'abilities'    =&gt; array( 'content/summarize-post' ),
        'capabilities' =&gt; array( 'tools' ),
    ) );
}</code></pre>



<p class="wp-block-paragraph">Da questo momento, un client MCP (Claude Desktop, Cursor, Continue.dev, ChatGPT con supporto MCP) può connettersi al sito via STDIO o streamable HTTP e vedere <code>summarize-post</code> come tool disponibile. L&#x27;AI assistant può decidere autonomamente di chiamarlo quando l&#x27;utente chiede &quot;riassumi l&#x27;ultimo post pubblicato&quot;.</p>



<h3 class="wp-block-heading">Tre guardrail operativi non negoziabili</h3>



<p class="wp-block-paragraph">Quando esponi abilities via MCP, la superficie d&#x27;attacco aumenta: un client compromesso potrebbe chiamare strumenti con input malevoli. Tre regole ferree.</p>



<ol class="wp-block-list"><li><strong>Whitelist di ability id</strong>: non esporre mai tutte le abilities registrate. Decidi tu quali sono &quot;esterne&quot;.</li><li><strong>Rate limit per ability</strong>: aggiungi un token bucket. Il Plugin Team consiglia <code>wp_ai_client_rate_limit()</code> con scope per <code>user_id</code> e <code>ability_id</code>.</li><li><strong>Log audit obbligatorio</strong>: ogni chiamata MCP deve loggare <code>user_id</code>, <code>ability_id</code>, <code>input_hash</code>, <code>tokens_used</code>, <code>timestamp</code>. Il log non è opzionale, è la base del GDPR compliance.</li></ol>



<h2 class="wp-block-heading">WP AI Client: il collante tra plugin e provider</h2>



<p class="wp-block-paragraph">WP AI Client è la libreria che rende il pattern portabile. Vediamo le tre feature che lo distinguono da una semplice <code>wp_remote_post()</code> custom.</p>



<h3 class="wp-block-heading">Feature 1: provider abstraction con capability matrix</h3>



<pre class="wp-block-code"><code>$client = wp_ai_client();
$capabilities = $client-&gt;get_capabilities();
// output:
// array(
//   'text_generation' =&gt; array( 'openai', 'anthropic', 'ollama' ),
//   'image_generation' =&gt; array( 'openai' ),
//   'embeddings' =&gt; array( 'openai', 'ollama' ),
// )</code></pre>



<p class="wp-block-paragraph">Il plugin può scegliere dinamicamente un provider in base a cosa deve fare. Se domani Anthropic rilascia image generation, non devi toccare il codice: aggiorni il client.</p>



<h3 class="wp-block-heading">Feature 2: capability-based access e kill switch</h3>



<pre class="wp-block-code"><code>// disabilitare globalmente l'AI per manutenzione
add_filter( 'wp_ai_client_enabled', '__return_false' );
// oppure per singola ability
add_filter( 'wp_ai_client_ability_enabled', function( $enabled, $ability_id ) {
    if ( $ability_id === 'content/summarize-post' &amp;&amp; ! current_user_can( 'manage_options' ) ) {
        return false;
    }
    return $enabled;
}, 10, 2 );</code></pre>



<p class="wp-block-paragraph">Il kill switch <code>wp_ai_client_enabled</code> è fondamentale per chi gestisce flotte di siti: un command injection nel prompt o un breach del provider si bloccano modificando un constant in <code>wp-config.php</code>.</p>



<h3 class="wp-block-heading">Feature 3: cost tracking integrato</h3>



<pre class="wp-block-code"><code>$response = $client-&gt;generate_text( array( ... ) );
update_option( 'mio_plugin_ai_cost_june', ( get_option( 'mio_plugin_ai_cost_june' ) ?: 0 ) + $response['cost_usd'] );</code></pre>



<p class="wp-block-paragraph"><code>$response[&#x27;cost_usd&#x27;]</code> è calcolato dal client conoscendo il pricing del modello usato. Niente più fogli Excel per riconciliare le fatture OpenAI a fine mese.</p>



<h2 class="wp-block-heading">Caso reale: agenzia con 12 siti clienti</h2>



<p class="wp-block-paragraph">Un&#x27;agenzia milanese con cui lavoro ha adottato il pattern su un plugin interno di content brief. Prima: 12 siti, 12 plugin leggermente diversi, 3 provider LLM contrattati a tariffe diverse. Dopo sei mesi col pattern:</p>



<ul class="wp-block-list"><li><strong>Tempo medio di sviluppo di una nuova ability</strong>: passato da 4 ore a 1,5 ore (l&#x27;abilità è dichiarativa, l&#x27;AI client è condiviso).</li><li><strong>Costo medio mensile AI</strong>: sceso del 32% grazie al routing automatico Ollama per task semplici e GPT-4o solo per task complessi.</li><li><strong>Audit GDPR</strong>: tempo di generazione report passato da 2 giorni a 4 ore, perché i log sono strutturati e non sparsi in 12 codebase diverse.</li><li><strong>Provider lock-in</strong>: eliminato. Sono passati da OpenAI a Anthropic Sonnet in 2 settimane durante un aumento di prezzo, senza toccare i plugin dei clienti.</li></ul>



<h2 class="wp-block-heading">Roadmap di adozione in 5 step</h2>



<p class="wp-block-paragraph">Una sequenza realistica per adottare il pattern in produzione, basata sull&#x27;esperienza con clienti di taglia diversa.</p>



<h3 class="wp-block-heading">Step 1: audit del plugin esistente</h3>



<p class="wp-block-paragraph">Identifica le funzioni AI attuali. Per ognuna chiediti: usa una API key hardcoded? Ha capability check? Logga le chiamate? Se la risposta è &quot;no&quot; a due su tre, è un candidato alla migrazione.</p>



<h3 class="wp-block-heading">Step 2: installa WP AI Client</h3>



<pre class="wp-block-code"><code># richiede WP-CLI 2.10+ e PHP 8.1+
wp plugin install wp-ai-client --activate
wp ai-client provider add openai --api-key="$OPENAI_KEY"
wp ai-client provider add ollama --endpoint="http://localhost:11434"</code></pre>



<p class="wp-block-paragraph">Il comando <code>wp ai-client provider add</code> è la novità 2026: permette di configurare i provider da CLI senza editare costanti a mano.</p>



<h3 class="wp-block-heading">Step 3: converti una ability esistente</h3>



<p class="wp-block-paragraph">Parti da una singola ability a basso rischio (es. &quot;genera meta description&quot;). Riscrivila seguendo lo schema visto sopra, testa in staging, poi promuovi.</p>



<h3 class="wp-block-heading">Step 4: esponi via MCP</h3>



<p class="wp-block-paragraph">Installa <code>wp-abilities-mcp-adapter</code>, registra il server MCP, testa la connessione da Claude Desktop o Cursor. Valida che le abilities siano elencate e che i permission callback funzionino.</p>



<h3 class="wp-block-heading">Step 5: monitora e itera</h3>



<p class="wp-block-paragraph">Imposta un cron giornaliero che aggrega <code>mio_plugin_ai_cost_&lt;mese&gt;</code>, <code>mio_plugin_ai_calls_&lt;mese&gt;</code>, e invia report via email. Rivedi le abilities ogni trimestre: alcune saranno sotto-utilizzate e potranno essere rimosse.</p>



<h2 class="wp-block-heading">Errori comuni che vedo nelle review</h2>



<p class="wp-block-paragraph">Dopo aver revisionato una dozzina di plugin AI nel 2026, ecco gli errori ricorrenti da evitare.</p>



<h3 class="wp-block-heading">Errore 1: ability troppo generica</h3>



<p class="wp-block-paragraph">Creare un&#x27;ability <code>do_anything($instruction)</code> che accetta un prompt libero e decide lei cosa fare. Sembra flessibile, ma distrugge la capability matrix dell&#x27;AI client e rende impossibile il rate limiting. Un&#x27;ability deve fare una cosa sola, bene.</p>



<h3 class="wp-block-heading">Errore 2: permission_callback ingenuo</h3>



<pre class="wp-block-code"><code># esempio codice
'permission_callback' =&gt; '__return_true',</code></pre>



<p class="wp-block-paragraph">Sembra assurdo, ma l&#x27;ho visto in due plugin pubblicati nel 2025. Mai. Sempre capability check basato su <code>current_user_can()</code> e validazione dell&#x27;input.</p>



<h3 class="wp-block-heading">Errore 3: log solo in debug.log</h3>



<p class="wp-block-paragraph">Scrive in <code>wp-content/debug.log</code> è comodo ma non è un audit trail. Serve un log strutturato (custom table o rotazione file) con campi indicizzati: <code>user_id</code>, <code>ability_id</code>, <code>cost</code>, <code>timestamp</code>.</p>



<h3 class="wp-block-heading">Errore 4: dimenticare la deprecazione</h3>



<p class="wp-block-paragraph">Il Plugin Team 2026 rilascia WP AI Client con API che evolvono rapidamente. Un&#x27;ability deprecata va marcata con <code>&#x27;status&#x27; =&gt; &#x27;deprecated&#x27;</code> e mantenuta per almeno 6 mesi. Non rimuovere mai silenziosamente.</p>



<h2 class="wp-block-heading">FAQ</h2>



<h3 class="wp-block-heading">Il pattern funziona anche con plugin gratuiti pubblicati su .org?</h3>



<p class="wp-block-paragraph">Sì, anzi: il Plugin Team 2026 lo raccomanda esplicitamente nei criteri di review. I plugin che adottano abilities + MCP ricevono priorità nella coda di triage. Il tutorial wordpress.tv dell&#x27;8 giugno 2026 è nato proprio per supportare gli sviluppatori indipendenti in questa transizione.</p>



<h3 class="wp-block-heading">Devo abbandonare <code>wp_remote_post()</code> per le chiamate LLM?</h3>



<p class="wp-block-paragraph">Non necessariamente. Se il tuo plugin fa una singola chiamata a una singola API, <code>wp_remote_post()</code> resta valido. Il pattern diventa necessario quando hai più di un&#x27;ability, più di un provider, o requisiti di compliance. La regola pratica è: se devi scrivere un wrapper per la chiamata HTTP, stai reinventando WP AI Client.</p>



<h3 class="wp-block-heading">MCP è compatibile con il vecchio WP 6.x?</h3>



<p class="wp-block-paragraph">No. MCP richiede almeno WP 6.9 per le abilities, e il plugin adapter è testato solo su WP 7.0+. Se il tuo plugin deve supportare WP 6.5, devi restare su REST API classica. Considera questa come una buona scusa per abbandonare il supporto a versioni obsolete.</p>



<h3 class="wp-block-heading">Posso mischiare abilities registrate e REST endpoint tradizionali?</h3>



<p class="wp-block-paragraph">Tecnicamente sì, concettualmente no. Ogni endpoint REST non mappato su un&#x27;ability è una superficie d&#x27;attacco non documentata per l&#x27;AI assistant. Meglio migrare tutto al pattern, o tenere il legacy fuori dal server MCP.</p>



<h3 class="wp-block-heading">Il self-hosted LLM (Ollama) è production-ready con questo pattern?</h3>



<p class="wp-block-paragraph">Sì, con cautele. Ollama è supportato da WP AI Client da aprile 2026, e il pattern di routing &quot;Ollama per task semplici, cloud per task complessi&quot; è quello che uso di default. Vedi la mia <a href="https://www.mrtux.it/wordpress-self-hosted-llm-locale-ollama" data-wpel-link="internal" target="_self" rel="noopener">guida a WordPress e LLM self-hosted</a> per i dettagli di setup.</p>



<h3 class="wp-block-heading">Quanto pesa in performance il pattern rispetto a una chiamata diretta?</h3>



<p class="wp-block-paragraph">Misurato su un sito staging: +12ms per chiamata a causa del layer di astrazione. Su un endpoint REST chiamato 100 volte al minuto è trascurabile. Se hai un carico anomalo (es. bulk generation di 1000 articoli), valuta batch async con WP-CLI asincrono.</p>



<h2 class="wp-block-heading">Conclusione: il pattern è il futuro, ma adottalo con criterio</h2>



<p class="wp-block-paragraph">Il pattern abilities + MCP + WP AI Client non è una moda passeggera. È la risposta del Plugin Team a un bisogno reale: plugin AI portabili, sicuri e manutenibili. Detto questo, adottalo solo se il tuo caso d&#x27;uso lo giustifica. Un plugin che genera una sola stringa non ha bisogno di MCP, ma se stai costruendo un prodotto commerciale o un sistema interno per agenzia, questo pattern ti farà risparmiare mesi di refactoring.</p>



<h3 class="wp-block-heading">Checklist operativa pre-pubblicazione</h3>



<ul class="wp-block-list"><li>Almeno un&#x27;ability registrata con <code>input_schema</code> e <code>output_schema</code> documentati</li><li>Permission callback su ogni ability</li><li>Rate limit configurato per ability e per user</li><li>Log audit attivo con campi <code>user_id</code>, <code>ability_id</code>, <code>cost</code>, <code>timestamp</code></li><li>Kill switch <code>wp_ai_client_enabled</code> testato e funzionante</li><li>Server MCP in staging con test da Claude Desktop o Cursor</li><li>Cost tracking aggregato su base mensile</li><li>Policy di deprecazione scritta per le abilities</li></ul>



<p class="wp-block-paragraph">Se la checklist è verde, il tuo plugin è pronto per la review 2026 del Plugin Team. Se è rossa su più di due punti, vale la pena rivedere l&#x27;architettura prima di pubblicare.</p>



<h2 class="wp-block-heading">Riferimenti utili per approfondire</h2>



<ul class="wp-block-list"><li><a href="https://wordpress.tv/2026/06/08/build-your-first-ai-powered-wordpress-plugin/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">Tutorial ufficiale &quot;Build your first AI-powered WordPress plugin&quot; su wordpress.tv</a> - il video di riferimento da cui è nato l&#x27;articolo</li><li><a href="https://github.com/WordPress/wp-ai-client" target="_blank" rel="noopener nofollow external" data-wpel-link="external">Repository GitHub WordPress/wp-ai-client</a> - codice della libreria ufficiale del Plugin Team</li><li><a href="https://modelcontextprotocol.io/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">Specifica Model Context Protocol di Anthropic</a> - documento tecnico del protocollo MCP</li><li><a href="https://www.mrtux.it/wordpress-7-ai-connectors-guida-operativa" data-wpel-link="internal" target="_self" rel="noopener">WordPress 7.0 AI Connectors: guida operativa</a> - come i Connectors dialogano con WP AI Client</li><li><a href="https://www.mrtux.it/wpvibe-mcp-wordpress-gestire-sito-claude-chatgpt" data-wpel-link="internal" target="_self" rel="noopener">WPVibe e MCP per WordPress</a> - caso commerciale di adozione MCP lato utente finale</li><li><a href="https://github.com/WordPress/wp-abilities" target="_blank" rel="noopener nofollow external" data-wpel-link="external">Repository WordPress/wp-abilities</a> - reference implementation della Abilities API</li><li><a href="https://make.wordpress.org/plugins/2026/05/ai-plugins-review-guidelines/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">Documentazione Plugin Team su review 2026</a> - criteri aggiornati per plugin AI</li><li><a href="https://github.com/WordPress/mcp-server-example" target="_blank" rel="noopener nofollow external" data-wpel-link="external">Esempio completo di plugin MCP-based</a> - codice di partenza pronto all&#x27;uso</li><li><a href="https://www.mrtux.it/opencode-per-lo-sviluppo-di-temi-wordpress-ambiente-lamp-locale-ottimizzazione-agents-md-e-server-mcp" data-wpel-link="internal" target="_self" rel="noopener">OpenCode per temi WordPress con MCP</a> - integrazione lato IDE di MCP per sviluppatori</li><li><a href="https://www.mrtux.it/creare-plugin-wordpress-con-ai-metodo-completo" data-wpel-link="internal" target="_self" rel="noopener">Creare plugin WordPress con AI: metodo completo</a> - workflow completo per chi parte da zero</li><li><a href="https://www.mrtux.it/ai-workflow-agenzia-wordpress-2026" data-wpel-link="internal" target="_self" rel="noopener">AI workflow agenzia WordPress 2026</a> - come le agenzie adottano il pattern su più progetti</li><li><a href="https://www.mrtux.it/wp-cli-2026-guida-completa-ai" data-wpel-link="internal" target="_self" rel="noopener">WP-CLI nel 2026 con AI</a> - automazione CLI del pattern abilities</li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://www.mrtux.it/wp-plugin-ai-mcp-abilities-pattern/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>WPVibe e MCP per WordPress: come gestire un sito intero parlando con Claude e ChatGPT</title>
		<link>https://www.mrtux.it/wpvibe-mcp-wordpress-gestire-sito-claude-chatgpt</link>
					<comments>https://www.mrtux.it/wpvibe-mcp-wordpress-gestire-sito-claude-chatgpt#respond</comments>
		
		<dc:creator><![CDATA[Emilio Petrozzi]]></dc:creator>
		<pubDate>Sun, 14 Jun 2026 12:58:39 +0000</pubDate>
				<category><![CDATA[sviluppo-web]]></category>
		<category><![CDATA[ChatGPT WordPress]]></category>
		<category><![CDATA[Claude WordPress]]></category>
		<category><![CDATA[MCP]]></category>
		<category><![CDATA[Model Context Protocol]]></category>
		<category><![CDATA[SeedProd]]></category>
		<category><![CDATA[Sviluppo WordPress]]></category>
		<category><![CDATA[WPVibe]]></category>
		<guid isPermaLink="false">https://www.mrtux.it/wpvibe-e-mcp-per-wordpress-come-gestire-un-sito-intero-parlando-con-claude-e-chatgpt</guid>

					<description><![CDATA[Il protocollo MCP di Anthropic è arrivato su WordPress grazie a WPVibe (SeedProd): ora puoi creare articoli, gestire media e modificare temi via conversazione con Claude o ChatGPT. Ecco come funziona, quanto è sicuro, e come usarlo in produzione.]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Per anni l&#x27;AI in WordPress ha significato una cosa: una textarea nell&#x27;editor dove incollare il prompt e ricevere testo da inserire. Con l&#x27;arrivo del <strong>Model Context Protocol (MCP)</strong> di Anthropic e del plugin <strong>WPVibe</strong> di SeedProd, lo scenario cambia radicalmente: Claude, ChatGPT, o Cursor possono dialogare direttamente con un sito WordPress via API, eseguire operazioni concrete (creare articoli, caricare media, modificare temi in sandbox, lanciare WP-CLI) e restare &quot;in conversazione&quot; con l&#x27;utente per task complessi. Non è un&#x27;evoluzione, è un cambio di paradigma. In questa guida analizziamo come funziona, come configurarlo in modo sicuro, e dove si nascondono i rischi reali per chi lo usa in produzione.</p>



<p class="wp-block-paragraph">L&#x27;angolo è architetturale e operativo, non promozionale. Vediamo il protocollo MCP in dettaglio, il plugin Vibe AI che lo implementa su WordPress, e forniamo snippet di codice per chi vuole costruire un proprio MCP server custom. È complementare alla <a href="https://www.mrtux.it/wordpress-7-ai-connectors-guida-operativa" data-wpel-link="internal" target="_self" rel="noopener">panoramica WordPress 7.0 e AI Connectors</a> e al <a href="https://www.mrtux.it/creare-plugin-wordpress-con-ai-metodo-completo" data-wpel-link="internal" target="_self" rel="noopener">metodo per creare plugin con AI</a>.</p>



<h2 class="wp-block-heading">Cos&#x27;è il Model Context Protocol e perché riguarda WordPress</h2>



<p class="wp-block-paragraph">MCP è uno standard aperto, rilasciato da Anthropic a fine 2024 e diventato rapidamente il protocollo di riferimento per connettere modelli AI a strumenti esterni. L&#x27;analogia corretta è <strong>USB-C per l&#x27;AI</strong>: invece di scrivere un&#x27;integrazione diversa per ogni coppia (modello × tool), chi sviluppa il tool espone un server MCP, e qualsiasi modello compatibile (Claude, ChatGPT, Cursor, Cline) può consumarlo.</p>



<p class="wp-block-paragraph">Prima di MCP, l&#x27;integrazione funzionava così:</p>



<ul class="wp-block-list"><li>L&#x27;utente copia un prompt da ChatGPT</li><li>Lo incolla in WordPress</li><li>L&#x27;AI restituisce un testo</li><li>L&#x27;utente lo incolla di nuovo nell&#x27;editor</li></ul>



<p class="wp-block-paragraph">Con MCP, il flusso diventa:</p>



<ul class="wp-block-list"><li>L&#x27;utente dice a Claude: &quot;Crea un articolo sul mio ultimo prodotto, aggiungi un&#x27;immagine da Unsplash, schedulalo per venerdì&quot;</li><li>Claude parla con il server MCP di WordPress esposto dal plugin</li><li>Il server MCP traduce le istruzioni in chiamate WordPress reali (wp<em>insert</em>post, wp<em>media</em>sideload<em>image, wp</em>update_post)</li><li>Claude conferma e l&#x27;utente vede il draft nell&#x27;admin</li></ul>



<p class="wp-block-paragraph">È la differenza tra &quot;AI che genera testo&quot; e &quot;AI che esegue azioni&quot;.</p>



<h2 class="wp-block-heading">WPVibe: il plugin che porta MCP su WordPress</h2>



<p class="wp-block-paragraph"><strong>WPVibe</strong> (disponibile gratuitamente su WordPress.org come <strong>Vibe AI</strong>) è un plugin sviluppato dal team di <strong>SeedProd</strong> (il page builder usato da oltre 1 milione di siti) che implementa un server MCP completo per WordPress. Una volta installato e configurato, espone un endpoint HTTPS che può essere collegato a Claude, ChatGPT, Cursor, o qualsiasi client compatibile MCP.</p>



<h3 class="wp-block-heading">Cosa può fare concretamente</h3>



<p class="wp-block-paragraph">Il plugin espone una serie di &quot;tools&quot; che il modello AI può invocare. Ecco l&#x27;elenco ufficiale al momento del lancio.</p>



<ul class="wp-block-list"><li><strong>wpvibe_create_post</strong>: crea un nuovo post (status bozza di default, titolo, contenuto, categorie, tag)</li><li><strong>wpvibe_update_post</strong>: aggiorna un post esistente</li><li><strong>wpvibe_list_posts</strong>: elenca post recenti con filtri (status, data, autore)</li><li><strong>wpvibe_upload_media</strong>: carica un&#x27;immagine da URL o da prompt Unsplash nella libreria media</li><li><strong>wpvibe_set_featured_image</strong>: imposta la featured image di un post</li><li><strong>wpvibe_list_plugins</strong>: elenca plugin attivi con versione e stato aggiornamento</li><li><strong>wpvibe_health_check</strong>: esegue controlli diagnostici (versione PHP, spazio disco, plugin outdated)</li><li><strong>wpvibe_search_unsplash</strong>: cerca foto stock tramite query testuale</li><li><strong>wpvibe_edit_theme_file_sandboxed</strong>: modifica file del tema in ambiente sandbox (mai scritto direttamente su disco)</li><li><strong>wpvibe_run_wpcli</strong>: esegue un sottoinsieme limitato di comandi WP-CLI (whitelist)</li></ul>



<p class="wp-block-paragraph">L&#x27;elenco è in crescita. Il team SeedProd ha annunciato che aggiungeranno strumenti per WooCommerce (gestione ordini, prodotti, inventario) e per i custom post type nei prossimi mesi.</p>



<h3 class="wp-block-heading">Setup in 60 secondi</h3>



<p class="wp-block-paragraph">L&#x27;installazione è volutamente semplice.</p>



<ol class="wp-block-list"><li><strong>Installa il plugin</strong>: Bacheca → Plugin → Aggiungi nuovo → cerca &quot;Vibe AI&quot; → Installa → Attiva</li><li><strong>Genera il token di accesso</strong>: il plugin crea automaticamente un&#x27;<strong>application password</strong> WordPress (sistema nativo introdotto in WP 5.6) con scope limitato alle capability MCP</li><li><strong>Copia l&#x27;endpoint MCP</strong>: si trova in Impostazioni → Vibe AI → Connection. È un URL tipo <code>https://tuosito.it/wp-json/wpvibe/v1/mcp</code></li><li><strong>Collega il client AI</strong>: in Claude/ChatGPT/Cursor, apri la sezione &quot;Connectors&quot; o &quot;MCP Servers&quot;, incolla l&#x27;endpoint, autenticati con la application password</li><li><strong>Testa la connessione</strong>: digita &quot;Elenca i miei ultimi 5 articoli pubblicati&quot;</li></ol>



<p class="wp-block-paragraph">Da quel momento il modello può eseguire i task elencati sopra. La prima connessione richiede circa 60 secondi, le successive sono istantanee.</p>



<h2 class="wp-block-heading">Architettura di sicurezza: perché i guardrail contano</h2>



<p class="wp-block-paragraph">Un server MCP che può modificare il tuo sito è un&#x27;arma a doppio taglio. SeedProd ha implementato una serie di guardrail espliciti, documentati pubblicamente. Vediamoli uno per uno.</p>



<h3 class="wp-block-heading">Guardrail 1: nuovi post in draft di default</h3>



<p class="wp-block-paragraph">Ogni post creato via WPVibe va in stato <strong>draft</strong>, mai pubblicato direttamente. Questo significa che un&#x27;AI che decide di &quot;sbagliare tono&quot; su un articolo importante richiede un&#x27;azione umana esplicita per andare online. È il guardrail più semplice e più importante.</p>



<h3 class="wp-block-heading">Guardrail 2: cancellazioni vanno nel cestino</h3>



<p class="wp-block-paragraph">Quando l&#x27;AI elimina un contenuto, va nel cestino di WordPress (dove resta recuperabile per 30 giorni), non viene rimosso definitivamente. Doppio livello di safety: l&#x27;AI può solo spostare, non cancellare.</p>



<h3 class="wp-block-heading">Guardrail 3: modifiche ai temi in sandbox</h3>



<p class="wp-block-paragraph">Questo è il guardrail più elegante. Quando l&#x27;AI modifica un file del tema (functions.php, header.php, style.css), la modifica va in un <strong>file sandbox</strong> separato, non sovrascrive il file originale. L&#x27;utente vede un diff e deve approvare esplicitamente prima che la modifica venga applicata. In caso di errore, basta scartare il diff.</p>



<pre class="wp-block-code"><code>// Struttura del sandbox (pseudocodice del sistema)
$active_theme = wp_get_theme();
$sandbox_dir  = WP_CONTENT_DIR . '/uploads/wpvibe-sandbox/' . $active_theme-&gt;get_stylesheet();
$original     = get_template_directory() . '/functions.php';
$sandbox_file = $sandbox_dir . '/functions.php.sandbox';

if ( ! file_exists( $sandbox_dir ) ) {
    wp_mkdir_p( $sandbox_dir );
}

// L'AI scrive solo nel sandbox, mai nell'originale
file_put_contents( $sandbox_file, $modified_content );

// Review umana
register_shutdown_function( function() use ( $sandbox_file, $original ) {
    if ( current_user_can( 'edit_themes' ) &amp;&amp; get_transient( 'wpvibe_apply_sandbox' ) ) {
        copy( $sandbox_file, $original );
        delete_transient( 'wpvibe_apply_sandbox' );
    }
} );</code></pre>



<h3 class="wp-block-heading">Guardrail 4: WP-CLI in whitelist</h3>



<p class="wp-block-paragraph">L&#x27;AI può eseguire solo comandi WP-CLI in una whitelist predefinita. I comandi pericolosi (rm, drop, truncate, exec) sono bloccati a livello di capability. La whitelist è consultabile e personalizzabile dagli admin del sito.</p>



<pre class="wp-block-code"><code>// Whitelist WP-CLI di default
add_filter( 'wpvibe_wpcli_whitelist', function( $commands ) {
    $commands = [
        'wp post list',
        'wp post get',
        'wp option get',
        'wp user list',
        'wp plugin list',
        'wp theme list',
        'wp db query',  // attenzione: solo SELECT, monitorato
        'wp cache flush',
        'wp transient delete --all',
    ];
    return $commands;
} );</code></pre>



<h3 class="wp-block-heading">Guardrail 5: autenticazione via application password</h3>



<p class="wp-block-paragraph">Il plugin usa il sistema nativo WordPress di <strong>application password</strong> (RFC 2FA-style, supportato dal core dalla 5.6). Le credenziali sono cifrate a riposo, sono revocabili in un click dall&#x27;admin, e possono essere limitate a un sottoinsieme di capability.</p>



<h2 class="wp-block-heading">Caso d&#x27;uso reale: agenzia con 15 siti clienti</h2>



<p class="wp-block-paragraph">Marco gestisce un&#x27;agenzia di sviluppo web con 15 siti clienti su managed hosting. Ha implementato WPVibe su tutti e 15 i siti e usa Claude (con il piano Pro) come client MCP centrale. Ecco come ha strutturato il workflow.</p>



<h3 class="wp-block-heading">Workflow mattutino (15 min)</h3>



<ol class="wp-block-list"><li>Chiede a Claude: &quot;Mostrami tutti i post pubblicati ieri sera su tutti i miei siti, con il numero di commenti per ciascuno&quot;</li><li>Claude interroga i 15 server MCP in parallelo (la chiamata MCP supporta richieste multiple), aggrega i risultati, produce un report</li><li>Marco legge il report in chat e decide se intervenire</li></ol>



<h3 class="wp-block-heading">Workflow editoriale (1 ora → 15 min)</h3>



<ol class="wp-block-list"><li>Marco riceve una brief da un cliente: &quot;5 articoli sul tema X, stile Y, con immagini&quot;</li><li>Chiede a Claude: &quot;Per il sito example.com, genera 5 bozze di articoli sul tema X, stile Y, con immagini da Unsplash, tutti in draft&quot;</li><li>Claude crea 5 draft, ciascuno con featured image, tag, e categoria corretta</li><li>Marco legge le bozze in Bacheca (draft visibili), modifica dove serve, pubblica</li></ol>



<h3 class="wp-block-heading">Manutenzione tecnica</h3>



<ol class="wp-block-list"><li>Marco: &quot;Verifica salute di tutti i miei siti: versione PHP, plugin outdated, spazio disco&quot;</li><li>Claude esegue <code>wpvibe_health_check</code> su tutti i server, aggrega, segnala i problemi</li><li>Marco interviene manualmente sui siti con problemi</li></ol>



<p class="wp-block-paragraph">Risultato: tempo risparmiato ~6 ore/settimana, ROI del setup in meno di un mese.</p>



<h2 class="wp-block-heading">Limiti e problemi reali di WPVibe</h2>



<p class="wp-block-paragraph">Non è tutto rose e fiori. Ecco i limiti che ho incontrato nei test.</p>



<h3 class="wp-block-heading">Limite 1: il client AI deve supportare MCP nativamente</h3>



<p class="wp-block-paragraph">Al momento, i client che supportano MCP out-of-the-box sono: Claude (desktop, web, Code), Cursor (editor AI), Cline (estensione VS Code), e pochi altri. ChatGPT supporta MCP in beta ristretta per utenti Pro. Gemini no. Per chi usa prevalentemente ChatGPT, il vantaggio è ancora parziale.</p>



<h3 class="wp-block-heading">Limite 2: l&#x27;AI può solo eseguire i tool esposti</h3>



<p class="wp-block-paragraph">Se vuoi che l&#x27;AI possa, per esempio, modificare le impostazioni di un plugin SEO, quel plugin deve avere un tool MCP registrato. WPVibe espone i tool nativi WordPress, ma per integrazioni con plugin terzi serve lavoro custom. Stanno arrivando estensioni community per Yoast, Rank Math, WooCommerce, ma è work in progress.</p>



<h3 class="wp-block-heading">Limite 3: la latenza delle operazioni multiple</h3>



<p class="wp-block-paragraph">Se chiedi a Claude &quot;Crea 10 articoli&quot;, ogni articolo richiede una chiamata MCP separata. Su un sito con hosting lento, 10 articoli = 30-60 secondi. Per task di massa meglio fare batch via WP-CLI tradizionale.</p>



<h3 class="wp-block-heading">Limite 4: nessuna memoria persistente cross-sessione</h3>



<p class="wp-block-paragraph">L&#x27;AI non ricorda le tue preferenze tra una sessione e l&#x27;altra. Se gli dici &quot;usa sempre lo stile formale&quot;, devi ridirlo ogni volta. Soluzione: usare il file <code>CLAUDE.md</code> (per Claude) o <code>AGENTS.md</code> (per Cursor) per memorizzare le convenzioni del sito.</p>



<h2 class="wp-block-heading">Costruire il proprio MCP server WordPress custom</h2>



<p class="wp-block-paragraph">Se WPVibe non fa al caso tuo (ad esempio, vuoi esporre strumenti custom del tuo tema o plugin), puoi costruire un server MCP custom. Ecco un esempio minimale.</p>



<pre class="wp-block-code"><code>&lt;?php
/**
 * Plugin Name: My Custom MCP Server
 * Description: Esempio di server MCP custom per WordPress
 */

if ( ! defined( 'ABSPATH' ) ) {
    exit;
}

// 1. Registra l'endpoint REST
add_action( 'rest_api_init', function() {
    register_rest_route( 'my-mcp/v1', '/tools', [
        'methods'             =&gt; 'GET',
        'callback'            =&gt; 'mymcp_list_tools',
        'permission_callback' =&gt; function() {
            return current_user_can( 'edit_posts' );
        },
    ] );

    register_rest_route( 'my-mcp/v1', '/invoke', [
        'methods'             =&gt; 'POST',
        'callback'            =&gt; 'mymcp_invoke_tool',
        'permission_callback' =&gt; function() {
            return current_user_can( 'edit_posts' );
        },
    ] );
} );

// 2. Lista dei tool esposti
function mymcp_list_tools() {
    return [
        'tools' =&gt; [
            [
                'name'        =&gt; 'get_recent_comments',
                'description' =&gt; 'Restituisce gli ultimi commenti del blog',
                'inputSchema' =&gt; [
                    'type'       =&gt; 'object',
                    'properties' =&gt; [
                        'limit' =&gt; [
                            'type'        =&gt; 'integer',
                            'description' =&gt; 'Numero massimo di commenti',
                            'default'     =&gt; 10,
                        ],
                    ],
                ],
            ],
            [
                'name'        =&gt; 'get_site_stats',
                'description' =&gt; 'Restituisce statistiche aggregate del sito',
                'inputSchema' =&gt; [
                    'type'       =&gt; 'object',
                    'properties' =&gt; (object) [],
                ],
            ],
        ],
    ];
}

// 3. Invocazione del tool
function mymcp_invoke_tool( WP_REST_Request $request ) {
    $body = $request-&gt;get_json_params();
    $tool = sanitize_text_field( $body['name'] ?? '' );
    $args = $body['arguments'] ?? [];

    switch ( $tool ) {
        case 'get_recent_comments':
            $limit  = absint( $args['limit'] ?? 10 );
            $comments = get_comments( [ 'number' =&gt; $limit, 'status' =&gt; 'approve' ] );
            return rest_ensure_response( [
                'comments' =&gt; array_map( function( $c ) {
                    return [
                        'id'       =&gt; $c-&gt;comment_ID,
                        'author'   =&gt; $c-&gt;comment_author,
                        'content'  =&gt; $c-&gt;comment_content,
                        'post_id'  =&gt; $c-&gt;comment_post_ID,
                        'date'     =&gt; $c-&gt;comment_date,
                    ];
                }, $comments ),
            ] );

        case 'get_site_stats':
            return rest_ensure_response( [
                'posts'        =&gt; wp_count_posts()-&gt;publish,
                'pages'        =&gt; wp_count_posts( 'page' )-&gt;publish,
                'comments'     =&gt; wp_count_comments()-&gt;approved,
                'users'        =&gt; count_users()['total_users'],
                'php_version'  =&gt; phpversion(),
                'wp_version'   =&gt; get_bloginfo( 'version' ),
            ] );

        default:
            return new WP_Error( 'unknown_tool', 'Tool non riconosciuto', [ 'status' =&gt; 400 ] );
    }
}</code></pre>



<p class="wp-block-paragraph">Questo è uno scheletro funzionante. Per un server MCP completo servono altri endpoint (risorse, prompt templates, gestione errori strutturata secondo lo standard MCP), ma il pattern è questo.</p>



<h2 class="wp-block-heading">Domande frequenti</h2>



<h3 class="wp-block-heading">WPVibe è davvero gratuito?</h3>



<p class="wp-block-paragraph">Sì, il plugin Vibe AI è gratuito e open source su WordPress.org. Il team SeedProd lo monetizza indirettamente (è una leva per il loro page builder a pagamento), ma il plugin in sé non ha limitazioni, watermark, o costi nascosti.</p>



<h3 class="wp-block-heading">Posso usarlo con ChatGPT?</h3>



<p class="wp-block-paragraph">Dipende. ChatGPT ha aggiunto il supporto MCP in beta ristretta per utenti Pro a fine 2025. Se sei nel rollout, sì. Altrimenti Claude Desktop e Cursor sono le opzioni più affidabili. Gemini non supporta MCP al momento.</p>



<h3 class="wp-block-heading">L&#x27;AI può cancellare definitivamente un post?</h3>



<p class="wp-block-paragraph">No. Il guardrail del cestino è hardcoded: qualsiasi cancellazione passa per <code>wp_trash_post()</code>, mai <code>wp_delete_post()</code> con <code>force_delete = true</code>. I post nel cestino sono recuperabili per 30 giorni dall&#x27;admin WordPress.</p>



<h3 class="wp-block-heading">È sicuro esporre l&#x27;endpoint MCP su internet?</h3>



<p class="wp-block-paragraph">Sì, a patto di: (1) usare HTTPS, (2) autenticare ogni richiesta con application password, (3) mantenere il plugin aggiornato, (4) monitorare i log per attività sospette. L&#x27;endpoint è protetto almeno quanto wp-admin.</p>



<h3 class="wp-block-heading">Cosa succede se l&#x27;AI propone modifiche sbagliate al tema?</h3>



<p class="wp-block-paragraph">Vanno tutte nel sandbox. L&#x27;utente vede un diff e deve approvare. Se approva per sbaglio, il file originale viene sovrascritto: per questo è essenziale avere un backup (UpdraftPlus, BlogVault, o snapshot del hosting).</p>



<h3 class="wp-block-heading">Vale la pena rispetto a Jetpack AI o Divi AI?</h3>



<p class="wp-block-paragraph">Sono prodotti diversi. Jetpack AI e Divi AI lavorano dentro l&#x27;editor di un singolo post, con focus su generazione di testo. WPVibe lavora a livello di sito, con focus su automazione e orchestrazione via linguaggio naturale. Per un blogger singolo, Jetpack AI è più immediato. Per un&#x27;agenzia, WPVibe è enormemente più potente.</p>



<h3 class="wp-block-heading">WPVibe funziona con WooCommerce?</h3>



<p class="wp-block-paragraph">Al lancio no, ma il team ha annunciato integrazione WooCommerce in roadmap Q3 2026 (gestione ordini, prodotti, inventario via MCP). Per ora, plugin terzi stanno già sperimentando bridge custom.</p>



<h2 class="wp-block-heading">Riferimenti utili per approfondire</h2>



<ul class="wp-block-list"><li><a href="https://wpvibe.ai" target="_blank" rel="noopener nofollow external" data-wpel-link="external">WPVibe sito ufficiale</a> - documentazione completa e setup guidato.</li><li><a href="https://wordpress.org/plugins/vibe-ai/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">Vibe AI su WordPress.org</a> - download e recensioni.</li><li><a href="https://modelcontextprotocol.io/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">Model Context Protocol spec Anthropic</a> - documentazione tecnica del protocollo.</li><li><a href="https://www.seedprod.com" target="_blank" rel="noopener nofollow external" data-wpel-link="external">SeedProd page builder</a> - chi sviluppa WPVibe.</li><li><a href="https://github.com/modelcontextprotocol/servers" target="_blank" rel="noopener nofollow external" data-wpel-link="external">MCP servers directory ufficiale</a> - catalogo di server MCP community.</li><li><a href="https://make.wordpress.org/core/2020/11/05/application-passwords-integration-guide/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">WordPress Application Passwords</a> - come funziona il sistema di autenticazione usato da WPVibe.</li><li><a href="https://docs.anthropic.com/en/docs/agents-and-tools/mcp" target="_blank" rel="noopener nofollow external" data-wpel-link="external">Claude Desktop MCP setup</a> - come collegare Claude come client MCP.</li><li><a href="https://www.mrtux.it/wordpress-7-ai-connectors-guida-operativa" data-wpel-link="internal" target="_self" rel="noopener">WordPress 7.0 AI Connectors mrtux.it</a> - confronto con l&#x27;approccio alternativo dei Connectors core.</li><li><a href="https://www.mrtux.it/creare-plugin-wordpress-con-ai-metodo-completo" data-wpel-link="internal" target="_self" rel="noopener">Creare plugin WordPress con AI mrtux.it</a> - per chi vuole costruire il proprio MCP server.</li><li><a href="https://www.mrtux.it/plugin-piratati-sicurezza-wordpress" data-wpel-link="internal" target="_self" rel="noopener">Sicurezza WordPress plugin piratati mrtux.it</a> - rischi da considerare quando si espongono endpoint.</li></ul>



<p class="wp-block-paragraph">Questa guida verrà aggiornata quando arriveranno le integrazioni WooCommerce e i tool community. Per casi d&#x27;uso specifici o problemi di setup, l&#x27;area commenti è aperta.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.mrtux.it/wpvibe-mcp-wordpress-gestire-sito-claude-chatgpt/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Web Design WordPress tramite il plugin Novamira.ai</title>
		<link>https://www.mrtux.it/web-design-wordpress-tramite-il-plugin-novamira-ai</link>
					<comments>https://www.mrtux.it/web-design-wordpress-tramite-il-plugin-novamira-ai#respond</comments>
		
		<dc:creator><![CDATA[Emilio Petrozzi]]></dc:creator>
		<pubDate>Fri, 08 May 2026 13:33:16 +0000</pubDate>
				<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[ai]]></category>
		<category><![CDATA[MCP]]></category>
		<category><![CDATA[Novamira]]></category>
		<category><![CDATA[web design]]></category>
		<category><![CDATA[wordpress]]></category>
		<guid isPermaLink="false">https://www.mrtux.it/?p=3323</guid>

					<description><![CDATA[Tutorial pratico su Novamira.ai per WordPress: requisiti, installazione, configurazione MCP, sicurezza e uso nel web design.]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Novamira.ai porta un approccio diverso allo sviluppo e al web design su WordPress: invece di usare l'intelligenza artificiale solo per generare testi o suggerire layout, collega un AI agent direttamente a un'installazione WordPress tramite MCP, permettendogli di ispezionare file, database, plugin e codice in un ambiente controllato.</p>


<p class="wp-block-paragraph">Questo tutorial spiega come usare il plugin WP Novamira in modo pratico, partendo dalla documentazione ufficiale e mantenendo un principio fondamentale: Novamira è uno strumento potente, pensato per sviluppo e staging, non per fare esperimenti direttamente su un sito in produzione.</p>


<p class="wp-block-paragraph">Se lavori già con WordPress, AI e progettazione di temi, puoi collegare questo workflow anche ad altri approfondimenti pubblicati su MrTux, come la guida su <a href="https://www.mrtux.it/ai-per-migliorare-seo-ux-e-design-su-wordpress" data-wpel-link="internal" target="_self" rel="noopener">AI per migliorare SEO, UX e design su WordPress</a>, il metodo per creare <a href="https://www.mrtux.it/articoli-wordpress-ottimizzati-seo-con-ai-metodo-pratico-passo-passo" data-wpel-link="internal" target="_self" rel="noopener">articoli WordPress ottimizzati SEO con AI</a> e l'analisi sugli <a href="https://www.mrtux.it/web-design-per-wordpress-tool-essenziali-per-creare-temi-efficaci-nel-2026" data-wpel-link="internal" target="_self" rel="noopener">strumenti per il web design di temi WordPress</a>.</p>


<h2 class="wp-block-heading">Cos'è Novamira.ai e perché interessa ai designer WordPress</h2>


<p class="wp-block-paragraph">Novamira è un plugin WordPress che consente a client AI compatibili con MCP, come Claude, Cursor, VS Code Copilot o altri strumenti che supportano il protocollo, di interagire con WordPress in modo programmatico. Secondo la <a href="https://novamira.ai/docs/getting-started/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">documentazione ufficiale Getting started</a>, il plugin permette all'AI assistant di eseguire codice PHP, leggere e scrivere file, gestire database, installare plugin e costruire funzionalità personalizzate.</p>


<p class="wp-block-paragraph">Per il web design WordPress, questo significa poter lavorare con un agente AI che non si limita a suggerire codice in astratto, ma può leggere la struttura reale del sito, controllare il tema, verificare plugin attivi, creare file nella sandbox e iterare sulle modifiche con maggiore contesto.</p>


<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Novamira non va interpretato come un page builder automatico, ma come un ponte operativo tra WordPress e un assistente AI tecnico.</p></blockquote>


<h2 class="wp-block-heading">Prima di iniziare: requisiti tecnici</h2>


<p class="wp-block-paragraph">Prima di installare Novamira, conviene verificare che l'ambiente sia adeguato. La pagina ufficiale sui <a href="https://novamira.ai/docs/getting-started/requirements/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">requisiti Novamira</a> indica alcune condizioni minime da rispettare.</p>


<figure class="wp-block-table"><table><thead><tr><th>Componente</th><th>Requisito</th><th>Perché è importante</th></tr></thead><tbody><tr><td>WordPress</td><td>6.9 o superiore</td><td>Serve per l'Abilities API usata da Novamira.</td></tr><tr><td>PHP</td><td>8.0 o superiore</td><td>Garantisce compatibilità con il plugin e ambiente moderno.</td></tr><tr><td>HTTPS</td><td>Richiesto per connessioni remote</td><td>Le Application Password di WordPress richiedono HTTPS.</td></tr><tr><td>Node.js</td><td>18.0 o superiore lato client</td><td>Serve per usare npx e il proxy MCP remoto.</td></tr><tr><td>Ambiente</td><td>Sviluppo o staging</td><td>Le abilità AI danno accesso operativo reale al sito.</td></tr></tbody></table></figure>


<p class="wp-block-paragraph">Per installazioni locali senza HTTPS, la documentazione spiega che è possibile impostare <code>WP_ENVIRONMENT_TYPE</code> su <code>local</code> nel file <code>wp-config.php</code>. Questa eccezione va usata solo in locale, non su server remoti.</p>


<h2 class="wp-block-heading">Installare Novamira su WordPress</h2>


<p class="wp-block-paragraph">La procedura di installazione è simile a quella di molti plugin premium o distribuiti via ZIP. La guida ufficiale <a href="https://novamira.ai/docs/getting-started/installation/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">Installation</a> indica un flusso diretto: scaricare il file ZIP, caricarlo da WordPress e attivarlo.</p>


<ol class="wp-block-list"><li>Scarica l'ultima versione ZIP di Novamira dalla pagina di download ufficiale.</li><li>Entra nel pannello WordPress del sito di sviluppo o staging.</li><li>Vai in <strong>Plugin &gt; Aggiungi nuovo plugin &gt; Carica plugin</strong>.</li><li>Seleziona il file ZIP di Novamira e clicca su <strong>Installa ora</strong>.</li><li>Attiva il plugin.</li></ol>


<p class="wp-block-paragraph">All'attivazione, Novamira registra il MCP Adapter incluso, espone un menu dedicato nella sidebar admin e prepara le otto abilità principali. Le abilità AI, però, restano disattivate di default: nessun tool MCP viene esposto finché non viene abilitato esplicitamente.</p>


<h2 class="wp-block-heading">Configurare le AI Abilities</h2>


<p class="wp-block-paragraph">Dopo l'installazione, il passaggio più importante è la configurazione. La pagina ufficiale <a href="https://novamira.ai/docs/getting-started/configuration/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">Configuration</a> spiega che bisogna abilitare manualmente le AI Abilities da <strong>Novamira &gt; Settings</strong>.</p>


<ol class="wp-block-list"><li>Apri il pannello WordPress.</li><li>Vai in <strong>Novamira &gt; Settings</strong>.</li><li>Attiva la checkbox <strong>Enable AI Abilities</strong>.</li><li>Leggi con attenzione il messaggio di conferma.</li><li>Conferma e salva le impostazioni.</li></ol>


<p class="wp-block-paragraph">Quando le abilità sono attive, compare un indicatore rosso Novamira ON nella barra di amministrazione. È un promemoria utile: in quel momento l'AI agent può accedere agli strumenti MCP collegati al sito.</p>


<h2 class="wp-block-heading">Le otto abilità disponibili</h2>


<p class="wp-block-paragraph">Novamira registra otto abilità principali. Per un web designer o sviluppatore WordPress, è importante capire cosa fanno prima di usarle in un flusso reale.</p>


<figure class="wp-block-table"><table><thead><tr><th>Abilità</th><th>Cosa permette di fare</th><th>Uso tipico nel web design WordPress</th></tr></thead><tbody><tr><td>Execute PHP</td><td>Esegue codice PHP nell'ambiente WordPress.</td><td>Verificare plugin, opzioni, query, dati e comportamento del tema.</td></tr><tr><td>Read File</td><td>Legge file dal filesystem.</td><td>Analizzare template, CSS, functions.php e file del tema.</td></tr><tr><td>Write File</td><td>Crea o sovrascrive file.</td><td>Generare file CSS, JS, JSON o PHP nella sandbox.</td></tr><tr><td>Edit File</td><td>Modifica mirata di file esistenti.</td><td>Correggere regole CSS, markup o funzioni senza riscrivere tutto.</td></tr><tr><td>Delete File</td><td>Elimina file o directory consentiti.</td><td>Rimuovere file generati in test, con attenzione.</td></tr><tr><td>Disable File</td><td>Disabilita un file sandbox senza cancellarlo.</td><td>Sospendere una funzionalità AI senza perdere il codice.</td></tr><tr><td>Enable File</td><td>Riattiva un file disabilitato.</td><td>Ripristinare una modifica precedentemente sospesa.</td></tr><tr><td>List Directory</td><td>Elenca file e cartelle.</td><td>Mappare struttura tema, plugin e sandbox.</td></tr></tbody></table></figure>


<h2 class="wp-block-heading">Collegare il client AI tramite MCP</h2>


<p class="wp-block-paragraph">Una volta abilitate le AI Abilities, bisogna collegare il client AI. La guida <a href="https://novamira.ai/docs/getting-started/connecting/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">Connecting Your AI Client</a> descrive il processo basato su Application Password e configurazione MCP.</p>


<h3 class="wp-block-heading">1. Crea una Application Password</h3>


<p class="wp-block-paragraph">Da <strong>Novamira &gt; Connect</strong>, crea una nuova Application Password. WordPress mostrerà la password una sola volta: copiala subito e conservala in modo sicuro. È consigliabile usare un nome descrittivo, ad esempio il nome del client o della workstation.</p>


<h3 class="wp-block-heading">2. Configura il client MCP</h3>


<p class="wp-block-paragraph">Novamira fornisce snippet per client come Claude Code, Claude Desktop, Cursor, VS Code, Windsurf, Zed e OpenCode. Il modello generale usa <code>npx</code> per avviare il proxy remoto <code>@automattic/mcp-wordpress-remote</code>.</p>


<pre class="wp-block-code"><code>{
  "mcpServers": {
    "novamira": {
      "command": "npx",
      "args": ["-y", "@automattic/mcp-wordpress-remote@latest"],
      "env": {
        "WP_API_URL": "https://your-site.com/wp-json/mcp/mcp-adapter-default-server",
        "WP_API_USERNAME": "your-wordpress-username",
        "WP_API_PASSWORD": "your-application-password"
      }
    }
  }
}</code></pre>


<p class="wp-block-paragraph">Nel tuo caso reale dovrai sostituire URL, username e Application Password con quelli del sito di staging. Dopo aver salvato la configurazione, riavvia il client AI: molti strumenti caricano i server MCP solo all'avvio.</p>


<h3 class="wp-block-heading">3. Verifica la connessione</h3>


<p class="wp-block-paragraph">Per verificare che tutto funzioni, chiedi all'agente AI un'operazione semplice e non distruttiva, ad esempio elencare i plugin installati. Se la connessione è corretta, il client dovrebbe mostrare gli strumenti Novamira e usare Execute PHP o le altre abilità disponibili.</p>


<h2 class="wp-block-heading">Tutorial pratico: usare Novamira per migliorare un layout WordPress</h2>


<p class="wp-block-paragraph">Un caso d'uso realistico per il web design è l'ottimizzazione di una pagina WordPress esistente. L'obiettivo non è chiedere all'AI di "rifare tutto", ma guidarla con richieste progressive e verificabili.</p>


<ol class="wp-block-list"><li><strong>Mappa il sito:</strong> chiedi all'agente di identificare tema attivo, plugin principali e struttura dei template.</li><li><strong>Analizza la pagina:</strong> fai leggere template, CSS e blocchi coinvolti nella pagina da migliorare.</li><li><strong>Definisci il problema:</strong> per esempio hero troppo pesante, CTA poco visibile, spaziature incoerenti o layout mobile debole.</li><li><strong>Chiedi una proposta:</strong> prima solo piano di intervento, poi modifica mirata.</li><li><strong>Applica in staging:</strong> usa Edit File o file sandbox, mai direttamente su produzione.</li><li><strong>Verifica risultato:</strong> controlla frontend, editor WordPress, mobile e performance.</li><li><strong>Disabilita o raffina:</strong> se una modifica non convince, disabilita il file sandbox o chiedi una correzione puntuale.</li></ol>


<p class="wp-block-paragraph">Un prompt pratico potrebbe essere: "Analizza il tema attivo e proponi un miglioramento del layout della pagina servizi. Non modificare file finché non approvo il piano. Concentrati su leggibilità, CTA, mobile e compatibilità con Gutenberg".</p>


<h2 class="wp-block-heading">Sicurezza: cosa fare e cosa evitare</h2>


<p class="wp-block-paragraph">La parte più importante della documentazione Novamira è quella sulla sicurezza. La pagina <a href="https://novamira.ai/docs/security/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">Security &amp; Best Practices</a> chiarisce che Novamira offre accesso programmatico reale al sito WordPress. Questo è il suo valore, ma anche il motivo per cui va usato con disciplina.</p>


<p class="wp-block-paragraph">La documentazione su <a href="https://novamira.ai/docs/security/live-site/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">uso live/production</a> è molto esplicita: le AI abilities dovrebbero essere attivate solo su ambienti di sviluppo e staging, mai direttamente in produzione. Il plugin può rimanere installato sul sito live, ma le abilità AI devono restare disattivate.</p>


<ul class="wp-block-list"><li>Usa sempre backup prima di lavorare con AI agents.</li><li>Configura Novamira su staging o sviluppo, non sul sito live.</li><li>Approva ogni tool call prima dell'esecuzione.</li><li>Crea Application Password separate per client o workstation.</li><li>Revoca le password non più usate.</li><li>Evita richieste vaghe come "sistema il sito".</li><li>Preferisci interventi piccoli, verificabili e reversibili.</li></ul>


<h2 class="wp-block-heading">Capire la sandbox</h2>


<p class="wp-block-paragraph">La sandbox Novamira si trova in <code>wp-content/novamira-sandbox/</code>. Secondo la pagina ufficiale <a href="https://novamira.ai/docs/security/sandbox/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">The Sandbox</a>, i file PHP scritti dagli AI agent vengono confinati in questa directory e caricati automaticamente a ogni richiesta WordPress tramite un loader must-use.</p>


<p class="wp-block-paragraph">Questo rende la sandbox utile per organizzare codice generato dall'AI: shortcode, endpoint REST, custom post type, funzioni di supporto o piccoli esperimenti. Ma la documentazione precisa anche un punto essenziale: la sandbox non è una vera barriera di sicurezza. Il codice che gira lì ha comunque privilegi simili a quelli di un plugin WordPress.</p>


<h2 class="wp-block-heading">Quando Novamira è utile nel web design WordPress</h2>


<p class="wp-block-paragraph">Novamira diventa interessante quando il progetto richiede lavoro tecnico su un sito reale: analisi del tema, creazione di funzionalità, debug, verifica plugin, generazione di CSS mirato, integrazioni PHP o miglioramenti di workflow. Non sostituisce Figma, Gutenberg o un buon processo di design; li affianca nella fase di implementazione e revisione tecnica.</p>


<ul class="wp-block-list"><li><strong>Utile:</strong> staging, prototipi, debug, sviluppo custom, analisi plugin, refactoring controllato.</li><li><strong>Da evitare:</strong> test diretti su produzione, modifiche non approvate, prompt troppo generici, assenza di backup.</li><li><strong>Da valutare:</strong> team con più sviluppatori, processi di deploy, policy interne e gestione credenziali.</li></ul>


<h2 class="wp-block-heading">FAQ su Novamira e WordPress</h2>


<h3 class="wp-block-heading">Novamira è un page builder AI?</h3>


<p class="wp-block-paragraph">No. Novamira non è un page builder visuale. È un plugin che collega AI agents a WordPress tramite MCP, dando accesso a strumenti tecnici per leggere, modificare e testare il sito.</p>


<h3 class="wp-block-heading">Posso usarlo su un sito in produzione?</h3>


<p class="wp-block-paragraph">La documentazione consiglia di usare le AI abilities solo su sviluppo o staging. Su produzione il plugin può restare installato, ma le abilità AI dovrebbero rimanere disattivate.</p>


<h3 class="wp-block-heading">Serve Node.js?</h3>


<p class="wp-block-paragraph">Per connessioni remote tramite MCP proxy serve Node.js 18 o superiore lato client. Per installazioni locali con WP-CLI è possibile usare il trasporto STDIO, che non richiede Node.js.</p>


<h3 class="wp-block-heading">La sandbox rende sicuro il codice generato dall'AI?</h3>


<p class="wp-block-paragraph">No. La sandbox aiuta a organizzare e gestire i file PHP generati, ma non va considerata una barriera di sicurezza. Il codice va sempre revisionato prima di portarlo in produzione.</p>


<h2 class="wp-block-heading">Conclusione</h2>


<p class="wp-block-paragraph">Novamira.ai è uno strumento potente per chi lavora con WordPress in modo tecnico. Permette a un AI agent di operare con molto più contesto rispetto al classico copia e incolla di codice, aprendo scenari interessanti per sviluppo, debug, prototipazione e miglioramento del web design.</p>


<p class="wp-block-paragraph">Il modo migliore per iniziare è prudente: installa Novamira su staging, abilita le AI Abilities solo quando servono, collega un client MCP, prova operazioni non distruttive e lavora sempre per passaggi piccoli. Se il risultato è valido, potrai poi portarlo nel normale flusso di deploy. L'AI diventa davvero utile quando accelera il lavoro senza togliere controllo al professionista.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.mrtux.it/web-design-wordpress-tramite-il-plugin-novamira-ai/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
