MCP Client

TsgcWSAPIClient_MCP to kliencka połowa Model Context Protocol. Łączy się z dowolnym serwerem MCP przez HTTP, HTTP Streamable albo lokalny podproces stdio, listuje oferowane przez niego narzędzia, prompty i zasoby oraz wywołuje je z twojego kodu.

TsgcWSAPIClient_MCP

Klient MCP oparty na JSON-RPC z trzema transportami. Wykonuje handshake inicjalizacyjny, śledzi sesję, wysyła żądania i odpowiada na te inicjowane przez serwer, które twoja aplikacja zdecyduje się obsłużyć.

Klasa komponentu

TsgcWSAPIClient_MCP

Przeznaczenie

Korzystaj z serwerów MCP

Platformy

Windows, macOS, Linux, iOS i Android

sgcAI jest samowystarczalny. Ten komponent jest dostarczany w sgcAI razem ze środowiskiem uruchomieniowym sgcWebSockets Core, na którym jest zbudowany.

Wywołaj narzędzie na serwerze MCP

Ustaw transport i jego opcje, zainicjalizuj, a potem listuj i wywołuj narzędzia, prompty oraz zasoby.

uses
  sgcAI, sgcAI_MCP_Classes, sgcAI_MCP_Types;

var
  oMCP: TsgcWSAPIClient_MCP;
begin
  oMCP := TsgcWSAPIClient_MCP.Create(nil);

  // Remote server over streamable HTTP.
  oMCP.MCPOptions.Transport      := aimcptrHttpStreamable;
  oMCP.MCPOptions.HttpOptions.URL := 'https://mcp.example.com/mcp';
  oMCP.MCPOptions.ClientInfo.Name    := 'sgc-mcp-client';
  oMCP.MCPOptions.ClientInfo.Version := '1.0.0';
  oMCP.MCPOptions.AuthenticationOptions.ApiKey.Enabled := True;
  oMCP.MCPOptions.AuthenticationOptions.ApiKey.Value   := 'mcp-...';

  oMCP.OnMCPListTools    := MCPListTools;
  oMCP.OnMCPResponseTool := MCPToolResponse;

  oMCP.Initialize;
  oMCP.ListTools;
  oMCP.RequestTool('GetTemperature', vArguments);   // vArguments: IsgcJSON
end;

// Or spawn a local MCP server as a subprocess instead:
oMCP.MCPOptions.Transport := aimcptrStdio;
oMCP.MCPOptions.StdioOptions.Command   := 'C:\tools\my-mcp-server.exe';
oMCP.MCPOptions.StdioOptions.Arguments := '--stdio';
// includes: sgcAI.hpp, sgcAI_MCP_Classes.hpp, sgcAI_MCP_Types.hpp

TsgcWSAPIClient_MCP *oMCP = new TsgcWSAPIClient_MCP(NULL);
oMCP->MCPOptions->Transport = aimcptrHttpStreamable;
oMCP->MCPOptions->HttpOptions->URL = "https://mcp.example.com/mcp";
oMCP->MCPOptions->ClientInfo->Name = "sgc-mcp-client";

oMCP->OnMCPListTools    = MCPListTools;
oMCP->OnMCPResponseTool = MCPToolResponse;

oMCP->Initialize();
oMCP->ListTools();

Kluczowe właściwości i metody

Składowe, po które sięgasz najczęściej.

Transport

MCPOptions.Transport wybiera aimcptrHttp dla zwykłego JSON-RPC przez POST, aimcptrHttpStreamable dla keep-alive wraz ze strumieniem powiadomień SSE, albo aimcptrStdio, aby uruchomić lokalny serwer jako podproces.

HttpOptions i StdioOptions

HttpOptions niesie adres URL, opcje TLS i logowanie zdarzeń. StdioOptions niesie Command, Arguments, WorkingDir, Environment i Timeout dla podprocesu.

Uwierzytelnianie

AuthenticationOptions obsługuje klucz API, nagłówek własny albo pełny przepływ OAuth 2.0 z potwierdzeniem tożsamości, czego coraz częściej wymagają publiczne serwery MCP.

Sesja

Initialize wykonuje handshake, a Ping sprawdza aktywność. HeartBeat wysyła okresowe pingi, aby bezczynna sesja nie została zerwana, a Session wystawia wynegocjowany stan sesji.

Narzędzia, prompty i zasoby

ListTools i RequestTool, ListPrompts i RequestPrompt, ListResources, ListResourceTemplates oraz RequestResource. Listy przyjmują argument kursora do stronicowania.

Subskrypcje i logowanie zdarzeń

SubscribeResource i UnsubscribeResource śledzą zmiany zasobu, SetLoggingLevel reguluje szczegółowość po stronie serwera, a Complete prosi o uzupełnienia argumentów.

Odpowiadanie serwerowi

OnMCPListRoots, OnMCPSamplingCreateMessage i OnMCPElicitationCreate zgłaszają się, gdy serwer prosi klienta o katalogi główne systemu plików, uzupełnienie z modelu albo dane od użytkownika, a twoja aplikacja dostarcza odpowiedź. Starszy serwer (2025-11-25 lub wcześniejszy), który wysyła te żądania bezpośrednio, poza Multi Round-Trip Requests, otrzymuje odpowiedź automatycznie, gdy tylko handler zakończy działanie.

Zdarzenia

OnMCPInitialize, OnMCPPing, OnMCPListTools, OnMCPResponseTool, OnMCPListPrompts, OnMCPResponsePrompt, OnMCPListResources, OnMCPResponseResource i OnMCPStreamMessage.

MCP 2026-07-28

MCPOptions.ProtocolEra wybiera Auto, Modern lub Legacy. W trybie Auto klient wywołuje server/discover i przechodzi na starszy handshake initialize z 2025-11-25, gdy serwer jest starszy. Discover, NegotiatedEra i OnMCPDiscover udostępniają wynik.

Multi Round-Trip Requests

Gdy serwer potrzebuje elicitation, samplingu lub roots, aby zakończyć wywołanie, uruchamia się OnMCPInputRequired z żądaniami. Wypełnij odpowiedzi, a klient ponawia wywołanie z podpisanym requestState, do MCPOptions.MRTR.MaxRounds.

subscriptions/listen

SubscriptionsListen otwiera strumień zmian list i aktualizacji zasobów, dostarczany przez OnMCPListChanged i OnMCPResourcesUpdated. SubscriptionsCancel go zamyka.

Rozszerzenie Tasks

MCPOptions.Tasks.Enabled deklaruje rozszerzenie; AutoPoll odpytuje działające zadanie automatycznie. TasksGet, TasksUpdate i TasksCancel to metody ręczne, a OnMCPTaskCreated, OnMCPTaskStatus i OnMCPTaskCompleted raportują postęp.

OAuth dla serwerów MCP

MCPOptions.Authorization wykrywa metadane chronionego zasobu, rejestruje się przez Client ID Metadata Documents lub rejestrację dynamiczną z application_type, korzysta z PKCE i wskaźników zasobów, waliduje iss (RFC 9207) i przechowuje dane uwierzytelniające per wystawca.

Specyfikacje i materiały źródłowe

Miarodajne źródła dla usług i protokołów, z których korzysta ten komponent.

Poznawaj dalej

Pomoc onlinePełna dokumentacja API i przewodnik użytkowania komponentów sgcAI.
Wszystkie komponenty sgcAIPrzejrzyj pełną matrycę funkcji wszystkich 15 komponentów.
Pobierz bezpłatną wersję próbnąPołącz się z publicznym lub lokalnym serwerem MCP z własnego kodu.
CennikLicencje Single, Team i Site, pełny kod źródłowy.
Najkorzystniejsza oferta: All-AccessWszystkie produkty eSeGeCe, ze wsparciem Premium w cenie, już od €1,059 rocznie.
Zobacz cennik All-Access

Gotowy, aby zacząć?

Pobierz bezpłatną wersję próbną i wywołaj serwer MCP z Delphi lub C++ Builder.