Composants MCP Delphi — Client et serveur Model Context Protocol
Connectez vos applications Delphi à l'écosystème IA via le Model Context Protocol : TsgcWSAPIServer_MCP expose les outils, prompts et ressources de votre application aux modèles IA, et TsgcWSAPIClient_MCP consomme n'importe quel serveur compatible MCP. La même bibliothèque livre des clients d'API IA pour OpenAI, Anthropic Claude et Google Gemini.
MCP est le standard émergent pour connecter les grands modèles de langage à des outils et données externes. Au lieu d'une intégration sur mesure par fournisseur IA, vous implémentez un seul protocole.
Le Model Context Protocol en Delphi signifie que votre application VCL ou FMX existante peut devenir un service accessible aux IA. Le protocole est basé sur JSON-RPC et définit trois primitives : les outils (fonctions appelables avec paramètres typés), les prompts (modèles réutilisables avec arguments) et les ressources (données exposées par adressage URI). Un serveur MCP les publie ; un client MCP (Claude Desktop, Cursor ou votre propre application Delphi) les découvre et les appelle.
Le composant serveur s'attache à un serveur HTTP sgcWebSockets et supporte les transports stdio et HTTP, le même code sert donc un assistant IA de bureau qui le lance comme sous-processus et un agent distant qui l'appelle par le réseau. Le composant client parle JSON-RPC sur HTTP ou HTTP Streamable et couvre toute la surface du catalogue : initialize, lister et appeler les outils, récupérer les prompts, lire les ressources, plus le sampling et l'elicitation pour les workflows IA interactifs.
Les deux composants implémentent la spécification MCP 2026-07-28 : requêtes sans état avec _meta par requête, server/discover, subscriptions/listen, Multi Round-Trip Requests et l'extension Tasks. Ils restent compatibles avec 2025-11-25. Le même serveur répond aux deux ères, et le client se replie automatiquement lorsqu'un serveur ne parle que l'ancien protocole.
Serveur MCP
TsgcWSAPIServer_MCP : outils, prompts, ressources, transports stdio et HTTP
Client MCP
TsgcWSAPIClient_MCP : découvrez et appelez n'importe quel serveur compatible MCP
De Delphi 7 à RAD Studio 13, C++Builder 10.1 Berlin à 13, Lazarus 4.4.0
Fonctionnalités
Les deux côtés du protocole
Serveur, client et les clients de fournisseurs IA qui consomment ce que MCP expose.
Outils avec schémas typés
Tools.AddTool enregistre une fonction appelable et ses propriétés InputSchema ; les appels arrivent dans l'événement OnMCPRequestTool avec les arguments parsés et un objet de réponse structuré.
Prompts & ressources
Modèles de prompts réutilisables avec arguments et ressources adressées par URI, servis via OnMCPRequestPrompt et OnMCPRequestResource.
Surface catalogue du client
Initialize, ListTools, ListPrompts, ListResources, ListResourceTemplates, puis RequestTool / RequestPrompt / RequestResource avec réponses événementielles.
Sampling & elicitation
Le client supporte le sampling MCP (interaction avec le modèle IA demandée par le serveur) et l'elicitation (collecte d'une saisie utilisateur en cours de workflow), les deux extensions interactives du protocole.
Authentification
Les options d'authentification côté client incluent les clés API via AuthenticationOptions.ApiKey ; voir le blog pour les serveurs MCP protégés par OAuth2.
MCP 2026-07-28
Requêtes sans état, server/discover, en-têtes Mcp-Method / Mcp-Name / Mcp-Param avec validation, indices de cache (ttlMs, cacheScope) et les nouveaux codes d'erreur. MCPOptions.ProtocolEra côté client sélectionne Auto, Modern ou Legacy.
Multi Round-Trip Requests
Un outil demande une elicitation (formulaire ou URL), un sampling ou des roots via aResponse.InputRequired ; le client répond dans OnMCPInputRequired et relance l'appel avec le requestState signé HMAC.
Abonnements et tâches
subscriptions/listen diffuse les changements de liste et les mises à jour de ressources. L'extension io.modelcontextprotocol/tasks (CreateTask) exécute les outils longs en arrière-plan, et le composant client la scrute avec MCPOptions.Tasks.Enabled ou la récupère directement avec TasksGet.
OAuth client MCP
MCPOptions.Authorization : découverte des métadonnées de ressource protégée, Client ID Metadata Documents, repli sur l'enregistrement dynamique, PKCE avec indicateurs de ressource, validation iss RFC 9207 et identifiants par émetteur.
Deux transports
Stdio pour les serveurs lancés en sous-processus (le modèle Claude Desktop) et HTTP pour les déploiements réseau. Un composant, les deux canaux.
Famille de clients IA
Parlez aussi directement aux modèles : chat, streaming et function calling contre OpenAI, Anthropic Claude et Google Gemini, plus DeepSeek, Grok, Mistral et Ollama dans la même famille IA.
Multi-plateforme
Windows 32/64, Linux 64, macOS (Intel et ARM), iOS et Android. VCL et FireMonkey, avec composants design-time.
Édition
Le serveur MCP, le client MCP et les clients d'API IA sont des fonctionnalités de l'édition Enterprise de sgcWebSockets.
Démarrage rapide
Un serveur MCP et un client MCP en Delphi
Enregistrez un outil avec un argument typé côté serveur ; découvrez-le et appelez-le depuis le 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;
Laissez un modèle IA interroger les données de votre application via des outils contrôlés et typés. Lecture seule ou lecture-écriture, votre handler décide à chaque appel.
Automatisation métier
Exposez des opérations CRM, ERP ou de ticketing comme outils MCP pour que des instructions en langage naturel pilotent la logique métier Delphi existante.
Outils de bureau dopés à l'IA
Donnez aux assistants comme Claude Desktop l'accès aux fonctionnalités d'une application héritée en l'enveloppant dans un serveur MCP stdio.
Workflows IA multi-étapes
Chaînez outils et ressources pour la récupération, le traitement et l'action dans un seul pipeline piloté par l'IA, orchestré côté Delphi.