MCP Client
TsgcWSAPIClient_MCP는 Model Context Protocol의 클라이언트 쪽을 담당합니다. HTTP, HTTP Streamable 또는 로컬 stdio 하위 프로세스로 모든 MCP 서버에 연결해 서버가 제공하는 도구, 프롬프트, 리소스를 조회하고 사용자 코드에서 호출합니다.
TsgcWSAPIClient_MCP는 Model Context Protocol의 클라이언트 쪽을 담당합니다. HTTP, HTTP Streamable 또는 로컬 stdio 하위 프로세스로 모든 MCP 서버에 연결해 서버가 제공하는 도구, 프롬프트, 리소스를 조회하고 사용자 코드에서 호출합니다.
전송 방식 3종을 갖춘 JSON-RPC MCP 클라이언트입니다. initialize 핸드셰이크를 수행하고 세션을 추적하며, 요청을 보내고 애플리케이션이 지원하기로 선택한 서버 발신 요청에 응답합니다.
TsgcWSAPIClient_MCP
MCP 서버 이용
Windows, macOS, Linux, iOS, Android
sgcAI는 자체 완결형 제품입니다. 이 컴포넌트는 기반이 되는 sgcWebSockets Core 런타임과 함께 sgcAI에 포함되어 제공되므로, 별도로 구매해야 할 기본 라이선스가 없습니다.
전송 방식과 옵션을 설정하고 초기화한 다음, 도구와 프롬프트, 리소스를 조회하고 호출하세요.
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로 POST 기반의 일반 JSON-RPC를 쓰려면 aimcptrHttp, keep-alive와 SSE 알림 스트림을 함께 쓰려면 aimcptrHttpStreamable, 로컬 서버를 하위 프로세스로 실행하려면 aimcptrStdio를 선택합니다.
HttpOptions는 URL, TLS 옵션, 로깅을 담습니다. StdioOptions는 하위 프로세스를 위한 Command, Arguments, WorkingDir, Environment, Timeout을 담습니다.
AuthenticationOptions는 API 키, 사용자 지정 헤더, 그리고 신원 확인을 포함한 완전한 OAuth 2.0 흐름을 지원합니다. 공개 MCP 서버가 점점 더 많이 요구하는 방식입니다.
Initialize가 핸드셰이크를 수행하고 Ping이 연결 상태를 확인합니다. HeartBeat가 주기적으로 ping을 보내 유휴 세션이 끊기지 않게 하며, Session이 협상된 세션 상태를 노출합니다.
ListTools와 RequestTool, ListPrompts와 RequestPrompt, ListResources, ListResourceTemplates, RequestResource를 제공합니다. 목록 조회는 페이징용 커서 인자를 받습니다.
SubscribeResource와 UnsubscribeResource로 리소스의 변경을 추적하고, SetLoggingLevel로 서버 측 로그 상세도를 조정하며, Complete로 인자 값 자동 완성을 요청합니다.
서버가 클라이언트에 파일 시스템 루트, 모델 completion, 사용자 입력을 요청하면 OnMCPListRoots, OnMCPSamplingCreateMessage, OnMCPElicitationCreate가 발생하며, 애플리케이션이 답을 제공합니다.
OnMCPInitialize, OnMCPPing, OnMCPListTools, OnMCPResponseTool, OnMCPListPrompts, OnMCPResponsePrompt, OnMCPListResources, OnMCPResponseResource, OnMCPStreamMessage.
이 컴포넌트가 사용하는 서비스와 프로토콜의 공식 자료입니다.