MCP İstemcisi

TsgcWSAPIClient_MCP, Model Context Protocol'ün istemci yarısıdır. HTTP, HTTP Streamable ya da yerel bir stdio alt süreci üzerinden herhangi bir MCP sunucusuna bağlanır, sunucunun sunduğu araçları, istemleri ve kaynakları listeler ve bunları kodunuzdan çağırır.

TsgcWSAPIClient_MCP

Üç taşımalı bir JSON-RPC MCP istemcisi. Initialize handshake'ini gerçekleştirir, oturumu izler, istekler gönderir ve uygulamanızın desteklemeyi seçtiği sunucu kaynaklı istekleri yanıtlar.

Bileşen sınıfı

TsgcWSAPIClient_MCP

Amaç

MCP sunucularını kullanmak

Platformlar

Windows, macOS, Linux, iOS ve Android

sgcAI bağımsız bir üründür. Bu bileşen, üzerine kurulduğu sgcWebSockets Core çalışma zamanıyla birlikte sgcAI içinde gelir.

Bir MCP sunucusunda bir araç çağırın

Taşımayı ve seçeneklerini ayarlayın, initialize edin, ardından araçları, istemleri ve kaynakları listeleyin ve çağırın.

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();

Temel özellikler & yöntemler

En sık başvurduğunuz üyeler.

Taşıma

MCPOptions.Transport, POST üzerinden düz JSON-RPC için aimcptrHttp, keep-alive ile birlikte bir SSE bildirim akışı için aimcptrHttpStreamable ya da yerel bir sunucuyu alt süreç olarak başlatmak için aimcptrStdio değerini seçer.

HttpOptions ve StdioOptions

HttpOptions, URL'yi, TLS seçeneklerini ve günlük kaydını taşır. StdioOptions ise alt süreç için Command, Arguments, WorkingDir, Environment ve Timeout değerlerini taşır.

Kimlik doğrulama

AuthenticationOptions; bir API anahtarını, özel bir başlığı ya da kimlik onayı dahil tam bir OAuth 2.0 akışını destekler. Genel MCP sunucularının giderek daha çok talep ettiği yöntem budur.

Oturum

Initialize handshake'i gerçekleştirir, Ping ise canlılığı denetler. HeartBeat, boştaki bir oturumun düşürülmemesi için düzenli aralıklarla ping gönderir ve Session, anlaşılan oturum durumunu sunar.

Araçlar, istemler ve kaynaklar

ListTools ve RequestTool, ListPrompts ve RequestPrompt, ListResources, ListResourceTemplates ve RequestResource. Listeler, sayfalama için bir imleç argümanı kabul eder.

Abonelikler ve günlük kaydı

SubscribeResource ve UnsubscribeResource bir kaynağı değişikliklere karşı izler, SetLoggingLevel sunucu tarafındaki ayrıntı düzeyini ayarlar ve Complete argüman tamamlamaları ister.

Sunucuyu yanıtlama

OnMCPListRoots, OnMCPSamplingCreateMessage ve OnMCPElicitationCreate, sunucu istemciden dosya sistemi köklerini, bir model tamamlamasını ya da kullanıcı girdisini istediğinde tetiklenir; böylece yanıtı uygulamanız sağlar. Bu istekleri Multi Round-Trip Requests dışında doğrudan gönderen eski (legacy, 2025-11-25 veya öncesi) bir sunucu, işleyici döndüğünde yanıtını otomatik olarak geri alır.

Olaylar

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

MCP 2026-07-28

MCPOptions.ProtocolEra, Auto, Modern veya Legacy seçer. Auto modunda istemci server/discover'ı çağırır ve sunucu daha eskiyse 2025-11-25 initialize handshake'ine geri döner. Discover, NegotiatedEra ve OnMCPDiscover sonucu sunar.

Multi Round-Trip Requests

Bir sunucu bir çağrıyı tamamlamak için elicitation, sampling veya roots'a ihtiyaç duyduğunda, OnMCPInputRequired isteklerle birlikte tetiklenir. Yanıtları doldurun; istemci, MCPOptions.MRTR.MaxRounds'a kadar imzalı requestState ile çağrıyı yeniden dener.

subscriptions/listen

SubscriptionsListen, OnMCPListChanged ve OnMCPResourcesUpdated aracılığıyla iletilen liste değişiklikleri ve kaynak güncellemeleri için bir akış açar. SubscriptionsCancel onu kapatır.

Tasks uzantısı

MCPOptions.Tasks.Enabled, uzantıyı bildirir; AutoPoll, çalışan bir görevi otomatik olarak yoklar. TasksGet, TasksUpdate ve TasksCancel manuel metotlardır; OnMCPTaskCreated, OnMCPTaskStatus ve OnMCPTaskCompleted ilerlemeyi bildirir.

MCP sunucuları için OAuth

MCPOptions.Authorization, korumalı kaynak metadata'sını keşfeder, Client ID Metadata Documents veya application_type ile dinamik kayıt üzerinden kaydolur, PKCE ve resource indicators kullanır, iss (RFC 9207) doğrular ve sağlayıcı başına kimlik bilgilerini tutar.

Spesifikasyonlar & referanslar

Bu bileşenin kullandığı hizmetler ve protokoller için yetkili kaynaklar.

Keşfetmeye devam edin

Çevrimiçi yardımsgcAI bileşenleri için tam API referansı ve kullanım kılavuzu.
Tüm sgcAI Bileşenleri15 bileşenin tamamının özellik matrisine göz atın.
Ücretsiz Deneme Sürümünü İndirinKendi kodunuzdan genel ya da yerel bir MCP sunucusuna bağlanın.
FiyatlandırmaSingle, Team ve Site lisansları, tam kaynak kodu.
En avantajlı seçenek: All-AccessTüm eSeGeCe ürünleri, Premium Destek dahil, yılda €1,059'dan itibaren.
All-Access fiyatlarına bakın

Başlamaya Hazır mısınız?

Ücretsiz deneme sürümünü indirin ve Delphi ya da C++ Builder'dan bir MCP sunucusunu çağırın.