AI & MCP
Prompt template in MCP: cosa sono e perché un catalogo non li espone
Un prompt template in MCP è un modello di messaggi che il server pubblica e l'utente sceglie, con argomenti compilati dal client. Non è una funzione del modello.
In sintesi
- Un template è composto da nome, descrizione, argomenti dichiarati e messaggi restituiti da prompts/get.
- La scelta spetta all'utente: il modello non vede i template finché il client non li compila.
- Il server EneUI restituisce una lista vuota e prompts/get risponde -32601.
Un prompt template in MCP è un modello di messaggio che il server pubblica e l'utente sceglie, con gli argomenti compilati dal client. Non è una funzione del modello: è una scorciatoia per una richiesta ricorrente.
Due metodi, un solo uso
La specifica prevede prompts/list, che elenca nome, descrizione e argomenti, e prompts/get, che restituisce i messaggi già compilati. La scelta parte dall'utente, non dal modello.
- Elencare: il client costruisce un menu o un comando slash con i template disponibili.
- Compilare: gli argomenti dichiarati diventano testo dentro i messaggi.
- Restituire:
prompts/getconsegna messaggi, non un risultato di ricerca.
Perché EneUI risponde con una lista vuota
Il catalogo è in sola lettura e le sue ricette stanno nella documentazione: la sequenza degli strumenti è su /agents e il file agent-skill.md la ripete per un client che fa un solo fetch. Un template in più sarebbe una copia da tenere allineata a mano.
curl -s https://ui.eneawork.it/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"prompts/list"}'
curl -s https://ui.eneawork.it/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":2,"method":"prompts/get","params":{"name":"review"}}'
La prima chiamata restituisce {"prompts":[]}; la seconda -32601, perché prompts/get non è nel dispatcher. La risposta initialize dichiara solo la capacità tools, quindi nessun client si aspetta altro.
Quando un template conviene
Conviene quando i passi sono fissi e cambiano solo gli argomenti, per esempio «rivedi questo componente» con nome e libreria. Se la ricetta dipende dal record, serve un tool che legga il record e non un testo da adattare.
Il template è testo non fidato
Il contenuto di un prompt arriva dal server. Un server può inserire istruzioni che l'utente non ha scritto, e il client dovrebbe mostrarle prima di consegnarle al modello: la fiducia non è nel template, è nella revisione umana.
Il catalogo EneUI
I record che un template citerebbe sono verificabili: form, hero e l'icona abacus della libreria icons-tabler, licenza MIT. Sono 111.985 componenti, 1.556 blocchi e 12.808 icone letti il 1 novembre 2026.
La limitazione
Un server senza prompt lascia il client con una tavolozza vuota: nessun errore, nessun avviso, solo []. Il protocollo non richiede prompt, quindi la lista vuota è conforme e insieme poco informativa.
Dove continuare
Le primitive sono spiegate in che cos'è MCP; il confronto con le resource è in resources e tools in MCP; lo schema dei tool è in progettare un tool MCP. Il server scritto a mano è in come costruire un server MCP.
Domande frequenti
Che differenza c'è tra prompt e tool in MCP?
Il tool restituisce dati su richiesta del modello; il prompt restituisce messaggi su scelta dell'utente. Il primo esegue un'azione, il secondo prepara una richiesta.
Perché EneUI non espone prompt?
Perché le sue ricette sono documentazione, non dati: la sequenza dei tool sta su /agents e in agent-skill.md, dove è più facile da aggiornare di un template replicato.
Un client può funzionare senza prompt?
Sì. La capacità prompts è opzionale; un client che riceve una lista vuota mostra un menu vuoto e continua a usare i tool.
I prompt possono contenere istruzioni pericolose?
Sì. Il testo arriva dal server e può includere istruzioni non scritte dall'utente, quindi il client dovrebbe mostrarlo prima dell'invio.
Cosa risponde prompts/get su EneUI?
-32601, metodo non trovato. Il dispatcher implementa prompts/list e restituisce una lista vuota, ma non implementa la lettura.