Delphi MCP 客户端

· 组件

sgcWebSockets 2025.10.0 版本扩展了 AI 集成工具包,新增企业级 MCP 客户端实现,使您的 Delphi 应用程序与 Model Context Protocol 2025-06-18 规范保持同步。通过单一组件即可提供精选上下文、协调工具调用并服务于资源感知助手。

Model Context Protocol(MCP)标准化了助手协商能力和交换结构化上下文的方式。通过添加 MCP 客户端支持,sgcWebSockets 实现了以下功能:

TsgcAI_MCP_Client 亮点

一键式 MCP 握手

通过单次 Initialize 调用即可执行协议协商。客户端在遵守服务器返回的会话标识符的同时,发布您的产品名称、标题和语义版本。

丰富的能力接口

发出即用型方法调用,包括 Ping、ToolsList、ToolsCall、PromptsList、PromptsGet、ResourcesList 和 ResourcesRead。每种响应类型都经过强类型化,使后续处理变得轻松。

事件驱动的自定义

挂钩细粒度事件(初始化、ping、工具发现、提示检索和资源流),在每次交换到达业务层之前进行追踪和个性化处理。


该组件自动递增 JSON-RPC 请求标识符,在调用之间持久化 MCP 会话标识符,并在返回远程错误时引发类型化异常。HTTP 连接封装在专用客户端中,该客户端记录流量并使用 OpenSSL 3.0 API 协商 TLS 1.3。

配置概览

Delphi 集成示例

以下代码片段说明了如何将 MCP 客户端放置在数据模块上,在启动时初始化,并在远程助手请求时立即响应工具调用。

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;