Componenti MCP Delphi — client e server Model Context Protocol
Collega le applicazioni Delphi all'ecosistema AI attraverso il Model Context Protocol: TsgcWSAPIServer_MCP espone i tool, i prompt e le risorse della tua applicazione ai modelli AI, e TsgcWSAPIClient_MCP consuma qualunque server compatibile MCP. La stessa libreria include client API AI per OpenAI, Anthropic Claude e Google Gemini.
MCP è lo standard emergente per collegare i large language model a strumenti e dati esterni. Invece di un'integrazione custom per ogni provider AI, implementi un solo protocollo.
Model Context Protocol in Delphi significa che la tua applicazione VCL o FMX esistente può diventare un servizio accessibile all'AI. Il protocollo è basato su JSON-RPC e definisce tre primitive: tools (funzioni richiamabili con parametri tipizzati), prompts (template riutilizzabili con argomenti) e resources (dati esposti tramite indirizzamento URI). Un server MCP li pubblica; un client MCP (Claude Desktop, Cursor o la tua stessa applicazione Delphi) li scopre e li chiama.
Il componente server si aggancia a un server HTTP sgcWebSockets e supporta entrambi i trasporti, stdio e HTTP, così lo stesso codice serve un assistente AI desktop che lo lancia come sottoprocesso e un agente remoto che lo chiama in rete. Il componente client parla JSON-RPC su HTTP o HTTP Streamable e copre l'intera superficie del catalogo: initialize, elenco e chiamata dei tool, recupero dei prompt, lettura delle risorse, più sampling ed elicitation per i workflow AI interattivi.
Entrambi i componenti implementano la specifica MCP 2026-07-28: richieste stateless con _meta per ogni richiesta, server/discover, subscriptions/listen, Multi Round-Trip Requests ed estensione Tasks. Restano compatibili con le versioni precedenti per il 2025-11-25. Lo stesso server risponde a entrambe le versioni, e il client ricade automaticamente quando un server parla solo il protocollo più vecchio.
MCP Server
TsgcWSAPIServer_MCP: tool, prompt, risorse, trasporti stdio e HTTP
MCP Client
TsgcWSAPIClient_MCP: scopri e chiama qualunque server compatibile MCP
Da Delphi 7 a RAD Studio 13, C++Builder da 10.1 Berlin a 13, Lazarus 4.4.0
Funzionalità
Entrambi i lati del protocollo
Server, client e i client dei provider AI che consumano ciò che MCP espone.
Tool con schemi tipizzati
Tools.AddTool registra una funzione richiamabile e le proprietà del suo InputSchema; le chiamate arrivano nell'evento OnMCPRequestTool con argomenti già parsati e un oggetto risposta strutturato.
Prompt & risorse
Template di prompt riutilizzabili con argomenti e risorse indirizzate tramite URI, servite attraverso OnMCPRequestPrompt e OnMCPRequestResource.
Superficie del catalogo lato client
Initialize, ListTools, ListPrompts, ListResources, ListResourceTemplates, poi RequestTool / RequestPrompt / RequestResource con risposte guidate dagli eventi.
Sampling & elicitation
Il client supporta il sampling MCP (interazione con il modello AI richiesta dal server) e l'elicitation (raccolta di input utente a metà workflow), le due estensioni interattive del protocollo.
Autenticazione
Le opzioni di autenticazione lato client includono le API key via AuthenticationOptions.ApiKey; vedi il blog per i server MCP protetti con OAuth2.
MCP 2026-07-28
Richieste stateless, server/discover, header Mcp-Method / Mcp-Name / Mcp-Param con validazione, cache hints (ttlMs, cacheScope) e i nuovi codici di errore. MCPOptions.ProtocolEra sul client seleziona Auto, Modern o Legacy.
Multi Round-Trip Requests
Un tool chiede elicitation (form o URL), sampling o roots tramite aResponse.InputRequired; il client risponde in OnMCPInputRequired e ripete la chiamata con il requestState firmato con HMAC.
Subscriptions e task
subscriptions/listen trasmette in streaming le modifiche alle liste e gli aggiornamenti delle risorse. L'estensione io.modelcontextprotocol/tasks (CreateTask) esegue i tool lunghi in background, e il componente client la interroga con MCPOptions.Tasks.Enabled o la legge direttamente con TasksGet.
OAuth del client MCP
MCPOptions.Authorization: scoperta dei metadati della risorsa protetta, Client ID Metadata Documents, fallback alla registrazione dinamica, PKCE con resource indicators, validazione iss secondo RFC 9207 e credenziali per emittente.
Due trasporti
Stdio per i server lanciati come sottoprocesso (il modello Claude Desktop) e HTTP per i deployment in rete. Un solo componente, entrambi i canali.
Famiglia di client AI
Parla anche direttamente con i modelli: chat, streaming e function calling verso OpenAI, Anthropic Claude e Google Gemini, più DeepSeek, Grok, Mistral e Ollama nella stessa famiglia AI.
Multipiattaforma
Windows 32/64, Linux 64, macOS (Intel e ARM), iOS e Android. VCL e FireMonkey, con componenti design-time.
Edizione
Il server MCP, il client MCP e i client API AI sono funzionalità dell'edizione Enterprise di sgcWebSockets.
Guida Rapida
Un server MCP e un client MCP in Delphi
Registra sul server un tool con un argomento tipizzato; scoprilo e chiamalo dal client.
uses
sgcWebSocket_Server, sgcAI, sgcAI_MCP_Classes, sgcAI_MCP_Server;
procedure TForm1.SetupMCPServer;
begin// Attach the MCP API component to a sgcWebSockets HTTP server
MCPServer.Server := Server;
MCPServer.EndpointOptions.Endpoint := '/mcp';
MCPServer.MCPOptions.ServerInfo.Name := 'sgc-mcp-server';
MCPServer.MCPOptions.ServerInfo.Version := '1.0.0';
// Register a callable tool with a typed argumentwith MCPServer.Tools.AddTool('GetTemperature',
'Get the actual temperature in a city.') do
InputSchema.Properties.AddProperty('city', True);
MCPServer.OnMCPRequestTool := MCPRequestTool;
Server.Port := 8080;
Server.Active := True;
end;
procedure TForm1.MCPRequestTool(Sender: TObject;
const aSession: TsgcAI_MCP_Session;
const aRequest: TsgcAI_MCP_Request_ToolsCall;
const aResponse: TsgcAI_MCP_Response_ToolsCall);
beginif aRequest.Params.Name = 'GetTemperature'then
aResponse.Result.Content.AddText('The current temperature in ' +
aRequest.Params.Arguments.Item[0].Value + ' is 22 Celsius');
end;
Lascia che un modello AI interroghi i dati della tua applicazione attraverso tool controllati e tipizzati. In sola lettura o in lettura-scrittura, lo decide il tuo handler a ogni chiamata.
Automazione aziendale
Esponi le operazioni di CRM, ERP o ticketing come tool MCP, così le istruzioni in linguaggio naturale pilotano la logica di business Delphi esistente.
Strumenti desktop potenziati dall'AI
Dai ad assistenti come Claude Desktop l'accesso alle funzionalità di un'applicazione legacy incapsulandola in un server MCP stdio.
Workflow AI multi-step
Concatena tool e risorse per recupero, elaborazione e azione in un'unica pipeline guidata dall'AI, orchestrata dal lato Delphi.