Komponenty MCP dla Delphi — Klient i serwer Model Context Protocol
Połącz aplikacje Delphi z ekosystemem AI przez Model Context Protocol: TsgcWSAPIServer_MCP udostępnia narzędzia, prompty i zasoby Twojej aplikacji modelom AI, a TsgcWSAPIClient_MCP konsumuje dowolny serwer zgodny z MCP. Ta sama biblioteka dostarcza klienty API AI dla OpenAI, Anthropic Claude i Google Gemini.
MCP to wyłaniający się standard łączenia dużych modeli językowych z zewnętrznymi narzędziami i danymi. Zamiast jednej niestandardowej integracji na każdego dostawcę AI implementujesz jeden protokół.
Model Context Protocol w Delphi oznacza, że Twoja istniejąca aplikacja VCL lub FMX może stać się usługą dostępną dla AI. Protokół oparty jest na JSON-RPC i definiuje trzy prymitywy: narzędzia (wywoływalne funkcje z typowanymi parametrami), prompty (szablony wielokrotnego użytku z argumentami) i zasoby (dane udostępniane przez adresowanie URI). Serwer MCP je publikuje; klient MCP (Claude Desktop, Cursor lub Twoja własna aplikacja Delphi) je odkrywa i wywołuje.
Komponent serwera podłącza się do serwera HTTP sgcWebSockets i wspiera transporty stdio oraz HTTP, więc ten sam kod obsługuje desktopowego asystenta AI uruchamiającego go jako podproces i zdalnego agenta wywołującego go przez sieć. Komponent klienta mówi JSON-RPC przez HTTP lub HTTP Streamable i pokrywa pełną powierzchnię katalogu: initialize, listowanie i wywoływanie narzędzi, pobieranie promptów, odczyt zasobów, plus sampling i elicitation dla interaktywnych przepływów AI.
Oba komponenty implementują specyfikację MCP 2026-07-28: żądania bezstanowe z _meta per żądanie, server/discover, subscriptions/listen, Multi Round-Trip Requests i rozszerzenie Tasks. Zachowują kompatybilność wsteczną z 2025-11-25. Ten sam serwer obsługuje obie generacje, a klient automatycznie przechodzi na starszy protokół, gdy serwer mówi tylko nim.
Serwer MCP
TsgcWSAPIServer_MCP: narzędzia, prompty, zasoby, transporty stdio i HTTP
Klient MCP
TsgcWSAPIClient_MCP: odkrywaj i wywołuj dowolny serwer zgodny z MCP
Delphi 7 do RAD Studio 13, C++Builder 10.1 Berlin do 13, Lazarus 4.4.0
Funkcje
Obie strony protokołu
Serwer, klient i klienty dostawców AI, które konsumują to, co MCP udostępnia.
Narzędzia z typowanymi schematami
Tools.AddTool rejestruje wywoływalną funkcję i jej właściwości InputSchema; wywołania przychodzą w zdarzeniu OnMCPRequestTool ze sparsowanymi argumentami i strukturalnym obiektem odpowiedzi.
Prompty i zasoby
Szablony promptów wielokrotnego użytku z argumentami i zasoby adresowane przez URI, serwowane przez OnMCPRequestPrompt i OnMCPRequestResource.
Powierzchnia katalogu klienta
Initialize, ListTools, ListPrompts, ListResources, ListResourceTemplates, potem RequestTool / RequestPrompt / RequestResource z odpowiedziami sterowanymi zdarzeniami.
Sampling i elicitation
Klient wspiera sampling MCP (interakcję z modelem AI żądaną przez serwer) i elicitation (zbieranie danych od użytkownika w trakcie przepływu), dwa interaktywne rozszerzenia protokołu.
Uwierzytelnianie
Opcje uwierzytelniania po stronie klienta obejmują klucze API przez AuthenticationOptions.ApiKey; zobacz na blogu serwery MCP chronione OAuth2.
MCP 2026-07-28
Żądania bezstanowe, server/discover, nagłówki Mcp-Method / Mcp-Name / Mcp-Param z walidacją, wskazówki cache (ttlMs, cacheScope) oraz nowe kody błędów. MCPOptions.ProtocolEra po stronie klienta wybiera Auto, Modern lub Legacy.
Multi Round-Trip Requests
Narzędzie prosi o elicitation (formularz lub URL), sampling lub roots przez aResponse.InputRequired; klient odpowiada w OnMCPInputRequired i ponawia wywołanie z podpisanym HMAC requestState.
Subskrypcje i zadania
subscriptions/listen przesyła zmiany list i aktualizacje zasobów. Rozszerzenie io.modelcontextprotocol/tasks (CreateTask) uruchamia długie narzędzia w tle, a komponent kliencki odpytuje je za pomocą MCPOptions.Tasks.Enabled lub pobiera bezpośrednio przez TasksGet.
OAuth klienta MCP
MCPOptions.Authorization: wykrywanie metadanych chronionego zasobu, Client ID Metadata Documents, rejestracja dynamiczna jako fallback, PKCE ze wskaźnikami zasobów, walidacja iss wg RFC 9207 oraz dane uwierzytelniające per wystawca.
Dwa transporty
Stdio dla serwerów uruchamianych jako podproces (model Claude Desktop) i HTTP dla wdrożeń sieciowych. Jeden komponent, oba kanały.
Rodzina klientów AI
Rozmawiaj z modelami także bezpośrednio: chat, streaming i function calling wobec OpenAI, Anthropic Claude i Google Gemini, plus DeepSeek, Grok, Mistral i Ollama w tej samej rodzinie AI.
Wieloplatformowość
Windows 32/64, Linux 64, macOS (Intel i ARM), iOS i Android. VCL i FireMonkey, z komponentami design-time.
Edycja
Serwer MCP, klient MCP i klienty API AI to funkcje edycji Enterprise sgcWebSockets.
Szybki start
Serwer MCP i klient MCP w Delphi
Zarejestruj narzędzie z typowanym argumentem na serwerze; odkryj je i wywołaj z klienta.
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;
Pozwól modelowi AI odpytywać dane Twojej aplikacji przez kontrolowane, typowane narzędzia. Tylko odczyt lub odczyt i zapis, Twój handler decyduje przy każdym wywołaniu.
Automatyzacja biznesu
Udostępnij operacje CRM, ERP lub systemu ticketowego jako narzędzia MCP, aby instrukcje w języku naturalnym napędzały istniejącą logikę biznesową Delphi.
Narzędzia desktopowe napędzane AI
Daj asystentom takim jak Claude Desktop dostęp do funkcjonalności starszej aplikacji, opakowując ją w serwer MCP stdio.
Wieloetapowe przepływy AI
Łącz narzędzia i zasoby dla pobierania, przetwarzania i akcji w jednym pipeline sterowanym przez AI, orkiestrowanym od strony Delphi.