Cos’è MCP
Il Model Context Protocol (MCP) è una specifica che consente a client AI (Claude, Cursor, GitHub Copilot, ecc.) e alle applicazioni di comunicare tramite un protocollo standardizzato. Implementando un server MCP fai in modo che gli agenti AI possano accedere ai dati della tua app Laravel ed eseguire azioni.Laravel MCP è il pacchetto ufficiale aggiunto in Laravel 13,
laravel/mcp. Offre tutto il necessario per costruire server MCP.Installazione
routes/ai.php per registrare i server MCP.
Creazione del server
app/Mcp/Servers:
Registrazione
Inroutes/ai.php puoi registrarlo come web o locale.
Server web
Accessibile via POST HTTP. Adatto a client AI remoti e integrazioni web.Server locale
Comando Artisan. Adatto a client AI locali (es. Claude Desktop).Tool
I tool sono funzioni chiamabili dai client AI.Creare un tool
Nome e titolo
Dedotti dal nome della classe (CurrentWeatherTool → current-weather, “Current Weather Tool”). Personalizzabili con Name e Title.
Schema di input
Schema di output
Validazione
Dependency injection
Annotazioni
Registrazione condizionale
Response
Testo
Testo
Errore
Errore
Immagini/audio
Immagini/audio
Contenuti multipli
Contenuti multipli
Response strutturata
Response strutturata
Streaming
Streaming
Prompt
Prompt riutilizzabili.Creare un prompt
Argomenti
Validazione
Dependency injection
Registrazione condizionale
Response del prompt
Messaggi utente e assistente conasAssistant().
Resource
Dati/informazioni che il client legge come contesto.Creare una resource
URI e MIME type
Default: URI generato dal nome della classe (weather://resources/weather-guidelines). Personalizza con Uri e MimeType.
Template di URI
ConHasUriTemplate:
get.
Richiesta della resource
Le resource non hanno schema di input né argomenti, ma puoi accedere alle info della richiesta.DI nelle resource
Annotazioni
Registrazione condizionale
Response di una resource
Resource link
Blob
Errore
App
Laravel MCP supporta le MCP Apps: estensione del protocollo per applicazioni HTML interattive renderizzate in iframe sandbox all’interno dell’host. Puoi costruire dashboard, form, visualizzazioni. Un’app MCP ha due parti:- App resource — restituisce l’HTML autonomo
- Tool — collegato alla resource con l’attribute
#[RendersApp]
Creare una app resource
app/Mcp/Resources e vista Blade in resources/views/mcp (dedotta dal nome della classe; WeatherDashboardApp → mcp.weather-dashboard-app).
AppResource estende Resource e configura URI ui:// e MIME text/html;profile=mcp-app. Registrala nel server come le altre.
La vista Blade usa <x-mcp::app>, che include l’SDK client-side MCP.
createMcpApp è fornita dall’SDK. Gestisce connessione dell’iframe, tema dell’host, helper come callServerTool, sendMessage, openLink. Vedi le specifiche MCP Apps.
Renderizzare l’app da un tool
Con#[RendersApp]:
Con una
AppResource registrata, Laravel MCP annuncia automaticamente la capability io.modelcontextprotocol/ui.Visibilità dei tool app
Convisibility limiti chi può chiamare il tool. Utile per tool riservati all’UI dell’app.
Visibility ha Model e App (default: entrambi). [Visibility::App] per backend usati dall’UI; [Visibility::Model] per nascondere all’UI.
Configurazione dell’app
Con#[AppMeta] configuri CSP dell’iframe, permessi del browser, script di libreria da includere nel <head>.
Library::Tailwind, Library::Alpine ecc. hanno gli script CDN preimpostati; le origini vanno automaticamente in CSP. Permission::Camera, Microphone, Geolocation, ClipboardWrite per i permessi.
Sviluppo con Boost
Laravel MCP include un riferimento di Boostmcp-development per costruire MCP Apps. L’agente può generare automaticamente app resource, viste Blade e tool collegati.
Per il riferimento completo del protocollo consulta la documentazione ufficiale MCP Apps.
Metadata
Puoi aggiungere_meta alle response.
$meta:
Icone
ConIcon puoi dichiarare icone su server, tool, resource, prompt.
icons() per definire icone in modo programmatico.
- URI (
https:,data:) restano invariati - Path relativi passano dall’helper
assetdi Laravel
Autenticazione
I server web possono usare i middleware standard di Laravel.Sanctum
OAuth 2.1
Con Passport:Autorizzazione
Client MCP
Oltre al server, Laravel MCP offre un client per connettersi ad altri server MCP e usare i tool esposti. Utile per fornire tool esterni ai propri agenti AI.Connessione
HTTP:Client con nome
Registra client riutilizzabili:Autenticazione del client
Bearer token:Se il server MCP supporta la Dynamic Client Registration, puoi omettere
clientId e clientSecret.routes/ai.php con oAuthRoutesFor. La closure riceve il nome del client e il TokenSet dopo lo scambio del codice.
mcp.oauth.{client}.connect (redirect al server di autorizzazione) e mcp.oauth.{client}.callback (scambio del codice, chiamata all’handler). Usano il middleware web (sovrascrivibile via argomento middleware).
Per iniziare il flow:
Tool
limit:
Prompt
limit: