MCP Client

TsgcWSAPIClient_MCP는 Model Context Protocol의 클라이언트 쪽을 담당합니다. HTTP, HTTP Streamable 또는 로컬 stdio 하위 프로세스로 모든 MCP 서버에 연결해 서버가 제공하는 도구, 프롬프트, 리소스를 조회하고 사용자 코드에서 호출합니다.

TsgcWSAPIClient_MCP

전송 방식 3종을 갖춘 JSON-RPC MCP 클라이언트입니다. initialize 핸드셰이크를 수행하고 세션을 추적하며, 요청을 보내고 애플리케이션이 지원하기로 선택한 서버 발신 요청에 응답합니다.

컴포넌트 클래스

TsgcWSAPIClient_MCP

용도

MCP 서버 이용

플랫폼

Windows, macOS, Linux, iOS, Android

sgcAI는 자체 완결형 제품입니다. 이 컴포넌트는 기반이 되는 sgcWebSockets Core 런타임과 함께 sgcAI에 포함되어 제공됩니다.

MCP 서버에서 도구 호출하기

전송 방식과 옵션을 설정하고 초기화한 다음, 도구와 프롬프트, 리소스를 조회하고 호출하세요.

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와 StdioOptions

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가 발생하며, 애플리케이션이 답을 제공합니다. Multi Round-Trip Requests 밖에서 이러한 요청을 직접 보내는 레거시(2025-11-25 이하) 서버에는 핸들러가 반환되는 즉시 응답이 자동으로 전송됩니다.

이벤트

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

MCP 2026-07-28

MCPOptions.ProtocolEra로 Auto, Modern, Legacy를 선택합니다. Auto에서는 클라이언트가 server/discover를 호출하고, 서버가 이전 버전이면 2025-11-25 initialize 핸드셰이크로 폴백합니다. Discover, NegotiatedEra, OnMCPDiscover가 결과를 노출합니다.

Multi Round-Trip Requests

서버가 호출을 완료하기 위해 elicitation, sampling, roots가 필요하면 OnMCPInputRequired가 해당 요청과 함께 발생합니다. 답을 채우면 클라이언트가 서명된 requestState로 최대 MCPOptions.MRTR.MaxRounds까지 재시도합니다.

subscriptions/listen

SubscriptionsListen이 목록 변경과 리소스 업데이트를 위한 스트림을 열며, OnMCPListChanged와 OnMCPResourcesUpdated를 통해 전달됩니다. SubscriptionsCancel로 닫습니다.

Tasks extension

MCPOptions.Tasks.Enabled로 확장 기능을 선언합니다. AutoPoll이 실행 중인 작업을 자동으로 폴링합니다. TasksGet, TasksUpdate, TasksCancel은 수동 메서드이며, OnMCPTaskCreated, OnMCPTaskStatus, OnMCPTaskCompleted가 진행 상황을 알립니다.

OAuth for MCP servers

MCPOptions.Authorization이 protected resource 메타데이터를 검색하고, Client ID Metadata Documents 또는 application_type을 사용한 동적 등록으로 등록하며, PKCE와 리소스 지시자를 사용하고, iss(RFC 9207)를 검증하며 발급자별로 자격 증명을 유지합니다.

사양 & 참고 자료

이 컴포넌트가 사용하는 서비스와 프로토콜의 공식 자료입니다.

계속 살펴보기

온라인 도움말sgcAI 컴포넌트의 전체 API 레퍼런스와 사용 안내서.
sgcAI 전체 컴포넌트15개 컴포넌트 전체의 기능 매트릭스를 살펴보세요.
무료 체험판 다운로드공개 또는 로컬 MCP 서버에 직접 작성한 코드로 연결해 보세요.
가격Single, Team, Site 라이선스, 전체 소스 코드 포함.
최고의 가성비: All-Access모든 eSeGeCe 제품과 프리미엄 지원이 포함되어 연 €1,059부터 이용할 수 있어요.
All-Access 가격 보기

시작할 준비가 되셨나요?

무료 체험판을 다운로드하고 Delphi 또는 C++ Builder에서 MCP 서버를 호출해 보세요.