AI & MCP

Che cos'è MCP: il protocollo che collega gli agenti agli strumenti

MCP è un protocollo aperto che permette a un agente di scoprire e chiamare strumenti su un server. Ecco come funziona e dove finisce la sua responsabilità.

In sintesi

  • MCP è JSON-RPC 2.0 su stdio o Streamable HTTP, con tool, resource e prompt come primitive.
  • Un server espone capacità che il client negozia; il modello decide se e come usarle.
  • Il protocollo non risolve la fiducia: descrizioni e risultati restano dati non fidati.

MCP (Model Context Protocol) è un protocollo aperto che permette a un agente di scoprire e chiamare strumenti esposti da un server, invece di riceverli incollati nel prompt. Definisce messaggi, capacità e trasporto, non il ragionamento del modello.

Cosa definisce il protocollo

MCP usa JSON-RPC 2.0. Un client apre una sessione, negozia versione e capacità, poi chiama metodi come tools/list e tools/call. I trasporti standard sono stdio, per un processo locale, e Streamable HTTP, per un server remoto; il vecchio HTTP+SSE è deprecato. La revisione citata qui è la 2025-06-18, pubblicata su modelcontextprotocol.io. Il repository della specifica è in transizione da MIT ad Apache-2.0.

Le tre primitive

  • Tool: una funzione che il modello può chiamare con argomenti JSON e che restituisce contenuto.
  • Resource: un documento leggibile per URI, per esempio un design system in Markdown.
  • Prompt: un modello di messaggio riutilizzabile, scelto dall'utente o dal client.

Come si interroga un server

curl -s https://ui.eneawork.it/mcp \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

La risposta elenca nome, descrizione e schema di input di ogni strumento. Un client come Claude Code o Cursor fa la stessa chiamata e traduce il risultato in una scelta del modello. Il protocollo non impone un formato di output: il server decide, e il client lo interpreta come testo.

Il server EneUI risponde in sola lettura. search_components cerca per testo, categoria o libreria; get_component restituisce descrizione, licenza, URL e comando di installazione; compose_page propone una sequenza di blocchi reali con dipendenze; get_page converte una pagina del sito in Markdown. Sono 9 strumenti in totale, elencati in backend/mcp.js e verificati il 1 novembre 2026.

Il confine tra protocollo e modello

MCP standardizza la scoperta e la chiamata, non la decisione. Il modello legge la descrizione di uno strumento e sceglie se usarlo; il server non sa perché è stato chiamato e non vede il resto della conversazione. Questo è il punto di forza, perché un server può servire client diversi, ed è anche il punto di rischio.

Il catalogo EneUI

EneUI espone 111.985 componenti e 1.556 blocchi via MCP; un record di esempio è rainbow button di Magic UI, licenza MIT e 2.130 stelle dichiarate a monte. La pagina /mcp contiene endpoint e configurazione, e /agents spiega il flusso per un agente. L'endpoint risponde con protocolVersion 2025-06-18.

La limitazione

MCP non risolve la fiducia. Un server può restituire testo che contiene istruzioni, e un client che le esegue alla lettera trasforma una descrizione di strumento in prompt injection. La specifica non impone autenticazione né sandbox: il client deve trattare risultati e descrizioni come dati non fidati.

Dove continuare

La configurazione per Claude Code, Cursor e VS Code è in shadcn MCP nei tre editor; l'errore di connessione è in MCP non si connette in Cursor. Per capire cosa arriva davvero nel repository leggi che cos'è un registry, e per il confronto tra distribuzione del codice e pacchetto copy-paste o headless.

Domande frequenti

MCP è un protocollo di Anthropic?

È nato in Anthropic, ma è un protocollo aperto con una governance di progetto. La specifica è pubblica, il repository è in transizione da MIT ad Apache-2.0 e qualsiasi client o server può implementarlo.

Serve un account per usare un server MCP?

Dipende dal server. Il protocollo non richiede autenticazione; un server può chiedere un token, come fa il registry EneUI per l'installazione. La scoperta degli strumenti può restare anonima.

MCP sostituisce le API REST?

No. MCP è un livello di scoperta e chiamata per un modello; sotto può esserci una API REST, un database o un catalogo statico. Non prescrive lo schema dei dati.

Quali trasporti supporta MCP?

Due: stdio, per un server locale avviato dal client, e Streamable HTTP, per un endpoint remoto. Il vecchio trasporto HTTP+SSE è deprecato nella revisione 2025-06-18.

Il modello vede il mio codice quando usa MCP?

No, non automaticamente. Il client decide cosa inviare; il server vede solo gli argomenti della chiamata e restituisce il proprio contenuto.