MCP Client 组件 — sgcAI | eSeGeCe

MCP Client

TsgcWSAPIClient_MCP 是 Model Context Protocol 的客户端一侧。它可通过 HTTP、HTTP Streamable 或本地 stdio 子进程连接到任意 MCP 服务器,列出该服务器提供的工具、提示词和资源,并从您的代码中调用它们。

TsgcWSAPIClient_MCP

一个支持三种传输的 JSON-RPC MCP 客户端。它执行 initialize 握手、跟踪会话、发起请求,并回应您的应用程序选择支持的那些服务器发起的请求。

组件类

TsgcWSAPIClient_MCP

用途

使用 MCP 服务器

平台

Windows、macOS、Linux、iOS 和 Android

sgcAI 是自包含的。该组件随 sgcAI 一同交付,并附带它所基于的 sgcWebSockets Core 运行时,因此无需购买基础授权。

调用 MCP 服务器上的工具

设置传输及其选项,执行 initialize,然后列出并调用工具、提示词和资源。

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

关键属性与方法

您最常使用的成员。

传输

MCPOptions.Transport 可选择 aimcptrHttp(基于 POST 的普通 JSON-RPC)、aimcptrHttpStreamable(保持连接并附带一条 SSE 通知流),或 aimcptrStdio(把本地服务器作为子进程启动)。

HttpOptions 和 StdioOptions

HttpOptions 承载 URL、TLS 选项和日志设置。StdioOptions 为子进程承载 CommandArgumentsWorkingDirEnvironmentTimeout

身份验证

AuthenticationOptions 支持 API 密钥、自定义头部,或完整的 OAuth 2.0 流程(含身份断言),这正是公共 MCP 服务器越来越普遍的要求。

会话

Initialize 执行握手,Ping 检查存活状态。HeartBeat 会定期发送 ping,避免空闲会话被断开,而 Session 暴露已协商的会话状态。

工具、提示词和资源

ListToolsRequestToolListPromptsRequestPromptListResourcesListResourceTemplatesRequestResource。列表方法接受一个游标参数以便分页。

订阅与日志

SubscribeResourceUnsubscribeResource 用于跟踪某个资源的变化,SetLoggingLevel 调整服务器端的日志详细程度,Complete 用于请求参数补全。

回应服务器

当服务器向客户端索取文件系统根目录、模型补全或用户输入时,OnMCPListRootsOnMCPSamplingCreateMessageOnMCPElicitationCreate 会被触发,由您的应用程序给出答案。

事件

OnMCPInitializeOnMCPPingOnMCPListToolsOnMCPResponseToolOnMCPListPromptsOnMCPResponsePromptOnMCPListResourcesOnMCPResponseResourceOnMCPStreamMessage

规范与参考资料

该组件所用服务和协议的权威资料来源。

继续探索

在线帮助sgcAI 组件的完整 API 参考和使用指南。
所有 sgcAI 组件浏览全部 15 个组件的完整功能矩阵。
下载免费试用版从您自己的代码连接到公共或本地的 MCP 服务器。
价格Single、Team 和 Site 授权,均含完整源代码,无需基础产品。
超值之选:All-AccesseSeGeCe 全部产品,含高级支持,每年 €1,059 起。
查看 All-Access 价格

准备好开始了吗?

下载免费试用版,从 Delphi 或 C++ Builder 调用 MCP 服务器。