Delphi MCP-componenten — Model Context Protocol client en server
Verbind Delphi-applicaties met het AI-ecosysteem via het Model Context Protocol: TsgcWSAPIServer_MCP stelt de tools, prompts en resources van je applicatie beschikbaar aan AI-modellen, en TsgcWSAPIClient_MCP consumeert elke MCP-compatibele server. Dezelfde bibliotheek levert AI-API-clients voor OpenAI, Anthropic Claude en Google Gemini.
MCP is de opkomende standaard om large language models te verbinden met externe tools en data. In plaats van een custom integratie per AI-provider implementeer je een protocol.
Model Context Protocol in Delphi betekent dat je bestaande VCL- of FMX-applicatie een AI-toegankelijke service kan worden. Het protocol is JSON-RPC-gebaseerd en definieert drie primitieven: tools (aanroepbare functies met getypeerde parameters), prompts (herbruikbare templates met argumenten) en resources (data blootgesteld via URI-adressering). Een MCP-server publiceert ze; een MCP-client (Claude Desktop, Cursor, of je eigen Delphi-applicatie) ontdekt en roept ze aan.
Het servercomponent koppelt aan een sgcWebSockets HTTP-server en ondersteunt zowel stdio- als HTTP-transporten, dus dezelfde code bedient een desktop-AI-assistent die hem als subprocess start en een remote agent die hem over het netwerk aanroept. Het clientcomponent spreekt JSON-RPC over HTTP of HTTP Streamable en dekt het volledige catalogusoppervlak: initialize, tools opsommen en aanroepen, prompts ophalen, resources lezen, plus sampling en elicitation voor interactieve AI-workflows.
Beide componenten implementeren de MCP 2026-07-28-specificatie: stateless requests met per-request _meta, server/discover, subscriptions/listen, Multi Round-Trip Requests en de Tasks-extensie. Ze blijven achterwaarts compatibel met 2025-11-25. Dezelfde server beantwoordt beide eras, en de client valt automatisch terug wanneer een server alleen het oudere protocol spreekt.
MCP-server
TsgcWSAPIServer_MCP: tools, prompts, resources, stdio- en HTTP-transporten
MCP-client
TsgcWSAPIClient_MCP: ontdek en roep elke MCP-compatibele server aan
Delphi 7 t/m RAD Studio 13, C++Builder 10.1 Berlin t/m 13, Lazarus 4.4.0
Features
Beide kanten van het protocol
Server, client en de AI-provider-clients die consumeren wat MCP blootstelt.
Tools met getypeerde schema’s
Tools.AddTool registreert een aanroepbare functie en zijn InputSchema-properties; aanroepen arriveren in het OnMCPRequestTool-event met geparste argumenten en een gestructureerd response-object.
Prompts en resources
Herbruikbare prompt-templates met argumenten en URI-geadresseerde resources, geserveerd via OnMCPRequestPrompt en OnMCPRequestResource.
De client ondersteunt MCP-sampling (door de server gevraagde AI-model-interactie) en elicitation (gebruikersinput verzamelen midden in een workflow), de twee interactieve extensies van het protocol.
Authenticatie
Client-side authenticatie-opties omvatten API-keys via AuthenticationOptions.ApiKey; zie de blog voor OAuth2-beveiligde MCP-servers.
MCP 2026-07-28
Stateless requests, server/discover, Mcp-Method / Mcp-Name / Mcp-Param headers met validatie, cache hints (ttlMs, cacheScope) en de nieuwe foutcodes. MCPOptions.ProtocolEra op de client kiest Auto, Modern of Legacy.
Multi Round-Trip Requests
Een tool vraagt om elicitation (formulier of URL), sampling of roots via aResponse.InputRequired; de client beantwoordt dit in OnMCPInputRequired en herhaalt de aanroep met de HMAC-ondertekende requestState.
Abonnementen & tasks
subscriptions/listen streamt lijstwijzigingen en resource-updates. De io.modelcontextprotocol/tasks-extensie (CreateTask) draait langlopende tools op de achtergrond, en het clientcomponent polt deze met MCPOptions.Tasks.Enabled of haalt hem direct op met TasksGet.
MCP-client OAuth
MCPOptions.Authorization: protected resource metadata discovery, Client ID Metadata Documents, dynamische registratie als fallback, PKCE met resource-indicatoren, RFC 9207 iss-validatie en credentials per issuer.
Twee transporten
Stdio voor als subprocess gestarte servers (het Claude Desktop-model) en HTTP voor netwerk-deployments. Een component, beide kanalen.
AI-client-familie
Praat ook direct met de modellen: chat, streaming en function calling tegen OpenAI, Anthropic Claude en Google Gemini, plus DeepSeek, Grok, Mistral en Ollama in dezelfde AI-familie.
Cross-platform
Windows 32/64, Linux 64, macOS (Intel en ARM), iOS en Android. VCL en FireMonkey, met design-time-componenten.
Editie
De MCP-server, MCP-client en AI-API-clients zijn Enterprise-editie-features van sgcWebSockets.
Snelstart
Een MCP-server en een MCP-client in Delphi
Registreer een tool met een getypeerd argument op de server; ontdek en roep hem aan vanuit de 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;