Delphi MCP Client

· Bileşenler

sgcWebSockets 2025.10.0 sürümü, Delphi uygulamalarınızı Model Context Protocol 2025-06-18 belirtimiyle uyumlu tutan ticari sınıf bir MCP İstemcisi uygulamasıyla yapay zeka entegrasyon araç setini genişletir. Tek bir bileşenden seçilmiş bağlam sunun, araç çağrılarını düzenleyin ve kaynak farkındalıklı asistanlara hizmet verin. 

Model Context Protocol (MCP), asistanların yetenekleri nasıl müzakere ettiğini ve yapılandırılmış bağlamı nasıl değiş tokuş ettiğini standartlaştırır. MCP İstemcisi desteği ekleyerek sgcWebSockets şunları sağlar:

TsgcAI_MCP_Client'ın Öne Çıkanları

Anahtar Teslimi MCP El Sıkışması 

Protokol müzakeresini tek bir Initialize çağrısından gerçekleştirin. İstemci, sunucu tarafından döndürülen oturum tanımlayıcısını dikkate alırken ürün adınızı, başlığınızı ve anlamsal sürümünüzü duyurur.

Zengin Yetenek Yüzeyi

Ping, ToolsList, ToolsCall, PromptsList, PromptsGet, ResourcesList ve ResourcesRead dahil olmak üzere hazır metot çağrıları yapın. Her yanıt türü güçlü bir şekilde türlendirilmiştir, bu da sonraki işlemeyi zahmetsiz hale getirir.

Olay Tabanlı Özelleştirme

İş katmanınıza ulaşmadan önce her değişimi izlemek ve kişiselleştirmek için ayrıntılı olaylara (başlatma, ping, araç keşfi, istem alma ve kaynak akışı) bağlanın.


Bileşen, JSON-RPC istek tanımlayıcılarını otomatik olarak artırır, MCP oturum tanımlayıcılarını çağrılar arasında kalıcı kılar ve uzak bir hata döndürüldüğünde türlü istisnalar oluşturur. HTTP bağlantısı, trafiği günlüğe kaydeden ve OpenSSL 3.0 API'leriyle TLS 1.3 müzakere eden özel istemcinin içinde kapsüllenmiştir.

Yapılandırmaya Genel Bakış

Delphi Entegrasyon Örneği

Aşağıdaki kod parçası, MCP İstemcisinin bir veri modülüne nasıl bırakılacağını, başlangıç sırasında nasıl başlatılacağını ve uzak asistan istediği anda bir araç çağrısı yanıtının nasıl sunulacağını gösterir. 

uses
  sgcAI_MCP_Client, sgcJSON;
procedure TdmMCP.StartMCP;
begin
  sgcMCP := TsgcAI_MCP_Client.Create(Self);
  sgcMCP.MCPOptions.ClientInfo.Name := 'sgc-demo-pos';
  sgcMCP.MCPOptions.ClientInfo.Title := 'Smart POS Assistant';
  sgcMCP.MCPOptions.ClientInfo.Version := '2025.10.0';
  sgcMCP.MCPOptions.ServerOptions.URL := 'https://mcp.partnercloud.com';
  sgcMCP.OnMCPInitialize := DoMCPInitialize;
  sgcMCP.OnMCPToolsCall := DoMCPToolsCall;
  sgcMCP.Initialize;
end;
procedure TdmMCP.DoMCPInitialize(Sender: TObject;
  const Request: TsgcAI_MCP_Request_Initialize;
  const Response: TsgcAI_MCP_Response_Initialize;
  var Accept: Boolean);
begin
  Accept := Response.ServerInfo.SupportsTools('inventory.lookup');
end;
procedure TdmMCP.DoMCPToolsCall(Sender: TObject;
  const Request: TsgcAI_MCP_Request_ToolsCall;
  const Response: TsgcAI_MCP_Response_ToolsCall);
var
  ResultPayload: IsgcJSON;
begin
  if Request.Params.Name = 'inventory.lookup' then
  begin
    ResultPayload := TsgcJSON.CreateObject;
    ResultPayload['sku'] := Request.Params.Arguments['sku'];
    ResultPayload['availability'] := 'in-stock';
    Response.Result := ResultPayload;
  end;
end;