MCP Server 컴포넌트 — sgcAI | eSeGeCe

MCP Server

TsgcWSAPIServer_MCP는 sgc HTTP 서버 또는 WebSocket 서버를 Model Context Protocol 서버로 바꿔 줍니다. 직접 만든 도구, 프롬프트, 리소스를 게시하면 MCP를 지원하는 모든 클라이언트, IDE 에이전트, 데스크톱 어시스턴트, 직접 작성한 코드가 애플리케이션을 호출할 수 있습니다.

TsgcWSAPIServer_MCP

MCP의 서버 쪽을 담당합니다. 지정한 엔드포인트에서 JSON-RPC를 해석하고 세션을 관리하며, 도구와 프롬프트, 리소스 요청마다 이벤트를 발생시키고, 알림과 서버가 시작하는 요청을 클라이언트로 보낼 수 있습니다.

컴포넌트 클래스

TsgcWSAPIServer_MCP

용도

AI 클라이언트용 도구 호스팅

플랫폼

Windows, macOS, Linux, iOS, Android

sgcAI는 자체 완결형 제품입니다. 이 컴포넌트는 기반이 되는 sgcWebSockets Core 런타임과 함께 sgcAI에 포함되어 제공되므로, 별도로 구매해야 할 기본 라이선스가 없습니다.

AI 클라이언트에 도구 게시하기

API를 서버에 연결하고 ServerInfo를 채운 다음, 요청 이벤트를 처리하고 Active를 설정하세요.

uses
  sgcAI, sgcAI_MCP_Classes, sgcHTTP_Server;

var
  oMCP: TsgcWSAPIServer_MCP;
begin
  oMCP := TsgcWSAPIServer_MCP.Create(nil);
  oMCP.Server := sgcHTTPServer1;
  oMCP.EndpointOptions.Endpoint := '/mcp';

  oMCP.MCPOptions.ServerInfo.Name    := 'sgc-mcp-server';
  oMCP.MCPOptions.ServerInfo.Version := '1.0.0';
  oMCP.MCPOptions.SessionTimeout     := 300;

  // Streamable HTTP enables notifications and server to client requests.
  oMCP.TransportOptions.Http.Enabled           := True;
  oMCP.TransportOptions.HttpStreamable.Enabled := True;

  oMCP.OnMCPInitialize     := SrvInitialize;
  oMCP.OnMCPSessionNew     := SrvSessionNew;
  oMCP.OnMCPRequestTool    := SrvCallTool;
  oMCP.OnMCPRequestPrompt  := SrvGetPrompt;
  oMCP.OnMCPRequestResource := SrvReadResource;

  sgcHTTPServer1.Active := True;

  // Tell every connected session the tool list changed.
  oMCP.SendNotificationToolsListChanged;
end;
// includes: sgcAI.hpp, sgcAI_MCP_Classes.hpp, sgcHTTP_Server.hpp

TsgcWSAPIServer_MCP *oMCP = new TsgcWSAPIServer_MCP(NULL);
oMCP->Server = sgcHTTPServer1;
oMCP->EndpointOptions->Endpoint = "/mcp";

oMCP->MCPOptions->ServerInfo->Name    = "sgc-mcp-server";
oMCP->MCPOptions->ServerInfo->Version = "1.0.0";

oMCP->TransportOptions->HttpStreamable->Enabled = true;
oMCP->OnMCPRequestTool = SrvCallTool;

sgcHTTPServer1->Active = true;

주요 속성 & 메서드

가장 자주 사용하게 되는 멤버들입니다.

서버 연결

Server는 요청을 수신하는 HTTP 서버 또는 WebSocket 서버를 가리키고, EndpointOptions.Endpoint는 JSON-RPC 요청이 도착하는 경로입니다.

MCPOptions

ServerInfo는 핸드셰이크 과정에서 클라이언트에게 보이는 정보입니다. SessionTimeout은 유휴 세션을 만료시키고, TasksSupported는 tasks 기능을 알리며, AuthenticationOptions는 API 키, 사용자 지정 헤더, OAuth 2.0을 다룹니다.

TransportOptions

Http.Enabled는 POST 기반의 일반 JSON-RPC를 제공합니다. HttpStreamable.Enabled는 keep-alive와 SSE 알림 스트림을 더해 주며, 이것이 알림과 서버가 시작하는 요청을 가능하게 합니다. HttpStreamable.ValidateOrigin은 세션을 생성 당시의 Origin 헤더에 고정합니다.

카탈로그

Tools, Prompts, Resources, ResourceTemplates가 서버에서 알리는 항목을 담습니다. 시작할 때 채우거나 런타임에 변경한 다음 그에 맞는 list-changed 알림을 보내세요.

요청 이벤트

OnMCPRequestTool, OnMCPRequestPrompt, OnMCPRequestResource에서 사용자 코드가 실제 작업을 처리합니다. OnMCPInitialize, OnMCPSessionNew, OnMCPSessionEnd가 세션 수명 주기를 추적하고, OnMCPException이 오류를 알려 줍니다.

알림

SendNotificationToolsListChanged, SendNotificationPromptsListChanged, SendNotificationResourcesListChanged, SendNotificationResourcesUpdated, SendLogMessage가 연결된 세션에 변경 사항을 전달합니다.

서버가 시작하는 요청

RequestRootsList, RequestSamplingCreateMessage, RequestElicitationCreate로 서버가 클라이언트에 파일 시스템 루트, 모델 completion, 사용자 입력을 요청하고, 그 답은 대응하는 OnMCPResponse* 이벤트로 전달됩니다.

내장 OAuth 2.0

이 컴포넌트는 MCP 인증 흐름의 인가 서버 쪽을 구현하며, 동적 클라이언트 등록과 동의 페이지, PKCE, 리프레시 토큰을 포함합니다. 따라서 별도의 신원 서비스 없이도 에이전트가 서버에 인가를 받을 수 있습니다.

사양 & 참고 자료

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

계속 살펴보기

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

시작할 준비가 되셨나요?

무료 체험판을 다운로드하고 AI 에이전트가 MCP를 통해 애플리케이션을 호출하게 해 보세요.